/* BFP Campus · capa final de consistencia visual. Se carga al final. */
:root{--bfp-ui-radius-control:10px;--bfp-ui-radius-card:16px;--bfp-ui-radius-hero:20px;--bfp-ui-control-height:40px;--bfp-ui-border:#d7e4ec;--bfp-ui-surface:#fff;--bfp-ui-surface-soft:#f5f9fc;--bfp-ui-ink:#123247;--bfp-ui-muted:#627b8d;--bfp-ui-shadow:0 8px 24px rgba(24,65,99,.08);--bfp-ui-hero-height:270px}
body.bfp-ds-290 .content{background:var(--bfp-ui-surface-soft)}
body.bfp-ds-290 .content :is(.card,.panel,.aside-card,.student-card,.bfp-admin-card,.bfp-admin-empty,.responsive-table,.toolbar,.filter-bar,.table-wrap,.empty,.empty-state,.alerts-empty){border-color:var(--bfp-ui-border);border-radius:var(--bfp-ui-radius-card);box-shadow:var(--bfp-ui-shadow)}
body.bfp-ds-290 .content :is(.card,.panel,.aside-card,.student-card,.bfp-admin-card,.bfp-admin-empty,.responsive-table,.toolbar,.filter-bar,.table-wrap,.empty,.empty-state,.alerts-empty):not(.course-hero):not(.module-builder-hero):not(.module-student-hero){background:var(--bfp-ui-surface);color:var(--bfp-ui-ink)}
/* Controles equivalentes: una única geometría y jerarquía tipográfica. */
body.bfp-ds-290 .content :is(button,.button,.buttonlike,.button-link,.ghost-button,.courses-action,.courses-card__open,.course-open,.card-link){min-height:max(var(--bfp-ui-control-height),2.75em);border-radius:var(--bfp-ui-radius-control);font-size:.8125rem;font-weight:800}
body.bfp-ds-290 .content :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-color:var(--bfp-ui-border);border-radius:var(--bfp-ui-radius-control);color:var(--bfp-ui-ink);background:var(--bfp-ui-surface)}
body.bfp-ds-290 .content :is(.pill,.status,.badge,.chip,.count-pill,.live-chip,.num-badge,.role-chip,.courses-toolbar__count,.courses-card__status){border-radius:999px;font-size:.6875rem;font-weight:800;line-height:1.2}
body.bfp-ds-290 .content :is(.eyebrow,.eyebrow.dark,.kicker,.page-kicker,.section-kicker,.muted-label){font-size:.6875rem;font-weight:800;letter-spacing:.12em}
/* Barra de aplicación, KPIs y estados con el mismo ritmo visual. */
body.bfp-ds-290 .topbar{height:auto;min-height:max(60px,3.5em);padding-block:0}
body.bfp-ds-290 .sidebar .brand-zone{height:auto;min-height:max(84px,4.5em)}
body.bfp-ds-290 .content :is(.kpi,.bfp-kpi,.alert-kpi,.ia-kpis article,.a11y-kpis article,.evidence-kpis article){min-height:max(104px,7.5em);border-radius:var(--bfp-ui-radius-card)}
body.bfp-ds-290 .content :is(.severity,.severity-badge,.alert-status,.cert-status,.case-priority,.role-chip){font-size:.6875rem;font-weight:800;border-radius:999px}
body.bfp-ds-290 .content :is(.severity.high,.severity-badge.high){background:#fff0f0;color:#a53d3d}
body.bfp-ds-290 .content :is(.severity.medium,.severity-badge.medium){background:#fff6df;color:#8c6200}
body.bfp-ds-290 .content :is(.severity.low,.severity-badge.low){background:#edf7fc;color:#286789}
/* Un único marco de cabecera para las áreas principales. */
body.bfp-ds-290 .content :is(.bfp-hero,.global-page-hero,.dashboard-hero,.student-hero,.course-page .course-hero,.people-page .people-hero,.module-page--builder .module-builder-hero,.module-page--student .module-student-hero,.teacher-course-page .teacher-course-hero,.inclusion-evidence-page .inclusion-evidence-hero,.teacher-secondary-hero){min-height:var(--bfp-ui-hero-height);border-radius:var(--bfp-ui-radius-hero);margin-bottom:1.25rem}
/* Escala coherente en modo oscuro. */
body.bfp-ds-290.dark-mode:not(.contrast){--bfp-ui-surface:#112f43;--bfp-ui-surface-soft:#0c2434;--bfp-ui-border:#315269;--bfp-ui-ink:#edf7fb;--bfp-ui-muted:#b1c7d4;--bfp-ui-shadow:0 10px 28px rgba(0,0,0,.24)}
body.bfp-ds-290.dark-mode:not(.contrast) .content,body.bfp-ds-290.dark-mode:not(.contrast) .topbar{background:var(--bfp-ui-surface-soft)!important;color:var(--bfp-ui-ink)}
body.bfp-ds-290.dark-mode:not(.contrast) .content :is(.card,.panel,.aside-card,.student-card,.bfp-admin-card,.bfp-admin-empty,.responsive-table,.toolbar,.filter-bar,.table-wrap,.empty,.empty-state,.alerts-empty):not(.course-hero):not(.module-builder-hero):not(.module-student-hero){background:var(--bfp-ui-surface)!important;color:var(--bfp-ui-ink)!important;border-color:var(--bfp-ui-border)!important}
body.bfp-ds-290.dark-mode:not(.contrast) .content :is(input:not([type=checkbox]):not([type=radio]),select,textarea){background:#0d283a!important;color:var(--bfp-ui-ink)!important;border-color:var(--bfp-ui-border)!important}
body.bfp-ds-290.dark-mode:not(.contrast) .content :is(.muted,.section-note,.panel-subtitle,.field-help){color:var(--bfp-ui-muted)!important}
body.bfp-ds-290.dark-mode:not(.contrast) .content :is(.secondary,.button.secondary,.button.light,.button.ghost-light){background:#1a435b!important;color:#eef8fc!important;border:1px solid #4f86a3!important}
body.bfp-ds-290.dark-mode:not(.contrast) .content :is(.severity.high,.severity-badge.high){background:#4a2630!important;color:#ffd9df!important}
body.bfp-ds-290.dark-mode:not(.contrast) .content :is(.severity.medium,.severity-badge.medium){background:#4b3a1a!important;color:#ffe7a6!important}
body.bfp-ds-290.dark-mode:not(.contrast) .content :is(.severity.low,.severity-badge.low){background:#173f58!important;color:#c9edff!important}
/* Alto contraste real: sólo negro, blanco y grises. */
body.bfp-ds-290.contrast{filter:none!important;background:#000!important;color:#fff!important}
body.bfp-ds-290.contrast :is(.app-shell,.main,.content,.content-inner,.topbar,.sidebar,.sidebar-scrim,dialog,dialog form){background:#000!important;color:#fff!important;box-shadow:none!important;filter:none!important}
body.bfp-ds-290.contrast .content :is(.card,.panel,.aside-card,.student-card,.bfp-admin-card,.bfp-admin-empty,.responsive-table,.toolbar,.filter-bar,.table-wrap,.empty,.empty-state,.alerts-empty,.kpi,.bfp-kpi,.alert-kpi,.notification-card,.message-row,.event-card,.course-card,.course-tile,.courses-card,.people-admin-row,.tracking-student,.task-card,.case-card,.module-row,.metric-row){background:#000!important;color:#fff!important;border:2px solid #fff!important;border-radius:var(--bfp-ui-radius-control)!important;box-shadow:none!important}
body.bfp-ds-290.contrast .content :is(.bfp-hero,.global-page-hero,.dashboard-hero,.student-hero,.course-page .course-hero,.people-page .people-hero,.module-page--builder .module-builder-hero,.module-page--student .module-student-hero,.teacher-course-page .teacher-course-hero,.inclusion-evidence-page .inclusion-evidence-hero,.teacher-secondary-hero){background:#000!important;background-image:none!important;color:#fff!important;border:2px solid #fff!important;border-radius:var(--bfp-ui-radius-control)!important;box-shadow:none!important}
body.bfp-ds-290.contrast :is(h1,h2,h3,h4,h5,h6,p,small,span,b,strong,label,legend,dt,dd,li,td,th,a,.muted,.eyebrow,.eyebrow.dark,.section-note,.panel-subtitle,.field-help){color:#fff!important;text-shadow:none!important}
body.bfp-ds-290.contrast :is(button,.button,.buttonlike,.button-link,.ghost-button,.courses-action,.courses-card__open,.course-open,.card-link){background:#000!important;color:#fff!important;border:2px solid #fff!important;border-radius:var(--bfp-ui-radius-control)!important;box-shadow:none!important;filter:none!important}
body.bfp-ds-290.contrast :is(button,.button,.buttonlike,.button-link,.ghost-button,.courses-action,.courses-card__open,.course-open,.card-link):hover,body.bfp-ds-290.contrast :is(button,.button,.buttonlike,.button-link,.ghost-button,.courses-action,.courses-card__open,.course-open,.card-link):focus-visible{background:#fff!important;color:#000!important;border-color:#fff!important;transform:none!important}
body.bfp-ds-290.contrast :is(input:not([type=checkbox]):not([type=radio]),select,textarea){background:#000!important;color:#fff!important;border:2px solid #fff!important;border-radius:var(--bfp-ui-radius-control)!important}
body.bfp-ds-290.contrast :is(.pill,.status,.badge,.chip,.count-pill,.live-chip,.num-badge,.role-chip,.courses-toolbar__count,.courses-card__status,.kpi-icon,.panel-icon,.quick-number,.module-number,.person i,.empty-symbol,.empty-icon,.notification-icon){background:#000!important;color:#fff!important;border:1px solid #fff!important;box-shadow:none!important}
body.bfp-ds-290.contrast :is(.course-hero__track,.metric-progress,.dashboard-course__progress,.bar-row i){background:#333!important;border:1px solid #fff!important}
body.bfp-ds-290.contrast :is(.course-hero__track span,.metric-progress span,.dashboard-course__progress span,.bar-row em){background:#fff!important}
body.bfp-ds-290.contrast :is(img,video,canvas){filter:grayscale(1) contrast(1.45)!important}
body.bfp-ds-290.contrast :is(svg,svg *){color:#fff!important;stroke:currentColor!important;fill:currentColor!important}
@media(max-width:900px){:root{--bfp-ui-hero-height:0px}body.bfp-ds-290 .topbar{height:auto!important;min-height:max(60px,3.5em)!important}body.bfp-ds-290 .sidebar .brand-zone{height:auto;min-height:max(76px,4em)}body.bfp-ds-290 .content :is(.bfp-hero,.global-page-hero,.dashboard-hero,.student-hero,.course-page .course-hero,.people-page .people-hero,.module-page--builder .module-builder-hero,.module-page--student .module-student-hero,.teacher-course-page .teacher-course-hero,.inclusion-evidence-page .inclusion-evidence-hero,.teacher-secondary-hero){min-height:0}}
@media(max-width:640px){body.bfp-ds-290 .content :is(button,.button,.buttonlike,.button-link,.ghost-button,.courses-action,.courses-card__open,.course-open,.card-link){min-height:42px}body.bfp-ds-290 .content :is(.card,.panel,.aside-card,.student-card,.bfp-admin-card,.bfp-admin-empty,.responsive-table,.toolbar,.filter-bar,.table-wrap,.empty,.empty-state,.alerts-empty){border-radius:14px}}
