:root {
            --primary: #2c5aa0;
            --secondary: #6c757d;
            --success: #198754;
            --warning: #ffc107;
            --danger: #dc3545;
            --light: #f8f9fa;
            --dark: #212529;
        }
        
        body {
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
            min-height: 100vh;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }
        
        .main-container {
            background: white;
            border-radius: 15px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            overflow: hidden;
            margin-top: 30px;
            margin-bottom: 30px;
        }
        
        .table-header {
            background: #2C3E50;
            color: white;
            padding: 25px 30px;
            border-bottom: none;
        }
        
        .table-title {
            font-weight: 600;
            font-size: 1.8rem;
            margin: 0;
        }
        
        .table-container {
            overflow-x: auto;
        }
        
        .table {
            margin-bottom: 0;
        }
        
        .table th {
            background-color: #e9ecef;
            border-bottom: 2px solid #dee2e6;
            font-weight: 600;
            color: var(--dark);
            padding: 15px 12px;
            vertical-align: middle;
        }
        
        .table td {
            padding: 12px;
            vertical-align: middle;
            border-color: #e9ecef;
        }
        
        .table tbody tr {
            transition: all 0.2s ease;
        }
        
        .table tbody tr:hover {
            background-color: rgba(44, 90, 160, 0.05);
            transform: translateY(-1px);
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
        
        .days-cell {
            font-weight: 700;
            text-align: center;
            border-radius: 8px;
            padding: 8px 5px;
        }
        
        .days-danger {
            background-color: rgba(220, 53, 69, 0.15);
            color: var(--danger);
        }
        
        .days-warning {
            background-color: rgba(255, 193, 7, 0.15);
            color: #856404;
        }
        
        .days-success {
            background-color: rgba(25, 135, 84, 0.15);
            color: var(--success);
        }
        
        .editable-cell {
            background-color: #fff9e6;
            border-radius: 5px;
            cursor: text;
            transition: all 0.2s;
        }
        
        .editable-cell:focus {
            background-color: #fff3cd;
            outline: 2px solid var(--warning);
            box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.25);
        }
        
        .badge-online {
            background: linear-gradient(135deg, var(--success) 0%, #0f5132 100%);
        }
        
        .badge-physical {
            background: linear-gradient(135deg, var(--primary) 0%, #1e3a8a 100%);
        }
        
        .file-badge {
            background-color: #e9ecef;
            color: var(--dark);
            padding: 5px 10px;
            border-radius: 20px;
            font-size: 0.8rem;
            display: inline-block;
            margin: 2px;
            transition: all 0.2s;
        }
        
        .file-badge:hover {
            background-color: var(--primary);
            color: white;
            text-decoration: none;
            transform: translateY(-2px);
        }
        
        .image-thumb {
            width: 50px;
            height: 50px;
            object-fit: cover;
            border-radius: 8px;
            border: 2px solid #e9ecef;
            transition: all 0.3s;
            margin: 2px;
        }
        
        .image-thumb:hover {
            transform: scale(1.8);
            z-index: 10;
            position: relative;
            border-color: var(--primary);
            box-shadow: 0 5px 15px rgba(0,0,0,0.2);
        }
        
        .empty-data {
            color: #6c757d;
            font-style: italic;
        }
        
        .stats-card {
            background: white;
            border-radius: 10px;
            padding: 15px;
            box-shadow: 0 3px 10px rgba(0,0,0,0.08);
            border-left: 4px solid var(--primary);
        }
        
        .action-btn {
            border-radius: 50px;
            padding: 8px 20px;
            font-weight: 500;
            transition: all 0.3s;
        }
        
        .action-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0,0,0,0.1);
        }
        
        /* Custom scrollbar */
        ::-webkit-scrollbar {
            width: 8px;
            height: 8px;
        }
        
        ::-webkit-scrollbar-track {
            background: #f1f1f1;
            border-radius: 10px;
        }
        
        ::-webkit-scrollbar-thumb {
            background: var(--primary);
            border-radius: 10px;
        }
        
        ::-webkit-scrollbar-thumb:hover {
            background: #1e3a8a;
        }
        
        /* Responsive adjustments */
        @media (max-width: 768px) {
            .table-header {
                padding: 15px 20px;
            }
            
            .table-title {
                font-size: 1.4rem;
            }
        }



    
        .pill-navbar {
            background: #2C3E50;
            border-radius: 50px;
            padding: 10px 20px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
            margin-bottom: 30px;
        }
        
        .nav-pills-custom .nav-link {
            color: rgba(255, 255, 255, 0.85);
            border-radius: 25px;
            margin: 0 5px;
            padding: 8px 20px;
            font-weight: 500;
            transition: all 0.3s ease;
        }
        
        .nav-pills-custom .nav-link:hover {
            color: white;
            background-color: rgba(255, 255, 255, 0.15);
        }
        
        .nav-pills-custom .nav-link.active {
            background-color: white;
            color: #2575fc;
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
        }
        
        .brand-section {
            display: flex;
            align-items: center;
            color: white;
        }
        
        .brand-icon {
            font-size: 1.8rem;
            margin-right: 10px;
        }
        
        .brand-text h1 {
            font-size: 1.4rem;
            margin: 0;
            font-weight: 600;
        }
        
        .brand-text p {
            font-size: 0.85rem;
            margin: 0;
            opacity: 0.9;
        }
        
        .user-section {
            display: flex;
            align-items: center;
            color: white;
        }
        
        .user-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background-color: rgba(255, 255, 255, 0.2);
            display: flex;
            align-items: center;
            justify-content: center;
            margin-left: 15px;
        }
        
        @media (max-width: 992px) {
            .pill-navbar {
                border-radius: 20px;
            }
            
            .nav-pills-custom {
                margin: 10px 0;
            }
            
            .nav-pills-custom .nav-link {
                margin: 5px 0;
                text-align: center;
            }
        }



        /* Contenedor de galería de archivos */
.file-grid {
    display: flex;
    flex-wrap: wrap;           /* permite saltar a la siguiente línea si hay más de 4 */
    gap: 6px;                  /* espacio entre ítems */
    justify-content: center;   /* centrado horizontal */
    align-items: center;
    max-width: 300px;          /* evita que se deforme la tabla */
    margin: auto;
}

/* Miniaturas de imagen */
.image-thumb {
    width: 70px;
    height: 70px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #ddd;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    transition: transform 0.25s ease;
}

.image-thumb:hover {
    transform: scale(1.07);
}

/* PDFs (ya reducido antes) */
.pdf-card {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 65px;
    height: 65px;
    border-radius: 8px;
    background: #fdfdfd;
    border: 1px solid #e5e5e5;
    text-decoration: none;
    transition: all 0.25s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    color: #dc3545;
}

.pdf-card:hover {
    transform: scale(1.07);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    background: #fff5f5;
}

.pdf-card .pdf-icon {
    font-size: 22px;
    margin-bottom: 2px;
}

.pdf-card span {
    font-size: 10px;
    color: #444;
    font-weight: 500;
}
