/* ==========================================================================
   Salus Forte · Sistema visual institucional 2026
   Capa de unificación cargada al final: tokens, tipografía y componentes
   comunes (botones, formularios, tablas, tarjetas, avisos, menús).
   No modifica lógica ni estructura de datos.
   ========================================================================== */

:root {
    --sf-navy: #0F2A47;
    --sf-navy-700: #16395E;
    --sf-blue: #1B4F8A;
    --sf-blue-600: #1A4477;
    --sf-blue-100: #E4EBF4;
    --sf-surface: #FFFFFF;
    --sf-bg: #F5F7FA;
    --sf-bg-alt: #EEF2F7;
    --sf-line: #D9E1EA;
    --sf-line-strong: #C3CEDB;
    --sf-text: #1B2733;
    --sf-text-soft: #566371;
    --sf-text-muted: #78848F;
    --sf-success: #0E9F6E;
    --sf-success-soft: #E6F6F0;
    --sf-warning: #B4740E;
    --sf-warning-soft: #FBF2E2;
    --sf-danger: #B3261E;
    --sf-danger-soft: #FBEAE9;
    --sf-info-soft: #EAF1F9;
    --sf-radius: 10px;
    --sf-radius-sm: 6px;
    --sf-shadow: 0 1px 2px rgba(15, 42, 71, .06), 0 8px 20px -14px rgba(15, 42, 71, .28);
    --sf-shadow-sm: 0 1px 2px rgba(15, 42, 71, .08);
    --sf-font-head: "Libre Baskerville", Georgia, "Times New Roman", serif;
    --sf-font-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --sf-focus: 0 0 0 3px rgba(27, 79, 138, .28);
}

/* ---------- Base ---------- */
html { -webkit-text-size-adjust: 100%; }

body {
    font-family: var(--sf-font-body);
    background: var(--sf-bg);
    color: var(--sf-text);
    font-size: 15.5px;
    line-height: 1.6;
    letter-spacing: 0;
}

h1, h2, h3, h4, h5,
.academy-section-title,
.page-hero h1 {
    font-family: var(--sf-font-head);
    color: var(--sf-navy);
    letter-spacing: -.01em;
    line-height: 1.25;
    font-weight: 700;
}

h1 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.15rem); }
h2 { font-size: clamp(1.25rem, 1.05rem + .7vw, 1.6rem); }
h3 { font-size: 1.12rem; }

p { color: var(--sf-text-soft); }

a { color: var(--sf-blue); text-underline-offset: 3px; }
a:hover { color: var(--sf-navy); }

.text-muted, .text-muted * { color: var(--sf-text-muted) !important; }

.eyebrow {
    font-family: var(--sf-font-body);
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .7rem;
    font-weight: 600;
    color: var(--sf-blue);
}

:focus-visible {
    outline: 2px solid var(--sf-blue);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ---------- Encabezado del sitio ---------- */
.topbar, .topbar--salus {
    background: var(--sf-navy);
    color: #E8EEF5;
    font-size: .82rem;
    letter-spacing: .01em;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.topbar__promo { color: #DCE5EF; }
.topbar__promo strong { color: #FFFFFF; font-weight: 600; }

.site-header, .site-header--salus {
    background: var(--sf-surface);
    border-bottom: 1px solid var(--sf-line);
    box-shadow: none;
}
.site-nav a, .site-nav--salus a {
    font-size: .93rem;
    font-weight: 500;
    color: var(--sf-text-soft);
    border-radius: var(--sf-radius-sm);
}
.site-nav a:hover { color: var(--sf-navy); background: var(--sf-bg-alt); }
.site-nav a.is-active,
.site-nav a[aria-current="page"] {
    color: var(--sf-navy);
    font-weight: 600;
    box-shadow: inset 0 -2px 0 var(--sf-blue);
}

.site-search input {
    border: 1px solid var(--sf-line);
    border-radius: var(--sf-radius-sm);
    background: var(--sf-bg);
    font: inherit;
}

/* Menú de cuenta (estudiante) */
.student-user-menu { position: relative; }
.student-user-menu > summary {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .38rem .6rem;
    border: 1px solid var(--sf-line);
    border-radius: 999px;
    background: var(--sf-surface);
    cursor: pointer;
    list-style: none;
    font-size: .9rem;
    font-weight: 500;
    color: var(--sf-navy);
}
.student-user-menu > summary::-webkit-details-marker { display: none; }
.student-user-menu > summary:hover { background: var(--sf-bg-alt); }
.student-user-menu__avatar {
    width: 28px; height: 28px;
    display: grid; place-items: center;
    border-radius: 50%;
    background: var(--sf-navy);
    color: #FFF;
    font-size: .82rem;
    font-weight: 600;
}
.student-user-menu__panel {
    position: absolute;
    right: 0; top: calc(100% + .45rem);
    min-width: 220px;
    background: var(--sf-surface);
    border: 1px solid var(--sf-line);
    border-radius: var(--sf-radius);
    box-shadow: var(--sf-shadow);
    padding: .35rem;
    z-index: 60;
}
.student-user-menu__panel a,
.student-user-menu__panel button {
    display: block;
    width: 100%;
    text-align: left;
    padding: .5rem .65rem;
    border: 0;
    border-radius: var(--sf-radius-sm);
    background: none;
    font: inherit;
    font-size: .9rem;
    color: var(--sf-text);
    cursor: pointer;
    text-decoration: none;
}
.student-user-menu__panel a:hover,
.student-user-menu__panel button:hover { background: var(--sf-bg-alt); color: var(--sf-navy); }
.student-user-menu__panel form { border-top: 1px solid var(--sf-line); margin-top: .3rem; padding-top: .3rem; }

/* ---------- Botones ---------- */
.btn, .academy-btn, button.btn, a.btn {
    font-family: var(--sf-font-body);
    font-weight: 600;
    font-size: .92rem;
    letter-spacing: .01em;
    border-radius: var(--sf-radius-sm);
    padding: .6rem 1.05rem;
    border: 1px solid transparent;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
    text-transform: none;
    box-shadow: none;
}
.btn--primary, .academy-btn--primary {
    background: var(--sf-navy);
    border-color: var(--sf-navy);
    color: #FFFFFF;
}
.btn--primary:hover, .academy-btn--primary:hover { background: var(--sf-blue); border-color: var(--sf-blue); color: #FFF; }
.btn--secondary, .btn--outline, .academy-btn--outline {
    background: var(--sf-surface);
    border-color: var(--sf-line-strong);
    color: var(--sf-navy);
}
.btn--secondary:hover, .btn--outline:hover, .academy-btn--outline:hover { background: var(--sf-bg-alt); border-color: var(--sf-blue); }
.btn--ghost {
    background: transparent;
    border-color: var(--sf-line-strong);
    color: var(--sf-navy);
}
.btn--ghost:hover { background: var(--sf-bg-alt); }
.academy-btn--light { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .45); color: #FFF; }
.academy-btn--light:hover { background: rgba(255, 255, 255, .22); }
.btn--small, .academy-btn--small, .btn--sm { padding: .4rem .7rem; font-size: .84rem; }
.btn:focus-visible, .academy-btn:focus-visible { box-shadow: var(--sf-focus); }
.btn[disabled], .btn.is-disabled { opacity: .55; cursor: not-allowed; }

/* ---------- Tarjetas y secciones ---------- */
.panel, .card, .admin-section, .academy-widget, .academy-course-panel, .sf-card {
    background: var(--sf-surface);
    border: 1px solid var(--sf-line);
    border-radius: var(--sf-radius);
    box-shadow: var(--sf-shadow-sm);
}
.panel--soft { background: var(--sf-surface); }
.admin-section { padding: 1.25rem 1.35rem; margin-bottom: 1.25rem; }
.admin-section__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: start;
    padding-bottom: .9rem;
    margin-bottom: .9rem;
    border-bottom: 1px solid var(--sf-line);
}
.admin-section__head h2 { margin: .15rem 0 .25rem; }
.admin-section__head p { margin: 0; font-size: .92rem; }

.page-hero, .page-hero--small {
    background: var(--sf-navy);
    color: #EEF3F9;
    padding: 2.1rem 0 1.9rem;
    border-bottom: 3px solid var(--sf-blue);
}
.page-hero h1 { color: #FFFFFF; margin: .35rem 0 .5rem; }
.page-hero p { color: #C9D6E4; max-width: 68ch; margin: 0; }
.page-hero .eyebrow { color: #9FBBD9; }

.section { padding: 1.75rem 0 2.5rem; }

/* ---------- Métricas ---------- */
.stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: .85rem;
    margin-bottom: 1.4rem;
}
.stat-card {
    background: var(--sf-surface);
    border: 1px solid var(--sf-line);
    border-left: 3px solid var(--sf-blue);
    border-radius: var(--sf-radius);
    padding: .95rem 1.05rem;
    display: grid;
    gap: .15rem;
    box-shadow: var(--sf-shadow-sm);
}
.stat-card strong {
    font-family: var(--sf-font-head);
    font-size: 1.6rem;
    color: var(--sf-navy);
    line-height: 1.1;
}
.stat-card span {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .09em;
    color: var(--sf-text-muted);
    font-weight: 600;
}

/* ---------- Formularios ---------- */
label > span, .field > span, .form-label {
    display: block;
    font-size: .84rem;
    font-weight: 600;
    color: var(--sf-navy);
    margin-bottom: .3rem;
}
input[type="text"], input[type="email"], input[type="password"], input[type="search"],
input[type="number"], input[type="tel"], input[type="date"], input[type="url"],
input[type="file"], select, textarea {
    width: 100%;
    font: inherit;
    font-size: .93rem;
    color: var(--sf-text);
    background: var(--sf-surface);
    border: 1px solid var(--sf-line-strong);
    border-radius: var(--sf-radius-sm);
    padding: .55rem .7rem;
    box-shadow: none;
}
input:focus, select:focus, textarea:focus {
    border-color: var(--sf-blue);
    box-shadow: var(--sf-focus);
    outline: none;
}
input::placeholder, textarea::placeholder { color: #9AA6B2; }
input[aria-invalid="true"], .is-invalid { border-color: var(--sf-danger); }
.form-hint { font-size: .82rem; color: var(--sf-text-muted); }
.form-grid { display: grid; gap: 1rem; }
.form-grid--2 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.form-actions { display: flex; gap: .6rem; flex-wrap: wrap; align-items: end; }

/* ---------- Tablas ---------- */
.table-wrap {
    border: 1px solid var(--sf-line);
    border-radius: var(--sf-radius);
    overflow-x: auto;
    background: var(--sf-surface);
}
.data-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.data-table thead th {
    background: var(--sf-bg-alt);
    color: var(--sf-navy);
    text-align: left;
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
    padding: .7rem .85rem;
    border-bottom: 1px solid var(--sf-line);
    white-space: nowrap;
}
.data-table tbody td {
    padding: .75rem .85rem;
    border-bottom: 1px solid var(--sf-bg-alt);
    vertical-align: middle;
}
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #FAFCFE; }
.data-table strong { color: var(--sf-navy); font-weight: 600; }
.table-actions { display: flex; gap: .45rem; align-items: center; flex-wrap: wrap; }

/* ---------- Insignias y avisos ---------- */
.badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .22rem .55rem;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .01em;
    border: 1px solid transparent;
}
.badge--info { background: var(--sf-info-soft); color: var(--sf-blue-600); border-color: #CFDDEC; }
.badge--success { background: var(--sf-success-soft); color: #0A7B55; border-color: #C6E9DC; }
.badge--warning { background: var(--sf-warning-soft); color: var(--sf-warning); border-color: #EFDCBB; }
.badge--danger { background: var(--sf-danger-soft); color: var(--sf-danger); border-color: #EFC9C6; }

.notice, .flash, .alert {
    border: 1px solid var(--sf-line);
    border-left: 3px solid var(--sf-blue);
    border-radius: var(--sf-radius-sm);
    background: var(--sf-surface);
    padding: .8rem 1rem;
    font-size: .92rem;
    color: var(--sf-text);
    box-shadow: none;
}
.notice strong, .flash strong { color: var(--sf-navy); }
.notice--info { border-left-color: var(--sf-blue); background: var(--sf-info-soft); }
.notice--success, .flash--success, .flash.success { border-left-color: var(--sf-success); background: var(--sf-success-soft); }
.notice--warning, .flash--warning { border-left-color: var(--sf-warning); background: var(--sf-warning-soft); }
.notice--danger, .flash--error, .flash.error { border-left-color: var(--sf-danger); background: var(--sf-danger-soft); }

/* ---------- Estados vacíos y carga ---------- */
.empty-state, .academy-empty, .academy-widget-empty {
    background: var(--sf-surface);
    border: 1px dashed var(--sf-line-strong);
    border-radius: var(--sf-radius);
    padding: 2rem 1.5rem;
    text-align: center;
    color: var(--sf-text-soft);
    box-shadow: none;
}
.empty-state h2 { font-size: 1.15rem; margin-bottom: .35rem; }
.sf-skeleton {
    background: linear-gradient(90deg, var(--sf-bg-alt) 25%, #F8FAFC 50%, var(--sf-bg-alt) 75%);
    background-size: 200% 100%;
    animation: sf-skeleton 1.4s linear infinite;
    border-radius: var(--sf-radius-sm);
    min-height: 14px;
}
@keyframes sf-skeleton { to { background-position: -200% 0; } }

/* ---------- Migas de pan ---------- */
.sf-breadcrumb { font-size: .82rem; color: #A9C0D8; margin-bottom: .5rem; }
.sf-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; }
.sf-breadcrumb a { color: #CFE0F0; text-decoration: none; }
.sf-breadcrumb a:hover { color: #FFFFFF; text-decoration: underline; }
.sf-breadcrumb li + li::before { content: "/"; margin-right: .35rem; color: #7D9AB8; }
.sf-breadcrumb [aria-current="page"] { color: #FFFFFF; font-weight: 600; }

/* ==========================================================================
   Panel docente
   ========================================================================== */
.teach-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: end;
    background: var(--sf-surface);
    border: 1px solid var(--sf-line);
    border-radius: var(--sf-radius);
    padding: 1rem 1.15rem;
    margin-bottom: 1.25rem;
    box-shadow: var(--sf-shadow-sm);
}
.teach-toolbar__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .85rem; }
.teach-tabs {
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--sf-line);
    margin-bottom: 1.25rem;
}
.teach-tabs a {
    padding: .55rem .85rem;
    font-size: .9rem;
    font-weight: 600;
    color: var(--sf-text-soft);
    text-decoration: none;
    border-bottom: 2px solid transparent;
}
.teach-tabs a:hover { color: var(--sf-navy); }
.teach-tabs a.is-active { color: var(--sf-navy); border-bottom-color: var(--sf-blue); }

.teach-progress { display: grid; gap: .25rem; min-width: 120px; }
.teach-progress__track { height: 6px; background: var(--sf-bg-alt); border-radius: 999px; overflow: hidden; }
.teach-progress__fill { height: 100%; background: var(--sf-blue); border-radius: 999px; }
.teach-progress__fill.is-complete { background: var(--sf-success); }
.teach-progress span { font-size: .78rem; color: var(--sf-text-muted); }

.signature-manager { display: grid; gap: 1.15rem; padding: 1.25rem 1.35rem; margin-bottom: 1.25rem; }
.signature-manager__copy h2 { margin: .2rem 0 .4rem; }
.signature-preview {
    display: grid;
    place-items: center;
    min-height: 96px;
    border: 1px dashed var(--sf-line-strong);
    border-radius: var(--sf-radius-sm);
    background: var(--sf-bg);
    color: var(--sf-text-muted);
    font-size: .85rem;
    margin-bottom: .9rem;
}
.signature-preview img { max-height: 84px; max-width: 100%; }
.inline-form { display: inline; }

@media (min-width: 900px) {
    .signature-manager { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: start; }
    .signature-manager__form { border-left: 1px solid var(--sf-line); padding-left: 1.35rem; }
}

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
    .admin-section__head, .teach-toolbar { grid-template-columns: minmax(0, 1fr); }
    .page-hero, .page-hero--small { padding: 1.5rem 0 1.35rem; }
    .admin-section { padding: 1rem; }
    .data-table { font-size: .86rem; }
}

@media print {
    .topbar, .site-header, .site-footer, .sf-ai-launcher, .teach-toolbar { display: none !important; }
    body { background: #FFF; }
}

@media (prefers-reduced-motion: reduce) {
    * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ---------- Utilidades y 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;
}
.data-table caption.sr-only { display: block; }
.teach-progress__fill.is-complete { background: var(--sf-success, #0E9F6E); }
.form-grid--2 { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.signature-delete-form[hidden] { display: none; }

/* ==========================================================================
   Capa final de unificación: neutraliza los estilos decorativos previos.
   Se usa !important porque las hojas anteriores lo emplean ampliamente.
   ========================================================================== */

/* Decoraciones y degradados fuera */
.page-hero::before, .page-hero::after,
.hero::before, .hero::after,
.section::before, .section::after {
    display: none !important;
}

.page-hero, .hero {
    background: var(--sf-navy) !important;
    border-bottom: 3px solid var(--sf-blue) !important;
    color: #FFFFFF !important;
    padding: clamp(2.25rem, 4vw, 3.25rem) 0 !important;
    overflow: visible !important;
}
.page-hero--small { padding: clamp(1.75rem, 3vw, 2.5rem) 0 !important; }
.page-hero h1, .page-hero h2, .hero h1, .hero h2 { color: #FFFFFF !important; }
.page-hero p, .hero p { color: #C6D5E4 !important; font-size: 1rem !important; }
.page-hero .eyebrow, .hero .eyebrow {
    background: rgba(255, 255, 255, .1) !important;
    border-color: rgba(255, 255, 255, .22) !important;
    color: #E7EEF6 !important;
}
.page-hero .sf-breadcrumb a, .page-hero .sf-breadcrumb { color: #9FBBD9 !important; }
.page-hero .sf-breadcrumb li[aria-current] { color: #FFFFFF !important; }

/* Encabezado institucional: sin píldoras ni cristal */
.site-header {
    background: #FFFFFF !important;
    border-radius: 0 !important;
    border-bottom: 1px solid var(--sf-line) !important;
    box-shadow: 0 1px 2px rgba(15, 42, 71, .08) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    margin: 0 !important;
}
.site-header__inner {
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-height: 72px !important;
}
.topbar { background: var(--sf-navy) !important; color: #C6D5E4 !important; border: 0 !important; }
.topbar a, .topbar strong { color: #FFFFFF !important; }
.legal-strip { background: var(--sf-bg-alt) !important; color: var(--sf-text-soft) !important; border-top: 1px solid var(--sf-line) !important; }

/* Botones unificados */
.btn, .academy-btn, .button-primary, button.btn--primary {
    border-radius: var(--sf-radius-sm) !important;
    box-shadow: none !important;
    transform: none !important;
    filter: none !important;
    background-image: none !important;
    font-weight: 600 !important;
    letter-spacing: .01em !important;
}
.btn--primary, .academy-btn--primary, .button-primary, button.btn--primary {
    background: var(--sf-navy) !important;
    border: 1px solid var(--sf-navy) !important;
    color: #FFFFFF !important;
}
.btn--primary:hover, .academy-btn--primary:hover, .button-primary:hover, button.btn--primary:hover {
    background: var(--sf-blue) !important;
    border-color: var(--sf-blue) !important;
}
.btn--secondary, .academy-btn--secondary, .btn--outline, .academy-btn--outline {
    background: #FFFFFF !important;
    border: 1px solid var(--sf-line-strong) !important;
    color: var(--sf-navy) !important;
}
.btn--secondary:hover, .academy-btn--secondary:hover, .btn--outline:hover, .academy-btn--outline:hover {
    border-color: var(--sf-blue) !important;
    color: var(--sf-blue) !important;
}
.btn--ghost, .academy-btn--ghost {
    background: transparent !important;
    border: 1px solid transparent !important;
    color: var(--sf-blue) !important;
}
.btn--ghost:hover, .academy-btn--ghost:hover { background: var(--sf-bg-alt) !important; }
.btn--small { padding: .38rem .7rem !important; font-size: .84rem !important; }

/* Tarjetas y superficies sin sombras excesivas */
.panel, .card, .admin-section, .course-card, .surface, .box {
    border-radius: var(--sf-radius) !important;
    box-shadow: var(--sf-shadow-sm) !important;
    background: #FFFFFF !important;
}
.panel--soft { background: #FFFFFF !important; }

/* Cuerpo y tipografía global */
body { background: var(--sf-bg) !important; font-family: var(--sf-font-body) !important; color: var(--sf-text) !important; }
h1, h2, h3, h4, .h1, .h2, .h3 { font-family: var(--sf-font-head) !important; letter-spacing: -.005em !important; }
.section { padding: clamp(1.75rem, 3vw, 2.75rem) 0 !important; }

/* Pie de página institucional */
.site-footer { background: var(--sf-navy) !important; color: #C6D5E4 !important; }
.site-footer h2, .site-footer h3, .site-footer strong { color: #FFFFFF !important; }
.site-footer a { color: #C6D5E4 !important; }
.site-footer a:hover { color: #FFFFFF !important; }

/* Refuerzo de especificidad para cabecera, panel del estudiante y widgets */
body .site-header .btn--primary,
body .site-header__inner .btn--primary,
body .sf-mobile-cta .btn--primary,
body .nav-cta, body a.nav-cta {
    background: var(--sf-navy) !important;
    border-color: var(--sf-navy) !important;
    color: #FFFFFF !important;
    background-image: none !important;
}
body .site-header .btn--primary:hover { background: var(--sf-blue) !important; border-color: var(--sf-blue) !important; }
body .site-nav a, body .site-header nav a {
    color: var(--sf-navy) !important;
    font-weight: 500 !important;
    background: transparent !important;
    border-color: transparent !important;
}
body .site-nav a[aria-current], body .site-nav a.is-active {
    color: var(--sf-blue) !important;
    font-weight: 600 !important;
    box-shadow: inset 0 -2px 0 var(--sf-blue) !important;
    border-radius: 0 !important;
}
body .user-pill {
    background: #FFFFFF !important;
    border: 1px solid var(--sf-line-strong) !important;
    color: var(--sf-navy) !important;
    border-radius: var(--sf-radius-sm) !important;
    box-shadow: none !important;
}

body .academy-welcome__copy h1,
body .academy-welcome__copy h2 { color: #FFFFFF !important; }
body .academy-welcome__copy p { color: #C6D5E4 !important; }
body .academy-welcome__copy .academy-label { color: #9FBBD9 !important; }
body .academy-mantra { color: #E7EEF6 !important; }
body .academy-section-title { font-size: 1.2rem !important; }
body .academy-course-panel > p,
body .academy-section-head p { font-size: .92rem !important; color: var(--sf-text-soft) !important; }
body .academy-widget__head h2,
body .academy-widget__head h3 { font-size: 1.05rem !important; }
body .academy-widget__symbol--bell::before { content: "" !important; }
body .academy-widget__symbol--bell {
    display: grid !important;
    width: 16px; height: 16px;
    place-items: center;
    border-radius: 50%;
    background: var(--sf-blue) !important;
}
body .academy-empty h2, body .academy-empty h3 { font-size: 1.05rem !important; }
body .academy-empty p, body .academy-widget-empty p { font-size: .9rem !important; }

/* Alineación y escala tipográfica final del panel */
body .academy-widget__head,
body .academy-section-head { flex-wrap: nowrap !important; align-items: center !important; }
body .academy-widget__head h2,
body .academy-widget__head h3,
body .academy-course-panel h2,
body .academy-widget h2 { font-size: 1.12rem !important; margin: 0 !important; flex: 1 1 auto; }
body .academy-course-panel h3 { font-size: 1rem !important; }
body .academy-empty h2, body .academy-empty h3, body .academy-widget-empty strong { font-size: 1rem !important; }

/* ==========================================================================
   Panel administrativo: barra lateral, cabecera y contenido institucional
   ========================================================================== */
body.admin-dashboard-body { background: var(--sf-bg) !important; }
body .admin-dashboard { background: var(--sf-bg) !important; }

body .admin-sidebar {
    background: var(--sf-navy) !important;
    border-right: 1px solid #0B2038 !important;
    box-shadow: none !important;
}
body .admin-sidebar__brand { color: #FFFFFF !important; }
body .admin-sidebar__brand small { color: #9FBBD9 !important; }
body .admin-side-nav__label {
    color: #7E9CBD !important;
    font-size: .68rem !important;
    letter-spacing: .13em !important;
    text-transform: uppercase !important;
    margin: 1rem 0 .35rem !important;
    display: block;
}
body .admin-side-nav a {
    color: #C6D5E4 !important;
    background: transparent !important;
    border-radius: var(--sf-radius-sm) !important;
    border-left: 3px solid transparent !important;
    font-weight: 500 !important;
    box-shadow: none !important;
}
body .admin-side-nav a:hover { background: rgba(255, 255, 255, .07) !important; color: #FFFFFF !important; }
body .admin-side-nav a.is-active {
    background: rgba(255, 255, 255, .1) !important;
    color: #FFFFFF !important;
    border-left-color: #7FB0E8 !important;
    font-weight: 600 !important;
}
body .admin-nav-icon { color: #9FBBD9 !important; }
body .admin-side-nav a.is-active .admin-nav-icon { color: #FFFFFF !important; }
body .admin-support-card, body .admin-country-card {
    background: rgba(255, 255, 255, .06) !important;
    border: 1px solid rgba(255, 255, 255, .14) !important;
    border-radius: var(--sf-radius-sm) !important;
    color: #C6D5E4 !important;
    box-shadow: none !important;
}
body .admin-support-card strong, body .admin-country-card strong { color: #FFFFFF !important; }
body .admin-sidebar__foot .btn--ghost { color: #C6D5E4 !important; border-color: rgba(255,255,255,.2) !important; }
body .admin-sidebar__foot .btn--ghost:hover { background: rgba(255,255,255,.1) !important; color: #FFFFFF !important; }
body .admin-country-card__flag {
    display: inline-grid; place-items: center;
    width: 26px; height: 20px;
    border-radius: 3px;
    background: rgba(255,255,255,.14);
    font-size: .68rem; font-weight: 700; color: #FFFFFF;
}

body .admin-topbar {
    background: #FFFFFF !important;
    border-bottom: 1px solid var(--sf-line) !important;
    box-shadow: 0 1px 2px rgba(15, 42, 71, .06) !important;
    backdrop-filter: none !important;
}
body .admin-page-title h1 { font-size: clamp(1.3rem, 1.1rem + .7vw, 1.7rem) !important; color: var(--sf-navy) !important; }
body .admin-page-title p { color: var(--sf-text-soft) !important; font-size: .9rem !important; margin: .15rem 0 0 !important; }
body .admin-global-search {
    background: var(--sf-bg-alt) !important;
    border: 1px solid var(--sf-line) !important;
    border-radius: var(--sf-radius-sm) !important;
    box-shadow: none !important;
    color: var(--sf-text-soft) !important;
}
body .admin-global-search input { background: transparent !important; border: 0 !important; color: var(--sf-text) !important; }
body .admin-global-search kbd {
    background: #FFFFFF !important;
    border: 1px solid var(--sf-line) !important;
    color: var(--sf-text-muted) !important;
    border-radius: 4px !important;
    font-size: .7rem !important;
}
body .admin-notification { color: var(--sf-navy) !important; }
body .admin-notification__badge { background: var(--sf-danger) !important; color: #FFFFFF !important; }
body .admin-user-chip {
    background: #FFFFFF !important;
    border: 1px solid var(--sf-line-strong) !important;
    border-radius: var(--sf-radius-sm) !important;
    box-shadow: none !important;
}
body .admin-user-chip strong { color: var(--sf-navy) !important; font-size: .88rem !important; }
body .admin-user-chip small { color: var(--sf-text-muted) !important; }

body .admin-content { background: var(--sf-bg) !important; }
body .admin-mobile-nav {
    display: flex;
    gap: .4rem;
    overflow-x: auto;
    padding: .35rem 0 .75rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
body .admin-mobile-nav a {
    flex: 0 0 auto;
    padding: .38rem .7rem !important;
    border: 1px solid var(--sf-line-strong) !important;
    border-radius: 999px !important;
    background: #FFFFFF !important;
    color: var(--sf-navy) !important;
    font-size: .82rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    white-space: nowrap;
}
body .admin-mobile-nav a:hover { border-color: var(--sf-blue) !important; color: var(--sf-blue) !important; }

body .admin-shell-footer {
    background: #FFFFFF !important;
    border-top: 1px solid var(--sf-line) !important;
    color: var(--sf-text-muted) !important;
    font-size: .82rem !important;
}
body .admin-menu-toggle {
    background: #FFFFFF !important;
    border: 1px solid var(--sf-line-strong) !important;
    border-radius: var(--sf-radius-sm) !important;
    color: var(--sf-navy) !important;
}
body .admin-chevron { color: var(--sf-text-muted); }

/* ==========================================================================
   Administración: refuerzo sobre los estilos críticos en línea
   (especificidad mayor a 'body.admin-dashboard-body ...')
   ========================================================================== */
html body.admin-dashboard-body { font-family: var(--sf-font-body) !important; background: var(--sf-bg) !important; }
html body.admin-dashboard-body h1,
html body.admin-dashboard-body h2,
html body.admin-dashboard-body h3 { font-family: var(--sf-font-head) !important; }

/* Barra lateral */
html body.admin-dashboard-body .admin-sidebar {
    background: var(--sf-navy) !important;
    box-shadow: none !important;
    border-right: 1px solid #0B2038 !important;
}
html body.admin-dashboard-body .admin-side-nav a {
    background: transparent !important;
    border-radius: var(--sf-radius-sm) !important;
    border-left: 3px solid transparent !important;
    box-shadow: none !important;
    transform: none !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    color: #C6D5E4 !important;
    min-height: 42px !important;
    padding: .6rem .8rem !important;
}
html body.admin-dashboard-body .admin-side-nav a:hover {
    background: rgba(255, 255, 255, .07) !important;
    color: #FFFFFF !important;
    transform: none !important;
    box-shadow: none !important;
}
html body.admin-dashboard-body .admin-side-nav a.is-active {
    background: rgba(255, 255, 255, .1) !important;
    border-left-color: #7FB0E8 !important;
    color: #FFFFFF !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    transform: none !important;
}
html body.admin-dashboard-body .admin-side-nav a.is-active::after { display: none !important; }
html body.admin-dashboard-body .admin-nav-icon {
    width: 26px !important; height: 26px !important; flex: 0 0 26px !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    color: #9FBBD9 !important;
    transform: none !important;
}
html body.admin-dashboard-body .admin-side-nav a.is-active .admin-nav-icon { color: #FFFFFF !important; }
html body.admin-dashboard-body .admin-sidebar__brand strong { font-size: 1.15rem !important; letter-spacing: .02em !important; }
html body.admin-dashboard-body .admin-sidebar__logo,
html body.admin-dashboard-body .admin-sidebar__logo img { width: 42px !important; height: 42px !important; filter: none !important; }
html body.admin-dashboard-body .admin-support-card,
html body.admin-dashboard-body .admin-country-card {
    background: rgba(255, 255, 255, .06) !important;
    border-radius: var(--sf-radius-sm) !important;
    box-shadow: none !important;
}
html body.admin-dashboard-body .admin-support-card .btn {
    background: #FFFFFF !important;
    color: var(--sf-navy) !important;
    border: 1px solid #FFFFFF !important;
    box-shadow: none !important;
}
html body.admin-dashboard-body .admin-country-card__flag { font-size: .68rem !important; }

/* Cabecera y contenido */
html body.admin-dashboard-body .admin-main { background: var(--sf-bg) !important; }
html body.admin-dashboard-body .admin-topbar {
    background: #FFFFFF !important;
    box-shadow: none !important;
    border-bottom: 1px solid var(--sf-line) !important;
    backdrop-filter: none !important;
    padding: 1rem 1.75rem !important;
}
html body.admin-dashboard-body .admin-page-title h1 { font-size: clamp(1.25rem, 1.05rem + .6vw, 1.6rem) !important; letter-spacing: -.01em !important; }
html body.admin-dashboard-body .admin-page-title p { font-size: .9rem !important; }
html body.admin-dashboard-body .admin-global-search { box-shadow: none !important; border-radius: var(--sf-radius-sm) !important; min-height: 44px !important; }
html body.admin-dashboard-body .admin-global-search input { font-weight: 400 !important; }
html body.admin-dashboard-body .admin-user-chip__avatar {
    width: 40px !important; height: 40px !important;
    background: var(--sf-navy) !important;
    box-shadow: none !important;
}
html body.admin-dashboard-body .admin-user-chip strong { font-weight: 600 !important; }

/* Botones y superficies */
html body.admin-dashboard-body .btn { border-radius: var(--sf-radius-sm) !important; font-weight: 600 !important; box-shadow: none !important; }
html body.admin-dashboard-body .btn--primary {
    background: var(--sf-navy) !important;
    background-image: none !important;
    border: 1px solid var(--sf-navy) !important;
    color: #FFFFFF !important;
    box-shadow: none !important;
}
html body.admin-dashboard-body .btn--primary:hover { background: var(--sf-blue) !important; border-color: var(--sf-blue) !important; }
html body.admin-dashboard-body .admin-section,
html body.admin-dashboard-body .panel,
html body.admin-dashboard-body .notice,
html body.admin-dashboard-body .empty-state {
    border-radius: var(--sf-radius) !important;
    box-shadow: var(--sf-shadow-sm) !important;
    background: #FFFFFF !important;
    overflow: visible !important;
}
html body.admin-dashboard-body .notice::before { display: none !important; }
html body.admin-dashboard-body .eyebrow {
    background: var(--sf-info-soft) !important;
    color: var(--sf-blue-600, #1A4477) !important;
    font-weight: 600 !important;
    border-radius: 4px !important;
}

/* Portada y tarjetas del panel */
html body.admin-dashboard-body .admin-hero-card,
html body.admin-dashboard-body .sf-command-hero {
    background: var(--sf-navy) !important;
    background-image: none !important;
    border: 1px solid #0B2038 !important;
    border-radius: var(--sf-radius) !important;
    box-shadow: none !important;
    overflow: visible !important;
    min-height: 0 !important;
    height: auto !important;
    color: #FFFFFF !important;
}
html body.admin-dashboard-body .sf-command-hero h1,
html body.admin-dashboard-body .sf-command-hero h2,
html body.admin-dashboard-body .admin-hero-card h2 { color: #FFFFFF !important; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem) !important; }
html body.admin-dashboard-body .sf-command-hero p,
html body.admin-dashboard-body .admin-hero-card p { color: #C6D5E4 !important; }
html body.admin-dashboard-body .sf-command-hero .eyebrow {
    background: rgba(255, 255, 255, .1) !important;
    color: #E7EEF6 !important;
}

html body.admin-dashboard-body .stat-card {
    border-radius: var(--sf-radius) !important;
    box-shadow: var(--sf-shadow-sm) !important;
    padding: 1rem 1.1rem !important;
    border-left: 3px solid var(--sf-blue) !important;
    min-height: 0 !important;
}
html body.admin-dashboard-body .stat-card::before,
html body.admin-dashboard-body .stat-card::after { display: none !important; }
html body.admin-dashboard-body .stat-card strong { font-family: var(--sf-font-head) !important; font-size: 1.5rem !important; letter-spacing: 0 !important; }
html body.admin-dashboard-body .stat-card span { color: var(--sf-text-muted) !important; font-weight: 600 !important; font-size: .78rem !important; text-transform: uppercase !important; letter-spacing: .07em !important; }
html body.admin-dashboard-body .stat-card small { color: var(--sf-text-soft) !important; font-weight: 500 !important; }

html body.admin-dashboard-body .kpi-icon,
html body.admin-dashboard-body .sf-command-module__icon,
html body.admin-dashboard-body .sf-command-action__icon {
    width: 40px !important; height: 40px !important;
    border-radius: 8px !important;
    background: var(--sf-info-soft) !important;
    background-image: none !important;
    color: var(--sf-blue) !important;
    box-shadow: none !important;
    font-size: 18px !important;
    transform: none !important;
}
html body.admin-dashboard-body .kpi-icon::after,
html body.admin-dashboard-body .sf-command-action::after { display: none !important; }
html body.admin-dashboard-body .kpi-icon i,
html body.admin-dashboard-body .kpi-icon svg { width: 20px !important; height: 20px !important; }
html body.admin-dashboard-body .sf-command-kpi:hover,
html body.admin-dashboard-body .sf-command-module:hover,
html body.admin-dashboard-body .sf-command-action:hover,
html body.admin-dashboard-body .admin-module-card:hover {
    transform: none !important;
    box-shadow: var(--sf-shadow-sm) !important;
    border-color: var(--sf-line-strong) !important;
}
html body.admin-dashboard-body .sf-command-action,
html body.admin-dashboard-body .admin-module-card {
    background: #FFFFFF !important;
    background-image: none !important;
    border-radius: var(--sf-radius) !important;
    box-shadow: var(--sf-shadow-sm) !important;
    min-height: 0 !important;
}
html body.admin-dashboard-body .admin-module-card::before { background: var(--sf-info-soft) !important; box-shadow: none !important; }
html body.admin-dashboard-body .admin-module-card::after { color: var(--sf-text-muted) !important; }
html body.admin-dashboard-body .admin-progress__fill,
html body.admin-dashboard-body .admin-sales-bars__bar { background: var(--sf-blue) !important; background-image: none !important; }
html body.admin-dashboard-body .admin-sales-bars { background: #FFFFFF !important; background-image: none !important; border: 1px solid var(--sf-line) !important; }

/* Tablas y formularios */
html body.admin-dashboard-body .table-wrap { border-radius: var(--sf-radius) !important; box-shadow: var(--sf-shadow-sm) !important; }
html body.admin-dashboard-body .data-table th {
    background: var(--sf-bg-alt) !important;
    color: var(--sf-navy) !important;
    font-weight: 600 !important;
    font-size: .74rem !important;
    text-transform: uppercase !important;
    letter-spacing: .07em !important;
}
html body.admin-dashboard-body .data-table td { color: var(--sf-text) !important; }
html body.admin-dashboard-body .data-table tbody tr:hover { background: var(--sf-bg-alt) !important; }
html body.admin-dashboard-body input,
html body.admin-dashboard-body select,
html body.admin-dashboard-body textarea {
    border-radius: var(--sf-radius-sm) !important;
    font-weight: 400 !important;
    border-color: var(--sf-line-strong) !important;
}
html body.admin-dashboard-body input:focus,
html body.admin-dashboard-body select:focus,
html body.admin-dashboard-body textarea:focus {
    border-color: var(--sf-blue) !important;
    box-shadow: 0 0 0 3px rgba(27, 79, 138, .16) !important;
}
html body.admin-dashboard-body label span { color: var(--sf-navy) !important; font-weight: 600 !important; font-size: .85rem !important; }
html body.admin-dashboard-body .badge { font-weight: 600 !important; border-radius: 4px !important; }
html body.admin-dashboard-body .admin-shell-footer { background: #FFFFFF !important; color: var(--sf-text-muted) !important; }

/* Tablero de mando administrativo (sf-command-*) */
html body.admin-dashboard-body .sf-admin-command__bg { display: none !important; }
html body.admin-dashboard-body .sf-admin-command { background: transparent !important; }
html body.admin-dashboard-body .sf-command-hero__actions .btn--ghost {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, .38) !important;
    color: #FFFFFF !important;
}
html body.admin-dashboard-body .sf-command-hero__actions .btn--ghost:hover { background: rgba(255, 255, 255, .12) !important; }
html body.admin-dashboard-body .sf-command-hero__actions .btn--primary {
    background: #FFFFFF !important;
    border-color: #FFFFFF !important;
    color: var(--sf-navy) !important;
}
html body.admin-dashboard-body .sf-command-eyebrow {
    color: var(--sf-blue) !important;
    font-weight: 600 !important;
    letter-spacing: .1em !important;
}
html body.admin-dashboard-body .sf-command-hero .sf-command-eyebrow { color: #9FBBD9 !important; }
html body.admin-dashboard-body .sf-command-eyebrow::before,
html body.admin-dashboard-body .sf-command-eyebrow::after { background: currentColor !important; }
html body.admin-dashboard-body .sf-command-health {
    background: rgba(255, 255, 255, .07) !important;
    background-image: none !important;
    border: 1px solid rgba(255, 255, 255, .16) !important;
    border-radius: var(--sf-radius) !important;
    box-shadow: none !important;
}
html body.admin-dashboard-body .sf-command-health a,
html body.admin-dashboard-body .sf-command-hero a:not(.btn) { color: #FFFFFF !important; }
html body.admin-dashboard-body .sf-command-kpi,
html body.admin-dashboard-body .sf-command-panel,
html body.admin-dashboard-body .sf-command-module {
    background: #FFFFFF !important;
    background-image: none !important;
    border: 1px solid var(--sf-line) !important;
    border-radius: var(--sf-radius) !important;
    box-shadow: var(--sf-shadow-sm) !important;
    overflow: hidden !important;
}
html body.admin-dashboard-body .sf-command-kpi::before,
html body.admin-dashboard-body .sf-command-kpi::after,
html body.admin-dashboard-body .sf-command-panel::before,
html body.admin-dashboard-body .sf-command-panel::after,
html body.admin-dashboard-body .sf-command-module::before,
html body.admin-dashboard-body .sf-command-module::after { display: none !important; }
html body.admin-dashboard-body .sf-command-kpi__icon,
html body.admin-dashboard-body .sf-command-kpi__icon.sales,
html body.admin-dashboard-body .sf-command-kpi__icon.students,
html body.admin-dashboard-body .sf-command-kpi__icon.courses,
html body.admin-dashboard-body .sf-command-kpi__icon.money,
html body.admin-dashboard-body .sf-command-module__icon,
html body.admin-dashboard-body .sf-command-action__icon {
    background: var(--sf-info-soft) !important;
    background-image: none !important;
    color: var(--sf-blue) !important;
    box-shadow: none !important;
    border-radius: 8px !important;
    width: 40px !important; height: 40px !important;
}
html body.admin-dashboard-body .sf-command-chart__bar,
html body.admin-dashboard-body .sf-command-progress-list .sf-command-progress__fill,
html body.admin-dashboard-body [class*="progress"] > span,
html body.admin-dashboard-body [class*="progress__fill"] {
    background: var(--sf-blue) !important;
    background-image: none !important;
}
html body.admin-dashboard-body .sf-command-link { color: var(--sf-blue) !important; font-weight: 600 !important; }
html body.admin-dashboard-body .sf-command-ranking__item,
html body.admin-dashboard-body .sf-command-mini-metrics > * {
    background: #FFFFFF !important;
    border: 1px solid var(--sf-line) !important;
    border-radius: var(--sf-radius-sm) !important;
    box-shadow: none !important;
}
html body.admin-dashboard-body .sf-command-empty {
    border: 1px dashed var(--sf-line-strong) !important;
    border-radius: var(--sf-radius-sm) !important;
    background: #FFFFFF !important;
    color: var(--sf-text-soft) !important;
}
html body.admin-dashboard-body .sf-command-progress-list i { background: #E3E9F1 !important; }
html body.admin-dashboard-body .sf-command-progress-list i u { background: var(--sf-blue) !important; background-image: none !important; }
html body.admin-dashboard-body .sf-command-progress-list em { color: var(--sf-navy) !important; font-style: normal !important; font-weight: 600 !important; }
html body.admin-dashboard-body .sf-command-progress-list b { color: var(--sf-text) !important; font-weight: 600 !important; }
html body.admin-dashboard-body .sf-command-ring {
    background: conic-gradient(var(--sf-blue) calc(var(--score, 0) * 1%), #2C4763 0) !important;
    box-shadow: none !important;
}
html body.admin-dashboard-body .sf-command-ring span { background: var(--sf-navy) !important; color: #FFFFFF !important; }
html body.admin-dashboard-body .sf-command-health__top strong { color: #FFFFFF !important; }
html body.admin-dashboard-body .admin-user-chip__avatar::after { background: var(--sf-success) !important; width: 11px !important; height: 11px !important; }
html body.admin-dashboard-body .admin-user-chip__chev { color: var(--sf-text-muted) !important; }
html body.admin-dashboard-body .sf-command-chart__item strong { color: var(--sf-navy) !important; font-size: .8rem !important; }

/* ── Catálogo: buscador y filtros ───────────────────────────── */
.sf-catalog-search{display:grid;gap:18px}
.sf-catalog-search__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:14px;align-items:end}
.sf-catalog-search__field{display:grid;gap:6px;min-width:0}
.sf-catalog-search__field>span{font-size:.82rem;font-weight:600;color:var(--sf-navy);letter-spacing:.01em}
.sf-catalog-search__field input,
.sf-catalog-search__field select{width:100%;border:1px solid #d5dde8;border-radius:var(--sf-radius-sm,6px);padding:.7rem .85rem;background:#fff;color:#1b2330;font-family:inherit;font-size:.95rem}
.sf-catalog-search__field input:focus-visible,
.sf-catalog-search__field select:focus-visible{outline:2px solid var(--sf-blue,#1B4F8A);outline-offset:1px}
.sf-catalog-search__actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;border-top:1px solid #e3e9f1;padding-top:14px}
.sf-catalog-search__count{margin:0;margin-left:auto;font-size:.9rem;font-weight:600;color:#4a5768}
.sf-catalog-search .is-disabled{opacity:.5;pointer-events:none}
.sf-catalog-active{display:grid;gap:8px;margin-bottom:18px}
.sf-catalog-chips{display:flex;flex-wrap:wrap;gap:8px}
.sf-catalog-chips .badge{background:#eaf0f8;color:var(--sf-navy,#0F2A47);border:1px solid #d5dde8;border-radius:999px;padding:.28rem .7rem;font-size:.82rem;font-weight:600}
@media (max-width:960px){.sf-catalog-search__grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.sf-catalog-search__grid{grid-template-columns:1fr}.sf-catalog-search__count{margin-left:0;width:100%}}
body .catalog-filters.sf-catalog-search{display:block!important;grid-template-columns:none!important}
body .sf-catalog-search .catalog-filters__intro{margin-bottom:16px}
body .sf-catalog-search .catalog-filters__intro h2{font-size:1.5rem;margin:0 0 6px}
body .sf-catalog-search__grid{display:grid!important;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr!important;gap:14px!important}
body .page-hero--catalog h1,body .page-hero--catalog p,body .page-hero--catalog .eyebrow{color:#fff!important}
body .page-hero--catalog p{color:#dbe6f2!important}
@media (max-width:960px){body .sf-catalog-search__grid{grid-template-columns:1fr 1fr!important}}
@media (max-width:600px){body .sf-catalog-search__grid{grid-template-columns:1fr!important}}

/* ── Unificación cromática final: azul institucional ───────── */
:root,html,body{
  --sf-green:#1B4F8A;--sf-green-500:#1B4F8A;--sf-green-600:#173F70;--sf-green-700:#0F2A47;
  --sf-green-100:#eaf0f8;--sf-green-soft:#eaf0f8;
  --sf-labs-green:#1B4F8A;--sf-labs-green-2:#173F70;--sf-labs-green-soft:#eaf0f8;
  --sf-v37-green:#1B4F8A;--sf-v37-green-2:#173F70;
  --sf-verde-medico:#1B4F8A;--sf-teal-600:#1B4F8A;--sf-teal-700:#0F2A47;--sf-teal-100:#eaf0f8;
  --tm-green:#1B4F8A;--tm-teal:#173F70;
  --primary:#1B4F8A;--primary-dark:#0F2A47;
  --admin-green:#1B4F8A;--admin-navy:#0F2A47;
  --sf-verde-aprobacion:#0E9F6E;--success:#0E9F6E;--sf-success-2:#0E9F6E;
}
/* Textos sobre fondos oscuros: contraste garantizado */
body .page-hero h1,body .page-hero .eyebrow,body .hero h1,body .sf-hero h1{color:#fff!important}
body .page-hero p,body .hero p,body .sf-hero p{color:#dce6f2!important}
/* Botones y acentos que quedaban verdes */
body .site-header .search-btn,body .site-header button[type="submit"],
body .header-search button,body .btn--primary,body .academy-btn--primary,
body .btn-primary,body .cta,body .cta--primary{background:var(--sf-blue,#1B4F8A)!important;border-color:var(--sf-blue,#1B4F8A)!important;color:#fff!important}
body .site-header .search-btn:hover,body .btn--primary:hover,body .academy-btn--primary:hover,
body .btn-primary:hover,body .cta--primary:hover{background:var(--sf-navy,#0F2A47)!important;border-color:var(--sf-navy,#0F2A47)!important}
body [class*="assistant"] button,body .ai-assistant__toggle,body #sf-assistant-toggle{background:var(--sf-navy,#0F2A47)!important;color:#fff!important;border-color:var(--sf-navy,#0F2A47)!important}
/* Marcas de verificación y estados de éxito conservan verde sobrio */
body .check,body .list-check li::before,body .badge--success{color:var(--sf-success,#0E9F6E)!important}
/* Bordes decorativos con degradado verde → azul institucional */
body .card::before,body .panel::before,body .combo-card::before,body .course-card::before{background:linear-gradient(90deg,var(--sf-navy,#0F2A47),var(--sf-blue,#1B4F8A))!important}
/* Contraste en bloques oscuros y iconos de tarjetas */
body .hero .stat-card,body .hero [class*="stat"],body .sf-hero [class*="stat"]{background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.22)!important}
body .hero [class*="stat"] strong,body .hero [class*="stat"] b,body .hero [class*="stat"] .num,
body .hero [class*="stat"] span,body .sf-hero [class*="stat"] *{color:#fff!important;opacity:1!important}
body .hero [class*="stat"] small,body .hero [class*="stat"] p{color:#d7e3f1!important}
body .trust-strip,body [class*="trust"]{color:#e6eef8!important}
body [class*="feature"] [class*="icon"],body .card [class*="icon"],body .panel [class*="icon"]{background:var(--sf-blue,#1B4F8A)!important;color:#fff!important;background-image:none!important}
body .site-header .btn,body .site-header .cta,body .site-header a[class*="primary"]{background:var(--sf-blue,#1B4F8A)!important;background-image:none!important;border-color:var(--sf-blue,#1B4F8A)!important;color:#fff!important}
body .sf-hero__stat{background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.24)!important}
body .sf-hero__stat strong{color:#fff!important;-webkit-text-fill-color:#fff!important;background-image:none!important}
body .sf-hero__stat span{color:#d9e5f3!important}
body .sf-trust-badge{color:#eaf1f9!important}
body .sf-trust-badge__icon{background:rgba(255,255,255,.14)!important;color:#fff!important}
body .sf-trust-badge__icon svg{stroke:#fff!important;color:#fff!important}
body .page-hero h1,body .catalog-hero h1,body .page-hero--catalog h1{
  color:#fff!important;-webkit-text-fill-color:#fff!important;background:none!important;background-image:none!important;-webkit-background-clip:border-box!important;text-shadow:none!important}
body .page-hero .eyebrow,body .catalog-hero .eyebrow{color:#fff!important;-webkit-text-fill-color:#fff!important;background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.28)!important}
body .catalog-hero p,body .page-hero--catalog p{color:#dbe6f2!important;-webkit-text-fill-color:#dbe6f2!important}
body .catalog-hero .panel,body .page-hero--catalog .panel,body .catalog-hero .card{background:#fff!important}
body .catalog-hero .card p,body .catalog-hero .panel p{color:#4a5768!important;-webkit-text-fill-color:#4a5768!important}
/* Contenido siempre visible: sin desvanecidos que dejen la página en blanco */
body .sf-animate,body .sf-animate--scale,body .sf-animate--slide-left,body .sf-animate--slide-right,
body [class*="sf-animate"]{opacity:1!important;transform:none!important;filter:none!important;visibility:visible!important;transition:none!important}
/* Portada del catálogo: contraste sólido */
body .catalog-hero h1,body .catalog-hero h2{color:#fff!important;opacity:1!important}
body .catalog-hero p,body .catalog-hero li{color:#DCE6F2!important;opacity:1!important}
body .catalog-hero .badge,body .catalog-hero [class*="eyebrow"]{background:rgba(255,255,255,.14)!important;color:#fff!important;border:1px solid rgba(255,255,255,.35)!important}
body .catalog-hero .card,body .catalog-hero .panel{background:#fff!important}
body .catalog-hero .card *,body .catalog-hero .panel *{color:#0F2A47!important}
body .catalog-hero .card p,body .catalog-hero .panel p{color:#3F5670!important}
/* Verdes sueltos restantes a azul institucional */
body .btn--primary,body .cta,body a.cta,body .search-btn,body .hero-cta,body .nav-cta,body [class*="btn"][class*="cta"]{background:#1B4F8A!important;background-image:none!important;color:#fff!important;border-color:#1B4F8A!important}
body .floating-wa,body .sf-assistant-fab,body [class*="assistant"][class*="fab"],body [class*="chat"][class*="fab"]{background:#1B4F8A!important;background-image:none!important;color:#fff!important}
body [class*="eyebrow"] i,body .badge i{color:#1B4F8A!important}
/* Portada catálogo: texto nítido y sin degradados que lo aclaren */
html body .page-hero--catalog{background:linear-gradient(135deg,#0F2A47,#123f6d)!important}
html body .page-hero--catalog::before,html body .page-hero--catalog::after{display:none!important}
html body .page-hero--catalog h1,html body .catalog-hero h1{color:#fff!important;-webkit-text-fill-color:#fff!important;background:none!important;background-image:none!important;background-clip:border-box!important;-webkit-background-clip:border-box!important;text-shadow:none!important;opacity:1!important;filter:none!important}
html body .page-hero--catalog p,html body .catalog-hero p,html body .page-hero--catalog .hero-trustbar *{color:#E4ECF6!important;-webkit-text-fill-color:#E4ECF6!important;opacity:1!important}
html body .page-hero--catalog .hero-trustbar>*{background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.34)!important}
html body .page-hero--catalog .card h2,html body .page-hero--catalog .card h3,html body .page-hero--catalog .panel h2{color:#0F2A47!important;-webkit-text-fill-color:#0F2A47!important}
html body .page-hero--catalog .card p,html body .page-hero--catalog .panel p{color:#42597A!important;-webkit-text-fill-color:#42597A!important}
html body .page-hero--catalog h1{font-weight:700!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html body .page-hero--catalog .hero-card{background:transparent!important}
/* Portada catálogo: legibilidad definitiva */
html body .page-hero--catalog h1{font-family:'IBM Plex Sans',system-ui,sans-serif!important;font-weight:700!important;letter-spacing:-.01em!important;color:#FFFFFF!important;-webkit-text-fill-color:#FFFFFF!important}
html body .page-hero--catalog .hero-trustbar>*{color:#FFFFFF!important;-webkit-text-fill-color:#FFFFFF!important;font-weight:600!important;background:rgba(255,255,255,.16)!important}
html body .page-hero--catalog .hero-trustbar>* svg,html body .page-hero--catalog .hero-trustbar>* i{color:#FFFFFF!important;fill:#FFFFFF!important}
html body .page-hero--catalog p{color:#EAF1F9!important;-webkit-text-fill-color:#EAF1F9!important;font-weight:500!important}
/* La portada del catálogo no debe tener tarjeta clara detrás del texto blanco */
html body .page-hero--catalog .catalog-hero{background:transparent!important;background-image:none!important;box-shadow:none!important;border:0!important;backdrop-filter:none!important}
html body .page-hero--catalog .catalog-highlight{background:#FFFFFF!important;border:1px solid rgba(15,42,71,.08)!important;box-shadow:0 12px 30px rgba(15,42,71,.18)!important}
html body .page-hero--catalog .catalog-highlight strong{color:#0F2A47!important;-webkit-text-fill-color:#0F2A47!important}
html body .page-hero--catalog .catalog-highlight p{color:#42597A!important;-webkit-text-fill-color:#42597A!important}
html body .page-hero--catalog .eyebrow{background:rgba(255,255,255,.16)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:1px solid rgba(255,255,255,.34)!important}

html body .page-hero--catalog .catalog-hero>div:first-child{background:transparent!important;box-shadow:none!important}
html body .page-hero--catalog h1{text-align:left!important}
html body .page-hero--catalog p{text-align:left!important}

/* ==========================================================================
   Mi ruta de aprendizaje (panel del estudiante)
   ========================================================================== */
body .route-list{list-style:none;margin:1.25rem 0 0;padding:0;display:grid;gap:.85rem;counter-reset:none}
body .route-item{display:grid;grid-template-columns:2.25rem 1fr auto;gap:1rem;align-items:start;background:#fff;border:1px solid var(--sf-border,#DCE3EC);border-left:4px solid var(--sf-blue,#1B4F8A);border-radius:var(--sf-radius,10px);padding:1rem 1.15rem;box-shadow:var(--sf-shadow-sm,0 1px 2px rgba(15,42,71,.06))}
body .route-item--warning{border-left-color:var(--sf-warning,#B4740E)}
body .route-item--danger{border-left-color:var(--sf-danger,#B3261E)}
body .route-item--success{border-left-color:var(--sf-success,#0E9F6E)}
body .route-item__step{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--sf-info-soft,#EAF1F9);color:var(--sf-navy,#0F2A47);font-weight:700;font-size:.95rem}
body .route-item__body h3{margin:.45rem 0 .3rem;font-size:1.02rem;line-height:1.35;color:var(--sf-navy,#0F2A47)}
body .route-item__body p{margin:0;color:#4A5B70;font-size:.93rem;line-height:1.5}
body .route-item__meta{margin-top:.4rem!important;font-size:.83rem!important;color:#6A7A8D!important;text-transform:none}
body .route-item__action{align-self:center;white-space:nowrap}
body .route-progress{display:block;width:100%;min-width:110px;height:8px;border-radius:99px;background:#E6ECF3;overflow:hidden;margin-bottom:.25rem}
body .route-progress>span{display:block;height:100%;border-radius:99px;background:var(--sf-blue,#1B4F8A)}
@media (max-width:720px){
  body .route-item{grid-template-columns:2rem 1fr;gap:.75rem}
  body .route-item__action{grid-column:1 / -1;align-self:start}
  body .route-item__action .btn{width:100%;text-align:center}
}
body--student-v44 .stat-card strong,
html body.body--student-v44 .stat-card strong{color:var(--sf-navy,#0F2A47)!important;-webkit-text-fill-color:var(--sf-navy,#0F2A47)!important;background:none!important;background-image:none!important;-webkit-background-clip:border-box!important;text-shadow:none!important;font-family:'IBM Plex Sans',system-ui,sans-serif!important;font-weight:700!important}
html body.body--student-v44 .stat-card span{color:#4A5B70!important}

/* ===== Constancia: intensidad horaria y competencias (v49) ===== */
.certificate-c__main{margin-bottom:6px!important}
.certificate-c__competencies{position:relative;z-index:1;margin:6px auto 0;max-width:780px;text-align:center;border-top:1px solid rgba(201,168,92,.55);border-bottom:1px solid rgba(201,168,92,.35);padding:7px 10px}
.certificate-c__competencies-block>span{display:block;font-size:8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#a17d2f}
.certificate-c__competencies-block ul{list-style:none;margin:5px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:3px 18px;text-align:left}
.certificate-c__competencies-block li{position:relative;padding-left:11px;font-size:9px;line-height:1.3;color:#41586f}
.certificate-c__competencies-block li::before{content:"";position:absolute;left:0;top:5px;width:4px;height:4px;border-radius:50%;background:#0b477d}
.certificate-c__hours-note{margin:6px 0 0;font-size:8px;font-style:italic;color:#67788a}
.certificate-c__lower{margin-top:12px!important}
@media(max-width:700px){.certificate-c__competencies-block ul{grid-template-columns:1fr}}
body .certificate-c__verification .qr-box{width:78px;height:78px;min-width:0;min-height:0;padding:3px;margin:0;border-radius:4px;box-shadow:none;border:1px solid #d5c18c;background:#fff;display:block}
body .certificate-c__verification .qr-box canvas,body .certificate-c__verification .qr-box img{width:100%!important;height:100%!important;display:block}
body .certificate-c{display:flex;flex-direction:column}
body .certificate-c__lower{margin-top:auto!important;margin-bottom:14px}
body .certificate-c__competencies{margin-bottom:4px}
body .certificate-c__main{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;gap:2px}
body .certificate-c__competencies{margin-bottom:10px}

/* Indicadores del panel docente: contraste y sin adornos verdes */
html body.body--teacher-v33 .stat-card strong,
html body.body--teacher-v33 .stat-card span{color:var(--sf-navy,#0F2A47)!important;-webkit-text-fill-color:var(--sf-navy,#0F2A47)!important;background:none!important;background-image:none!important;text-shadow:none!important;font-family:'IBM Plex Sans',system-ui,sans-serif!important}
html body.body--teacher-v33 .stat-card span{color:#5b6b80!important;-webkit-text-fill-color:#5b6b80!important;font-weight:600!important}
html body.body--teacher-v33 .stat-card{padding:1.1rem 1.15rem!important;border-left:4px solid var(--sf-blue,#1B4F8A)!important}
html body.body--teacher-v33 .stat-card::before{display:none!important}

/* Lista de pasos automáticos (links de pago) */
html body .admin-steps {
    margin: 0;
    padding-left: 1.2rem;
    display: grid;
    gap: .45rem;
    color: var(--sf-navy, #0F2A47);
    font-size: .95rem;
    line-height: 1.5;
}
html body .admin-steps li { padding-left: .2rem; }

/* ===== Acceso con Gmail y método de pago recomendado ===== */
html body .auth-divider {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 1rem 0 .85rem;
    color: #5b6b80;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}
html body .auth-divider::before,
html body .auth-divider::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: rgba(15, 42, 71, .14);
}
html body .btn--google {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    background: #FFFFFF !important;
    color: var(--sf-navy, #0F2A47) !important;
    border: 1px solid rgba(15, 42, 71, .22) !important;
    font-weight: 600;
}
html body .btn--google:hover,
html body .btn--google:focus-visible {
    background: #F5F7FA !important;
    border-color: var(--sf-blue, #1B4F8A) !important;
}
html body .btn--google svg { flex: 0 0 auto; }
html body .payment-option--recommended {
    border-color: var(--sf-blue, #1B4F8A) !important;
    box-shadow: 0 0 0 1px rgba(27, 79, 138, .18);
}
html body .payment-option--recommended .badge {
    margin-left: .5rem;
    vertical-align: middle;
}

/* Publicación automática en YouTube */
.admin-inline-form{display:inline-flex;gap:.4rem;flex-wrap:wrap;margin:0}
.text-danger{color:#B42318;font-size:.82rem}
.admin-form .form-grid__full{grid-column:1/-1}
.admin-form textarea{width:100%;border:1px solid rgba(15,42,71,.18);border-radius:var(--sf-radius,10px);padding:.6rem .75rem;font:inherit;background:#fff;color:#0F2A47}
.admin-form textarea:focus{outline:2px solid rgba(27,79,138,.35);border-color:#1B4F8A}
.admin-form code{background:#F5F7FA;border:1px solid rgba(15,42,71,.12);border-radius:6px;padding:.15rem .45rem;font-size:.85em;word-break:break-all}
.checkbox-line{display:flex;align-items:flex-start;gap:.6rem;margin:.6rem 0}
.checkbox-line input[type=checkbox]{width:1.05rem;height:1.05rem;flex:0 0 auto;margin-top:.15rem;accent-color:#1B4F8A}
.checkbox-line span{font-size:.92rem;color:#33455e;line-height:1.45}

/* Confianza y precio promocional en la compra */
.purchase-assurance { margin-top: 1rem; display: grid; gap: .75rem; }
.purchase-assurance__urgency {
    display: flex; gap: .55rem; align-items: flex-start; margin: 0;
    background: #EEF3F9; border: 1px solid #D3DEEB; border-left: 4px solid var(--sf-blue, #1B4F8A);
    border-radius: var(--sf-radius, 10px); padding: .7rem .85rem;
    color: #1F2937; font-size: .92rem; line-height: 1.45;
}
.purchase-assurance__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.purchase-assurance__list li {
    display: flex; gap: .55rem; align-items: flex-start;
    font-size: .9rem; line-height: 1.45; color: #46556B;
}
.purchase-assurance__list li strong { display: block; color: #0F2A47; font-weight: 600; }
.purchase-assurance .assurance__icon { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; margin-top: .12rem; color: var(--sf-blue, #1B4F8A); }
@media (max-width: 720px) {
    .purchase-assurance__urgency, .purchase-assurance__list li { font-size: .88rem; }
}
