/* Estilos para Antiprocrastinación - Gestor de Micro-tareas */

:root {
    --primary-color: #0d6efd;
    --success-color: #198754;
    --warning-color: #ffc107;
    --danger-color: #dc3545;
    --info-color: #0dcaf0;
    --light-color: #f8f9fa;
    --dark-color: #212529;
    --border-radius: 8px;
    --box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    --transition: all 0.3s ease;
}

/* Reset y configuraciones globales */
* {
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f5f7fa;
    color: var(--dark-color);
    line-height: 1.6;
}

/* Navbar personalizada */
.navbar-brand {
    font-weight: 600;
    font-size: 1.25rem;
}

.navbar-brand i {
    color: var(--info-color);
}

/* Contenedor de columnas */
#columnsContainer {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: var(--border-radius);
    padding: 20px;
    gap: 20px;
    min-height: 600px;
}

/* Estilos de columnas */
.task-column {
    min-width: 300px;
    max-width: 350px;
    background: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 15px;
    height: fit-content;
    max-height: 550px;
    display: flex;
    flex-direction: column;
    overflow: visible;
    position: relative;
}

.column-header {
    border-bottom: 2px solid var(--light-color);
    padding-bottom: 10px;
    margin-bottom: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.column-header h6 {
    margin: 0;
    font-weight: 600;
    color: var(--dark-color);
    font-size: 0.9rem;
    display: flex;
    align-items: center;
}

.task-list {
    flex: 1;
    overflow-y: auto;
    overflow-x: visible;
    padding-right: 5px;
}

/* Personalizar scrollbar */
.task-list::-webkit-scrollbar {
    width: 6px;
}

.task-list::-webkit-scrollbar-track {
    background: var(--light-color);
    border-radius: 3px;
}

.task-list::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 3px;
}

.task-list::-webkit-scrollbar-thumb:hover {
    background: #999;
}

/* Estilos de tareas */
.task-item {
    background: white;
    border: 1px solid #e9ecef;
    border-radius: var(--border-radius);
    padding: 12px;
    margin-bottom: 10px;
    transition: var(--transition);
    cursor: pointer;
    position: relative;
    overflow: visible; /* permitir que los menús salgan del contenedor de la tarea */
}

.task-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    border-color: var(--primary-color);
}

.task-item.selected {
    border-color: var(--primary-color);
    background: linear-gradient(135deg, #f8f9ff 0%, #e3f2fd 100%);
    box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.25);
}

.task-item.completed {
    opacity: 0.7;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
}

/* Drag & drop cues */
.task-item.dragging { opacity: 0.6; }
.drop-target { outline: 2px dashed var(--primary); outline-offset: 2px; }
.task-list.drop-target { background: rgba(13,110,253,0.06); }

/* Indicadores before/after/into usando data-drop-zone */
.task-item.drop-target[data-drop-zone="before"] { box-shadow: inset 0 3px 0 0 var(--primary-color); }
.task-item.drop-target[data-drop-zone="after"] { box-shadow: inset 0 -3px 0 0 var(--primary-color); }
.task-item.drop-target[data-drop-zone="into"] { box-shadow: inset 0 0 0 2px var(--primary-color); }

.task-item.completed .task-title {
    text-decoration: line-through;
    color: #6c757d;
}

/* Indicadores de prioridad */
.task-item.priority-high::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--danger-color);
}

.task-item.priority-medium::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--warning-color);
}

.task-item.priority-low::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--success-color);
}

.task-content {
    position: relative;
    z-index: 1;
}

.task-header {
    display: flex;
    align-items: flex-start;
    margin-bottom: 5px;
}

.task-title {
    font-weight: 500;
    color: var(--dark-color);
    flex: 1;
    word-wrap: break-word;
    line-height: 1.4;
}

.task-description {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-bottom: 8px;
}

/* Descripción colapsable */
.desc-clamp{ display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.desc-expanded{ -webkit-line-clamp:unset; line-clamp:unset; overflow:visible; }
.desc-toggle{ color:var(--primary); font-size:.8rem; cursor:pointer; user-select:none; }

.task-actions { display: flex; gap: 5px; }

.task-actions .btn {
    padding: 4px 8px;
    font-size: 0.75rem;
    border-width: 1px;
}

/* Estilos específicos para botones de acción */
.task-actions .btn-outline-info {
    border-color: var(--info-color);
    color: var(--info-color);
}

.task-actions .btn-outline-info:hover {
    background-color: var(--info-color);
    border-color: var(--info-color);
    color: white;
}

/* Dropdown de impresión */
.task-actions .btn-group .dropdown-menu {
    min-width: 180px;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    z-index: 1060 !important;
    position: absolute !important;
}

.task-actions .dropdown-item {
    padding: 8px 12px;
    font-size: 0.8rem;
    transition: var(--transition);
}

.task-actions .dropdown-item:hover {
    background-color: var(--light-color);
    color: var(--primary-color);
}

.task-actions .dropdown-item i {
    width: 16px;
    text-align: center;
}

/* Asegurar que todos los dropdowns aparezcan por encima */
.dropdown-menu {
    z-index: 1055 !important;
}

.btn-group {
    position: relative;
    z-index: 1;
}

.btn-group.show .dropdown-menu {
    z-index: 1060 !important;
}

/* Portal dropdown (cuando JS lo convierte en fixed) */
.dropdown-portal {
    position: fixed !important;
    z-index: 2000 !important;
}

/* Tooltip personalizado para botón de impresión */
.task-actions .btn[title]:hover::after {
    content: attr(title);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0,0,0,0.8);
    color: white;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 0.7rem;
    white-space: nowrap;
    z-index: 1000;
}

/* Badges y indicadores */
.badge {
    font-size: 0.7rem;
    padding: 3px 6px;
}

/* Estilos de formularios */
.form-control:focus,
.form-select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

/* Modales */
.modal-content {
    border: none;
    border-radius: var(--border-radius);
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.modal-header {
    background: linear-gradient(135deg, var(--primary-color) 0%, #6f42c1 100%);
    color: white;
    border-radius: var(--border-radius) var(--border-radius) 0 0;
}

.modal-header .btn-close {
    filter: invert(1);
}

/* Toast notifications */
.toast {
    border: none;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
}

/* Estadísticas */
#statsRow .card {
    border: none;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
}

#statsRow .card-body {
    padding: 1.5rem;
}

/* Efectos de carga */
.loading {
    position: relative;
    overflow: hidden;
}

.loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    animation: loading 1.5s infinite;
}

@keyframes loading {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Animaciones de entrada */
.task-item {
    animation: fadeInUp 0.3s ease;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.task-column {
    animation: slideInRight 0.4s ease;
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Efectos hover para botones */
.btn {
    transition: var(--transition);
}

.btn:hover {
    transform: translateY(-1px);
}

.btn:active {
    transform: translateY(0);
}

/* Responsive design */
@media (max-width: 768px) {
    #columnsContainer {
        padding: 10px;
        gap: 10px;
    }
    
    .task-column {
        min-width: 280px;
        max-width: 100%;
    }
    
    .task-actions {
        opacity: 1; /* Siempre visible en móviles */
    }
    
    .navbar-brand {
        font-size: 1rem;
    }
}

@media (max-width: 576px) {
    .task-column {
        min-width: 250px;
    }
    
    .task-item {
        padding: 10px;
    }
    
    .task-actions .btn {
        padding: 3px 6px;
        font-size: 0.7rem;
    }
}

/* Modo de impresión */
@media print {
    body {
        background: white;
        color: black;
    }
    
    .navbar,
    .task-actions,
    .btn,
    #statsRow {
        display: none !important;
    }
    
    #columnsContainer {
        background: white;
        box-shadow: none;
        padding: 0;
    }
    
    .task-column {
        box-shadow: none;
        border: 1px solid #ccc;
        page-break-inside: avoid;
        margin-bottom: 20px;
    }
    
    .task-item {
        border: 1px solid #ddd;
        box-shadow: none;
        page-break-inside: avoid;
    }
    
    .task-item:hover {
        transform: none;
    }
    
    /* Estilos específicos para impresión individual */
    .print-task-item {
        border: 1px solid #ddd;
        margin-bottom: 15px;
        padding: 10px;
        page-break-inside: avoid;
    }
    
    .print-task-title {
        font-weight: bold;
        font-size: 1.1em;
        margin-bottom: 8px;
    }
    
    .print-task-description {
        color: #666;
        margin-bottom: 5px;
    }
    
    .print-task-meta {
        font-size: 0.9em;
        color: #888;
        border-top: 1px solid #eee;
        padding-top: 5px;
        margin-top: 8px;
    }
}

/* Estados de drag and drop (para implementación futura) */
.task-item.dragging {
    opacity: 0.5;
    transform: rotate(5deg);
}

.task-column.drop-target {
    background: #e3f2fd;
    border: 2px dashed var(--primary-color);
}

/* Indicadores de estado */
.status-indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 8px;
}

.status-indicator.pending {
    background: var(--warning-color);
}

.status-indicator.completed {
    background: var(--success-color);
}

.status-indicator.high-priority {
    background: var(--danger-color);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { opacity: 1; }
    50% { opacity: 0.5; }
    100% { opacity: 1; }
}

/* Mejoras de accesibilidad */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Focus visible para navegación por teclado */
.task-item:focus-visible {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* Mejoras para dark mode (implementación futura) */
@media (prefers-color-scheme: dark) {
    /* Estilos para modo oscuro */
}

/* ===== Fase 1: Overrides de diseño minimalista ===== */
:root{
    /* Paleta clara con azules y naranjas suaves */
    --bg:#f7fbff; --surface:#ffffff; --surface-muted:#f1f5f9;
    --text:#0f172a; --text-muted:#475569; --border:#e2e8f0;
    --primary:#3b82f6; --success:#16a34a; --warning:#f59e0b; --danger:#ef4444; --info:#0ea5e9;
    /* Mapear a variables ya usadas en estilos previos */
    --primary-color: var(--primary);
    --success-color: var(--success);
    --warning-color: var(--warning);
    --danger-color: var(--danger);
    --info-color: var(--info);
    --radius:8px; --shadow-xs:0 1px 2px rgba(0,0,0,.06); --shadow-sm:0 2px 8px rgba(0,0,0,.08);
}

body{background:var(--bg); color:var(--text);} 

/* Navbar clara sin gradientes (manteniendo clases Bootstrap existentes) */
.navbar{background:var(--surface)!important; border-bottom:1px solid var(--border);} 
.navbar .navbar-brand{color:var(--text)!important; font-weight:600;}
.navbar .navbar-brand i{color:var(--primary);} 
.navbar-dark .navbar-nav .nav-link, 
.navbar-dark .navbar-text, 
.navbar-dark .navbar-brand{ color:var(--text)!important; }
.navbar .btn-outline-light{ 
    color:var(--text)!important; 
    border-color:var(--border)!important; 
    background:transparent!important; 
}
.navbar .btn-outline-light:hover{ 
    background:var(--surface-muted)!important; 
    border-color:#cbd5e1!important; 
}

/* Contenedor y columnas: eliminar degradados y sombras pesadas */
#columnsContainer{background:transparent; gap:16px; padding:16px; border-radius:var(--radius);} 
.task-column{background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow-xs);}
.column-header{border-bottom:1px solid var(--border);} 
.badge.bg-secondary{background:var(--surface-muted); color:var(--text-muted);} 

/* Tarjetas de tarea: planas y limpias */
.task-item{border:1px solid var(--border); box-shadow:none; transition:background .15s, border-color .15s, box-shadow .15s, transform .15s;}
.task-item:hover{background:#f8fafc; transform:none; box-shadow:var(--shadow-sm); border-color:#dbe3ea;}
.task-item.selected{background:#eef2ff; border-color:#c7d2fe; box-shadow:0 0 0 2px rgba(37,99,235,.15);} 
.task-item.completed{opacity:.85; background:#f6f7f9;} 
.task-title{color:var(--text);} 
.task-description{color:var(--text-muted);} 

/* Indicador de prioridad como barra inferior sutil */
.task-item.priority-high::before,
.task-item.priority-medium::before,
.task-item.priority-low::before{
    top:auto; bottom:-1px; left:0; height:2px; width:100%;
}

/* Botones en acciones más sutiles */
.task-actions .btn{border-color:var(--border); color:var(--text-muted); background:transparent;}
.task-actions .btn:hover{border-color:#cbd5e1; color:var(--text);} 
.task-actions .btn-outline-info{border-color:var(--border); color:var(--text-muted);} 
.task-actions .btn-outline-info:hover{background:var(--surface-muted); border-color:#cbd5e1; color:var(--text);} 

/* Acento naranja en botón informativo (p.ej. Recargar) */
.btn-info{background-color:#fb923c; border-color:#fb923c; color:#0f172a;}
.btn-info:hover{background-color:#f97316; border-color:#f97316; color:#0b1220;}

/* Dropdowns/Toasts coherentes */
.dropdown-menu{border:1px solid var(--border); box-shadow:var(--shadow-sm);} 
.toast{box-shadow:var(--shadow-sm); border:1px solid var(--border);} 

/* Modales e inputs */
.modal-header{background:var(--surface); color:var(--text); border-bottom:1px solid var(--border);} 
.modal-content{box-shadow:var(--shadow-sm);} 
.form-control:focus,.form-select:focus{border-color:var(--primary); box-shadow:0 0 0 3px rgba(37,99,235,.15);} 

/* Anillo de foco visible para accesibilidad */
*:focus-visible{outline:2px solid rgba(37,99,235,.35); outline-offset:2px;} 

/* Tema oscuro opcional: activar con html[data-theme="dark"] */
html[data-theme="dark"]{
    --bg:#0b1220; --surface:#0f172a; --surface-muted:#0b1220; 
    --text:#e2e8f0; --text-muted:#94a3b8; --border:#1f2937; 
    --primary:#60a5fa; --success:#22c55e; --warning:#fbbf24; --danger:#f87171; --info:#38bdf8;
    --primary-color: var(--primary);
    --success-color: var(--success);
    --warning-color: var(--warning);
    --danger-color: var(--danger);
    --info-color: var(--info);
}
html[data-theme="dark"] .navbar{border-color:var(--border);} 
html[data-theme="dark"] .task-item:hover{background:#111827; border-color:#1f2937;} 
html[data-theme="dark"] .dropdown-menu{background:var(--surface);} 

    /* Acentos por nivel de columna: más marcada la principal y más claro en profundidad */
    .task-column{position:relative;}
    .task-column::before{
        content:""; position:absolute; left:-1px; top:0; bottom:0; width:4px; border-radius:4px;
        background:var(--border);
    }
    .task-column .column-header{background:transparent; border-radius:6px; padding:8px 10px;}

    /* Nivel 1 (principal): azul destacado */
    .task-column[data-level="1"]{border-color:#bfdbfe;}
    .task-column[data-level="1"]::before{background:#2563eb;}
    .task-column[data-level="1"] .column-header{background:#eef5ff; border-color:#cfe3ff;}
    .task-column[data-level="1"] .column-header h6{color:#0f172a;}

    /* Nivel 2: más claro */
    .task-column[data-level="2"]{border-color:#dbeafe;}
    .task-column[data-level="2"]::before{background:#60a5fa;}
    .task-column[data-level="2"] .column-header{background:#f3f8ff; border-color:#e2efff;}

    /* Nivel 3: aún más claro */
    .task-column[data-level="3"]{border-color:#e5efff;}
    .task-column[data-level="3"]::before{background:#93c5fd;}
    .task-column[data-level="3"] .column-header{background:#f7faff; border-color:#ecf3ff;}

    /* Nivel 4 */
    .task-column[data-level="4"]{border-color:#ecf3ff;}
    .task-column[data-level="4"]::before{background:#bfdbfe;}
    .task-column[data-level="4"] .column-header{background:#fafcff; border-color:#f0f6ff;}

    /* Nivel 5 */
    .task-column[data-level="5"]{border-color:#f0f6ff;}
    .task-column[data-level="5"]::before{background:#dbeafe;}
    .task-column[data-level="5"] .column-header{background:#ffffff; border-color:#f3f7ff;}

/* Botón icon-only para toolbar */
.btn-icon{padding:8px 10px; width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px;}
.btn-icon i{font-size:16px;}

/* Chips (Gmail, contadores) */
.chip{display:inline-flex; align-items:center; gap:6px; padding:4px 8px; border-radius:999px; font-size:.75rem; line-height:1; border:1px solid var(--border); color:var(--text-muted); background:var(--surface);} 
.chip i{font-size:.8rem;}
.chip-gmail{border-color:#fed7aa; background:#fff7ed; color:#9a3412;} /* naranja claro con borde sutil */

/* Chip contador por nivel */
.chip-count{border-color:#dbeafe; background:#eff6ff; color:#1e3a8a;}
.task-column[data-level="1"] .chip-count{border-color:#bfdbfe; background:#e0f2fe; color:#0c4a6e;}
.task-column[data-level="2"] .chip-count{border-color:#dbeafe; background:#eff6ff; color:#1e3a8a;}
.task-column[data-level="3"] .chip-count{border-color:#e5efff; background:#f1f5ff; color:#1d4ed8;}
.task-column[data-level="4"] .chip-count{border-color:#ecf3ff; background:#f5f8ff; color:#2563eb;}
.task-column[data-level="5"] .chip-count{border-color:#f0f6ff; background:#f8fbff; color:#3b82f6;}

/* Dropdown kebab en cabecera de tarea */
.task-header .dropdown .btn{border-color:var(--border); color:var(--text-muted);}
.task-header .dropdown .btn:hover{background:var(--surface-muted); color:var(--text);} 
.task-header .dropdown-menu{min-width: 200px;}

