 html {
    font-size: 14px;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 60px;
}

.boton {
    text-shadow: 0px 0px rgba(0, 0, 0, 0);
    text-align: center;
    text-decoration: none;
    font-family: 'Helvetica Neue', Helvetica, sans-serif;
    display: inline-block;
    color: #FFF;
    background: #7F8C8D;
    padding: 7px 20px;
    white-space: nowrap;
    -webkit-border-radius: 5px;
    -moz-border-radius: 0px;
    border-radius: 100px;
    margin: 10px 5px;
    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
    border-color: rgba(255, 255, 255, 0);
}


.azul {
    background: #038eeb;
    box-shadow: 0px 0px 0px 0px #2980B9;
}

    .azul:hover {
        background: #43a5e6;
    }

    .azul:active {
        box-shadow: 0px 2px 0px 0px #2980B9;
    }

.rojo {
    background: #E74C3C;
    box-shadow: 0px px 0px 0px #C0392B;
}

    .rojo:hover {
        background: #ff5242;
    }

    .rojo:active {
        box-shadow: 0px 2px 0px 0px #C0392B;
    }

.btn-Administracion {
    border: none;
    color: black;
    text-align: center;
    text-decoration: none;
}

    .btn-Administracion:hover {
        color: dimgrey;
    }


.nav1 {
    margin: 0 auto;
    background-color: #235AA6;
    color: white;
}

    .nav1 button {
        color: white;
        height: 58px;
        line-height: 58px;
        padding: 10px 20px;
    }

    .nav1 li {
        list-style: none;
        display: inline;
        padding: 2px 0;
    }

.nav1 li a {
    color: white;
    height: 60px;
    line-height: 60px;
    padding: 10px 20px;
}

.nav1 li:hover {
    border-bottom: 3px solid #BA3C35;
}

#nav-item {
    color: white;
}


.divider:after,
.divider:before {
    content: "";
    flex: 1;
    height: 1px;
    background: #eee;
}

.h-custom {
    height: calc(100% - 73px);
}



@media (max-width: 450px) {
    .h-custom {
        height: 100%;
    }
}



.sidebar {
    background-color: #f8f9fa !important; 
}

.nav-link {
    position: relative;
    transition: all 0.3s ease;
}

    .nav-link[style*="@Colores.colorSecundario"]:not(.fw-bold)::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 15px;
        right: 15px;
        height: 2px;
        background-color: currentColor;
        transform: scaleX(1);
        transition: transform 0.3s ease;
    }

    .nav-link:hover {
        filter: brightness(120%);
    }


.list-unstyled.ms-3 {
    border-left: 2px solid #dee2e6;
    margin-left: 1rem;
}


.nav-link[style*="@Colores.colorSecundario"] {
    position: relative;
}

    .nav-link[style*="@Colores.colorSecundario"]:after {
        content: "";
        position: absolute;
        left: 15px;
        right: 15px;
        bottom: 0;
        height: 2px;
        background-color: currentColor;
    }


@media (max-width: 991.98px) {
    #sidebarMobile {
        position: fixed;
        top: 0; /* Se extiende desde la parte superior */
        left: -100%; /* Oculto inicialmente */
        width: 250px;
        height: 100vh;
        background: #f8f9fa;
        transition: left 0.3s ease;
        z-index: 1100; /* Se asegura que esté por encima del contenido */
        overflow-y: auto;
        box-shadow: 3px 0 15px rgba(0, 0, 0, 0.3); /* Mayor contraste */
    }

        #sidebarMobile.show {
            left: 0; /* Se despliega desde la izquierda */
        }

    /* Elimina el margen lateral del contenido */
    .col-md-9.col-lg-10 {
        margin-left: 0 !important;
    }

    /* Oscurecer contenido de fondo */
    .body-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5); /* Fondo oscuro */
        z-index: 1099; /* Asegura que se muestre encima del contenido */
        display: none; /* Oculto por defecto */
    }

        .body-overlay.show {
            display: block; /* Visible cuando el sidebar está abierto */
        }


    .navbar-toggler {
        position: relative;
        z-index: 1100;
    }

    /* Oscurecer contenido de fondo */
    .body-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        z-index: 999;
    }

    .sidebar {
        border-right: none !important;
    }

}

/* Versión desktop */
@media (min-width: 992px) {
    #sidebarMobile {
        display: block !important;
    }
}

/* Resaltado para items activos */
.nav-link[style*="@Colores.colorSecundario"] {
    position: relative;
}

.nav-link[style*="@Colores.colorSecundario"]:after {
    content: "";
    position: absolute;
    left: 15px;
    right: 15px;
    bottom: 0;
    height: 2px;
    background-color: currentColor;
}








.timeline-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.timeline-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    width: 100px;
    text-align: center;
}

    .timeline-step .circle {
        width: 36px;
        height: 36px;
        border-radius: 50%;
        background-color: #d3d3d3;
        color: #fff;
        font-weight: bold;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 6px;
        transition: background-color 0.3s ease;
    }

    .timeline-step.completed .circle {
        background-color: #28a745; /* Verde para completado */
    }

    .timeline-step.current .circle {
        background-color: #007bff; /* Azul para actual */
    }
    .timeline-step.dep .circle {
        background-color: gray; /* Azul para actual */
    }

    .timeline-step .label {
        font-size: 14px;
        font-weight: 500;
        color: #333;
    }

.line {
    flex-grow: 1;
    height: 4px;
    background-color: #d3d3d3;
    margin: 0 8px;
    border-radius: 2px;
    transition: background-color 0.3s ease;
}

.timeline-step.completed + .line {
    background-color: #28a745;
}

.timeline-step.current + .line {
    background-color: #007bff;
}






.star-rating {
    font-size: 2rem;
    color: gray;
    cursor: pointer;
}

    .star-rating .fa-star {
        transition: color 0.2s;
    }

        .star-rating .fa-star.checked {
            color: gold;
        }


#estrellasCalificacion i {
    font-size: 32px;
    color: gray;
    cursor: pointer;
    margin: 0 5px;
}

    #estrellasCalificacion i.seleccionada {
        color: gold;
    }







.buscador-modulos-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.buscador-modulos-container {
    position: relative;
    width: fit-content;
}

.buscador-modulos-mainbox {
    position: relative;
    width: 230px;
    height: 50px;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: center;
    border-radius: 160px;
    background-color: #fff;
    border: 2px solid #0a2052;
    transition: all 0.3s ease;
}

.buscador-modulos-checkbox {
    width: 30px;
    height: 30px;
    position: absolute;
    right: 17px;
    top: 10px;
    cursor: pointer;
    appearance: none;
    z-index: 10;
}

    .buscador-modulos-checkbox:checked ~ .buscador-modulos-mainbox {
        width: 50px;
    }

        .buscador-modulos-checkbox:checked ~ .buscador-modulos-mainbox .buscador-modulos-input {
            width: 0;
            height: 0;
        }

        .buscador-modulos-checkbox:checked ~ .buscador-modulos-mainbox .buscador-modulos-icon {
            padding-right: 8px;
        }

.buscador-modulos-input {
    height: 100%;
    width: 170px;
    background-color: transparent;
    border: none;
    outline: none;
    padding-left: 10px;
    font-size: 1em;
    color: #0a2052;
    transition: all 0.3s ease;
}

    .buscador-modulos-input::placeholder {
        color: rgba(10, 32, 82, 0.6);
    }

.buscador-modulos-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    transition: all 0.3s ease;
    padding: 0; /* antes tenía padding-top, se elimina */
}

    .buscador-modulos-icon svg {
        fill: #0a2052; /* color de la lupa */
        font-size: 1.4em;
        width: 24px;
        height: 24px;
    }

.buscador-modulos-mainbox:hover {
    box-shadow: 0 0 6px rgba(10, 32, 82, 0.3);
}


















/* --- ESTILOS PARA EL LOADER DE PANTALLA COMPLETA --- */
.loader {
    position: fixed; /* Usar fixed para cubrir toda la ventana (viewport) */
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1050; /* Alto z-index para que esté sobre todos los modales y el contenido */
    background-color: rgba(0, 0, 0, 0.4); /* Fondo semitransparente blanco */
    display: flex; /* Asegura el centrado del spinner */
    align-items: center;
    justify-content: center;
}

/* El CSS del spinner que proporcionaste */
.jimu-primary-loading:before,
.jimu-primary-loading:after {
    position: absolute;
    top: 0;
    content: '';
}

.jimu-primary-loading:before {
    left: -19.992px;
}

.jimu-primary-loading:after {
    left: 19.992px;
    -webkit-animation-delay: 0.32s !important;
    animation-delay: 0.32s !important;
}

.jimu-primary-loading:before,
.jimu-primary-loading:after,
.jimu-primary-loading {
    background: #0a2052; /* Color del spinner */
    -webkit-animation: loading-keys-app-loading 0.8s infinite ease-in-out;
    animation: loading-keys-app-loading 0.8s infinite ease-in-out;
    width: 13.6px;
    height: 32px;
}

.jimu-primary-loading {
    text-indent: -9999em;
    margin: auto;
    position: absolute; /* Ajustado para centrar dentro del flexbox del .loader */
    right: calc(50% - 6.8px);
    top: calc(50% - 16px);
    -webkit-animation-delay: 0.16s !important;
    animation-delay: 0.16s !important;
}

@-webkit-keyframes loading-keys-app-loading {
    0%, 80%, 100% {
        opacity: .75;
        box-shadow: 0 0 #0a2052;
        height: 32px;
    }

    40% {
        opacity: 1;
        box-shadow: 0 -8px #0a2052;
        height: 40px;
    }
}

@keyframes loading-keys-app-loading {
    0%, 80%, 100% {
        opacity: .75;
        box-shadow: 0 0 #0a2052;
        height: 32px;
    }

    40% {
        opacity: 1;
        box-shadow: 0 -8px #0a2052;
        height: 40px;
    }
}




```
eof
/* === Filtros de estatus personalizados === */
div.btn-group[role="group"] > button.btn.btn-outline-primary {
    color: #0a2052 !important;
    border: 1px solid #0a2052 !important;
    background-color: transparent !important;
    font-weight: 500 !important;
    transition: all 0.2s ease-in-out !important;
}

/* === Hover === */
div.btn-group[role="group"] > button.btn.btn-outline-primary:hover {
    background-color: #0a2052 !important;
    color: #ffffff !important;
    border-color: #0a2052 !important;
}

/* === Activo / seleccionado === */
div.btn-group[role="group"] > button.btn.btn-outline-primary.active,
div.btn-group[role="group"] > button.btn.btn-outline-primary:active,
div.btn-group[role="group"] > button.btn.btn-outline-primary:focus {
    background-color: #0a2052 !important;
    border-color: #0a2052 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

/* === Badge === */
div.btn-group[role="group"] > button.btn.btn-outline-primary .badge {
    background-color: #6c757d !important;
    color: #ffffff !important;
}
