/* RC25 | Unified design system. Loaded after page CSS, safe for existing Django forms. */
:root{
 --ds-green:#087b5d;--ds-green-dark:#07543f;--ds-green-hover:#066449;
 --ds-ink:#203e33;--ds-text:#385448;--ds-muted:#71867b;
 --ds-line:#dce9e2;--ds-line-soft:#ecf2ee;--ds-bg:#f4f8f6;
 --ds-soft:#f0f8f4;--ds-surface:#fff;--ds-radius:15px;
 --ds-shadow:0 5px 18px rgba(27,68,51,.035);
 --ds-font:'Cairo',Tahoma,'Segoe UI',sans-serif;
}
html{font-family:var(--ds-font);-webkit-text-size-adjust:100%}
body{font-family:var(--ds-font);font-weight:400;color:var(--ds-text)}
/* Common administration chrome: coherent fonts, menus and controls across ALL subpages. */
.management-shell{--green:var(--ds-green);--ink:var(--ds-ink);--muted:var(--ds-muted);background:var(--ds-bg)!important;font:400 14px/1.8 var(--ds-font)!important}
.management-shell :is(button,input,select,textarea){font-family:var(--ds-font)!important}
.management-shell .management-content{min-width:0;font-size:14px;line-height:1.85;color:var(--ds-text)}
.management-shell .management-content :is(h1,h2,h3,h4,h5,h6){font-family:var(--ds-font)!important;font-weight:600!important;letter-spacing:0!important;line-height:1.65!important;color:var(--ds-ink)}
.management-shell .management-content h1{font-size:clamp(21px,1.65vw,25px)!important}
.management-shell .management-content h2{font-size:17px!important}
.management-shell .management-content h3{font-size:15px!important}
.management-shell .management-content h4{font-size:14px!important}
.management-shell .management-content :is(b,strong){font-weight:600!important}
.management-shell .management-content :is(label,legend){font-size:13px!important;font-weight:500!important;color:#48665a}
.management-shell .management-content :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-size:13.5px!important;font-weight:400!important;min-height:40px;color:var(--ds-ink);border-color:var(--ds-line);border-radius:10px}
.management-shell .management-content :is(input,select,textarea):focus-visible{outline:2px solid #65bc9e;outline-offset:1px}
.management-shell .management-content :is(button,.btn,.button,[role=button]){font-family:var(--ds-font)!important;font-weight:500!important;letter-spacing:0;line-height:1.6}
.management-shell .management-content button:focus-visible,.management-shell .management-content a:focus-visible{outline:2px solid #239a74;outline-offset:3px}
.management-shell .management-content .bi{font-weight:400!important;font-size:16px;line-height:1;vertical-align:middle}
.management-shell .management-content :is(.badge,[class*="-badge"],[class*="-pill"]){font-weight:500!important;letter-spacing:0}
.management-shell .management-content :is(table,thead,tbody,th,td){font-family:var(--ds-font)}
.management-shell .management-content table th{font-size:12px!important;font-weight:600!important;line-height:1.65!important;color:#4d685b}
.management-shell .management-content table td{font-size:12.5px!important;line-height:1.75!important;color:#40594f}
.management-shell .management-content :is(.panel,.stat-card,.card){border-color:var(--ds-line);border-radius:var(--ds-radius);box-shadow:var(--ds-shadow)}
.management-shell .management-content :is(.text-muted,.muted){color:var(--ds-muted)}
.management-shell .management-content :is(.table-responsive,[class*="table-wrap"]){max-width:100%;overflow-x:auto}
.management-topbar .header-main{min-height:66px}
.management-topbar .brand-copy strong{font-size:15px!important;font-weight:600!important}
.management-topbar .brand-copy small{font-size:12px!important;font-weight:400!important}
.management-topbar .header-icon{border-radius:10px}
.management-topbar :is(.header-icon,.brand-mark) .bi{font-size:18px}
.management-topbar .quick-search-copy strong{font-weight:500!important}
.management-sidebar .management-sidebar-head{padding-block:18px}
.management-sidebar .management-sidebar-head strong{font-size:15px!important;font-weight:600!important}
.management-sidebar .management-sidebar-head small{font-size:11.5px!important;font-weight:400!important}
.management-sidebar .management-nav-link{font-size:13.5px!important;font-weight:500!important;min-height:43px;line-height:1.6}
.management-sidebar .management-nav-link.is-active{font-weight:600!important}
.management-sidebar .management-nav-link .bi{font-size:16px!important;font-weight:400!important}
.management-sidebar .management-nav-label{font-size:11px!important;font-weight:500!important}
.management-shell .message-stack .system-message{border-radius:11px;font-size:13px}
/* Page content areas all use the same spacing + surface language, but preserve layout. */
.management-shell .management-content :is(.cal711,.sio,.supi,.asi,.asc,.asm,.sc79,.sd791,.supc,.supd,.fm7204,.fu7205,.vr710,.imp7206,.sys727,.sec,.sl,.sg12,.gd12,.usc,.ei,.perf,.pr,.ae,.oi,.rp19,.ops20,.lead24){max-width:1580px;color:var(--ds-text);font:400 14px/1.82 var(--ds-font);min-width:0}
.management-shell .management-content :is(.cal711,.sio,.supi,.asi,.asc,.asm,.sc79,.sd791,.supc,.supd,.fm7204,.fu7205,.vr710,.imp7206,.sys727,.sec,.sl,.sg12,.gd12,.usc,.ei,.perf,.pr,.ae,.oi,.rp19,.ops20,.lead24) :is(b,strong){font-weight:600!important}
.management-shell .management-content :is(.cal711,.sio,.supi,.asi,.asc,.asm,.sc79,.sd791,.supc,.supd,.fm7204,.fu7205,.vr710,.imp7206,.sys727,.sec,.sl,.sg12,.gd12,.usc,.ei,.perf,.pr,.ae,.oi,.rp19,.ops20,.lead24) :is(p,small){line-height:1.85}
/* Harmonize major page headers: no photography, no regional-specific landscapes. */
.management-shell .management-content :is(.cal-hero,.asi-hero,.sio-hero,.supi-hero,.asc-hero,.asm-hero,.sc79-hero,.sd791-hero,.supc-hero,.fm-head,.fu-hero,.vr-hero,.im-hero,.sys-hero,.sec-hero,.sl-hero,.ei-hero,.perf-hero,.pr-hero,.ae-hero,.rp19-hero,.ops20-hero,.lead24-intro){background:linear-gradient(115deg,#edf8f2 0%,#f9fcfa 60%,#fff 100%)!important;background-image:linear-gradient(115deg,#edf8f2 0%,#f9fcfa 60%,#fff 100%)!important;border:1px solid #d8e9df!important;border-radius:17px!important;box-shadow:var(--ds-shadow)!important}
.management-shell .management-content :is(.cal-card,.asi-card,.sio-card,.supi-card,.asc-card,.asm-card,.sc79-card,.sd791-card,.supc-card,.fm-card,.fu-card,.vr-card,.im-card,.sys-card,.sec-card,.lead24-card,.ops20-card,.rp19-surface,.portal-surface){border-color:var(--ds-line)!important;border-radius:16px!important;box-shadow:var(--ds-shadow)!important}
/* Page-specific text hierarchy. These classes previously varied 8–11px and 800–950 weight. */
.management-shell .management-content :is(.cal-title,.sio-title,.supi-title,.sec-title,.sc79-title,.sd791-title,.vr-title,.asi-title,.fu-title,.im-title,.fm-title,.supc-title,.sys-title,.asc-title,.rp19-title){font-size:clamp(21px,1.7vw,24px)!important;line-height:1.65!important;font-weight:600!important}
.management-shell .management-content :is(.cal-kicker,.sio-eyebrow,.supi-eyebrow,.asi-eyebrow,.sc79-kicker,.sd791-kicker,.fm-kicker,.fu-kicker,.vr-kicker,.im-eyebrow,.sys-kicker,.sec-eyebrow,.supc-eyebrow,.asc-eyebrow,.rp19-eyebrow,.lead24-eyebrow){font-size:12px!important;font-weight:500!important;letter-spacing:0!important}
.management-shell .management-content :is(.cal-sub,.sio-sub,.supi-sub,.asi-sub,.sc79-sub,.sd791-sub,.vr-sub,.fm-sub,.fu-sub,.supc-sub,.asc-sub,.im-sub,.sys-sub,.sec-sub,.rp19-sub){font-size:13px!important;font-weight:400!important;line-height:1.9!important;color:var(--ds-muted)!important}
/* Compact but accessible buttons, all primary actions share a single green. */
.management-shell .management-content :is(.cal-btn,.sio-btn,.supi-btn,.asi-btn,.vr-btn,.fm-btn,.sys-btn,.sec-btn,.sl-btn,.supc-btn,.asc-btn,.im-primary){font-size:12.5px!important;font-weight:500!important;min-height:39px;border-radius:10px!important;line-height:1.6!important}
.management-shell .management-content :is(.cal-btn,.sio-btn,.supi-btn,.asi-btn,.vr-btn,.fm-btn,.sys-btn,.sec-btn,.sl-btn,.supc-btn,.asc-btn,.im-primary):is(.primary,[type=submit]){background:var(--ds-green)!important;border-color:var(--ds-green)!important;color:#fff!important}
.management-shell .management-content :is(.cal-mini,.cal-tab,.sio-tab,.supi-tab,.asi-tab,.vr-page,.sl-btn){font-size:12px!important;font-weight:500!important;min-height:32px}
.management-shell .management-content :is(.cal-input,.cal-select,.fm-select,.vr-select,.im-select){font-size:13px!important;font-weight:400!important;min-height:40px}
/* Calendar: preserve its scheduling functionality and colors, remove miniature typography. */
.management-shell .management-content .cal711 :is(.cal-stat span,.cal-stat small,.cal-field label,.cal-hint,.cal-empty p,.cal-list-head p,.cal-table th,.cal-table td,.cal-secondary,.cal-badge,.cal-foundation-badge,.cal-foundation-box p,.cal-record-box h4,.cal-record strong,.cal-record small,.cal-step-alert,.cal-exc-stat,.cal-exc-note,.cal-week-title,.cal-mini){font-size:12px!important;line-height:1.75!important}
.management-shell .management-content .cal711 .cal-stat strong{font-size:24px!important;font-weight:600!important}
.management-shell .management-content .cal711 :is(.cal-foundation-box h3,.cal-setup-head h2,.cal-list-head h2,.cal-foundation-head h2,.cal-exc-head h2){font-size:16px!important;font-weight:600!important}
.management-shell .management-content .cal711 .cal-table td{padding-block:13px!important}
.management-shell .management-content .cal711 .cal-table th{font-size:12px!important}
/* Import wizards: consistent steps / captions / preview typography. */
.management-shell .management-content :is(.supi,.sio,.asi,.imp7206) :is(.supi-step,.sio-step,.asi-step,.im-step,.supi-stat,.sio-stat,.asi-stat,.supi-pill,.sio-pill,.asi-status,.im-badge){font-size:12px!important;font-weight:500!important}
.management-shell .management-content :is(.supi,.sio,.asi,.imp7206) :is(.supi-table,.sio-table,.asi-table,.im-preview-table) td{font-size:12.5px!important}
.management-shell .management-content :is(.supi,.sio,.asi,.imp7206) :is(.supi-section-head,.sio-section-head,.asi-section-head,.im-section-head){font-size:15px!important;font-weight:600!important}
.management-shell .management-content :is(.supi,.sio,.asi,.imp7206) :is(.supi-drop,.sio-drop,.asi-drop,.im-file-label){border-radius:13px;border-color:#bcdccd}
/* Reports, monitoring and administration tables. */
.management-shell .management-content :is(.fm7204,.vr710,.fu7205,.supc,.sc79,.asc,.pr,.perf,.ei,.oi,.sl,.sg12,.gd12) :is(th,[class*="-table"] th){font-size:12px!important;font-weight:600!important}
.management-shell .management-content :is(.fm7204,.vr710,.fu7205,.supc,.sc79,.asc,.pr,.perf,.ei,.oi,.sl,.sg12,.gd12) :is(td,[class*="-table"] td){font-size:12.5px!important}
.management-shell .management-content :is(.fm7204,.vr710,.fu7205,.supc,.sc79,.asc,.pr,.perf,.ei,.oi,.sl,.sg12,.gd12) :is(.fm-kpi,.vr-stat,.fu-kpi,.supc-stat,.sc79-stat,.perf-kpi){border-radius:13px;border-color:var(--ds-line)}
/* The two already redesigned pages retain their distinct information architecture. */
.management-shell .management-content .lead24 :is(h1,h2,h3){font-weight:600!important}
.management-shell .management-content .ops20 :is(h1,h2,h3){font-weight:600!important}
.management-shell .management-content :is(.ops22-icon,.lead24-icon){stroke-width:1.7!important}
.management-shell .management-content .lead24 :is(.lead24-card,.lead24-kpi,.lead24-intro){box-shadow:var(--ds-shadow)!important}
/* Supervisor portal shares the same typography, cards, forms and icon style. */
body:has(.portal-shell){--portal-green:#087b5d;--portal-green-hover:#066449;--portal-green-soft:#eff8f3;--portal-ink:var(--ds-ink);--portal-text:var(--ds-text);--portal-muted:var(--ds-muted);--portal-bg:var(--ds-bg);--portal-line:var(--ds-line);--portal-shadow:var(--ds-shadow);font:400 14px/1.85 var(--ds-font)!important}
body .portal-shell :is(h1,h2,h3,h4,h5,h6,strong,b){font-family:var(--ds-font)!important;font-weight:600!important}
body .portal-shell :is(h1){font-size:clamp(21px,1.7vw,25px)!important;line-height:1.65!important}
body .portal-shell :is(h2){font-size:17px!important;line-height:1.65!important}
body .portal-shell :is(h3){font-size:15px!important;line-height:1.65!important}
body .portal-shell :is(p,label,small){line-height:1.85}
body .portal-shell :is(label){font-size:13px!important;font-weight:500!important}
body .portal-shell :is(button,input,select,textarea){font-family:var(--ds-font)!important}
body .portal-shell :is(button,.portal-btn){font-weight:500!important;border-radius:10px}
body .portal-shell :is(input:not([type=checkbox]),select,textarea){font-size:13.5px!important;min-height:40px;border-radius:10px;border-color:var(--ds-line)}
body .portal-shell :is(.portal-surface,.portal-card,.portal-panel){border-radius:16px;border-color:var(--ds-line);box-shadow:var(--ds-shadow)}
body .portal-shell :is(.planner-hero,.schools-hero,.ve-head,.history-head,.ws-heading){background-image:linear-gradient(115deg,#edf8f2,#fff)!important;border-color:#d9e8df;border-radius:16px}
body .portal-shell :is(.portal-icon,.bi){font-weight:400!important}
body .portal-shell :focus-visible{outline:2px solid #249971;outline-offset:3px}
/* Login page is standalone; align with the brand without touching authentication. */
body .login-page :is(h1,h2,h3,strong,b){font-weight:600!important}
body .login-page :is(input,button){font-family:var(--ds-font)!important;font-size:14px!important}
body .login-page :is(label,small){font-size:13px!important;font-weight:500!important}
body .login-page :is(.login-card,.login-shell){border-radius:17px;border-color:var(--ds-line)}
/* Mobile: never force a desktop table into the viewport; scroll within its region. */
@media(max-width:920px){
 .management-shell .management-content{font-size:13.5px}
 .management-shell .management-content :is(.cal711,.sio,.supi,.asi,.asc,.asm,.sc79,.sd791,.supc,.supd,.fm7204,.fu7205,.vr710,.imp7206,.sys727,.sec,.sl,.sg12,.gd12,.usc,.ei,.perf,.pr,.ae,.oi,.rp19,.ops20,.lead24){max-width:100%}
 .management-shell .management-content :is(.cal-hero,.sio-hero,.supi-hero,.asi-hero,.vr-hero,.fm-head,.im-hero,.rp19-hero){padding:17px!important}
 .management-shell .management-content :is(.cal711,.sio,.supi,.asi,.vr710,.fm7204,.imp7206) :is(table,[class*="-table"]){max-width:100%}
}
@media(max-width:600px){
 .management-shell .management-content h1{font-size:21px!important}
 .management-shell .management-content h2{font-size:16px!important}
 .management-shell .management-content :is(input:not([type=checkbox]),select,textarea){font-size:14px!important}
}
@media(prefers-reduced-motion:reduce){.management-shell *, .portal-shell *{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Remove residual heavy labels in wizard statistics / academic cards. */
.management-shell .management-content .cal711 :is(.cal-stat span,.cal-stat small,.cal-week-title,.cal-record strong,.cal-badge,.cal-mini,.cal-foundation-badge){font-weight:500!important}
.management-shell .management-content :is(.supi,.sio,.asi,.imp7206) :is(.supi-stat,.sio-stat,.asi-stat,.im-lane-tag,.im-badge,.supi-step,.sio-step,.asi-step){font-weight:500!important}
.management-shell .management-content :is(.cal711,.supi,.sio,.asi,.fm7204,.vr710,.imp7206) :is([class$="-kicker"],[class$="-eyebrow"],[class$="-sub"]){font-weight:400!important}
