/* Extraído de layouts/app.blade.php (rediseño 2026-11). No editar a mano sin revisar gc-theme.css. */
:root {
    --sidebar-width: 240px;
    --topbar-height: 56px;
}

html {
    font-size: 14px;
}

body {
    background-color: #f4f6f9;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* =========================================================================
   ESTÁNDAR GLOBAL DE ALINEACIÓN VERTICAL Y ESPACIADO (BOTONES, BADGES, TABS)
   Centrado matemático exacto entre icono y texto, y respecto al botón contenedor.
   ========================================================================= */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}

/* Iconos como flex items perfectamente alineados al centro */
.btn > i,
.btn > svg,
.btn > .bi,
.badge > i,
.badge > svg,
.badge > .bi,
.dropdown-item > i,
.dropdown-item > svg,
.dropdown-item > .bi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: 0 !important;
    line-height: 1 !important;
    flex-shrink: 0;
}

/* Eliminar absolutamente el vertical-align: -0.125em nativo de Bootstrap Icons */
.btn i.bi::before,
.btn .bi::before,
.badge i.bi::before,
.badge .bi::before,
.dropdown-item i.bi::before,
.dropdown-item .bi::before,
.nav-link i.bi::before,
.nav-link .bi::before,
.nav-group-header i.bi::before,
.sub-group-toggle i.bi::before {
    vertical-align: 0 !important;
    line-height: 1 !important;
}

/* Espacio estándar entre icono y texto en botones y badges.
   Como son inline-flex, el espacio en blanco del HTML se pierde y :only-child no ve el texto
   suelto ("<i></i> Guardar" cuenta como icono único), así que los márgenes por icono no sirven:
   el espacio lo pone el gap del contenedor, igual para todos, y se anulan los márgenes propios
   del icono (me-1, me-2...) para que no se sumen. Los botones con gap-* propio lo conservan. */
.btn { column-gap: 0.45rem; }
.badge { column-gap: 0.35rem; }
.btn > i, .btn > svg, .btn > .bi, .btn > .spinner-border, .btn > .spinner-grow,
.badge > i, .badge > svg, .badge > .bi {
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.btn.dropdown-toggle::after { margin-left: 0; }

/* Menús desplegables (no son flex): margen a la derecha del icono */
.dropdown-item > i:first-child:not(:only-child),
.dropdown-item > svg:first-child:not(:only-child),
.dropdown-item > .bi:first-child:not(:only-child) {
    margin-right: 0.45rem;
}

.dropdown-item > i:last-child:not(:first-child),
.dropdown-item > svg:last-child:not(:first-child),
.dropdown-item > .bi:last-child:not(:first-child) {
    margin-left: 0.45rem;
}

/* Badges: centrado flex (el espacio icono-texto lo pone el column-gap de arriba) */
.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}

/* Botones donde el icono está explícitamente posicionado a la derecha con margen */
.btn i.ms-1, .btn i.ms-1-5, .btn i.ms-2, .btn i.ms-3, .btn i.ms-4,
.btn svg.ms-1, .btn svg.ms-1-5, .btn svg.ms-2, .btn svg.ms-3 {
    margin-right: 0 !important;
}

/* Botones de solo icono (sin texto), circulares o botones de acción */
.btn-icon i, .btn-icon svg,
.btn.rounded-circle i, .btn.rounded-circle svg,
.btn-circle i, .btn-circle svg,
.btn-action-icon i, .btn-action-icon svg,
.btn i:last-child:first-child,
.btn svg:last-child:first-child,
.btn i:only-child,
.btn svg:only-child,
.btn i.me-0, .btn svg.me-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
    vertical-align: 0 !important;
}

.badge-icon i, .badge.rounded-circle i, .badge i.me-0,
.badge i:only-child, .badge i:last-child:first-child {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

.me-1\.5 {
    margin-right: 0.375rem !important;
}
.ms-1\.5 {
    margin-left: 0.375rem !important;
}

.pin-mask-control {
    -webkit-text-security: disc !important;
    -moz-text-security: disc !important;
    text-security: disc !important;
    letter-spacing: 0.35em !important;
}

.navbar {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    background: white;
    z-index: 1030;
    height: var(--topbar-height);
}

.navbar-brand {
    font-size: 1.1rem;
    letter-spacing: -0.5px;
    display: inline-flex;
    align-items: center;
}

.navbar-brand img {
    height: 30px !important;
    max-height: 30px !important;
    width: auto !important;
    max-width: 160px !important;
    object-fit: contain !important;
    vertical-align: middle;
}

.sidebar {
    width: var(--sidebar-width);
    background: #fff;
    border-right: 1px solid #dee2e6;
    position: fixed;
    top: var(--topbar-height);
    bottom: 0;
    left: 0;
    z-index: 1045;
    overflow-y: auto;
    transition: transform 0.3s ease-in-out;
}

.nav-link {
    color: #495057;
    padding: 0.4rem 1rem;
    display: flex;
    align-items: center;
    font-weight: 500;
    transition: all 0.2s;
    border-radius: 0.25rem;
    margin: 0 0.5rem;
}

.nav-link:hover {
    color: #0d6efd;
    background-color: #f8f9fa;
}

.nav-link.active {
    color: #0d6efd;
    background-color: #e7f1ff;
    font-weight: 600;
}

.nav-link i {
    font-size: 1.1rem;
    margin-right: 0.75rem;
    color: #6c757d;
}

.nav-link.active i {
    color: #0d6efd;
}

.nav-group-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #adb5bd;
    margin: 0.75rem 1rem 0.25rem;
    font-weight: 700;
}

.collapse-inner {
    background: #f8fafc;
    border-radius: 0.5rem;
    margin: 0.2rem 0.5rem 0.4rem 0.5rem;
    padding: 0.35rem 0;
    border: 1px solid #e2e8f0;
}

.collapse-inner > .nav-link {
    font-size: 0.84rem;
    padding: 0.38rem 0.75rem 0.38rem 1.25rem;
    margin: 0.1rem 0.35rem;
    border-radius: 0.35rem;
    color: #475569;
    font-weight: 500;
}

.collapse-inner > .nav-link:hover {
    color: #0d6efd;
    background-color: #f1f5f9;
}

.collapse-inner > .nav-link.active {
    background-color: #e7f1ff;
    color: #0d6efd;
    font-weight: 600;
}

.main-content {
    margin-left: var(--sidebar-width);
    padding: 2rem;
    margin-top: var(--topbar-height);
    min-height: calc(100vh - var(--topbar-height));
}

.card {
    border: none;
    border-radius: 0.75rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}


/* =========================================================
   ESTANDARIZACIÓN DE BOTONES CIRCULARES DE ACCIÓN, REPORTES Y AVATARES
   ========================================================= */
.btn.rounded-circle,
.btn-icon,
.btn-circle {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    flex-shrink: 0 !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

/* Botones de acción en cabeceras de reportes (PDF, Excel, CSV) */
.btn-action-icon {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    flex-shrink: 0 !important;
    aspect-ratio: 1 / 1 !important;
    text-align: center !important;
    box-sizing: border-box !important;
    vertical-align: middle !important;
    line-height: 1 !important;
    text-indent: 0 !important;
    position: relative !important;
}
.btn-action-icon.rounded-square,
.btn-action-icon-square {
    border-radius: 8px !important;
}

/* Centrado matemático de iconos dentro de botones de acción y circulares */
.btn.rounded-circle i,
.btn-icon i,
.btn-circle i,
.btn-action-icon i,
.btn.rounded-circle svg,
.btn-icon svg,
.btn-circle svg,
.btn-action-icon svg {
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1em !important;
    height: 1em !important;
    line-height: 1 !important;
    vertical-align: 0 !important;
    text-align: center !important;
}
.btn-action-icon i {
    font-size: 1.2rem !important;
}
.btn.rounded-circle i,
.btn-icon i,
.btn-circle i {
    font-size: 0.875rem !important;
}

/* Eliminar el vertical-align: -0.125em nativo de Bootstrap Icons en su pseudo-elemento ::before */
.btn.rounded-circle i::before,
.btn-icon i::before,
.btn-circle i::before,
.btn-action-icon i::before {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    vertical-align: 0 !important;
    display: inline-block !important;
}
.btn-xs.rounded-circle, .btn-icon.btn-xs {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
}
.btn-lg.rounded-circle, .btn-icon.btn-lg {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
}

/* Avatares y círculos de iniciales (prevenir deformación / ovals por flexbox) */
.avatar-initials,
.avatar-circle,
.d-flex > .rounded-circle,
table td .rounded-circle {
    flex-shrink: 0 !important;
    aspect-ratio: 1 / 1 !important;
}
.avatar-initials {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 700;
    line-height: 1;
    user-select: none;
}

/* Fractional Spacing Utilities Support */
.gap-1\.5, .gap-1-5 { gap: 0.375rem !important; }
.gap-2\.5, .gap-2-5 { gap: 0.625rem !important; }
.me-1\.5, .me-1-5 { margin-right: 0.375rem !important; }
.ms-1\.5, .ms-1-5 { margin-left: 0.375rem !important; }
.px-3\.5, .px-3-5 { padding-left: 0.875rem !important; padding-right: 0.875rem !important; }
.py-1\.5, .py-1-5 { padding-top: 0.375rem !important; padding-bottom: 0.375rem !important; }
.py-2\.5, .py-2-5 { padding-top: 0.625rem !important; padding-bottom: 0.625rem !important; }
.py-3\.5, .py-3-5 { padding-top: 0.875rem !important; padding-bottom: 0.875rem !important; }
.p-1\.5, .p-1-5 { padding: 0.375rem !important; }
.p-2\.5, .p-2-5 { padding: 0.625rem !important; }
.p-3\.5, .p-3-5 { padding: 0.875rem !important; }

.card-header {
    background-color: #fff;
    border-bottom: 1px solid #f0f0f0;
    font-weight: 600;
}

/* --- UNIFICACIÓN DE ALTURA EXACTA (38px) PARA TODOS LOS CAMPOS DE FILTRO --- */
.select2-container--bootstrap-5 .select2-selection--multiple,
.select2-container--bootstrap-5 .select2-selection--single {
    min-height: 38px !important;
    max-height: 38px !important;
    height: 38px !important;
    padding: 0 10px !important;
    display: flex !important;
    align-items: center !important;
    border-color: #dee2e6 !important;
    border-radius: 0.375rem !important;
    overflow: hidden !important;
}

.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
    line-height: 36px !important;
    padding-left: 0 !important;
}

/* Contenedor interno flexible */
.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    width: 100%;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.select2-container--bootstrap-5 .select2-search--inline {
    flex: 1;
    width: 100% !important;
    text-align: left !important;
}

.select2-container--bootstrap-5 .select2-search__field {
    margin-top: 0 !important;
    height: 28px !important;
    line-height: 28px !important;
    font-family: inherit;
    text-align: left !important;
    width: 100% !important;
}

.select2-container--bootstrap-5 .select2-search__field::placeholder {
    color: #6c757d !important;
    opacity: 0.8 !important;
    text-align: left !important;
}

/* Select2 Small sizing - Unificar Single y Multiple / Tags */
.select2--small+.select2-container--bootstrap-5 .select2-selection--single,
.select2--small+.select2-container--bootstrap-5 .select2-selection--multiple,
.select2-container--bootstrap-5.select2--small .select2-selection--single,
.select2-container--bootstrap-5.select2--small .select2-selection--multiple {
    min-height: 31px !important;
    max-height: 31px !important;
    height: 31px !important;
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
}

.select2--small+.select2-container--bootstrap-5 .select2-selection__rendered,
.select2-container--bootstrap-5.select2--small .select2-selection__rendered {
    line-height: 29px !important;
    font-size: 0.875rem !important;
}

.select2--small+.select2-container--bootstrap-5 .select2-selection__arrow,
.select2-container--bootstrap-5.select2--small .select2-selection__arrow {
    height: 29px !important;
}

/* Select2 Disabled state - Exacto a Bootstrap 5 form-control:disabled / form-select:disabled */
.select2-container--bootstrap-5.select2-container--disabled .select2-selection,
.select2-container--bootstrap-5.select2-container--disabled .select2-selection--single,
.select2-container--bootstrap-5.select2-container--disabled .select2-selection--multiple {
    background-color: var(--bs-secondary-bg, #e9ecef) !important;
    border-color: var(--bs-border-color, #dee2e6) !important;
    color: var(--bs-secondary-color, #6c757d) !important;
    opacity: 1 !important;
    cursor: not-allowed !important;
}

.select2-container--bootstrap-5.select2-container--disabled .select2-selection__rendered,
.select2-container--bootstrap-5.select2-container--disabled .select2-selection__placeholder {
    color: var(--bs-secondary-color, #6c757d) !important;
}

.select2-container--bootstrap-5.select2-container--disabled .select2-selection__clear {
    display: none !important;
}

/* Validaciones */
.was-validated .form-control:valid,
.form-control.is-valid,
.was-validated .form-select:valid,
.form-select.is-valid {
    border-color: #dee2e6 !important;
    padding-right: 0.75rem !important;
    background-image: none !important;
}

.was-validated .form-control:invalid,
.form-control.is-invalid,
.was-validated .form-select:invalid,
.form-select.is-invalid {
    border-color: #dc3545 !important;
    padding-right: 2.25rem !important;
}

@media (max-width: 991.98px) {
    .sidebar,
    .offcanvas-lg#sidebarMenu {
        transform: translateX(-100%);
        box-shadow: none;
        top: 0;
        padding-top: var(--topbar-height);
        z-index: 1065 !important;
        width: 280px !important;
        max-width: 85vw !important;
    }

    .sidebar.show,
    .offcanvas-lg#sidebarMenu.show {
        transform: translateX(0);
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.35) !important;
    }

    .offcanvas-backdrop {
        z-index: 1060 !important;
    }

    .main-content {
        margin-left: 0;
        padding: 1.25rem 1rem;
    }

    /* Desactivar sticky-top masivos en pantallas reducidas */
    .sticky-top-mobile-static,
    .sticky-top-sm-static {
        position: static !important;
        top: auto !important;
    }
}

@media (max-width: 767.98px) {
    .main-content {
        padding: 0.75rem 0.5rem !important;
    }

    .main-content > .container-fluid,
    .main-content .container-fluid.px-4,
    .main-content .container-fluid.px-3 {
        padding-left: 0.25rem !important;
        padding-right: 0.25rem !important;
        padding-top: 0.5rem !important;
    }

    .navbar-brand {
        font-size: 0.98rem !important;
    }
}

/* --- UTILIDAD GLOBAL: TABLAS CON PRIMERA COLUMNA FIJA EN MÓVIL --- */
@media (max-width: 991.98px) {
    .table-sticky-start th:first-child,
    .table-sticky-start td:first-child {
        position: sticky !important;
        left: 0 !important;
        background-color: #fff !important;
        z-index: 2 !important;
        box-shadow: 2px 0 5px rgba(0, 0, 0, 0.06) !important;
    }
    .table-sticky-start thead th:first-child {
        z-index: 3 !important;
        background-color: #f8fafc !important;
    }
    .table-hover tbody tr:hover td:first-child {
        background-color: #f8f9fa !important;
    }
}

/* Indicador sutil de scroll horizontal en tablas */
.table-responsive {
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

/* Estilo para barra de atajos horizontal con scroll táctil suave */
.horizontal-pills-scroll {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 0.35rem;
    padding-bottom: 0.25rem;
}
.horizontal-pills-scroll::-webkit-scrollbar {
    display: none;
}

/* --- ESTILOS RESPONSIVOS PARA PAGINACIÓN GLOBAL --- */
.pagination-wrapper {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

@media (max-width: 767.98px) {
    .pagination-wrapper {
        display: flex;
        justify-content: center;
        width: 100%;
    }
    .pagination {
        margin-bottom: 0;
        gap: 2px;
    }
    .pagination .page-item .page-link {
        padding: 0.30rem 0.55rem;
        font-size: 0.8rem;
        min-width: 32px;
        text-align: center;
        border-radius: 0.35rem;
    }
    .card-footer.d-flex {
        flex-direction: column;
        align-items: center !important;
        text-align: center;
        gap: 0.6rem !important;
    }
    .card-footer.d-flex > div {
        width: 100%;
        display: flex;
        justify-content: center;
    }
}

/* --- PREMIUM WOW EFFECTS (GLOBAL) --- */
.card {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card:hover {
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08) !important;
}

/* Blindaje de apilamiento: Evitar solapamiento de menús desplegables entre cards */
.card:has(.dropdown-menu.show) {
    z-index: 35 !important;
    position: relative;
}
.modal {
    z-index: 1055 !important;
}
.modal-backdrop {
    z-index: 1050 !important;
}


.btn-primary {
    background: linear-gradient(135deg, #0d6efd 0%, #0043a8 100%);
    border: none;
    box-shadow: 0 4px 6px rgba(13, 110, 253, 0.2);
    transition: all 0.3s ease;
}

.btn-primary:hover {
    box-shadow: 0 6px 12px rgba(13, 110, 253, 0.3);
    transform: translateY(-1px);
}

.badge {
    font-weight: 600;
    letter-spacing: 0.3px;
}

.nav-link.active {
    box-shadow: 0 2px 5px rgba(13, 110, 253, 0.1);
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.main-content {
    animation: fadeIn 0.4s ease-out;
}

/* --- ESTILOS PARA CAMPOS NO EDITABLES --- */
.form-control[readonly],
.form-control:disabled,
.form-select:disabled,
.bg-light[readonly] {
    background-color: #f8f9fa !important;
    border-color: #e2e6ea !important;
    color: #6c757d !important;
    cursor: not-allowed;
    border-style: dashed;
    /* Un toque visual para indicar que es estático */
}

.form-label.readonly-label::after {
    content: " \F4BA";
    /* Icono de lock en Bootstrap Icons */
    font-family: "bootstrap-icons";
    font-size: 0.8rem;
    color: #adb5bd;
    margin-left: 4px;
}

fieldset:disabled label {
    color: #adb5bd !important;
}

fieldset:disabled .form-control,
fieldset:disabled .form-select {
    background-color: #fcfcfc !important;
    opacity: 0.8;
    border-style: solid;
    border-color: #eee;
}

/* Transición suave de colapso sin saltos de altura */
.sidebar .collapsing {
    transition: height 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important;
    overflow: hidden !important;
}

.sidebar .collapse.show {
    overflow: hidden !important;
}

/* --- ESTILOS DE ACORDEÓN DE DEPARTAMENTO (NIVEL 1) --- */
.nav-group-header {
    color: #495057;
    padding: 0.55rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 600;
    font-size: 0.875rem;
    transition: all 0.2s ease;
    border-radius: 0.35rem;
    margin: 0.15rem 0.5rem;
    text-decoration: none;
}

.nav-group-header:hover {
    color: #0d6efd;
    background-color: #f8f9fa;
}

.nav-group-header.active {
    color: #0d6efd;
    font-weight: 600;
}

.nav-group-header i.bi-chevron-down {
    transition: transform 0.22s ease;
    font-size: 0.75rem;
    color: #94a3b8;
}

.nav-group-header.active i.bi-chevron-down {
    color: #0d6efd;
}

.nav-group-header[aria-expanded="true"] i.bi-chevron-down {
    transform: rotate(180deg);
}

.nav-group-header i:first-child,
.nav-group-header span i:first-child {
    font-size: 1.1rem;
    margin-right: 0.75rem;
    color: #6c757d;
}

.nav-group-header.active i:first-child,
.nav-group-header.active span i:first-child {
    color: #0d6efd;
}

/* --- NIVEL 2: Contenedor y Sub-menús tipo Carpeta Árbol --- */
.sub-group-toggle {
    color: #475569;
    font-size: 0.825rem;
    font-weight: 600;
    padding: 0.4rem 0.75rem 0.4rem 1.15rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-decoration: none;
    transition: all 0.18s ease;
    margin: 0 0.35rem;
    border-radius: 0.35rem;
}

.sub-group-toggle:hover {
    color: #0d6efd;
    background-color: #f1f5f9;
}

.sub-group-toggle[aria-expanded="true"] {
    color: #0d6efd;
}

.sub-group-toggle i.bi-chevron-down {
    font-size: 0.65rem;
    color: #94a3b8;
    transition: transform 0.22s ease;
}

.sub-group-toggle[aria-expanded="true"] i.bi-chevron-down {
    transform: rotate(180deg);
    color: #0d6efd;
}

/* --- NIVEL 3: Rama del Árbol con Guía Continua (Sin Saltos de Margen) --- */
.sub-collapse-inner {
    padding: 0.15rem 0 0.25rem 0.45rem;
    border-left: 2px solid #cbd5e1;
    margin-left: 1.85rem;
    margin-right: 0.35rem;
    margin-top: 0;
    margin-bottom: 0;
    overflow: hidden;
}

.sub-collapse-inner .nav-link {
    font-size: 0.815rem;
    padding: 0.35rem 0.65rem !important;
    margin: 0 !important;
    border-radius: 0.3rem;
    color: #475569;
    font-weight: 500;
}

.sub-collapse-inner .nav-link:hover {
    color: #0d6efd;
    background-color: #f1f5f9;
}

.sub-collapse-inner .nav-link.active {
    background-color: #e7f1ff;
    color: #0d6efd;
    font-weight: 600;
}

/* Botones de selección de días en programación flexible */
.btn-schedule-pill {
    cursor: pointer;
    user-select: none;
    transition: all 0.15s ease-in-out;
}
.btn-check:checked + .btn-schedule-pill,
.btn-check:checked + .btn-schedule-pill:hover,
.btn-check:checked + .btn-schedule-pill:focus,
.btn-check:checked + .btn-schedule-pill:active {
    background-color: #0d6efd !important;
    border-color: #0d6efd !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 0.15rem rgba(13, 110, 253, 0.25);
}
