:root {
    --fefna-navy: #17357d;
    --fefna-navy-dark: #102b68;
    --fefna-navy-soft: #eaf0ff;
    --fefna-yellow: #ffca1a;
    --fefna-yellow-hover: #eab400;
    --fefna-green: #76b629;
    --fefna-page: #f5f7fb;
    --fefna-ink: #172554;
}

body { background-color: var(--fefna-page); color: var(--fefna-ink); }

/* Navegación: navy como base y amarillo para la opción actual. */
#sidebar { background: var(--fefna-navy) !important; box-shadow: 10px 0 28px rgba(15, 43, 104, .14) !important; }
#sidebar > div:first-child { background: var(--fefna-navy-dark) !important; }
#sidebar .nav-link, #sidebar .nav-parent, #sidebar [data-settings-toggle], #sidebar .text-gray-700, #sidebar .text-gray-600 { color: #e9efff !important; }
#sidebar .nav-link:hover, #sidebar .nav-parent:hover, #sidebar [data-settings-toggle]:hover { background-color: rgba(255, 255, 255, .1) !important; color: #ffffff !important; }
#sidebar .nav-link.active, #sidebar .nav-parent.active, #sidebar .bg-blue-50 { background-color: var(--fefna-yellow) !important; color: var(--fefna-navy-dark) !important; font-weight: 700; }
#sidebar .nav-link.active *, #sidebar .nav-parent.active *, #sidebar .bg-blue-50 * { color: var(--fefna-navy-dark) !important; }
#sidebar .border-gray-200, #sidebar .border-gray-100 { border-color: rgba(255, 255, 255, .14) !important; }
/* Desplazamiento interno del menú cuando existen muchos submódulos. */
#sidebar nav {
    scrollbar-width: thin;
    scrollbar-color: var(--fefna-yellow) rgba(255, 255, 255, .12);
    scrollbar-gutter: stable;
}
#sidebar nav::-webkit-scrollbar { width: 10px; }
#sidebar nav::-webkit-scrollbar-track {
    margin: .5rem 0;
    background: rgba(255, 255, 255, .1);
    border-radius: 999px;
}
#sidebar nav::-webkit-scrollbar-thumb {
    background: var(--fefna-yellow);
    border: 2px solid var(--fefna-navy);
    border-radius: 999px;
    min-height: 44px;
}
#sidebar nav::-webkit-scrollbar-thumb:hover { background: #ffe180; }

/* Acciones: amarillo con texto navy; éxito queda verde. */
.btn-primary, .btn-success, button.bg-blue-600, button.bg-green-600,
button.bg-\[\#76b629\], button.bg-\[\#6fb523\],
a.bg-\[\#76b629\], a[style*="background-color:#76b629"], button[style*="background-color:#76b629"] {
    background: var(--fefna-yellow) !important;
    border-color: var(--fefna-yellow) !important;
    color: var(--fefna-navy-dark) !important;
    box-shadow: 0 8px 18px rgba(255, 202, 26, .24);
}
.btn-primary *, .btn-success *, button.bg-blue-600 *, button.bg-green-600 *,
button.bg-\[\#76b629\] *, button.bg-\[\#6fb523\] *, a.bg-\[\#76b629\] * { color: var(--fefna-navy-dark) !important; }
.btn-primary:hover, .btn-success:hover, button.bg-blue-600:hover, button.bg-green-600:hover,
button.bg-\[\#76b629\]:hover, button.bg-\[\#6fb523\]:hover,
a.bg-\[\#76b629\]:hover, a[style*="background-color:#76b629"]:hover, button[style*="background-color:#76b629"]:hover {
    background: var(--fefna-yellow-hover) !important;
    border-color: var(--fefna-yellow-hover) !important;
}

/* El azul vuelve a representar navegación e información, no verde. */
.bg-blue-600, .hover\:bg-blue-600:hover { background-color: var(--fefna-navy) !important; }
.text-blue-500, .text-blue-600, .hover\:text-blue-600:hover { color: var(--fefna-navy) !important; }
.border-blue-500, .border-blue-600, .hover\:border-blue-500:hover { border-color: var(--fefna-navy) !important; }
.focus\:ring-blue-500:focus { box-shadow: 0 0 0 3px rgba(23, 53, 125, .22) !important; }

.dashboard-service-card__icon, .role-icon { background-color: var(--fefna-navy-soft) !important; color: var(--fefna-navy) !important; }
.creditos-detail-nav-btn--refresh { border-color: #dcb441; background-color: #fff6d8; color: var(--fefna-navy-dark); }
.creditos-detail-nav-btn--refresh:hover { border-color: var(--fefna-yellow-hover); background-color: #ffedaa; color: var(--fefna-navy-dark); }

/* Acceso: se conserva el layout actual y se acerca a la referencia enviada. */
.login-body { background: #eef1f7; }
.login-hero { position: relative; overflow: hidden; background: radial-gradient(circle at top left, #24499d 0%, var(--fefna-navy-dark) 68%) !important; }
.login-hero::after { content: ''; position: absolute; right: -15%; bottom: -42%; width: 62%; height: 72%; background: var(--fefna-yellow); border-radius: 50% 0 0 0; }
.login-hero .hero-content { position: relative; z-index: 1; }
.hero-content ul i { color: var(--fefna-yellow); }
.back-home { color: var(--fefna-navy) !important; }
.back-home:hover { color: var(--fefna-navy-dark) !important; }
.input-wrapper:focus-within { border-color: var(--fefna-navy) !important; box-shadow: 0 0 0 3px rgba(23, 53, 125, .12); }
.login-panel .btn-primary { background: var(--fefna-navy) !important; border-color: var(--fefna-navy) !important; color: #ffffff !important; box-shadow: 0 10px 18px rgba(23, 53, 125, .24); }
.login-panel .btn-primary *, .login-panel .btn-primary i, .login-panel .btn-primary span { color: #ffffff !important; }
.login-panel .btn-primary:hover { background: var(--fefna-navy-dark) !important; }

@media (max-width: 767px) { .login-hero::after { width: 54%; height: 55%; right: -12%; bottom: -36%; } }
