:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#12213a;background:#f4f7fb;font-synthesis:none}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;min-width:100%}body{margin:0;background:#f4f7fb;color:#12213a}button,input{font:inherit}a{color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:270px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#0d2345 0%,#091a35 100%);color:#fff;padding:24px 16px 18px;display:flex;flex-direction:column;box-shadow:8px 0 30px rgba(14,34,67,.08);z-index:10}.brand-wrap{display:flex;align-items:center;gap:11px;padding:0 8px 24px;border-bottom:1px solid rgba(255,255,255,.09)}.brand-mark{width:42px;height:42px;border-radius:12px;background:#2f6fed;display:grid;place-items:center;font-size:22px;font-weight:900;box-shadow:0 8px 22px rgba(47,111,237,.28)}.brand-copy{display:grid}.brand-copy strong{font-size:21px;line-height:1}.brand-copy small{font-size:11px;color:#9fb0ca;margin-top:5px}.version{margin-left:auto;font-size:10px;font-weight:800;padding:4px 7px;border:1px solid rgba(255,255,255,.18);border-radius:7px;color:#bfd0ea}.nav-label{font-size:10px;letter-spacing:.13em;font-weight:800;color:#7186a5;margin:22px 12px 8px}.side-nav{display:grid;gap:3px}.side-nav a,.sidebar-footer>a{display:flex;align-items:center;gap:12px;color:#b9c7da;text-decoration:none;padding:10px 12px;border-radius:9px;font-size:14px;font-weight:550;min-height:42px}.side-nav a.active{background:linear-gradient(90deg,#2459b8,#2f6fed);color:#fff;box-shadow:0 6px 18px rgba(35,89,184,.25)}.side-nav a:not(.nav-disabled):hover{background:rgba(255,255,255,.07);color:#fff}.nav-icon{width:21px;text-align:center;font-weight:800}.side-nav em{font-style:normal;font-size:9px;text-transform:uppercase;margin-left:auto;color:#8fa2bd;border:1px solid #415570;border-radius:5px;padding:2px 5px}.nav-disabled{opacity:.68;cursor:default}.sidebar-footer{margin-top:auto}.user-card{margin-top:16px;border-top:1px solid rgba(255,255,255,.09);padding:17px 6px 0;display:grid;grid-template-columns:38px 1fr 30px;align-items:center;gap:10px}.user-avatar,.top-avatar{display:grid;place-items:center;border-radius:50%;font-weight:800}.user-avatar{width:38px;height:38px;background:#24446f;font-size:12px}.user-card strong{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card small{font-size:10px;color:#8fa2bd}.user-card button{border:0;background:transparent;color:#9fb0ca;cursor:pointer;font-size:18px}.main-area{min-width:0}.topbar{height:76px;background:rgba(255,255,255,.96);border-bottom:1px solid #e5eaf1;display:flex;align-items:center;padding:0 32px;position:sticky;top:0;z-index:5}.topbar-title{display:grid}.topbar-title strong{font-size:14px}.topbar-title small{font-size:11px;color:#8490a3;margin-top:3px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:12px;color:#667085}.live-dot{width:8px;height:8px;background:#22a06b;border-radius:50%;box-shadow:0 0 0 4px #e7f8f0}.top-avatar{width:36px;height:36px;background:#e8eef9;color:#204a8e;margin-left:12px;font-size:11px}.mobile-brand{display:none}.content{padding:32px;max-width:1600px;margin:auto}.page-title-row{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px}.page-title-row h1{font-size:28px;letter-spacing:-.02em;margin:5px 0 7px;color:#10213c}.page-title-row p,.panel-head p{margin:0;color:#738096;font-size:14px}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:900;color:#2f6fed}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;border-radius:9px;padding:11px 16px;font-weight:750;font-size:13px;cursor:pointer;transition:.15s}.btn-primary{background:#2463d4;color:#fff;box-shadow:0 5px 14px rgba(36,99,212,.18)}.btn-primary:hover{background:#1c54b8}.btn-secondary{background:#fff;color:#22324c;border:1px solid #dce3ed}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric-card{background:#fff;border:1px solid #e5eaf1;border-radius:13px;padding:19px;display:flex;gap:15px;align-items:center;box-shadow:0 3px 14px rgba(20,39,74,.035)}.metric-icon{width:42px;height:42px;border-radius:11px;background:#edf3ff;color:#2860bd;display:grid;place-items:center;font-size:11px;font-weight:900}.metric-card span,.metric-card small{display:block;color:#77849a}.metric-card span{font-size:12px;font-weight:650}.metric-card strong{font-size:24px;display:block;margin:2px 0}.metric-card small{font-size:11px}.status-value{font-size:18px!important;color:#16845a}.dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,.8fr);gap:18px}.panel{background:#fff;border:1px solid #e5eaf1;border-radius:13px;padding:22px;box-shadow:0 3px 14px rgba(20,39,74,.035)}.panel-head{padding-bottom:17px;border-bottom:1px solid #edf0f5}.panel-head h2{font-size:16px;margin:0 0 4px}.empty-illustration{text-align:center;min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px}.empty-icon{width:62px;height:62px;border-radius:18px;background:#edf3ff;color:#2860bd;display:grid;place-items:center;font-weight:900;font-size:25px;margin-bottom:15px}.empty-illustration h3{font-size:16px;margin:0 0 7px}.empty-illustration p{max-width:480px;color:#7a8699;font-size:13px;line-height:1.6;margin:0 0 18px}.quick-list{display:grid;margin-top:8px}.quick-list a{display:grid;grid-template-columns:38px 1fr 20px;gap:10px;align-items:center;text-decoration:none;padding:14px 3px;border-bottom:1px solid #edf0f5}.quick-list b{width:34px;height:34px;border-radius:9px;background:#edf3ff;color:#2860bd;display:grid;place-items:center}.quick-list strong,.quick-list small{display:block}.quick-list strong{font-size:13px}.quick-list small{font-size:11px;color:#8a95a6;margin-top:3px}.quick-list i{font-style:normal;font-size:22px;color:#9aa6b8}.quick-list .disabled{opacity:.55}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-heading h1{font-size:27px;margin:0 0 5px}.page-heading p{margin:0;color:#738096}.page-heading button,.form-panel button{border:0;background:#2463d4;color:#fff;border-radius:9px;padding:11px 16px;font-weight:750;cursor:pointer}.form-panel{margin-bottom:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.form-grid .wide{grid-column:1/-1}.form-panel label{display:block;font-size:12px;font-weight:750;margin:15px 0 7px}.form-panel input{width:100%;padding:11px 12px;border:1px solid #d7dee8;border-radius:8px;outline:none}.form-panel input:focus{border-color:#2f6fed;box-shadow:0 0 0 3px rgba(47,111,237,.1)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{text-align:left;padding:13px;border-bottom:1px solid #edf0f4}.data-table th{font-size:11px;color:#758198;text-transform:uppercase;letter-spacing:.04em}.status{display:inline-block;padding:4px 9px;border-radius:999px;background:#e8f8f0;color:#167451;font-size:11px;font-weight:700}.empty-state{padding:35px;text-align:center;color:#78859a}
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,46%) 1fr;background:#fff}.auth-showcase{background:radial-gradient(circle at 20% 10%,#234f91 0,#102d59 38%,#091c39 100%);color:#fff;padding:48px 56px;display:flex;flex-direction:column;position:relative;overflow:hidden}.auth-showcase:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-180px;bottom:-100px;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018)}.auth-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.brand-mark.light{background:#fff;color:#153d75;box-shadow:none}.auth-brand strong{font-size:25px}.auth-brand span{font-size:11px;border:1px solid rgba(255,255,255,.25);border-radius:5px;padding:2px 5px;margin-left:7px}.auth-message{margin:auto 0;max-width:520px;position:relative;z-index:1}.light-text{color:#8db7f6}.auth-message h1{font-size:46px;line-height:1.08;letter-spacing:-.035em;margin:13px 0 18px}.auth-message p{font-size:15px;line-height:1.7;color:#b7c8df;max-width:500px}.feature-pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:28px}.feature-pills span{font-size:11px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);padding:8px 10px;border-radius:8px;color:#d6e2f2}.auth-footer{color:#7f96b5;position:relative;z-index:1}.auth-form-side{display:grid;place-items:center;padding:40px}.login-card{width:min(420px,100%)}.mobile-login-brand{display:none}.login-card h2{font-size:30px;letter-spacing:-.025em;margin:8px 0 7px}.login-card>p{color:#7b8799;font-size:14px;margin:0 0 28px}.field{margin:17px 0}.field label{display:block;font-size:12px;font-weight:750;margin-bottom:7px;color:#273650}.field input{width:100%;padding:13px 14px;border:1px solid #d4dce8;border-radius:9px;outline:none;background:#fff}.field input:focus{border-color:#2f6fed;box-shadow:0 0 0 3px rgba(47,111,237,.1)}.login-submit{width:100%;padding:13px;margin-top:7px}.alert-error{display:flex;gap:9px;align-items:center;background:#fff2f1;color:#a43831;border:1px solid #ffd8d5;padding:10px 12px;border-radius:8px;font-size:12px;margin:12px 0}.alert-error b{width:20px;height:20px;border-radius:50%;background:#e85b52;color:#fff;display:grid;place-items:center}.login-security{text-align:center;color:#98a2b3;font-size:11px;margin-top:22px}.label-row{display:flex;justify-content:space-between}
@media(max-width:1050px){.app-shell{grid-template-columns:230px 1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.auth-showcase{padding:38px}.auth-message h1{font-size:38px}}@media(max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-brand{display:block;font-size:20px;font-weight:900}.topbar-title{display:none}.content{padding:22px}.dashboard-grid{grid-template-columns:1fr}.auth-page{grid-template-columns:1fr}.auth-showcase{display:none}.auth-form-side{min-height:100vh;padding:28px}.mobile-login-brand{display:block;font-size:25px;font-weight:900;margin-bottom:45px}.mobile-login-brand span{font-size:11px;color:#2f6fed}.topbar{padding:0 20px}}@media(max-width:560px){.metric-grid{grid-template-columns:1fr}.page-title-row,.page-heading{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.online-label{display:none}}
/* HPro v7 school administration */
.list-toolbar{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid #edf0f5}.list-toolbar h2{margin:0 0 4px;font-size:17px}.list-toolbar span,.muted{color:#7b8799;font-size:12px}.search-box{display:flex;align-items:center;gap:8px;border:1px solid #dce3ed;border-radius:9px;padding:8px 11px;color:#8a96a8}.search-box input{border:0;outline:0;min-width:220px}.school-cards{display:grid;gap:0}.school-card{display:grid;grid-template-columns:48px 1fr auto auto;align-items:center;gap:15px;padding:18px 2px;border-bottom:1px solid #edf0f5}.school-monogram{width:46px;height:46px;border-radius:12px;background:#edf3ff;color:#245bb8;display:grid;place-items:center;font-weight:900}.school-main h3{margin:0 8px 3px 0;font-size:14px;display:inline}.school-code{font-size:9px;font-weight:800;background:#f1f4f8;color:#66758b;border-radius:5px;padding:3px 6px}.school-main p{margin:4px 0;color:#64748b;font-size:12px}.school-main small{color:#929cad}.status.inactive{background:#f2f4f7;color:#667085}.modal-backdrop{position:fixed;inset:0;background:rgba(9,24,48,.52);z-index:100;display:grid;place-items:center;padding:24px;backdrop-filter:blur(3px)}.modal-card{width:min(700px,100%);background:#fff;border-radius:16px;padding:25px;box-shadow:0 30px 80px rgba(10,27,53,.25)}.modal-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:12px}.modal-head h2{margin:5px 0;font-size:22px}.modal-head p{margin:0;color:#7b8799;font-size:13px}.icon-btn{border:0;background:#f3f5f8;border-radius:8px;width:34px;height:34px;font-size:20px;cursor:pointer}.modal-card label,.setup-panel label{display:block;font-size:11px;font-weight:750;color:#34445c;margin:15px 0 7px}.modal-card input,.setup-panel input,.setup-panel select{width:100%;padding:11px 12px;border:1px solid #d7dee8;border-radius:8px;outline:none;background:#fff}.modal-actions,.wizard-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px;padding-top:18px;border-top:1px solid #edf0f5}.wizard-actions{display:grid;grid-template-columns:auto 1fr auto}.setup-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.setup-header h1{margin:5px 0;font-size:28px}.setup-header p{margin:0;color:#738096}.back-link{font-size:12px;color:#63748d;text-decoration:none;display:inline-block;margin-bottom:18px}.setup-progress{background:#fff;border:1px solid #e5eaf1;border-radius:12px;padding:12px 18px;min-width:130px}.setup-progress strong,.setup-progress span{display:block}.setup-progress strong{font-size:22px;color:#2463d4}.setup-progress span{font-size:10px;color:#8490a3}.stepper{display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border:1px solid #e5eaf1;border-radius:13px;padding:10px;margin-bottom:18px}.step{border:0;background:transparent;padding:10px 7px;color:#758198;font-size:11px;font-weight:700;cursor:pointer;border-radius:9px;display:flex;align-items:center;gap:7px}.step span{width:24px;height:24px;border-radius:50%;background:#eef2f7;display:grid;place-items:center;font-size:10px}.step.active{background:#edf3ff;color:#245bb8}.step.active span{background:#2463d4;color:#fff}.step.done span{background:#e7f8f0;color:#16845a}.setup-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,.7fr);gap:18px}.setup-panel{min-height:430px}.setup-panel h2{margin:0 0 5px;font-size:19px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin-top:15px}.detail-grid .wide{grid-column:1/-1}.detail-grid div{background:#f8fafc;border:1px solid #edf1f5;padding:14px;border-radius:9px}.detail-grid label{margin:0 0 5px}.detail-grid strong{font-size:13px}.check-row{height:42px;display:flex;align-items:center;gap:8px}.check-row input{width:auto}.mini-list{margin-top:20px;border-top:1px solid #edf0f5}.mini-list div{display:flex;justify-content:space-between;padding:12px 3px;border-bottom:1px solid #edf0f5;font-size:12px}.mini-list span{color:#7b8799}.setup-guide h3{margin:8px 0 5px}.setup-guide>p{font-size:12px;color:#7b8799}.guide-icon{width:38px;height:38px;border-radius:10px;background:#edf3ff;color:#2463d4;display:grid;place-items:center;font-weight:900}.setup-guide ul{list-style:none;padding:0;margin:20px 0}.setup-guide li{padding:10px 0;border-bottom:1px solid #edf0f5;color:#8793a5;font-size:12px}.setup-guide li:before{content:'○';margin-right:9px}.setup-guide li.done{color:#25364f;font-weight:650}.setup-guide li.done:before{content:'✓';color:#16845a}.complete-box{background:#eaf8f1;border:1px solid #cceedd;border-radius:10px;padding:13px;color:#176b4d}.complete-box b,.complete-box span{display:block}.complete-box span{font-size:10px;margin-top:3px}.alert-success{background:#eaf8f1;color:#176b4d;border:1px solid #cceedd;padding:10px 12px;border-radius:8px;font-size:12px;margin-bottom:14px}.notice{background:#fff7e8;border:1px solid #ffe2aa;padding:12px;border-radius:8px;color:#8b5c13;font-size:12px}
@media(max-width:900px){.setup-layout{grid-template-columns:1fr}.stepper{grid-template-columns:1fr}.setup-guide{order:-1}.school-card{grid-template-columns:48px 1fr auto}.school-card>.btn{grid-column:2/-1;justify-self:start}.list-toolbar{align-items:flex-start;gap:12px;flex-direction:column}.search-box{width:100%}.search-box input{min-width:0;width:100%}}@media(max-width:560px){.setup-header{align-items:flex-start;flex-direction:column;gap:14px}.detail-grid{grid-template-columns:1fr}.school-card{grid-template-columns:42px 1fr}.school-card>.status{grid-column:2}.modal-card{padding:18px}}
/* HPro v8 operational modules */
.two-column-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px}.inline-form{display:grid;grid-template-columns:.7fr 1.4fr .55fr auto;gap:10px;align-items:end;padding:18px 0}.inline-form input,.stack-form input,.stack-form select,.modal-card select,.data-table select{border:1px solid #d7dee8;border-radius:8px;padding:10px 11px;background:#fff;outline:none}.stack-form{display:grid;gap:5px;padding-top:15px}.stack-form label{font-size:11px;font-weight:750;color:#34445c;margin-top:8px}.stack-form .btn{margin-top:14px}.compact{padding:6px 10px;margin-left:8px;font-size:11px}.modal-card select{width:100%}.empty-state h3{margin:0 0 6px;color:#22324c}.empty-state p{margin:0 0 16px}@media(max-width:1000px){.two-column-workspace{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr 1fr}}@media(max-width:600px){.inline-form{grid-template-columns:1fr}}

/* v8.5 student entry */
.student-modal{width:min(880px,100%);max-height:90vh;overflow-y:auto}.student-form-section{padding:16px 0;border-top:1px solid #edf0f5}.student-form-section:first-of-type{border-top:0}.student-form-section h3{margin:0 0 2px;font-size:14px;color:#22324c}.student-form-section label{display:block;font-size:11px;font-weight:750;color:#34445c;margin:12px 0 7px}.student-form-section input,.student-form-section select{width:100%;padding:11px 12px;border:1px solid #d7dee8;border-radius:8px;outline:none;background:#fff}.student-form-section input:focus,.student-form-section select:focus{border-color:#2f6fed;box-shadow:0 0 0 3px rgba(47,111,237,.1)}
/* v8.7 student profile */
.student-profile-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}.profile-summary{text-align:center;position:sticky;top:96px}.profile-photo{width:126px;height:126px;border-radius:24px;background:#edf3ff;color:#245bb8;display:grid;place-items:center;margin:4px auto 14px;overflow:hidden;font-size:34px;font-weight:900}.profile-photo img{width:100%;height:100%;object-fit:cover}.profile-summary>strong,.profile-summary>small{display:block}.profile-summary>small{color:#7b8799;margin:5px 0 16px}.upload-button{position:relative;overflow:hidden}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.profile-facts{margin-top:20px;text-align:left;border-top:1px solid #edf0f5}.profile-facts div{padding:12px 2px;border-bottom:1px solid #edf0f5}.profile-facts span,.profile-facts b{display:block}.profile-facts span{font-size:10px;color:#8a95a6;text-transform:uppercase;letter-spacing:.05em}.profile-facts b{font-size:12px;margin-top:3px}.profile-content{display:grid;gap:18px}.profile-section{padding:22px}.profile-form{padding-top:8px}.profile-form label{display:block;font-size:11px;font-weight:750;color:#34445c;margin-top:12px}.profile-form input,.profile-form select{width:100%;padding:11px 12px;border:1px solid #d7dee8;border-radius:8px;background:#fff;margin-top:7px}.check-profile{display:flex!important;align-items:center;gap:9px;padding-top:22px}.check-profile input{width:auto!important;margin:0!important}.profile-head-action{display:flex;justify-content:space-between;align-items:center;gap:14px}.guardian-card{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:15px 2px;border-bottom:1px solid #edf0f5}.guardian-card strong{font-size:13px;margin-right:9px}.guardian-card p{font-size:12px;margin:5px 0;color:#596980}.guardian-card small{font-size:11px;color:#8a95a6}@media(max-width:900px){.student-profile-grid{grid-template-columns:1fr}.profile-summary{position:static}.profile-head-action{align-items:flex-start;flex-direction:column}}

.photo-help{display:block;color:#8a95a6;margin-top:8px;font-size:10px}.row-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.btn-danger{border-color:#f0caca!important;color:#a83232!important;background:#fff7f7!important}.btn-danger:hover{background:#fff0f0!important}.compact-select{padding:7px 9px;border:1px solid #d7dee8;border-radius:8px;background:#fff;font-size:11px;color:#34445c}

.student-list-tools{display:flex;gap:10px;padding:0 0 16px;align-items:center}.student-search{flex:1;min-width:220px;padding:11px 12px;border:1px solid #d7dee8;border-radius:9px}.student-filter{padding:11px 12px;border:1px solid #d7dee8;border-radius:9px;background:#fff}@media(max-width:700px){.student-list-tools{flex-direction:column;align-items:stretch}}

/* v8.9 admissions workflow */
.admissions-metrics { margin-bottom: 1rem; }
.admission-filters { display:flex; gap:.65rem; align-items:center; flex-wrap:wrap; }
.admission-filters input { min-width:260px; }
.enrolled-action { display:flex; gap:.55rem; align-items:center; flex-wrap:wrap; }
.student-number { font-weight:700; font-size:.86rem; }
@media (max-width: 760px) { .admission-filters { width:100%; } .admission-filters input,.admission-filters select { width:100%; min-width:0; } }

/* v9.0 guided student admission */
.admission-wizard-modal{width:min(920px,96vw);max-height:92vh;overflow:auto}.admission-stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0 22px}.admission-step{display:flex;align-items:center;gap:7px;padding:9px;border-radius:9px;background:#f6f8fb;color:#7a879a}.admission-step span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e7ebf1;font-size:11px;font-weight:800}.admission-step small{font-weight:750}.admission-step.active{background:#edf3ff;color:#245bb8}.admission-step.active span{background:#2463d4;color:#fff}.admission-step.done{color:#176b4d;background:#edf9f3}.admission-step.done span{background:#1b9a6b;color:#fff}.wizard-section{min-height:310px}.wizard-section h3{margin:0 0 4px;font-size:18px}.wizard-section>p{margin:0 0 12px;color:#7b8799;font-size:12px}.admission-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.upload-card{border:1px dashed #cbd5e1;background:#f8fafc;border-radius:12px;padding:20px;display:grid;gap:10px}.upload-card strong{font-size:14px}.upload-card span,.upload-card small{font-size:11px;color:#738096}.upload-card input[type=file]{padding:9px;background:#fff}.admission-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.admission-review-grid>div{padding:14px;border:1px solid #e8edf4;border-radius:10px;background:#f8fafc;display:grid;gap:4px}.admission-review-grid small{color:#7b8799}.admission-review-grid strong{font-size:14px}.admission-review-grid span{font-size:12px;color:#63748d}.admission-wizard-actions{display:grid;grid-template-columns:auto 1fr auto auto}.student-number{font-size:11px;font-weight:800;color:#245bb8;margin-right:6px}@media(max-width:760px){.admission-stepper{grid-template-columns:1fr}.admission-step small{display:block}.admission-upload-grid,.admission-review-grid{grid-template-columns:1fr}.admission-wizard-actions{grid-template-columns:auto 1fr auto}.admission-wizard-actions .btn-primary{grid-column:1/-1}}

/* v9.0.3 admission review workspace */
.admission-review-modal{width:min(980px,96vw);max-height:92vh;overflow:auto}
.review-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 0 4px}
.review-header small{color:#7b8799}.review-header h3{margin:3px 0;font-size:20px}.review-header span{color:#63748d;font-size:12px}
.review-decision-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding-top:18px;border-top:1px solid #e8edf4;margin-top:18px}
.review-decision-bar .decision-spacer{flex:1}.review-decision-bar .student-number{margin-left:4px}
@media(max-width:760px){.review-header{flex-direction:column}.review-decision-bar .decision-spacer{display:none}.review-decision-bar .btn{width:100%}}

/* v9.1 daily attendance */
.attendance-selector{margin-bottom:18px}.attendance-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr)) auto;gap:12px;align-items:end}.attendance-filter-grid label{display:block;font-size:11px;font-weight:750;color:#34445c;margin-bottom:7px}.attendance-filter-grid input,.attendance-filter-grid select,.attendance-status,.attendance-remark{width:100%;padding:10px 11px;border:1px solid #d7dee8;border-radius:8px;background:#fff;outline:none}.attendance-load-action{padding-bottom:1px}.attendance-metrics{margin-top:0}.attendance-register-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid #edf0f5}.attendance-register-head h2{margin:0 0 5px;font-size:17px}.attendance-register-head p{margin:0;color:#7b8799;font-size:12px}.attendance-table-wrap{overflow-x:auto}.attendance-table td:nth-child(1){white-space:nowrap}.attendance-status{min-width:120px}.attendance-remark{min-width:220px}.attendance-empty{min-height:220px}@media(max-width:1100px){.attendance-filter-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.attendance-filter-grid{grid-template-columns:1fr}.attendance-register-head{align-items:flex-start;flex-direction:column}.attendance-register-head .row-actions{width:100%}.attendance-register-head .btn{flex:1}}
/* v9.2 Assessments & Grades */
.grades-two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.grade-inline-create{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}.grade-inline-create input{min-width:140px;flex:1}.subject-chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.subject-chip{border:1px solid #dbe3ef;background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}.subject-chip.selected{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.grade-assessment-form{margin:12px 0}@media(max-width:900px){.grades-two-column{grid-template-columns:1fr}}

/* Grades workflow */
.grade-context-panel{margin-bottom:18px}.grade-step-title{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}.grade-step-title h2{margin:0 0 4px}.grade-step-title p{margin:0;color:#64748b}.grade-step-number{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#2563eb;color:#fff;font-weight:800}.grade-context-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grade-callout{display:flex;gap:10px;align-items:center;margin-top:14px;padding:12px 14px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.grade-callout.success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.grade-subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.grade-subject-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:14px;border:1px solid #dbe3ef;border-radius:12px;background:#fff;cursor:pointer;text-align:left}.grade-subject-card span{font-size:12px;color:#64748b}.grade-subject-card.selected{border:2px solid #2563eb;background:#eff6ff}.grade-subject-card.selected strong{color:#1d4ed8}.grade-subject-action{display:flex;align-items:center;gap:12px;margin-top:14px}.grade-subject-action span{font-size:13px;color:#64748b}.grade-assessment-create{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:12px;align-items:end;padding:14px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;margin-bottom:16px}.grade-assessment-create>div,.grade-roster-controls>div{display:flex;flex-direction:column;gap:6px}.grade-create-action{justify-content:flex-end}.grade-assessment-list{display:flex;flex-direction:column;gap:8px}.grade-assessment-card{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;width:100%;padding:14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;text-align:left}.grade-assessment-card:hover,.grade-assessment-card.selected{border-color:#93c5fd;background:#f8fbff}.grade-assessment-main{display:flex;flex-direction:column;gap:4px}.grade-assessment-main small{color:#64748b}.grade-status{padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.grade-status.draft{background:#fef3c7;color:#92400e}.grade-status.published{background:#dcfce7;color:#166534}.grade-open-text{color:#2563eb;font-weight:700;font-size:13px}.grade-roster-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-bottom:16px}.grade-score-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0}.grade-score-head>div:first-child{display:flex;flex-direction:column;gap:3px}.grade-score-head span{font-size:13px;color:#64748b}.grade-score-input{max-width:140px}.grade-table-wrap{overflow-x:auto}.grade-admin-setup{margin-top:18px}.grade-admin-setup summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none}.grade-admin-setup summary span{font-size:13px;color:#64748b}.grade-setup-body{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px;padding-top:18px;border-top:1px solid #e2e8f0}.grade-setup-body h3{margin:0 0 5px}.grade-setup-body p{margin:0;color:#64748b}.grade-term-create{display:grid;grid-template-columns:1.4fr .55fr 1fr 1fr auto;gap:8px;align-items:center;margin-top:14px}.empty-state.compact{padding:22px;margin-top:10px}@media(max-width:1000px){.grade-assessment-create{grid-template-columns:1fr 1fr}.grade-create-action{grid-column:1/-1}.grade-context-grid,.grade-setup-body{grid-template-columns:1fr}.grade-term-create{grid-template-columns:1fr 1fr}.grade-term-create .btn{grid-column:1/-1}.grade-roster-controls{grid-template-columns:1fr 1fr auto}}@media(max-width:700px){.grade-assessment-create,.grade-roster-controls{grid-template-columns:1fr}.grade-score-head,.grade-subject-action{align-items:flex-start;flex-direction:column}.grade-assessment-card{grid-template-columns:1fr}.grade-context-grid{grid-template-columns:1fr}}

/* v9.3 Finance & Billing */
.finance-tabs{display:flex;gap:8px;margin:0 0 18px}.finance-tab{border:1px solid #dbe3ef;background:#fff;padding:10px 16px;border-radius:10px;font-weight:750;color:#475569;cursor:pointer}.finance-tab.active{background:#2563eb;color:#fff;border-color:#2563eb}.finance-section-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.finance-section-title>div,.finance-account-head>div{display:flex;align-items:flex-start;gap:12px}.finance-section-title h2,.finance-account-head h2{margin:0 0 4px;font-size:18px}.finance-section-title p,.finance-account-head p,.panel-subtitle{margin:0;color:#64748b;font-size:12px}.finance-step{width:30px;height:30px;flex:0 0 30px;border-radius:50%;display:grid;place-items:center;background:#2563eb;color:#fff;font-weight:800}.finance-search-row{display:grid;grid-template-columns:220px 1fr auto;gap:12px;align-items:end}.finance-search-row label,.finance-context-grid label,.finance-fee-create label,.finance-payment-form label{display:block;font-size:11px;font-weight:750;color:#475569;margin-bottom:6px}.finance-search-row input,.finance-search-row select,.finance-context-grid select,.finance-fee-create input,.finance-fee-create select,.finance-payment-form input,.finance-payment-form select{width:100%;padding:10px 11px;border:1px solid #d7dee8;border-radius:8px;background:#fff}.finance-student-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:9px;margin-top:16px}.finance-student-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:13px;border:1px solid #e2e8f0;border-radius:11px;background:#fff;text-align:left;cursor:pointer}.finance-student-card span{color:#64748b;font-size:12px}.finance-student-card b{margin-top:4px;color:#2563eb;font-size:12px}.finance-student-card.selected{border-color:#2563eb;background:#eff6ff}.finance-account-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0 12px}.finance-balance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:14px}.finance-no-bill{padding:18px;border:1px dashed #cbd5e1;border-radius:11px;color:#64748b;background:#f8fafc}.finance-payment-panel{margin-bottom:14px}.finance-payment-form{display:grid;grid-template-columns:1fr .7fr 1fr 1fr 1.4fr auto;gap:10px;align-items:end}.finance-pay-action{display:flex;gap:7px}.finance-ledger-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:14px}.finance-method{display:block;color:#64748b;margin-top:3px}.finance-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.finance-fees-panel,.finance-bill-panel{margin-top:14px}.finance-fee-create{display:grid;grid-template-columns:.8fr 1.5fr .8fr .6fr auto;gap:10px;align-items:end}.finance-fee-list{display:grid;gap:7px;margin-top:14px}.finance-fee-list>div{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px}.finance-fee-list span{display:flex;flex-direction:column}.finance-fee-list small{color:#64748b;margin-top:2px}.finance-bill-panel .finance-section-title{margin-bottom:0}@media(max-width:1000px){.finance-payment-form{grid-template-columns:1fr 1fr 1fr}.finance-ledger-grid{grid-template-columns:1fr}.finance-fee-create{grid-template-columns:1fr 1fr}}@media(max-width:700px){.finance-search-row,.finance-context-grid,.finance-payment-form,.finance-fee-create{grid-template-columns:1fr}.finance-account-head,.finance-section-title{align-items:flex-start;flex-direction:column}.finance-account-head .btn,.finance-bill-panel .btn{width:100%}.finance-tabs{width:100%}.finance-tab{flex:1}}
/* v9.3.2 installment UX */
.installment-builder{margin-top:16px;padding:16px;border:1px solid #dbeafe;background:#f8fbff;border-radius:12px}.installment-builder-head{display:flex;justify-content:space-between;gap:12px}.installment-builder-head h3{margin:0}.installment-builder-head p{margin:4px 0;color:#64748b}.installment-edit-row{display:grid;grid-template-columns:30px 1.3fr .7fr 1fr 38px;gap:8px;align-items:center;margin-top:9px}.installment-edit-row input{width:100%;padding:10px;border:1px solid #d7dee8;border-radius:8px}.installment-edit-row>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e0edff;color:#1d4ed8;font-weight:800}.icon-btn{height:38px;border:1px solid #e2e8f0;background:#fff;border-radius:8px;font-size:20px}.installment-total{display:flex;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid #dbeafe}.fee-create-footer{display:flex;justify-content:flex-end;margin-top:12px}.payment-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.payment-choice{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:13px;border:1px solid #dbe3ef;border-radius:11px;background:#fff;text-align:left}.payment-choice:hover{border-color:#2563eb;background:#eff6ff}.payment-choice span,.payment-choice b{font-size:12px}.payment-choice b{color:#1d4ed8}.fee-progress-card{border:1px solid #e2e8f0;border-radius:11px;padding:13px;margin-top:10px}.fee-progress-head{display:flex;justify-content:space-between}.installment-row{display:grid;grid-template-columns:1fr 150px 90px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid #edf2f7}.installment-row>div{display:flex;flex-direction:column}.installment-row small,.one-time-note{color:#64748b;font-size:12px}.installment-status{padding:5px 8px;border-radius:999px;text-align:center;font-size:12px;font-weight:700}.installment-status.paid{background:#dcfce7;color:#166534}.installment-status.partial{background:#dbeafe;color:#1d4ed8}.installment-status.overdue{background:#fee2e2;color:#b91c1c}.installment-status.due{background:#fef3c7;color:#92400e}@media(max-width:800px){.payment-choice-grid{grid-template-columns:1fr}.installment-edit-row{grid-template-columns:30px 1fr}.installment-row{grid-template-columns:1fr}}
/* v9.3.2 grades UX refinement */
.grade-new-assessment{margin-bottom:16px;border:1px dashed #bfdbfe;border-radius:12px;background:#f8fbff}.grade-new-assessment>summary{cursor:pointer;padding:13px 15px;font-weight:750;color:#1d4ed8}.grade-new-assessment .grade-assessment-create{margin:0;border:0;border-top:1px solid #dbeafe;border-radius:0 0 12px 12px}.grade-assessment-card .grade-open-text{min-width:105px;text-align:right}

/* v9.3.3 professional form controls — Grades + installment management */
.grade-context-panel select,.grade-new-assessment input,.grade-new-assessment select,.grade-roster-controls select,.grade-table-wrap input,.grade-admin-setup input,.grade-admin-setup select,.hpro-control{
  width:100%;min-height:44px;padding:10px 13px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;font:inherit;line-height:1.2;box-shadow:0 1px 2px rgba(15,23,42,.03);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.grade-context-panel select,.grade-new-assessment select,.grade-roster-controls select,.grade-admin-setup select{appearance:auto;cursor:pointer}
.grade-context-panel select:focus,.grade-new-assessment input:focus,.grade-new-assessment select:focus,.grade-roster-controls select:focus,.grade-table-wrap input:focus,.grade-admin-setup input:focus,.hpro-control:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.grade-context-grid>div,.grade-assessment-create>div,.grade-roster-controls>div{min-width:0}.grade-context-grid label,.grade-assessment-create label,.grade-roster-controls label{display:block;margin-bottom:7px;font-size:12px;font-weight:750;color:#475569}.grade-context-grid{gap:16px}.grade-subject-card{min-height:76px;border-radius:12px}.grade-score-input{max-width:150px!important}.grade-table-wrap .data-table td{vertical-align:middle}.grade-table-wrap input:disabled{background:#f8fafc;color:#475569;cursor:not-allowed}.grade-new-assessment>summary{min-height:46px;display:flex;align-items:center}.grade-admin-setup{overflow:hidden}.grade-admin-setup summary{min-height:48px}
.finance-fee-row{gap:18px}.fee-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.btn-sm{padding:8px 11px!important;font-size:12px!important}.plan-ready{padding:5px 9px;border-radius:999px;background:#dcfce7;color:#166534;font-size:12px;font-weight:750}.existing-installment-panel{margin-top:16px;padding:18px;border:1px solid #bfdbfe;border-radius:14px;background:#f8fbff}.setup-kicker{display:block;margin-bottom:4px;color:#2563eb;font-size:11px;font-weight:800;letter-spacing:.08em}.installment-column-head{display:grid;grid-template-columns:30px 1.3fr .7fr 1fr 38px;gap:8px;margin-top:16px;padding:0 0 6px;color:#64748b;font-size:11px;font-weight:750;text-transform:uppercase}.existing-plan-actions{display:flex;justify-content:space-between;gap:10px;margin-top:14px}.total-ok{color:#166534;font-weight:750}.total-warning{color:#b45309;font-weight:750}
@media(max-width:800px){.installment-column-head{display:none}.fee-row-actions{align-items:flex-end;flex-direction:column}.existing-plan-actions{flex-direction:column}.existing-plan-actions .btn{width:100%}}
/* v9.3.4 percentage-based tuition installment editor */
.installment-edit-row,.installment-column-head{grid-template-columns:30px 1.35fr .65fr .8fr 1fr 38px}.percent-input{position:relative}.percent-input input{padding-right:30px}.percent-input b{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:#64748b;font-size:12px}.calculated-amount{min-height:42px;display:flex;align-items:center;padding:0 12px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;color:#0f172a;font-weight:750}.installment-percent{margin-left:6px;padding:2px 6px;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:11px;font-weight:800}
@media(max-width:800px){.installment-edit-row{grid-template-columns:30px 1fr}.calculated-amount{grid-column:2}.percent-input{grid-column:2}}

/* v9.3.7 finance payment purpose */
.payment-purpose-title{display:flex;flex-direction:column;gap:4px;margin:4px 0 12px}.payment-purpose-title span{color:#64748b;font-size:.9rem}.payment-choice.selected{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 2px rgba(37,99,235,.08)}
/* v9.4 finance operations */
.finance-tabs a.finance-tab{text-decoration:none;display:inline-flex;align-items:center}.ops-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:14px}.ops-summary>span{font-size:12px;font-weight:800;color:#2563eb}.ops-summary h2{margin:5px 0 2px;font-size:26px}.ops-summary p{margin:0 0 15px;color:#64748b;font-size:12px}.ops-summary>div{display:flex;justify-content:space-between;gap:10px;font-size:12px}.ops-form{display:grid;grid-template-columns:1fr 1.6fr .8fr .65fr 1.2fr 1fr 1fr 1fr 1fr;gap:10px;align-items:end}.ops-form label{display:block;font-size:11px;font-weight:750;color:#475569;margin-bottom:6px}.ops-save{display:flex;align-items:end}.ops-account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.ops-new-account{display:grid;grid-template-columns:1.5fr 1fr .7fr 1fr auto;gap:10px;align-items:end;margin-top:20px;padding-top:18px;border-top:1px solid #e2e8f0}.ops-new-account h3{grid-column:1/-1;margin:0}.ops-table-wrap{overflow:auto}.ops-type{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.ops-type.income{background:#dcfce7;color:#166534}.ops-type.expense{background:#fee2e2;color:#991b1b}.row-reversed{opacity:.5;text-decoration:line-through}.data-table td:last-child,.data-table th:last-child{text-align:right;white-space:nowrap}@media(max-width:1100px){.ops-form{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.ops-form,.ops-new-account{grid-template-columns:1fr}.finance-tabs{flex-wrap:wrap}}
/* v9.5 HR & Payroll */
.hr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px}.hr-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #e2e8f0;border-radius:12px}.hr-avatar{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eff6ff;color:#1d4ed8;font-weight:850}.hr-card-main{flex:1;display:flex;justify-content:space-between;gap:10px}.hr-card-main>div{display:flex;flex-direction:column}.hr-card-main span,.hr-card-main small{color:#64748b;font-size:12px}.warning-text{color:#b45309}.hr-form{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:12px;align-items:end}.hr-form.hr-new{grid-template-columns:repeat(3,1fr)}.hr-form label{display:block;font-size:11px;font-weight:750;color:#475569;margin-bottom:6px}.hr-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:14px}.hr-payroll-controls{display:grid;grid-template-columns:1.2fr .8fr .8fr auto;gap:10px;max-width:700px}.payroll-status{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.payroll-status.generated{background:#fef3c7;color:#92400e}.payroll-status.approved{background:#dbeafe;color:#1d4ed8}.payroll-status.paid{background:#dcfce7;color:#166534}@media(max-width:800px){.hr-form,.hr-form.hr-new,.hr-payroll-controls{grid-template-columns:1fr}.hr-card{align-items:flex-start;flex-wrap:wrap}.hr-card-main{min-width:220px}}

/* v9.6 academic results */
.grade-scale-grid,.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:16px}.mini-card{border:1px solid #e4e8ef;border-radius:12px;padding:16px;background:#fff}.mini-card small,.mini-card p{display:block;color:#667085;margin-top:5px}.grade-range-row{display:grid;grid-template-columns:16px 1fr 45px 55px 1fr;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #eef1f5;font-size:.88rem}.grade-color{width:12px;height:12px;border-radius:50%;display:inline-block}

/* v9.6.4 Academic Results professional UX */
.academic-page{max-width:1240px;margin:0 auto;padding-bottom:36px}.academic-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:18px}.academic-hero h1{margin:5px 0 6px;font-size:30px;letter-spacing:-.025em}.academic-hero p{max-width:760px;margin:0;color:#64748b;line-height:1.55}.academic-hero-badge{min-width:250px;padding:15px 17px;border:1px solid #dbeafe;border-radius:14px;background:#f8fbff;display:flex;flex-direction:column;gap:3px}.academic-hero-badge span,.academic-hero-badge small{font-size:12px;color:#64748b}.academic-hero-badge strong{font-size:14px;color:#1e3a8a}.academic-progress{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:12px;margin:0 0 18px;padding:14px 16px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.academic-progress-item{display:flex;align-items:center;gap:11px;min-width:0}.academic-progress-item>span,.academic-step-number{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;background:#2563eb;color:#fff;font-weight:800}.academic-progress-item div{display:flex;flex-direction:column}.academic-progress-item strong{font-size:13px}.academic-progress-item small{margin-top:2px;color:#64748b;font-size:11px}.academic-progress-arrow{color:#94a3b8;font-weight:800}.academic-section{padding:0!important;overflow:hidden;margin-bottom:16px}.academic-section-head{display:flex;align-items:center;gap:13px;padding:18px 20px;border-bottom:1px solid #edf2f7;background:#fbfdff}.academic-section-head h2{margin:0;font-size:17px}.academic-section-head p{margin:4px 0 0;color:#64748b;font-size:13px}.academic-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px}.grading-setup-grid{grid-template-columns:2fr 1fr .7fr}.assignment-grid{grid-template-columns:1.4fr 1fr 1fr 1fr 1.3fr}.field-group{min-width:0}.field-group label{display:block;margin-bottom:7px;color:#334155;font-size:12px;font-weight:750}.field-group small{display:block;margin-top:6px;color:#94a3b8;font-size:11px;line-height:1.35}.academic-section .hpro-control{width:100%;min-height:44px}.academic-section select.hpro-control{cursor:pointer}.academic-section .hpro-control:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.academic-form-actions{display:flex;justify-content:flex-end;padding:0 20px 20px}.academic-form-actions .btn{min-width:180px}.academic-table-block{margin:0 20px 20px;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.academic-table-title{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.academic-table-title span{color:#64748b;font-size:12px}.academic-scheme-card{border:1px solid #e2e8f0;border-radius:12px;background:#fff;padding:15px}.scheme-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.scheme-card-head>div{display:flex;flex-direction:column}.scheme-card-head small{color:#64748b;margin-top:3px}.default-pill,.assignment-pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:800}.empty-inline{padding:13px;border-radius:9px;background:#f8fafc;color:#64748b;font-size:12px}.result-pass{color:#166534;font-weight:750}.result-fail{color:#b91c1c;font-weight:750}.assignment-callout{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:7px 10px;margin:18px 20px 0;padding:12px 14px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff;font-size:12px}.assignment-callout strong{color:#1e40af}.assignment-callout span{color:#64748b}.academic-engine-card{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;align-items:center;padding:22px;border-radius:16px;background:#0f2747;color:#fff}.academic-engine-card h2{margin:5px 0 6px;font-size:20px}.academic-engine-card p,.academic-engine-card>small{color:#bfcee2}.academic-engine-card>small{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:12px}.academic-engine-flow{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.academic-engine-flow span{padding:9px 11px;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:rgba(255,255,255,.08);font-size:12px;font-weight:750}.academic-engine-flow b{color:#7dd3fc}.academic-engine-card .eyebrow{color:#7dd3fc}
@media(max-width:1050px){.assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.academic-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.academic-hero{flex-direction:column}.academic-hero-badge{width:100%}.academic-progress{grid-template-columns:1fr}.academic-progress-arrow{display:none}.academic-form-grid,.grading-setup-grid,.assignment-grid{grid-template-columns:1fr}.assignment-callout{grid-template-columns:1fr}.academic-engine-card{grid-template-columns:1fr}.academic-engine-flow{justify-content:flex-start}.academic-form-actions .btn{width:100%}.academic-table-block{overflow:auto}}

/* Academic results v9.6.5 - grading range editor */
.read-only-hint{min-height:44px;display:flex;align-items:center;padding:0 13px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;color:#64748b;font-size:13px}.scheme-edit-button{width:100%;margin-top:12px}.grade-scale-grid{display:grid;gap:14px;padding:0 20px 20px}.grade-range-row{display:grid;grid-template-columns:16px 1fr .55fr .7fr 1.2fr;gap:10px;align-items:center;padding:9px 0;border-top:1px solid #f1f5f9;font-size:12px}.grade-color{width:13px;height:13px;border-radius:4px;border:1px solid rgba(15,23,42,.12)}.grade-range-editor{margin:0 20px 20px;padding:18px;border:1px solid #bfdbfe;border-radius:14px;background:#f8fbff}.range-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.range-editor-head h3{margin:0;font-size:16px}.range-editor-head p{margin:5px 0 0;color:#64748b;font-size:12px}.range-editor-note{margin:14px 0;padding:10px 12px;border-radius:9px;background:#eff6ff;color:#1e40af;font-size:12px}.range-table-wrap{overflow-x:auto}.range-table{width:100%;border-collapse:separate;border-spacing:0 8px}.range-table th{text-align:left;padding:0 6px;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.range-table td{padding:0 6px;vertical-align:middle}.range-table .hpro-control{min-width:90px;background:#fff}.grade-code-input{max-width:90px}.color-field{display:flex;align-items:center;gap:8px;min-width:170px}.grade-color-picker{width:44px;height:44px;padding:3px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;cursor:pointer}.color-code{min-width:110px!important}.icon-danger-button{width:36px;height:36px;border:1px solid #fecaca;border-radius:9px;background:#fff;color:#b91c1c;font-size:20px;cursor:pointer}.icon-danger-button:hover{background:#fef2f2}.range-editor-actions{display:flex;justify-content:space-between;gap:12px;margin-top:14px}.range-editor-actions .btn{min-width:150px}@media(max-width:900px){.range-editor-head{flex-direction:column}.range-editor-actions{flex-direction:column}.range-editor-actions .btn{width:100%}}

/* v9.6.6 grading range select visibility fix */
.academic-section select.hpro-control,.grade-range-editor select.hpro-control{
  color:#0f172a!important;
  background-color:#fff!important;
  -webkit-text-fill-color:#0f172a;
}
.academic-section select.hpro-control option,.grade-range-editor select.hpro-control option{
  color:#0f172a!important;
  background:#fff!important;
}
.grade-range-editor .result-select{font-weight:700;}


/* v9.6.7 explicit Pass/Fail control */
.result-choice{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:150px}
.result-choice-button{min-height:42px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#475569;font:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease}
.result-choice-button:hover{border-color:#94a3b8;background:#f8fafc}
.result-choice-button.pass.selected{border-color:#16a34a;background:#dcfce7;color:#166534;box-shadow:0 0 0 2px rgba(22,163,74,.10)}
.result-choice-button.fail.selected{border-color:#dc2626;background:#fee2e2;color:#991b1b;box-shadow:0 0 0 2px rgba(220,38,38,.10)}
.result-choice-button:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.18)}

/* Academic teaching assignment editor */
.assignment-context-grid{grid-template-columns:1.4fr 1fr 1fr;padding-bottom:12px}.assignment-editor{margin:0 20px 18px;padding:18px;border:1px solid #dbe4f0;border-radius:14px;background:#fbfdff}.sponsor-toggle{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid #dbeafe;border-radius:12px;background:#fff;cursor:pointer}.sponsor-toggle>input{position:absolute;opacity:0;pointer-events:none}.sponsor-check{width:22px;height:22px;flex:0 0 22px;border:2px solid #94a3b8;border-radius:6px;display:grid;place-items:center;margin-top:1px}.sponsor-toggle>input:checked+.sponsor-check{border-color:#2563eb;background:#2563eb}.sponsor-toggle>input:checked+.sponsor-check:after{content:'✓';color:#fff;font-size:14px;font-weight:900}.sponsor-toggle>span:last-child{display:flex;flex-direction:column;gap:3px}.sponsor-toggle small,.subject-picker-head small,.subject-check-card small{color:#64748b;font-size:11px}.subject-picker-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:18px 0 12px}.subject-picker-head>div:first-child{display:flex;flex-direction:column;gap:3px}.subject-picker-actions{display:flex;gap:8px}.subject-picker-actions .btn{min-width:auto}.subject-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.subject-check-card{display:flex;align-items:center;gap:10px;min-height:58px;padding:10px 12px;border:1px solid #dbe4f0;border-radius:10px;background:#fff;color:#0f172a;text-align:left;cursor:pointer;transition:.15s ease}.subject-check-card:hover{border-color:#93c5fd;background:#f8fbff}.subject-check-card.selected{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 1px #2563eb inset}.subject-checkmark{width:22px;height:22px;flex:0 0 22px;border:1px solid #cbd5e1;border-radius:6px;display:grid;place-items:center;color:#fff;font-weight:900}.subject-check-card.selected .subject-checkmark{border-color:#2563eb;background:#2563eb}.subject-check-card>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.subject-check-card strong{font-size:12px}.subject-check-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1050px){.assignment-context-grid{grid-template-columns:1fr 1fr}.subject-check-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.assignment-context-grid{grid-template-columns:1fr}.subject-picker-head{align-items:flex-start;flex-direction:column}.subject-check-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.subject-check-grid{grid-template-columns:1fr}}

/* v9.7 teacher portal */
.teacher-portal-box{margin-top:18px;padding:18px;border:1px solid #d8e3f2;border-radius:14px;background:#f8fbff;display:grid;gap:12px}.teacher-portal-box>div:first-child{display:flex;flex-direction:column;gap:4px}.teacher-portal-box small{color:#667892}.teacher-portal-fields{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:center}.teacher-gradebook-page{max-width:1450px;margin:0 auto}.teacher-context{display:grid;grid-template-columns:1fr 1fr;gap:14px}.gradebook-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:18px 0}.status-chip{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef4ff;color:#174ea6;font-weight:700}.teacher-grade-table input{min-width:110px}.gradebook-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-width:900px){.teacher-portal-fields,.teacher-context{grid-template-columns:1fr}}

/* v9.7.1 employee system access */
.employee-card-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}.system-access-panel{border-color:#bfdbfe}.system-access-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.system-access-head h2{margin:4px 0 5px}.system-access-head p{margin:0;max-width:760px;color:#64748b;font-size:13px}.access-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.access-summary-grid>div{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.access-summary-grid span{font-size:11px;font-weight:750;color:#64748b;text-transform:uppercase}.access-summary-grid strong{font-size:13px;overflow-wrap:anywhere}.access-enabled{color:#166534}.access-disabled{color:#b45309}.access-create-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;padding:18px;border:1px solid #dbeafe;border-radius:14px;background:#f8fbff}.access-create-grid label{display:block;margin-bottom:7px;font-size:12px;font-weight:750;color:#334155}.access-create-grid small{display:block;margin-top:6px;color:#64748b;font-size:11px}.access-password-box{display:grid;grid-template-columns:1.5fr 1fr auto;gap:14px;align-items:center;padding:18px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.access-password-box>div{display:flex;flex-direction:column;gap:4px}.access-password-box small{color:#64748b;font-size:11px}@media(max-width:900px){.access-summary-grid{grid-template-columns:1fr 1fr}.access-create-grid,.access-password-box{grid-template-columns:1fr}.employee-card-actions{width:100%;flex-direction:row}}@media(max-width:560px){.access-summary-grid{grid-template-columns:1fr}.system-access-head{flex-direction:column}}
/* v9.8 role-based access */
.access-grid{grid-template-columns:minmax(300px,.8fr) minmax(520px,1.4fr);align-items:start}.access-employee-list{display:grid;gap:8px;margin-top:16px;max-height:620px;overflow:auto}.access-employee{width:100%;border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:12px;padding:12px;display:grid;grid-template-columns:42px 1fr auto;gap:10px;text-align:left;align-items:center;cursor:pointer}.access-employee.selected,.role-card.selected{border-color:#1f6feb;box-shadow:0 0 0 2px rgba(31,111,235,.08)}.access-employee span{display:grid}.access-employee small,.access-employee i,.role-card small,.access-toggle small,.muted-note{color:#667085;font-size:12px}.access-employee i{font-style:normal}.access-avatar{width:40px;height:40px;border-radius:10px;background:#eef4ff;display:grid!important;place-items:center;font-weight:700}.role-heading{margin:22px 0 12px}.role-heading h3{margin:0 0 4px}.role-heading p{margin:0;color:#667085}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.role-card,.access-toggle{border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:13px;display:flex;gap:10px;align-items:flex-start;cursor:pointer}.role-card span,.access-toggle span{display:grid;gap:3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:6px}.field>span{font-size:13px;font-weight:600}.form-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.muted-note{margin-top:10px}@media(max-width:900px){.access-grid,.role-grid,.form-grid{grid-template-columns:1fr}}

/* v9.8.1 active academic context and student numbering */
.setup-feature-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.8fr);gap:18px;margin-bottom:24px}.setup-feature-card{padding:0;overflow:hidden}.setup-feature-card>.panel-head{padding:20px;display:flex;justify-content:space-between;gap:16px}.setup-feature-card>.panel-head h2{margin:5px 0}.context-live{align-self:flex-start;padding:6px 9px;border-radius:999px;background:#e8f8f0;color:#167451;font-size:10px;font-weight:850}.active-context-preview{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:10px;margin:18px 20px;padding:16px;border-radius:12px;background:#f6f9ff;border:1px solid #dbe7fb}.active-context-preview>div{display:grid;gap:4px}.active-context-preview small,.number-preview small{font-size:10px;font-weight:800;letter-spacing:.06em;color:#718096}.active-context-preview strong{font-size:13px}.active-context-preview>span{color:#94a3b8}.context-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 20px 18px}.context-form-grid label,.setup-feature-card>label,.sequence-row label{display:block;font-size:11px;font-weight:800;color:#475569;margin-bottom:6px}.setup-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-top:1px solid #edf0f5;background:#fbfcfe}.setup-actions span{font-size:11px;color:#64748b}.setup-feature-card>.hpro-control,.setup-feature-card>label,.token-row,.number-preview,.sequence-row{margin-left:20px;margin-right:20px}.setup-feature-card>.hpro-control{width:calc(100% - 40px)}.mono-input{font-family:Consolas,"SFMono-Regular",monospace;font-weight:700}.token-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.token-row button{border:1px solid #cbd5e1;background:#fff;border-radius:7px;padding:5px 7px;color:#334155;font-family:Consolas,monospace;font-size:10px;cursor:pointer}.token-row button:hover{border-color:#2563eb;color:#1d4ed8}.number-preview{display:grid;gap:5px;padding:15px;margin-top:16px!important;border:1px dashed #93c5fd;border-radius:11px;background:#f8fbff}.number-preview strong{font-size:18px;color:#1e3a8a;overflow-wrap:anywhere}.number-preview span{font-size:11px;color:#64748b}.sequence-row{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:end;margin-top:16px!important;margin-bottom:20px!important}.sequence-row .btn{justify-self:end}.section-divider{display:flex;align-items:center;gap:12px;margin:8px 0 16px;color:#64748b;font-size:10px;font-weight:900;letter-spacing:.12em}.section-divider:after{content:"";height:1px;background:#dfe5ee;flex:1}@media(max-width:1050px){.setup-feature-grid{grid-template-columns:1fr}.context-form-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.context-form-grid{grid-template-columns:1fr}.active-context-preview{grid-template-columns:1fr}.active-context-preview>span{display:none}.setup-actions,.sequence-row{display:flex;flex-direction:column;align-items:stretch}.sequence-row .btn{width:100%}}
.academic-context-pill{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #dbe4f0;border-radius:9px;background:#f8fafc;color:#475569;font-size:11px;font-weight:700}.academic-context-pill b{color:#1d4ed8}.academic-context-pill .sep{color:#cbd5e1}

/* v9.8.3: keep sign-out reachable while long role-based menus scroll */
.sidebar{overflow:hidden}.side-nav{overflow-y:auto;min-height:0;padding-right:3px}.sidebar-footer{flex:0 0 auto;background:linear-gradient(180deg,rgba(9,26,53,.96),#091a35);padding-top:4px}.side-nav::-webkit-scrollbar{width:5px}.side-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:10px}
.branding-grid{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr);gap:24px;align-items:start}.branding-preview{min-height:220px;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:8px}.school-logo-preview{width:110px;height:110px;object-fit:contain}.school-logo-placeholder{width:96px;height:96px;border-radius:18px;border:2px dashed #cbd5e1;display:grid;place-items:center;color:#94a3b8;font-weight:800}.signature-preview{max-width:220px;max-height:90px;object-fit:contain;border:1px solid #e2e8f0;border-radius:10px;padding:8px;background:white}.theme-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.theme-row input[type=color]{width:100%;height:46px;border:1px solid #cbd5e1;border-radius:10px;padding:4px;background:white}@media(max-width:800px){.branding-grid{grid-template-columns:1fr}}
.branding-grid{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr);gap:24px;align-items:start}.branding-preview{min-height:220px;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:8px}.school-logo-preview{width:110px;height:110px;object-fit:contain}.school-logo-placeholder{width:96px;height:96px;border-radius:18px;border:2px dashed #cbd5e1;display:grid;place-items:center;color:#94a3b8;font-weight:800}.signature-preview{max-width:220px;max-height:90px;object-fit:contain;border:1px solid #e2e8f0;border-radius:10px;padding:8px;background:white}.theme-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.theme-row input[type=color]{width:100%;height:46px;border:1px solid #cbd5e1;border-radius:10px;padding:4px;background:white}@media(max-width:800px){.branding-grid{grid-template-columns:1fr}}
.brand-school-logo{width:38px;height:38px;object-fit:contain;border-radius:9px;background:#fff;padding:3px}.app-shell .btn-primary{background:var(--school-primary,#1d4ed8)}.app-shell .side-nav a.active{border-left-color:var(--school-primary,#1d4ed8)}.app-shell .academic-context-pill b{color:var(--school-primary,#1d4ed8)}
/* v9.9.5 tenant branding + school user management */
.app-shell .sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--school-primary,#1d4ed8) 58%,#07162d),color-mix(in srgb,var(--school-primary,#1d4ed8) 25%,#061326))}.app-shell .brand-mark{background:var(--school-primary,#1d4ed8)}.app-shell .side-nav a.active{background:linear-gradient(90deg,color-mix(in srgb,var(--school-primary,#1d4ed8) 82%,#10213c),var(--school-primary,#1d4ed8));border-left-color:var(--school-accent,#0f766e);box-shadow:0 6px 18px color-mix(in srgb,var(--school-primary,#1d4ed8) 28%,transparent)}.app-shell .eyebrow{color:var(--school-primary,#1d4ed8)}.app-shell .btn-primary,.app-shell .page-heading button,.app-shell .form-panel button{background:var(--school-primary,#1d4ed8);color:#fff}.app-shell .btn-primary:hover{background:color-mix(in srgb,var(--school-primary,#1d4ed8) 84%,#000)}.app-shell .academic-context-pill b{color:color-mix(in srgb,var(--school-primary,#1d4ed8) 75%,#0f172a)}.app-shell .form-control:focus,.app-shell .hpro-control:focus{border-color:var(--school-primary,#1d4ed8);box-shadow:0 0 0 3px color-mix(in srgb,var(--school-primary,#1d4ed8) 14%,transparent)}.app-shell .role-card.selected,.app-shell .access-employee.selected{border-color:var(--school-primary,#1d4ed8);box-shadow:0 0 0 1px color-mix(in srgb,var(--school-primary,#1d4ed8) 15%,transparent)}.app-shell .access-avatar,.app-shell .empty-icon{background:color-mix(in srgb,var(--school-primary,#1d4ed8) 10%,#fff);color:color-mix(in srgb,var(--school-primary,#1d4ed8) 82%,#0f172a)}
.access-tabs{display:flex;gap:8px;margin:-8px 0 18px}.access-tab{border:1px solid #dce3ed;background:#fff;color:#475569;border-radius:9px;padding:10px 14px;font-weight:750;cursor:pointer}.access-tab.active{background:var(--school-primary,#1d4ed8);border-color:var(--school-primary,#1d4ed8);color:#fff}.user-access-list{display:grid}.school-user-row{display:grid;grid-template-columns:42px minmax(180px,1fr) minmax(240px,1.4fr) auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #edf0f5}.school-user-row>div{display:flex;flex-direction:column}.school-user-row small{color:#77849a;margin-top:3px}.user-role-list{color:#64748b;font-size:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.48);display:grid;place-items:center;padding:24px;z-index:100}.access-create-modal{width:min(900px,96vw);max-height:90vh;overflow:auto}.access-create-modal .panel-head{display:flex;justify-content:space-between;align-items:flex-start}.access-create-modal .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-width:760px){.school-user-row{grid-template-columns:42px 1fr}.school-user-row .user-role-list,.school-user-row .status{grid-column:2}.access-tabs{flex-wrap:wrap}}


/* HPro tenant theme ---------------------------------------------------------
   Keep school branding centralized here. The authenticated school provides
   --school-primary and --school-accent on .app-shell from MainLayout. These
   rules deliberately override the older fixed-blue component rules above so
   every school workspace uses one consistent tenant theme. */
.app-shell{
  --theme-primary:var(--school-primary,#1d4ed8);
  --theme-accent:var(--school-accent,#0f766e);
  --theme-soft:color-mix(in srgb,var(--theme-primary) 9%,#fff);
  --theme-soft-strong:color-mix(in srgb,var(--theme-primary) 16%,#fff);
  --theme-border:color-mix(in srgb,var(--theme-primary) 30%,#dbe4f0);
  --theme-dark:color-mix(in srgb,var(--theme-primary) 28%,#061326);
  --theme-dark-top:color-mix(in srgb,var(--theme-primary) 58%,#07162d);
}
.app-shell .sidebar{background:linear-gradient(180deg,var(--theme-dark-top),var(--theme-dark))}
.app-shell .brand-mark{background:var(--theme-primary)}
.app-shell .side-nav a.active{background:linear-gradient(90deg,color-mix(in srgb,var(--theme-primary) 78%,#10213c),var(--theme-primary));border-left-color:var(--theme-accent);box-shadow:0 6px 18px color-mix(in srgb,var(--theme-primary) 28%,transparent)}
.app-shell .eyebrow,.app-shell .academic-context-pill b,.app-shell a.link-primary{color:color-mix(in srgb,var(--theme-primary) 82%,#0f172a)}
.app-shell .btn-primary,.app-shell .page-heading button,.app-shell .form-panel button,.app-shell button.primary-action{background:var(--theme-primary);color:#fff}
.app-shell .btn-primary:hover,.app-shell .page-heading button:hover,.app-shell .form-panel button:hover,.app-shell button.primary-action:hover{background:color-mix(in srgb,var(--theme-primary) 82%,#000)}
.app-shell input:focus,.app-shell select:focus,.app-shell textarea:focus,.app-shell .form-control:focus,.app-shell .hpro-control:focus{border-color:var(--theme-primary)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-primary) 14%,transparent)!important;outline:none}
.app-shell .metric-icon,.app-shell .empty-icon,.app-shell .quick-list b,.app-shell .access-avatar{background:var(--theme-soft);color:color-mix(in srgb,var(--theme-primary) 82%,#0f172a)}
.app-shell .role-card.selected,.app-shell .access-employee.selected,.app-shell .subject-check-card.selected,.app-shell .selection-card.selected{border-color:var(--theme-primary)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--theme-primary) 18%,transparent)!important}
.app-shell .subject-check-card.selected,.app-shell .selection-card.selected{background:var(--theme-soft)}
.app-shell .subject-check-card.selected .subject-checkmark,.app-shell .sponsor-toggle>input:checked+.sponsor-check{border-color:var(--theme-primary);background:var(--theme-primary)}
.app-shell .token-row button:hover{border-color:var(--theme-primary);color:var(--theme-primary)}
.app-shell .number-preview{border-color:var(--theme-border);background:var(--theme-soft)}
.app-shell .number-preview strong{color:color-mix(in srgb,var(--theme-primary) 72%,#0f172a)}
.app-shell .active-context-preview{border-color:var(--theme-border);background:var(--theme-soft)}
.app-shell .access-tab.active{background:var(--theme-primary);border-color:var(--theme-primary);color:#fff}
.app-shell .top-avatar,.app-shell .user-avatar{background:var(--theme-soft-strong);color:color-mix(in srgb,var(--theme-primary) 72%,#0f172a)}
.app-shell .academic-engine-card{background:linear-gradient(135deg,color-mix(in srgb,var(--theme-primary) 38%,#0b1729),color-mix(in srgb,var(--theme-primary) 18%,#0b1729))}
.app-shell .academic-engine-card .eyebrow,.app-shell .academic-engine-flow b{color:color-mix(in srgb,var(--theme-accent) 55%,#fff)}
.app-shell input[type="checkbox"],.app-shell input[type="radio"]{accent-color:var(--theme-primary)}
.app-shell ::selection{background:color-mix(in srgb,var(--theme-primary) 28%,#fff)}


/* v9.10 application-wide tenant theme audit -------------------------------
   Semantic status colors (success/warning/error/income/expense/pass/fail)
   intentionally remain unchanged. Everything representing selection,
   navigation, workflow progress, focus, or brand identity follows the school. */
.app-shell .finance-tab.active,.app-shell .finance-step,.app-shell .grade-step-number,
.app-shell .academic-step-number,.app-shell .admission-step.active .step-number,
.app-shell .admission-step.done .step-number{background:var(--theme-primary)!important;border-color:var(--theme-primary)!important;color:#fff!important}
.app-shell .finance-student-card.selected,.app-shell .payment-choice.selected,
.app-shell .grade-context-card.selected,.app-shell .academic-option.selected,
.app-shell .admission-step.active{border-color:var(--theme-primary)!important;background:var(--theme-soft)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--theme-primary) 18%,transparent)!important}
.app-shell .finance-student-card b,.app-shell .ops-summary>span,.app-shell .installment-percent,
.app-shell .academic-hero-badge,.app-shell .grade-link,.app-shell .teacher-link,
.app-shell .quick-action-icon{color:color-mix(in srgb,var(--theme-primary) 84%,#0f172a)!important}
.app-shell .status-chip,.app-shell .assignment-pill{background:var(--theme-soft)!important;color:color-mix(in srgb,var(--theme-primary) 78%,#0f172a)!important}
.app-shell .system-access-panel,.app-shell .access-create-grid,.app-shell .teacher-portal-box,
.app-shell .sponsor-toggle,.app-shell .number-preview{border-color:var(--theme-border)!important}
.app-shell .teacher-portal-box,.app-shell .access-create-grid{background:var(--theme-soft)!important}
.app-shell .subject-check-card:hover,.app-shell .finance-student-card:hover,.app-shell .payment-choice:hover,
.app-shell .role-card:hover,.app-shell .access-employee:hover{border-color:var(--theme-border)!important;background:color-mix(in srgb,var(--theme-primary) 4%,#fff)!important}
.app-shell .result-choice-button:focus-visible,.app-shell button:focus-visible,.app-shell a:focus-visible{outline:2px solid color-mix(in srgb,var(--theme-primary) 72%,#fff);outline-offset:2px}
.app-shell progress{accent-color:var(--theme-primary)}
.app-shell .academic-context-pill{border-color:var(--theme-border);background:color-mix(in srgb,var(--theme-primary) 3%,#fff)}
.app-shell .topbar{border-bottom-color:color-mix(in srgb,var(--theme-primary) 10%,#e5eaf1)}
.app-shell .finance-tab.active:hover{background:color-mix(in srgb,var(--theme-primary) 82%,#000)!important}

/* v9.11 Grade Review & Approval */
.review-status{display:inline-flex;align-items:center;padding:.3rem .65rem;border-radius:999px;font-weight:800;font-size:.78rem;background:color-mix(in srgb,var(--school-primary) 10%,white);color:var(--school-primary)}
.review-status-approved,.review-status-published{background:#dcfce7;color:#166534}.review-status-returned{background:#fff7ed;color:#9a3412}.review-missing{color:#b91c1c;font-weight:700}.review-row-missing{background:#fff7f7}.review-action-box{margin-top:1rem;padding:1rem;border:1px solid #dbe4ef;border-radius:14px;background:#fbfdff}.review-actions{display:flex;gap:.65rem;flex-wrap:wrap}.grade-review-page textarea.hpro-control{min-height:88px;resize:vertical}

/* v9.12 official results */
.result-semester-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:10px 0}.result-semester-card{border:1px solid var(--hpro-primary-soft,#dbeafe);border-radius:10px;padding:12px;background:var(--hpro-primary-soft,#f8fafc)}.result-subject-line{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid rgba(100,116,139,.15)}.result-detail-row td{background:rgba(148,163,184,.05)}

/* v9.12.2 progressive period / semester / annual results */
.result-level-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 20px}.result-level-tab{min-width:130px;border:1px solid var(--hpro-primary-soft,#dbeafe);background:#fff;border-radius:12px;padding:10px 14px;text-align:left;cursor:pointer;color:#0f172a}.result-level-tab span,.result-level-tab small{display:block}.result-level-tab small{margin-top:3px;color:#64748b}.result-level-tab.active{background:var(--hpro-primary);border-color:var(--hpro-primary);color:var(--hpro-primary-foreground,#fff)}.result-level-tab.active small{color:inherit;opacity:.85}.result-level-tab.pending:not(.active){opacity:.72}.result-level-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 12px}.result-level-heading h3{margin:2px 0 0}.result-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;padding:8px 0}.result-detail-item{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border:1px solid rgba(100,116,139,.16);border-radius:10px;background:#fff;padding:10px 12px}.result-detail-item small{display:block;margin-top:3px;color:#64748b}.result-detail-item>span{white-space:nowrap}

/* v9.12.4 scalable results and progressive grade sheet */
.result-level-group{margin:18px 0}.result-level-group-title{font-size:.78rem;font-weight:800;letter-spacing:.08em;color:#64748b;margin-bottom:8px}.result-level-tab.current:not(.active){border-color:var(--hpro-primary);box-shadow:0 0 0 2px var(--hpro-primary-soft,#dbeafe)}.result-level-tab.upcoming:not(.active){background:#f8fafc;opacity:.6}.result-level-tab.incomplete:not(.active){background:#fff7ed}.result-status-pill{border-radius:999px;padding:7px 11px;font-size:.8rem;font-weight:800}.result-status-pill.available{background:#ecfdf5;color:#047857}.result-status-pill.current{background:var(--hpro-primary-soft,#dbeafe);color:var(--hpro-primary,#1d4ed8)}.result-status-pill.upcoming{background:#f1f5f9;color:#64748b}.result-status-pill.incomplete{background:#fff7ed;color:#c2410c}.result-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px;margin:12px 0 18px}.result-summary-card{border:1px solid rgba(100,116,139,.16);border-radius:12px;padding:12px 14px;background:#fff}.result-summary-card span{display:block;color:#64748b;font-size:.78rem}.result-summary-card strong{display:block;margin-top:4px;font-size:1.2rem}.result-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.result-toolbar .hpro-control{width:auto;min-width:155px}.result-toolbar .result-search{min-width:260px;flex:1}.result-toolbar .result-rows{min-width:110px}.result-matrix-wrap{overflow:auto;max-width:100%;border:1px solid rgba(100,116,139,.18);border-radius:12px}.result-matrix{min-width:max-content;margin:0}.result-matrix th,.result-matrix td{white-space:nowrap}.result-matrix .result-sticky-rank{position:sticky;left:0;z-index:3;min-width:100px;background:#fff}.result-matrix thead .result-sticky-rank{z-index:5;background:#f8fafc}.result-matrix .result-sticky-student{position:sticky;left:100px;z-index:2;min-width:230px;background:#fff;box-shadow:5px 0 8px -8px #334155}.result-matrix thead .result-sticky-student{z-index:4;background:#f8fafc}.result-sticky-student small{display:block;color:#64748b;margin-top:3px}.result-score-column{text-align:center;min-width:90px}.result-missing{color:#94a3b8}.result-rank{display:inline-flex;align-items:center;justify-content:center;min-width:58px;font-weight:800}.result-rank.top-1,.result-rank.top-2,.result-rank.top-3{border-radius:999px;padding:5px 8px;background:#f8fafc}.result-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:#64748b;font-size:.86rem}.result-pagination>div{display:flex;align-items:center;gap:10px}.btn-sm{padding:7px 10px;font-size:.82rem}
.grade-sheet-shell{max-width:1220px;margin:0 auto}.grade-sheet-actions{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:14px}.grade-sheet-paper{background:#fff;border:1px solid #dbe3ec;border-radius:16px;padding:24px;box-shadow:0 8px 28px rgba(15,23,42,.06)}.grade-sheet-header{text-align:center;border-bottom:2px solid var(--hpro-primary,#1d4ed8);padding-bottom:16px;margin-bottom:16px}.grade-sheet-header h1{font-size:1.45rem;margin:3px 0}.grade-sheet-header h2{font-size:1rem;margin:3px 0;color:#475569}.grade-sheet-student{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0 18px}.grade-sheet-student div{border:1px solid #e2e8f0;border-radius:9px;padding:9px 11px}.grade-sheet-student span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.grade-sheet-student strong{display:block;margin-top:3px}.grade-sheet-table-wrap{overflow:auto}.grade-sheet-table{width:100%;border-collapse:collapse;min-width:720px}.grade-sheet-table th,.grade-sheet-table td{border:1px solid #94a3b8;padding:7px 8px;text-align:center}.grade-sheet-table th:first-child,.grade-sheet-table td:first-child{text-align:left;position:sticky;left:0;background:#fff;min-width:180px}.grade-sheet-table thead th{background:#f1f5f9;font-size:.78rem}.grade-sheet-table .summary-row td{font-weight:800;background:#f8fafc}.grade-sheet-table .summary-row td:first-child{background:#f8fafc}.grade-sheet-note{margin-top:12px;color:#64748b;font-size:.82rem}.grade-sheet-signatures{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:52px}.grade-sheet-signature{border-top:1px solid #475569;text-align:center;padding-top:6px;color:#475569}
@media(max-width:900px){.result-summary-grid{grid-template-columns:repeat(3,1fr)}.grade-sheet-student{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.result-summary-grid{grid-template-columns:repeat(2,1fr)}.result-pagination{align-items:flex-start;flex-direction:column}.grade-sheet-paper{padding:14px}.grade-sheet-student{grid-template-columns:1fr}.grade-sheet-signatures{grid-template-columns:1fr;gap:45px}.result-matrix .result-sticky-student{min-width:190px}}

/* v9.13 professional academic reports ----------------------------------- */
.result-report-actions{display:flex;gap:6px;align-items:center}.grade-sheet-action-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.professional-report-header{display:grid;grid-template-columns:90px 1fr 90px;align-items:center;gap:16px;border-bottom:3px solid var(--report-primary,#1d4ed8);text-align:center}.report-brand-mark{width:78px;height:78px;display:flex;align-items:center;justify-content:center}.report-brand-mark img{max-width:78px;max-height:78px;object-fit:contain}.report-logo-placeholder{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--report-primary,#1d4ed8);color:#fff;font-weight:900;font-size:1.1rem}.report-school-heading h1{font-size:1.55rem;text-transform:uppercase;letter-spacing:.02em}.report-contact-line{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;font-size:.8rem;color:#64748b;margin-top:4px}.report-document-title{text-align:center;margin:18px 0 14px}.report-document-title>span{display:block;font-size:.8rem;font-weight:900;letter-spacing:.11em;color:var(--report-primary,#1d4ed8)}.report-document-title h2{font-size:1.08rem;margin:4px 0 2px}.report-document-title strong{font-size:.9rem;color:#475569}.professional-grade-table{border:2px solid #64748b}.professional-grade-table th{background:color-mix(in srgb,var(--report-primary,#1d4ed8) 9%,#fff)}.professional-grade-table .grade-sheet-group-row th{background:var(--report-primary,#1d4ed8);color:#fff;text-transform:uppercase;letter-spacing:.035em}.professional-grade-table .grade-sheet-group-row th:first-child{background:var(--report-primary,#1d4ed8);color:#fff}.professional-grade-table .report-summary-primary td{background:color-mix(in srgb,var(--report-accent,#0f766e) 8%,#fff)}.professional-grade-table .report-summary-primary td:first-child{background:color-mix(in srgb,var(--report-accent,#0f766e) 8%,#fff)}.professional-grade-table .report-rank-row td{background:color-mix(in srgb,var(--report-primary,#1d4ed8) 11%,#fff);font-size:.9rem}.professional-grade-table .report-rank-row td:first-child{background:color-mix(in srgb,var(--report-primary,#1d4ed8) 11%,#fff)}.report-card-notes{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.report-card-notes span{font-size:.8rem;font-weight:800;color:#475569}.report-writing-line{height:38px;border-bottom:1px solid #64748b}.professional-signatures{align-items:end}.report-signature-block{text-align:center;min-height:80px;display:flex;flex-direction:column;justify-content:flex-end}.report-signature-space{height:44px}.report-signature-image{height:44px;max-width:180px;object-fit:contain;margin:0 auto -3px}.professional-signatures .grade-sheet-signature strong,.professional-signatures .grade-sheet-signature span{display:block}.professional-signatures .grade-sheet-signature span{font-size:.78rem;margin-top:2px}.report-footer-line{display:flex;justify-content:space-between;gap:20px;margin-top:28px;padding-top:8px;border-top:1px solid #cbd5e1;font-size:.7rem;color:#64748b}.report-card-paper{border-top:5px solid var(--report-primary,#1d4ed8)}
@media(max-width:700px){.professional-report-header{grid-template-columns:60px 1fr 0;gap:8px}.report-brand-mark{width:54px;height:54px}.report-brand-mark img{max-width:54px;max-height:54px}.report-brand-mark-spacer{display:none}.report-card-notes{grid-template-columns:1fr}.grade-sheet-actions{align-items:flex-start;flex-direction:column}.grade-sheet-action-buttons{justify-content:flex-start}}
@media print{body{background:#fff!important}.no-print,.sidebar,.topbar,.app-sidebar,.app-topbar{display:none!important}.app-shell,.main-content,.content,.page-content{display:block!important;margin:0!important;padding:0!important;width:100%!important;max-width:none!important}.academic-page.grade-sheet-shell{max-width:none!important;margin:0!important;padding:0!important}.grade-sheet-paper{box-shadow:none!important;border:0!important;border-radius:0!important;padding:8mm!important;margin:0!important}.grade-sheet-table-wrap{overflow:visible!important}.grade-sheet-table{min-width:0!important;width:100%!important;font-size:8.5pt}.grade-sheet-table th,.grade-sheet-table td{padding:4px 5px!important}.grade-sheet-table th:first-child,.grade-sheet-table td:first-child{position:static!important}.professional-report-header{break-inside:avoid}.grade-sheet-student,.grade-sheet-signatures,.report-card-notes{break-inside:avoid}.report-footer-line{font-size:7pt}@page{size:A4 landscape;margin:8mm}}

/* v9.13.1 academic report workflow */
.report-workflow-panel{margin-top:18px}.report-workflow-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.report-workflow-grid label{display:block;font-weight:800;margin-bottom:7px}.report-remark-input{min-height:100px;resize:vertical}.signature-upload-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:9px;font-size:.8rem;color:#64748b}.report-workflow-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}.workflow-message{font-size:.85rem;color:#475569}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;background:#eef2ff;color:#3730a3;font-size:.75rem;font-weight:800}.report-remark-box{border:1px solid #dbe3ec;border-radius:8px;padding:10px 12px;min-height:72px;background:#fff}.report-remark-box span{display:block;margin-bottom:6px}.report-remark-box p{margin:0;min-height:32px;font-size:.86rem;line-height:1.45;color:#1e293b}.professional-signatures{margin-top:22px}.report-signature-block{min-height:68px}.report-footer-line{margin-top:16px}.grade-sheet-paper{max-width:1180px;margin-inline:auto}.professional-grade-table th,.professional-grade-table td{padding:6px 7px}
@media(max-width:700px){.report-workflow-grid{grid-template-columns:1fr}.signature-upload-row{align-items:flex-start;flex-direction:column}}
@media print{
 html,body{width:100%;height:auto}.topbar,.sidebar,.no-print{display:none!important}.main-area{margin:0!important;width:100%!important}.content{padding:0!important}.grade-sheet-paper{padding:5mm 7mm!important;max-width:none!important;border:0!important}.professional-report-header{grid-template-columns:58px 1fr 58px!important;gap:8px!important;padding-bottom:7px!important;margin-bottom:7px!important}.report-brand-mark,.report-brand-mark img{width:50px!important;height:50px!important;max-width:50px!important;max-height:50px!important}.report-school-heading h1{font-size:14pt!important;margin:0!important}.report-school-heading{font-size:8pt!important}.report-contact-line{font-size:7pt!important;margin-top:1px!important}.report-document-title{margin:7px 0 6px!important}.report-document-title>span{font-size:7.5pt!important}.report-document-title h2{font-size:10pt!important;margin:1px!important}.report-document-title strong{font-size:8pt!important}.grade-sheet-student{gap:5px!important;margin:6px 0 8px!important}.grade-sheet-student div{padding:4px 6px!important;border-radius:4px!important}.grade-sheet-student span{font-size:6.5pt!important}.grade-sheet-student strong{font-size:8.5pt!important;margin-top:1px!important}.grade-sheet-table{font-size:7.5pt!important}.grade-sheet-table th,.grade-sheet-table td{padding:2.6px 4px!important}.report-card-notes{gap:10px!important;margin-top:8px!important}.report-remark-box{padding:5px 7px!important;min-height:40px!important;border-radius:3px!important}.report-remark-box span{font-size:7pt!important;margin-bottom:2px!important}.report-remark-box p{font-size:7.5pt!important;line-height:1.25!important;min-height:20px!important}.professional-signatures{gap:28px!important;margin-top:8px!important}.report-signature-block{min-height:42px!important}.report-signature-image{height:26px!important;max-width:130px!important}.report-signature-space{height:26px!important}.grade-sheet-signature{font-size:7.5pt!important;padding-top:2px!important}.professional-signatures .grade-sheet-signature span{font-size:6.5pt!important}.report-footer-line{margin-top:7px!important;padding-top:4px!important;font-size:6pt!important}@page{size:A4 landscape;margin:5mm}}

/* v9.13.2 Class Sponsor report workspace */
.optional-label{font-size:.72rem;font-weight:700;color:#64748b;margin-left:6px}.sponsor-report-overview{margin-bottom:16px}.sponsor-report-class{margin-top:16px}.table-actions{text-align:right;white-space:nowrap}.btn-sm{padding:7px 10px;font-size:.78rem}.signature-profile-card{max-width:760px}.signature-profile-preview{display:flex;align-items:center;justify-content:center;min-height:150px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;padding:20px}.signature-profile-preview img{max-width:320px;max-height:110px;object-fit:contain}.signature-profile-empty{display:flex;align-items:center;justify-content:center;min-height:120px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;color:#64748b}.signature-profile-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}.muted-copy{color:#64748b;font-size:.84rem}

/* v9.14.2 professional UI baseline: Academic Context + academic reports */
.academic-context-heading{margin-bottom:18px}.academic-context-heading h1{margin-bottom:4px}.academic-context-message{margin-bottom:16px}.context-current-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);padding:0;overflow:hidden;margin-bottom:18px}.context-current-main{display:flex;gap:18px;align-items:flex-start;padding:22px}.context-calendar-icon,.context-section-icon{width:46px;height:46px;flex:0 0 46px;border-radius:12px;display:grid;place-items:center;background:var(--theme-soft,#e9f7f5);color:var(--theme-primary,#0f766e);font-weight:900;font-size:1.15rem}.context-status-badge{display:inline-flex;padding:4px 10px;border-radius:999px;background:#dcfce7;color:#15803d;font-size:.68rem;font-weight:900;letter-spacing:.04em}.context-current-values{display:grid;gap:1px;margin-top:7px}.context-current-values strong{font-size:1.05rem;color:#0f172a;line-height:1.25}.context-current-values span{font-size:.72rem;color:#64748b;margin-bottom:5px}.context-current-side{border-left:1px solid #e2e8f0;padding:22px;display:grid;align-content:center;gap:18px}.context-side-item{display:flex;align-items:center;gap:11px}.context-side-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#f1f5f9;color:var(--theme-primary,#0f766e);font-size:.75rem;font-weight:900}.context-side-item div{display:grid}.context-side-item small{font-size:.7rem;color:#64748b}.context-side-item strong{font-size:.82rem;color:#1e293b}.context-change-card{padding:0;overflow:hidden}.context-section-heading{display:flex;gap:14px;align-items:flex-start;padding:20px 22px 16px;border-bottom:1px solid #edf2f7}.context-section-heading h2{margin:0 0 4px;font-size:1.08rem}.context-section-heading p{margin:0;color:#64748b;font-size:.82rem}.context-form-professional{padding:18px 22px 16px}.context-transition-preview{margin:0 22px 16px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;overflow:hidden}.context-transition-title{padding:10px 14px;border-bottom:1px solid #e2e8f0;font-size:.78rem;font-weight:850;color:var(--theme-primary,#0f766e)}.context-transition-flow{display:grid;grid-template-columns:1fr 42px 1fr;gap:10px;align-items:center;padding:12px}.context-transition-box{display:grid;gap:3px;padding:10px 12px;border-radius:9px;background:#fff;border:1px solid #e2e8f0}.context-transition-box small{font-size:.68rem;font-weight:800;color:#64748b}.context-transition-box strong{font-size:.8rem;color:#1e293b}.context-transition-target{border-color:var(--theme-border,#b7dcd7);background:var(--theme-soft,#f0fbf9)}.context-transition-arrow{width:32px;height:32px;border:1px solid var(--theme-border,#b7dcd7);border-radius:50%;display:grid;place-items:center;color:var(--theme-primary,#0f766e);font-weight:900;margin:auto}.context-work-summary{margin:0 22px 18px;padding:13px;border-radius:12px;border:1px solid #dbe3ec}.context-work-summary.has-outstanding{background:#fffbeb;border-color:#fde68a}.context-work-summary.is-clear{background:#f0fdf4;border-color:#bbf7d0}.context-work-summary-head strong,.context-work-summary-head span{display:block}.context-work-summary-head strong{font-size:.8rem;color:#1e293b}.context-work-summary-head span{font-size:.72rem;color:#64748b;margin-top:2px}.context-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:11px}.context-status-grid>div{background:rgba(255,255,255,.8);border:1px solid rgba(203,213,225,.8);border-radius:9px;padding:8px 10px;display:flex;justify-content:space-between;align-items:center}.context-status-grid span{font-size:.7rem;color:#64748b}.context-status-grid strong{font-size:.95rem;color:#0f172a}.context-change-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 22px;border-top:1px solid #edf2f7;background:#fbfdff}.context-audit-note{font-size:.72rem;color:#64748b}.context-primary-action{min-width:150px}.context-confirm-card{margin-top:18px;padding:20px 22px}.context-confirm-card h2{margin:4px 0}.context-confirm-card p{margin:0 0 14px;color:#64748b}.context-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}

/* Compact, print-minded academic report presentation */
.grade-sheet-shell{max-width:1160px}.grade-sheet-actions{margin-bottom:10px}.grade-sheet-paper{padding:16px 20px;border-radius:12px;box-shadow:0 5px 18px rgba(15,23,42,.05)}.report-card-paper{border-top-width:4px}.professional-report-header{grid-template-columns:68px 1fr 68px;gap:10px;padding-bottom:8px;margin-bottom:0;border-bottom-width:2px}.report-brand-mark{width:60px;height:60px}.report-brand-mark img{max-width:60px;max-height:60px}.report-logo-placeholder{width:52px;height:52px;font-size:.9rem}.report-school-heading h1{font-size:1.28rem;margin:0}.report-school-heading>div{font-size:.78rem}.report-contact-line{font-size:.7rem;margin-top:2px;gap:10px}.report-document-title{margin:9px 0 8px}.report-document-title>span{font-size:.68rem}.report-document-title h2{font-size:.9rem;margin:2px 0 1px}.report-document-title strong{font-size:.76rem}.grade-sheet-student{gap:6px;margin:7px 0 9px}.grade-sheet-student div{padding:6px 8px;border-radius:6px}.grade-sheet-student span{font-size:.62rem}.grade-sheet-student strong{font-size:.82rem;margin-top:1px}.professional-grade-table th,.professional-grade-table td{padding:4px 6px;font-size:.78rem}.grade-sheet-table th:first-child,.grade-sheet-table td:first-child{min-width:155px}.report-card-notes{gap:12px;margin-top:10px}.report-remark-box{padding:7px 9px;min-height:44px;border-radius:6px}.report-remark-box span{font-size:.7rem;margin-bottom:3px}.report-remark-box p{min-height:0;font-size:.76rem;line-height:1.3}.professional-signatures{gap:44px;margin-top:10px}.report-signature-block{min-height:48px}.report-signature-image{height:30px;max-width:140px}.report-signature-space{height:30px}.grade-sheet-signature{padding-top:3px;font-size:.78rem}.professional-signatures .grade-sheet-signature span{font-size:.68rem;margin-top:1px}.report-footer-line{margin-top:8px;padding-top:5px;font-size:.62rem}
@media(max-width:900px){.context-current-card{grid-template-columns:1fr}.context-current-side{border-left:0;border-top:1px solid #e2e8f0;grid-template-columns:1fr 1fr}.context-status-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.context-current-side{grid-template-columns:1fr}.context-transition-flow{grid-template-columns:1fr}.context-transition-arrow{transform:rotate(90deg)}.context-change-footer{align-items:stretch;flex-direction:column}.context-primary-action{width:100%}.context-status-grid{grid-template-columns:1fr 1fr}}

/* v9.14.3 — approved professional UI baseline: compact progressive academic report */
.grade-sheet-shell{max-width:1360px;margin:0 auto}.grade-sheet-paper{padding:18px 22px 14px;border-radius:14px}.professional-report-header{grid-template-columns:72px 1fr 72px;gap:12px;padding-bottom:10px}.report-brand-mark{width:62px;height:62px}.report-brand-mark img{max-width:62px;max-height:62px}.report-school-heading h1{font-size:1.4rem;margin:0 0 2px}.report-contact-line{margin-top:2px;font-size:.72rem}.report-document-title{margin:9px 0 9px}.report-document-title>span{font-size:.72rem}.report-document-title h2{font-size:.96rem;margin:2px 0}.report-document-title strong{font-size:.8rem}.grade-sheet-student{gap:8px;margin:8px 0 10px}.grade-sheet-student div{padding:6px 9px;border-radius:7px}.grade-sheet-student span{font-size:.62rem}.grade-sheet-student strong{font-size:.82rem;margin-top:1px}.professional-grade-table{table-layout:fixed;min-width:0}.professional-grade-table th:first-child,.professional-grade-table td:first-child{width:32%;min-width:0}.professional-grade-table th,.professional-grade-table td{padding:4px 7px;font-size:.78rem;line-height:1.18}.professional-grade-table thead th{font-size:.7rem}.professional-grade-table .grade-sheet-group-row th{padding-top:6px;padding-bottom:6px}.report-score-cell{white-space:nowrap}.report-score-value{vertical-align:middle}.report-grade-badge{display:inline-flex;align-items:center;justify-content:center;min-width:27px;margin-left:6px;padding:2px 6px;border-radius:6px;background:color-mix(in srgb,var(--grade-color,#64748b) 16%,#fff);border:1px solid color-mix(in srgb,var(--grade-color,#64748b) 34%,#fff);color:color-mix(in srgb,var(--grade-color,#64748b) 82%,#0f172a);font-size:.64rem;font-weight:900}.report-card-notes{gap:18px;margin-top:11px;padding-top:9px;border-top:1px solid #e2e8f0}.report-remark-box span{font-size:.72rem}.report-remark-box p{font-size:.72rem;line-height:1.35;margin:4px 0 0}.grade-sheet-signatures{gap:44px;margin-top:14px}.report-signature-block{min-height:58px}.report-signature-space{height:30px}.report-signature-image{height:32px;max-width:150px}.professional-signatures .grade-sheet-signature{padding-top:3px}.professional-signatures .grade-sheet-signature strong{font-size:.78rem}.professional-signatures .grade-sheet-signature span{font-size:.68rem}.report-footer-line{margin-top:10px;padding-top:6px;font-size:.62rem}.report-card-paper{border-top-width:4px}

/* v9.14.3 — Academic Context professional workspace */
.academic-context-heading{padding-bottom:4px;border-bottom:1px solid #e7edf4}.academic-context-heading .eyebrow{display:none}.academic-context-heading h1{font-size:1.55rem}.academic-context-heading p{font-size:.86rem}.context-current-card{border-radius:14px;box-shadow:0 4px 18px rgba(15,23,42,.035)}.context-current-main{padding:18px 20px}.context-current-side{padding:18px 20px}.context-change-card{border-radius:14px;box-shadow:0 4px 18px rgba(15,23,42,.035)}.context-section-heading{padding:17px 20px 13px}.context-form-professional{padding:15px 20px 13px}.context-transition-preview{margin:0 20px 13px}.context-work-summary{margin:0 20px 14px}.context-change-footer{padding:12px 20px}.context-status-grid>div{min-height:48px;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px}.context-status-grid strong{font-size:1.05rem}.context-status-grid span{order:2}.context-primary-action{min-height:42px}

@media print{.grade-sheet-paper{padding:8mm 9mm 6mm;box-shadow:none;border-radius:0}.professional-report-header{padding-bottom:6px}.report-document-title{margin:6px 0}.grade-sheet-student{margin:6px 0 7px}.professional-grade-table th,.professional-grade-table td{padding:3px 5px}.report-card-notes{margin-top:7px;padding-top:6px}.grade-sheet-signatures{margin-top:9px}.report-footer-line{margin-top:6px}}

/* v9.14.4 - full-year report fidelity */
.professional-grade-table.annual-grade-table th:first-child,.professional-grade-table.annual-grade-table td:first-child{width:19%;min-width:0}
.professional-grade-table.annual-grade-table th:not(:first-child),.professional-grade-table.annual-grade-table td:not(:first-child){width:auto}
.professional-grade-table.annual-grade-table .report-grade-badge{margin-left:4px;min-width:24px;padding:1px 5px}
@media print{.professional-grade-table.annual-grade-table th:first-child,.professional-grade-table.annual-grade-table td:first-child{width:18%!important}.professional-grade-table.annual-grade-table th,.professional-grade-table.annual-grade-table td{padding:2.5px 3px!important;font-size:7pt!important}.professional-grade-table.annual-grade-table .report-grade-badge{margin-left:2px!important;min-width:20px!important;padding:1px 3px!important;font-size:6pt!important}}

/* v9.15.1 Academic Results workspace */
.results-workspace-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 14px}.results-workspace-card{display:flex;align-items:center;gap:12px;padding:15px 16px;border:1px solid #dbe4f0;border-radius:14px;background:#fff;color:#0f172a;text-align:left;cursor:pointer;transition:.15s ease;box-shadow:0 4px 14px rgba(15,23,42,.035)}.results-workspace-card:hover{border-color:#7dd3c7;transform:translateY(-1px)}.results-workspace-card.active{border-color:#0f766e;background:#f0fdfa;box-shadow:0 0 0 1px #0f766e inset}.results-workspace-card>span:last-child{display:flex;flex-direction:column;gap:3px}.results-workspace-card strong{font-size:13px}.results-workspace-card small{font-size:11px;color:#64748b;line-height:1.35}.workspace-icon{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;background:#e6fffb;color:#0f766e;font-size:11px;font-weight:900}.results-workspace-card.active .workspace-icon{background:#0f766e;color:#fff}.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.workspace-toolbar>div{display:flex;flex-direction:column;gap:2px}.workspace-toolbar strong{font-size:14px}.workspace-toolbar small{font-size:11px;color:#64748b}.workspace-year{max-width:240px}.reporting-date-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-top:1px solid #e2e8f0;background:#f8fafc}.reporting-date-actions span{font-size:11px;color:#64748b}.academic-section-head .assignment-new{margin-left:auto;min-width:150px}.assignment-list-tools{display:grid;grid-template-columns:minmax(280px,1fr) 220px auto;gap:10px;align-items:center;margin:18px 20px 12px}.assignment-search{position:relative}.assignment-search>span{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#64748b;font-size:18px}.assignment-search input{padding-left:38px}.assignment-table-block{margin-top:0}.assignment-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 14px;border-top:1px solid #e2e8f0;background:#f8fafc}.assignment-pagination span{font-size:12px;color:#64748b}.assignment-empty{margin:0 20px 20px;padding:30px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;text-align:center;display:flex;flex-direction:column;gap:5px}.assignment-empty span{color:#64748b;font-size:12px}@media(max-width:900px){.results-workspace-nav{grid-template-columns:1fr}.assignment-list-tools{grid-template-columns:1fr 1fr}.assignment-list-tools>.muted{grid-column:1/-1}.workspace-toolbar{align-items:flex-start;flex-direction:column}.workspace-year{max-width:none;width:100%}}@media(max-width:600px){.assignment-list-tools{grid-template-columns:1fr}.reporting-date-actions{align-items:stretch;flex-direction:column}.reporting-date-actions .btn{width:100%}}

/* v9.15.2 student/parent portal */
.portal-access-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0}.portal-access-row p{margin:4px 0 0}.soft-panel{padding:16px;border:1px solid var(--border,#e5e7eb);border-radius:14px;background:#f8fafc;margin:12px 0 18px}.portal-hero{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;margin-bottom:18px;background:#fff;border:1px solid #e5e7eb;border-radius:16px}.portal-hero h2{margin:4px 0}.portal-hero p{margin:0;color:#64748b}.workspace-card.disabled{opacity:.55;cursor:not-allowed}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.48);display:grid;place-items:center;z-index:1000;padding:20px}.modal-card{background:#fff;border-radius:18px;padding:24px;width:min(520px,100%);box-shadow:0 24px 70px rgba(15,23,42,.22)}.modal-card h3{margin-top:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.stat-card{padding:16px;border:1px solid #e5e7eb;border-radius:14px;display:flex;flex-direction:column;gap:5px}.stat-card span,.stat-card small{color:#64748b}.stat-card strong{font-size:1.5rem}

/* v9.15.5 - professional student/parent portal */
.portal-page-head,.portal-admin-head{margin-bottom:20px}.professional-portal-hero{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:20px 22px;border:1px solid #dbe4f0;box-shadow:0 8px 24px rgba(15,23,42,.045)}.portal-student-avatar,.portal-result-avatar{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#e6fffb;color:#0f766e;font-weight:800;font-size:13px;flex:0 0 auto}.portal-result-avatar.small{width:36px;height:36px;border-radius:10px;font-size:11px}.portal-student-main h2{margin:2px 0 5px}.portal-student-meta{display:flex;gap:8px;flex-wrap:wrap;color:#64748b;font-size:12px}.portal-student-meta span+span:before{content:"•";margin-right:8px;color:#cbd5e1}.portal-quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.portal-action-card{min-height:92px;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:14px;border:1px solid #dbe4f0;border-radius:14px;background:#fff;text-align:left;color:#0f172a;cursor:pointer;box-shadow:0 4px 14px rgba(15,23,42,.03);transition:.15s ease}.portal-action-card:hover:not(.disabled){border-color:#5eead4;transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,23,42,.06)}.portal-action-card.active{border-color:#0f766e;background:#f0fdfa;box-shadow:0 0 0 1px #0f766e inset}.portal-action-card.disabled{opacity:.52;cursor:not-allowed}.portal-action-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#e6fffb;color:#0f766e;font-size:11px;font-weight:900}.portal-action-card>span:nth-child(2){display:flex;flex-direction:column;gap:4px}.portal-action-card b{font-size:13px}.portal-action-card small{font-size:11px;line-height:1.35;color:#64748b}.portal-action-arrow{font-size:22px;color:#94a3b8}.portal-section{background:#fff;border:1px solid #dbe4f0;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(15,23,42,.025)}.portal-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #e8eef5}.portal-section-head h3{margin:2px 0 3px}.portal-section-head p{margin:0;color:#64748b;font-size:12px}.portal-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:18px 20px}.portal-stat-card{padding:17px;border:1px solid #e2e8f0;border-radius:13px;background:#fbfdff;display:flex;flex-direction:column;gap:5px}.portal-stat-card strong{font-size:25px;line-height:1.1;color:#0f172a}.portal-stat-card small,.portal-stat-label{font-size:11px;color:#64748b}.portal-stat-label{text-transform:uppercase;letter-spacing:.05em;font-weight:700}.portal-search-panel,.portal-manage-panel{overflow:hidden}.portal-search-copy,.portal-manage-header{display:flex;align-items:center;gap:13px;padding:18px 20px}.portal-search-copy h2,.portal-manage-title h2{margin:0 0 3px;font-size:18px}.portal-search-copy p,.portal-manage-title p{margin:0;color:#64748b;font-size:12px}.portal-step{width:32px;height:32px;border-radius:10px;background:#0f766e;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800;flex:0 0 auto}.portal-search-bar{display:flex;gap:10px;align-items:center;padding:0 20px 18px}.portal-search-bar .hpro-control{flex:1;min-width:0}.portal-search-hint{padding:13px 20px;border-top:1px solid #eef2f7;color:#64748b;font-size:12px;background:#fbfdff}.portal-result-list{border-top:1px solid #e8eef5}.portal-result-card{width:100%;display:grid;grid-template-columns:auto 1fr auto auto;gap:13px;align-items:center;padding:13px 20px;border:0;border-bottom:1px solid #eef2f7;background:#fff;text-align:left;cursor:pointer}.portal-result-card:last-child{border-bottom:0}.portal-result-card:hover,.portal-result-card.selected{background:#f8fffe}.portal-result-card.selected{box-shadow:3px 0 0 #0f766e inset}.portal-result-main{display:flex;flex-direction:column;gap:3px}.portal-result-main strong{font-size:13px}.portal-result-main span{font-size:11px;color:#64748b}.portal-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800;white-space:nowrap}.portal-status.enabled{background:#ecfdf5;color:#047857}.portal-status.pending{background:#f1f5f9;color:#64748b}.portal-result-action{font-size:11px;font-weight:700;color:#0f766e}.portal-manage-panel{margin-top:16px}.portal-manage-header{border-bottom:1px solid #e8eef5}.portal-manage-title{flex:1}.portal-access-section{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:18px 20px;border-bottom:1px solid #e8eef5}.portal-access-icon{width:42px;height:42px;border-radius:12px;background:#eff6ff;color:#1d4ed8;display:grid;place-items:center;font-size:11px;font-weight:900}.portal-access-copy h3{margin:0 0 3px;font-size:14px}.portal-access-copy p{margin:0;color:#64748b;font-size:12px}.portal-ready{color:#047857;font-size:11px;font-weight:800}.portal-warning{color:#b45309;font-size:11px;font-weight:700}.portal-guardian-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px 12px}.portal-guardian-head h3{margin:0 0 3px}.portal-guardian-head p{margin:0;color:#64748b;font-size:12px}.portal-link-panel{margin:0 20px 16px}.portal-link-panel .portal-search-bar{padding:0}.portal-guardian-results{margin-top:12px}.portal-guardian-result,.portal-guardian-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid #e2e8f0}.portal-guardian-result>div:nth-child(2){display:flex;flex-direction:column;gap:3px}.portal-guardian-result span{font-size:11px;color:#64748b}.portal-guardian-list{padding:0 20px 16px}.portal-guardian-card{padding:13px 0}.portal-guardian-person{display:flex;flex-direction:column;gap:3px}.portal-guardian-person>div{display:flex;align-items:center;gap:7px;font-size:11px;color:#64748b}.portal-guardian-person small{color:#64748b}.portal-mini-badge{display:inline-flex;border-radius:999px;padding:3px 7px;background:#f1f5f9;color:#475569;font-size:9px;font-weight:800}.portal-empty{margin:0 20px 18px;display:flex;flex-direction:column;gap:4px}.portal-empty span{font-size:12px;color:#64748b}.portal-finance-block{padding:18px 20px}.portal-finance-block+.portal-finance-block{border-top:1px solid #e8eef5}.portal-subhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.portal-subhead h4{margin:0}.portal-subhead span{font-size:11px;color:#64748b}.professional-list-table th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.text-end{text-align:right}
@media(max-width:1000px){.portal-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.portal-quick-actions{grid-template-columns:1fr}.professional-portal-hero{grid-template-columns:auto 1fr}.professional-portal-hero>.status-pill{grid-column:2}.portal-result-card{grid-template-columns:auto 1fr}.portal-result-card>.portal-status,.portal-result-action{grid-column:2}.portal-access-section{grid-template-columns:auto 1fr}.portal-access-section>.btn,.portal-access-section>.portal-ready{grid-column:2}.portal-manage-header{align-items:flex-start;flex-wrap:wrap}.portal-manage-header>.portal-status{margin-left:45px}.portal-guardian-head{align-items:flex-start;flex-direction:column}.portal-guardian-card{grid-template-columns:auto 1fr}.portal-guardian-access{grid-column:2}.portal-search-bar{align-items:stretch;flex-direction:column}.portal-search-bar .btn{width:100%}}
/* v9.15.6 parent/student finance documents */
.finance-document-shell{background:transparent!important;border:0!important;padding:0!important}.finance-doc-tabs{display:flex;gap:10px;margin:0 0 14px}.finance-report-paper{background:#fff;border:1px solid #d9e2ec;border-top:5px solid #0f766e;border-radius:18px;overflow:hidden;box-shadow:0 12px 35px rgba(15,23,42,.06)}.finance-report-header{display:grid;grid-template-columns:76px 1fr 76px;align-items:center;text-align:center;padding:24px 28px 16px;border-bottom:1px solid #0f766e}.finance-report-header h2{margin:0;font-size:25px;color:#0f2747}.finance-report-header div{color:#52657a}.finance-report-contact{margin-top:4px}.finance-report-logo{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#e8faf7;color:#0f766e;font-weight:900;font-size:17px;border:1px solid #bce8df}.finance-report-title{text-align:center;padding:14px 24px}.finance-report-title span{font-size:11px;letter-spacing:.16em;font-weight:850;color:#0f766e}.finance-report-title h3{margin:4px 0 2px;color:#0f2747}.finance-report-title p{margin:0;color:#64748b}.finance-student-strip{display:grid;grid-template-columns:2fr 1.2fr 1fr 1fr;gap:10px;padding:0 26px 20px}.finance-student-strip>div{border:1px solid #dce5ee;border-radius:10px;padding:10px 12px}.finance-student-strip span,.receipt-detail-grid span,.parent-bill-summary span,.parent-bill-total span,.receipt-card-top span{display:block;color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.finance-report-toolbar{display:flex;justify-content:space-between;align-items:center;padding:18px 26px;border-top:1px solid #e7edf3;border-bottom:1px solid #e7edf3;background:#f8fafc}.finance-report-toolbar>div{display:flex;flex-direction:column}.finance-report-toolbar span{color:#64748b;font-size:12px}.parent-bill-card{margin:20px 26px;border:1px solid #dce5ee;border-radius:14px;overflow:hidden}.parent-bill-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px;background:#f8fbfc}.parent-bill-head h4{font-size:18px;margin:3px 0}.parent-bill-total{text-align:right}.parent-bill-total strong{font-size:20px;color:#0f2747}.parent-bill-summary{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e7edf3;border-bottom:1px solid #e7edf3}.parent-bill-summary>div{padding:12px 18px}.parent-bill-summary>div+div{border-left:1px solid #e7edf3}.parent-installments{padding:16px 18px 18px}.parent-installments h5{margin:0;font-size:14px}.receipt-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px 26px}.receipt-card{border:1px solid #dce5ee;border-radius:14px;padding:17px}.receipt-card-top{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:13px;border-bottom:1px solid #edf2f7}.receipt-card-top strong{font-size:15px;color:#0f2747}.receipt-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:14px}.receipt-amount strong{font-size:18px;color:#0f766e}.finance-report-footer{display:flex;justify-content:space-between;padding:13px 26px;border-top:1px solid #dce5ee;color:#64748b;font-size:11px}.portal-status.danger{background:#fee2e2;color:#b91c1c}@media(max-width:900px){.finance-student-strip{grid-template-columns:1fr 1fr}.receipt-list{grid-template-columns:1fr}.finance-report-header{grid-template-columns:60px 1fr 0}.finance-report-header>div:last-child{display:none}}@media(max-width:600px){.finance-student-strip{grid-template-columns:1fr}.parent-bill-head,.finance-report-toolbar{flex-direction:column;gap:12px}.parent-bill-total{text-align:left}.finance-doc-tabs{flex-direction:column}.receipt-detail-grid{grid-template-columns:1fr}}
@media print{.finance-doc-tabs,.finance-report-toolbar,.portal-quick-actions,.portal-hero,.portal-page-head,.app-sidebar,.topbar{display:none!important}.finance-report-paper{box-shadow:none;border-radius:0;border-left:0;border-right:0}.finance-document-shell{margin:0!important}.parent-bill-card,.receipt-card{break-inside:avoid}}

/* v9.15.7 finance report polish */
.finance-report-brand{display:flex;align-items:center;justify-content:center}.finance-school-logo{width:64px;height:64px;object-fit:contain}.receipt-table-wrap{padding:18px 26px}.finance-receipt-table{width:100%;border-collapse:collapse;font-size:13px}.finance-receipt-table th{padding:10px 12px;text-align:left;background:#f1f5f9;color:#52657a;text-transform:uppercase;font-size:10px;letter-spacing:.05em;border-bottom:1px solid #dce5ee}.finance-receipt-table td{padding:13px 12px;border-bottom:1px solid #e7edf3;color:#0f2747}.finance-receipt-table tr:last-child td{border-bottom:0}.finance-total-row{margin:0 26px 20px;padding:14px 16px;border:1px solid #dce5ee;border-radius:10px;background:#f8fafc;display:flex;justify-content:flex-end;align-items:center;gap:18px}.finance-total-row>span{font-size:11px;text-transform:uppercase;color:#64748b}.finance-total-row strong{display:flex;gap:14px;color:#0f2747}.finance-report-paper{max-width:1120px;margin:0 auto}.parent-installments .professional-list-table{font-size:12px}.parent-installments .professional-list-table th,.parent-installments .professional-list-table td{padding:9px 8px}.finance-report-title{border-bottom:1px solid #e7edf3}.finance-report-header{min-height:96px}
@media print{
 @page{size:A4 portrait;margin:8mm}
 html,body{background:#fff!important}
 body *{visibility:hidden!important}
 .finance-report-paper,.finance-report-paper *{visibility:visible!important}
 .finance-report-paper{position:absolute!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;margin:0!important;border:0!important;border-top:3px solid #0f766e!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important}
 .finance-report-header{padding:10px 12px 8px;min-height:auto}.finance-school-logo{width:45px;height:45px}.finance-report-header h2{font-size:17px}.finance-report-header div{font-size:9px}.finance-report-title{padding:7px 12px}.finance-report-title h3{font-size:14px;margin:2px 0}.finance-report-title p{font-size:9px}.finance-student-strip{padding:0 12px 8px;gap:5px}.finance-student-strip>div{padding:5px 7px;border-radius:4px}.finance-student-strip span{font-size:7px}.finance-student-strip strong{font-size:9px}.parent-bill-card{margin:8px 12px;border-radius:6px;break-inside:avoid-page}.parent-bill-head{padding:8px 10px}.parent-bill-head h4{font-size:12px;margin:1px 0}.parent-bill-head small,.parent-bill-head .eyebrow{font-size:7px}.parent-bill-total strong{font-size:12px}.parent-bill-summary>div{padding:6px 10px}.parent-bill-summary span,.parent-bill-total span{font-size:7px}.parent-bill-summary strong{font-size:9px}.parent-installments{padding:6px 10px 8px}.parent-installments h5{font-size:9px}.portal-subhead span{font-size:7px}.parent-installments .professional-list-table{font-size:8px}.parent-installments .professional-list-table th,.parent-installments .professional-list-table td{padding:4px 3px}.portal-status{font-size:7px!important;padding:2px 5px!important}.receipt-table-wrap{padding:8px 12px}.finance-receipt-table{font-size:8px}.finance-receipt-table th{font-size:7px;padding:5px}.finance-receipt-table td{padding:6px 5px}.finance-total-row{margin:0 12px 8px;padding:7px 9px;font-size:8px}.finance-total-row>span{font-size:7px}.finance-report-footer{padding:7px 12px;font-size:7px}.no-print{display:none!important}
}
/* v9.15.12 Library */
.library-page{display:flex;flex-direction:column;gap:18px}.library-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.library-hero h1{margin:5px 0 5px;font-size:30px}.library-hero p,.library-toolbar p{margin:0;color:#70809a}.library-hero-actions,.library-inline{display:flex;gap:10px}.library-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.library-stats>div{background:#fff;border:1px solid #e2e8f0;border-radius:15px;padding:16px 18px;display:flex;flex-direction:column;box-shadow:0 5px 18px rgba(15,23,42,.035)}.library-stats span{font-size:12px;color:#64748b;font-weight:700}.library-stats strong{font-size:27px;color:#10213c;margin:4px 0}.library-stats small{color:#8a98ad}.library-stats .attention{border-color:#fecaca;background:#fffafa}.library-stats .attention strong{color:#b42318}.library-tabs,.library-loan-filters{display:flex;gap:5px;background:#e9eff5;border-radius:11px;padding:4px;width:max-content}.library-tabs button,.library-loan-filters button{border:0;background:transparent;border-radius:8px;padding:9px 16px;font-weight:700;color:#607089;cursor:pointer}.library-tabs button.active,.library-loan-filters button.active{background:#fff;color:#0f766e;box-shadow:0 2px 7px rgba(15,23,42,.08)}.library-panel{padding:0;overflow:hidden}.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid #edf1f5}.library-toolbar h2{margin:0 0 3px;font-size:19px}.library-search{display:flex;gap:8px;min-width:390px}.library-book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}.library-book-card{border:1px solid #e5eaf0;border-radius:14px;padding:15px;display:grid;grid-template-columns:46px 1fr auto;gap:13px;align-items:start;background:#fff}.library-book-mark{width:46px;height:54px;border-radius:9px 9px 6px 6px;background:#e7f4f2;color:#0f766e;display:grid;place-items:center;font-weight:800}.library-book-copy h3{margin:3px 0;font-size:16px;color:#12233e}.library-book-copy p{margin:0 0 9px;color:#5f6f86}.library-book-meta{display:flex;gap:12px;flex-wrap:wrap;color:#8a98aa;font-size:12px}.library-stock{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.library-stock strong{font-size:18px}.library-stock span{font-size:11px;color:#7b899c;margin-bottom:8px}.library-empty,.loading-state{padding:54px 20px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:8px;color:#758399}.library-empty strong{font-size:18px;color:#172a46}.library-empty .btn{margin-top:8px}.library-loan-filters{margin:16px 20px}.library-loan-table td small{display:block;color:#8390a3;margin-top:3px}.library-alert{padding:11px 15px;border-radius:10px;font-weight:650}.library-alert.success{background:#ecfdf3;color:#087443;border:1px solid #b7ebcc}.library-alert.danger{background:#fff1f2;color:#b42318;border:1px solid #fecdd3}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1200;display:grid;place-items:center;padding:20px}.library-modal{width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.25);padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #edf1f5;padding-bottom:14px;margin-bottom:18px}.modal-head h2{margin:4px 0 0}.modal-x{border:0;background:#f1f5f9;width:34px;height:34px;border-radius:9px;font-size:22px;cursor:pointer}.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .field{display:flex;flex-direction:column;gap:6px}.form-grid .field>span{font-size:12px;font-weight:750;color:#46566e}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid #edf1f5;padding-top:16px;margin-top:20px}.library-issue-note{background:#f0f9ff;border:1px solid #bae6fd;color:#075985;padding:10px 12px;border-radius:9px;margin-bottom:15px}.btn-sm{padding:6px 10px;font-size:12px}
@media(max-width:1000px){.library-stats{grid-template-columns:repeat(3,1fr)}.library-book-grid{grid-template-columns:1fr}}@media(max-width:700px){.library-hero,.library-toolbar{flex-direction:column}.library-search{min-width:0;width:100%}.library-stats{grid-template-columns:repeat(2,1fr)}.form-grid.two{grid-template-columns:1fr}.library-hero-actions{width:100%}.library-hero-actions .btn{flex:1}.library-inline{flex-direction:column}}

/* v9.15.14 Library circulation polish + Finance/Accountant completion */
.library-modal{display:flex;flex-direction:column;max-height:min(760px,calc(100vh - 48px));overflow:hidden}.library-modal>.form-grid{overflow:auto;padding-right:4px}.library-modal>.modal-actions{position:sticky;bottom:0;background:#fff;z-index:2;margin-top:14px;padding:14px 0 0}.library-modal .form-grid.two{gap:11px}.library-modal .field{gap:5px}.library-modal .form-control,.library-modal .hpro-control{min-height:42px}.library-student-search{display:grid;grid-template-columns:1fr auto;gap:8px}.library-student-results{display:grid;gap:7px;margin-top:8px;max-height:126px;overflow:auto}.library-student-option{width:100%;border:1px solid #dbe4ec;background:#fff;border-radius:10px;padding:9px 11px;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer}.library-student-option:hover,.library-student-option.selected{border-color:#0f766e;background:#f0fdfa}.library-student-option span{display:flex;flex-direction:column;gap:2px}.library-student-option small{color:#718096}.library-student-option b{font-size:12px;color:#0f766e}.library-search-hint{display:block;color:#7a889b;margin-top:7px}.library-loan-table{width:100%;table-layout:fixed}.library-loan-table th:nth-child(1){width:19%}.library-loan-table th:nth-child(2){width:31%}.library-loan-table th:nth-child(3),.library-loan-table th:nth-child(4){width:14%}.library-loan-table th:nth-child(5){width:12%}.library-loan-table th:nth-child(6){width:10%}.library-loan-table th,.library-loan-table td{padding:13px 14px;vertical-align:middle}.library-loan-table td strong{line-height:1.3}.library-panel .table-wrap{width:100%;overflow-x:auto;padding:0 18px 18px}.library-panel .table-wrap .library-loan-table{min-width:820px}.library-select{appearance:auto}

.ops-report-filters{display:grid;grid-template-columns:repeat(3,minmax(160px,220px)) auto;gap:12px;align-items:end;margin-top:16px}.ops-report-filters>div{display:flex;flex-direction:column;gap:6px}.finance-official-report{background:#fff;border:1px solid #dfe6ee;border-radius:16px;padding:26px;margin-top:16px}.ops-report-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:2px solid #0f766e;padding-bottom:16px}.ops-report-head h1{margin:5px 0;font-size:26px}.ops-report-head p{margin:0;color:#66758b}.ops-report-badge{background:#e8f5f2;color:#0f766e;font-weight:800;padding:10px 14px;border-radius:10px}.ops-report-currency{padding:20px 0;border-bottom:1px solid #e8edf2}.ops-report-currency>h2{margin:0 0 13px}.ops-report-currency>h3{font-size:14px;margin:20px 0 9px;color:#41516a}.ops-report-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.ops-report-metrics>div,.ops-report-accounts>div{border:1px solid #e3e9ef;border-radius:11px;padding:12px;display:flex;flex-direction:column;gap:3px}.ops-report-metrics span,.ops-report-accounts span,.ops-report-accounts small{font-size:11px;color:#728096}.ops-report-metrics strong,.ops-report-accounts strong{font-size:17px;color:#10213c}.ops-report-accounts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ops-report-footer{text-align:center;color:#7b8798;font-size:11px;padding-top:18px}.ops-reverse-modal{width:min(520px,100%)}.ops-reverse-summary{display:flex;justify-content:space-between;gap:15px;background:#f7f9fb;border:1px solid #e4eaf0;border-radius:10px;padding:12px;margin:14px 0}.ops-reverse-summary span{color:#66758b}.ops-reversed-label{font-size:11px;font-weight:800;color:#b42318;background:#fff1f2;border-radius:999px;padding:5px 8px}.btn-danger{background:#b42318;color:#fff;border:1px solid #b42318}.btn-danger:hover{background:#912018}.row-reversed{opacity:.62;text-decoration:none}.row-reversed td{background:#fafafa}
@media(max-width:900px){.ops-report-filters{grid-template-columns:1fr 1fr}.ops-report-metrics{grid-template-columns:1fr 1fr}.ops-report-accounts{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.library-modal{max-height:calc(100vh - 20px);padding:16px}.library-loan-table{min-width:0!important;table-layout:auto}.library-panel .table-wrap{padding:0 12px 12px}.library-loan-table thead{display:none}.library-loan-table,.library-loan-table tbody,.library-loan-table tr,.library-loan-table td{display:block;width:100%!important}.library-loan-table tr{border:1px solid #e4eaf0;border-radius:12px;padding:11px;margin-bottom:10px}.library-loan-table td{border:0;padding:4px 0}.library-loan-table td.text-end{text-align:left!important;padding-top:8px}.ops-report-filters,.ops-report-metrics,.ops-report-accounts{grid-template-columns:1fr}.ops-report-head{flex-direction:column}}
@media print{.finance-official-report{position:absolute;left:0;top:0;width:100%;border:0;border-radius:0;padding:0;margin:0}.finance-official-report .ops-table-wrap{overflow:visible}.finance-official-report table{font-size:9pt}.finance-official-report th,.finance-official-report td{padding:5px 6px}.ops-report-currency{break-inside:avoid-page}.ops-report-badge{border:1px solid #ccd7df;background:#fff}.no-print{display:none!important}}

/* v9.15.15 finance report polish */
.ops-report-school{display:flex;align-items:center;gap:14px;min-width:0}.ops-report-logo{width:58px;height:58px;object-fit:contain;flex:0 0 58px}.ops-report-school h1{margin:4px 0;font-size:24px}.ops-net-positive{color:#067647!important}.ops-net-negative{color:#b42318!important}.finance-official-report .ops-table-wrap{width:100%}.finance-official-report .data-table{width:100%;table-layout:auto}.finance-official-report .data-table th,.finance-official-report .data-table td{vertical-align:top}.finance-official-report .data-table td:nth-child(3){min-width:260px}.finance-official-report .data-table td:nth-child(4){min-width:130px}.finance-official-report .data-table td:nth-child(5){min-width:120px}.finance-official-report .data-table td:nth-child(6){min-width:120px}.finance-official-report{scroll-margin-top:90px}
@media(max-width:700px){.ops-report-school{align-items:flex-start}.ops-report-logo{width:46px;height:46px;flex-basis:46px}.ops-report-school h1{font-size:20px}.finance-official-report .data-table td:nth-child(n){min-width:0}}
@media print{.ops-report-logo{width:44px;height:44px}.ops-report-head{padding-bottom:10px}.ops-report-school h1{font-size:17pt}.ops-report-badge{font-size:9pt}.ops-report-metrics>div,.ops-report-accounts>div{padding:7px}.ops-report-currency{padding:12px 0}.ops-report-currency>h3{margin:12px 0 6px}.ops-report-footer{padding-top:10px}.finance-official-report .data-table td:nth-child(3){min-width:0}}

/* v9.15.16 finance print visibility + pagination fix */
@media print{
  /* v9.15.7 portal printing hides all body content by visibility. Explicitly
     opt the accountant financial statement back into the print tree. */
  .finance-official-report,
  .finance-official-report *{visibility:visible!important}
  .finance-official-report{display:block!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
  .page-heading,.finance-tabs,.finance-report-workspace{display:none!important}
  .ops-report-currency{break-inside:auto!important;page-break-inside:auto!important}
  .ops-report-head,.ops-report-metrics,.ops-report-accounts,.ops-report-currency>h2,.ops-report-currency>h3{break-inside:avoid-page!important;page-break-inside:avoid!important}
  .finance-official-report .ops-table-wrap{overflow:visible!important}
  .finance-official-report table{width:100%!important;table-layout:auto!important}
  .finance-official-report thead{display:table-header-group}
  .finance-official-report tr{break-inside:avoid-page;page-break-inside:avoid}
  @page{size:A4 portrait;margin:9mm}
}

/* v9.15.17 Teacher academic workspace */
.lp-page{max-width:1240px;margin:0 auto}.lp-page .page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px}.lp-page .page-head h1{margin:4px 0 5px;font-size:32px}.lp-page .page-head p,.panel-title p{margin:0;color:#718096}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.09em;color:var(--school-accent)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric-card{background:#fff;border:1px solid #dfe7ef;border-radius:14px;padding:17px 19px}.metric-card span{display:block;color:#718096;font-size:13px}.metric-card strong{display:block;font-size:26px;margin-top:5px}.lp-tabs,.review-filter{display:flex;gap:6px;background:#e8eef4;border-radius:12px;padding:4px;width:max-content;margin-bottom:14px}.lp-tabs button,.review-filter button{border:0;background:transparent;border-radius:9px;padding:10px 16px;font-weight:700;color:#5b6b7d;cursor:pointer}.lp-tabs button.active,.review-filter button.active{background:#fff;color:var(--school-accent);box-shadow:0 1px 4px #00000012}.panel{background:#fff;border:1px solid #dfe7ef;border-radius:16px;padding:22px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-title h2{margin:0 0 4px}.hpro-table{width:100%;border-collapse:collapse}.hpro-table th{text-align:left;font-size:12px;color:#64748b;padding:11px;border-bottom:1px solid #e6edf3}.hpro-table td{padding:13px 11px;border-bottom:1px solid #edf1f5;vertical-align:middle}.hpro-table td small{display:block;color:#718096;margin-top:3px}.hpro-table .actions{white-space:nowrap;text-align:right}.status-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.status-draft{background:#eef2f7;color:#536273}.status-submitted{background:#e9f2ff;color:#1756a9}.status-returned{background:#fff1e7;color:#a74c0b}.status-approved{background:#e6f7ee;color:#087443}.empty-state{text-align:center;padding:48px 20px;color:#718096}.empty-state strong,.empty-state span{display:block}.empty-state strong{color:#15253b;font-size:17px;margin-bottom:6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid label,.modal-body label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#26364a}.form-grid .span-2{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea,.modal-body textarea{width:100%;box-sizing:border-box;border:1px solid #ccd8e3;border-radius:10px;padding:11px 12px;background:#fff;font:inherit;color:#17283e}.form-grid textarea{min-height:82px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;margin-top:18px}.lp-modal{width:min(760px,calc(100vw - 32px));max-height:88vh;display:flex;flex-direction:column}.lp-modal .modal-body{overflow:auto;padding-bottom:10px}.modal-foot{position:sticky;bottom:0;background:#fff;border-top:1px solid #e7edf2;display:flex;justify-content:flex-end;gap:10px;padding:14px 22px}.review-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.review-card{border:1px solid #dfe7ef;border-radius:14px;padding:18px}.review-card-head{display:flex;justify-content:space-between;gap:15px}.review-card-head strong,.review-card-head span{display:block}.review-card-head span{font-size:12px;color:#718096;margin-top:3px}.review-card h3{margin:18px 0 4px}.review-meta{color:#718096;font-size:13px;margin-bottom:14px}.review-section{background:#f7f9fb;border-radius:10px;padding:12px;margin-top:10px}.review-section p,.review-comment p{margin:5px 0 0;white-space:pre-wrap}.review-comment{background:#fff5e9;border:1px solid #f6d5ae;border-radius:10px;padding:12px;margin-top:10px}.review-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.small-modal{width:min(560px,calc(100vw - 32px))}
@media(max-width:850px){.metric-grid{grid-template-columns:repeat(2,1fr)}.review-cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.lp-page .page-head{flex-direction:column}.table-wrap{overflow:auto}.hpro-table{min-width:800px}}

/* v9.15.18 lesson-plan workflow visibility */
.lp-detail-modal{max-width:760px}.lp-detail-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line,#e5e7eb)}.lp-detail-modal .review-section{margin:0 0 16px}.lp-detail-modal .review-section p{white-space:pre-wrap;margin:6px 0 0;line-height:1.55}.lp-detail-modal .review-comment{margin-top:18px}.hpro-table td.actions{white-space:nowrap}.hpro-table td.actions .btn{margin-left:6px}
/* v9.15.19 lesson-plan workflow reliability */
.lp-tabs button { color: #52637a !important; min-width: 160px; }
.lp-tabs button.active { color: #08796f !important; background: #fff !important; font-weight: 800; }
.review-filter button { color: #52637a !important; min-width: 145px; }
.review-filter button.active { color: #08796f !important; background: #fff !important; font-weight: 800; }
/* v9.15.20 Visitor management */
.visitor-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}.visitor-toolbar .search-box{display:flex;gap:8px;flex:1;max-width:650px}.visitor-toolbar .search-box input{flex:1}.visitor-table td{vertical-align:middle}.visitor-table td small{display:block;margin-top:4px;color:var(--muted,#718096)}.visitor-modal{max-width:760px}.compact-form .form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.compact-form label{display:flex;flex-direction:column;gap:6px;font-weight:600}.compact-form .span-2{grid-column:1/-1}.compact-form input,.compact-form textarea{font-weight:400}.btn-sm{padding:8px 12px}@media(max-width:800px){.visitor-toolbar{align-items:stretch;flex-direction:column}.visitor-toolbar .search-box{max-width:none}.compact-form .form-grid.two{grid-template-columns:1fr}.compact-form .span-2{grid-column:auto}.visitor-table thead{display:none}.visitor-table,.visitor-table tbody,.visitor-table tr,.visitor-table td{display:block;width:100%}.visitor-table tr{padding:14px;border-bottom:1px solid #e5eaf0}.visitor-table td{border:0;padding:5px 0}.visitor-modal{max-height:92vh;overflow:auto}}
.lesson-attachment{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;margin:12px 0;border:1px solid #dce6ea;border-radius:12px;background:#f7fafb}.lesson-attachment div{display:flex;flex-direction:column;gap:3px}.lesson-attachment span{font-size:.88rem;color:#64748b}
/* v9.15.21 - Bulk Reports & Operations Center */
.ops-page{display:grid;gap:16px}.ops-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ops-filters label{display:grid;gap:7px;font-weight:700;font-size:.84rem}.ops-filters input,.ops-filters select{width:100%;min-height:44px;border:1px solid #d7e1ea;border-radius:10px;background:#fff;padding:0 12px;color:#10233f}.ops-inline-actions{display:flex;gap:8px}.ops-roster{max-height:390px;overflow:auto}.check-col{width:42px}.ops-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ops-action-card{text-align:left;border:1px solid #dbe5ec;border-radius:14px;background:#fff;padding:18px;min-height:118px;cursor:pointer;display:grid;gap:8px;align-content:start}.ops-action-card:hover{border-color:var(--school-accent);box-shadow:0 8px 24px rgba(15,35,63,.08)}.ops-action-card b{font-size:1rem;color:#10233f}.ops-action-card span{font-size:.82rem;color:#71809b;line-height:1.45}.metric-text{font-size:1.05rem!important}.batch-print-actions{position:sticky;top:76px;z-index:5;background:#fff;border:1px solid #dbe5ec;border-radius:12px;padding:12px 16px;display:flex;align-items:center;justify-content:flex-end;gap:10px}.batch-print-actions strong{margin-right:auto}.batch-document{display:grid;gap:18px}.batch-sheet{background:#fff;border:1px solid #dbe5ec;border-radius:16px;padding:24px;min-height:340px}.batch-sheet header{display:flex;justify-content:space-between;gap:24px;border-bottom:2px solid var(--school-accent);padding-bottom:14px;margin-bottom:16px}.batch-sheet h2{margin:4px 0 0;color:#10233f}.batch-student{display:grid;text-align:right;align-content:center}.batch-student span{color:#71809b;font-size:.85rem}.batch-table{width:100%;border-collapse:collapse}.batch-table th,.batch-table td{padding:9px 10px;border-bottom:1px solid #e8eef3;text-align:left}.batch-table th{font-size:.75rem;text-transform:uppercase;color:#60708c}.batch-table .num{text-align:right}.batch-totals{margin-top:16px;display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.batch-totals div{min-width:150px;background:#f6f9fb;border-radius:10px;padding:10px 12px;display:grid}.batch-totals span{font-size:.75rem;color:#71809b}.batch-totals .balance{background:#eaf7f4}.batch-sheet footer{margin-top:28px;padding-top:12px;border-top:1px solid #e8eef3;color:#8390a5;font-size:.72rem;text-align:center}.empty-state.compact{min-height:120px}
@media(max-width:1000px){.ops-filters,.ops-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.ops-filters,.ops-actions{grid-template-columns:1fr}.batch-sheet header{display:grid}.batch-student{text-align:left}.batch-print-actions{position:static;flex-wrap:wrap}}
@media print{@page{size:A4 portrait;margin:9mm}.ops-page>.no-print,.batch-print-actions{display:none!important}.batch-document{display:block}.batch-sheet{border:0;border-radius:0;padding:0;min-height:0;break-after:page}.batch-sheet:last-child{break-after:auto}.batch-sheet header{margin-top:0}.batch-table tr{break-inside:avoid}.batch-sheet footer{margin-top:18px}}
/* v9.15.23 - faster, clearer bulk operations */
.ops-generate-panel{border:1px solid #cfe2df}.ops-action-card{cursor:default;grid-template-rows:auto auto 1fr auto}.ops-action-card:hover{border-color:#dbe5ec;box-shadow:none}.ops-action-card .btn{width:100%;justify-content:center;margin-top:6px}.ops-action-icon{width:38px;height:38px;border-radius:11px;background:#e9f5f3;color:#08766e;font-weight:800;font-size:.78rem;display:grid;place-items:center}.batch-print-actions>div:first-child{display:grid;gap:2px;margin-right:auto}.batch-print-actions>div:first-child span{font-size:.78rem;color:#71809b}.bulk-report-header{align-items:center}.bulk-school-brand{display:flex;align-items:center;gap:14px}.bulk-school-brand img{width:58px;height:58px;object-fit:contain}.bulk-school-brand h2{margin:2px 0}.bulk-school-brand span{font-size:.76rem;color:#64748b;font-weight:700}.bulk-grade-table{font-size:.82rem}.bulk-grade-table th,.bulk-grade-table td{padding:6px 7px}.bulk-grade-table .summary-row{background:#f6f9fb}.bulk-report-card{min-height:0}
@media(max-width:800px){.ops-action-card{min-height:0}.batch-print-actions>div:first-child{width:100%}.batch-print-actions{align-items:stretch}.batch-print-actions .btn{flex:1}.bulk-school-brand{align-items:flex-start}.bulk-report-header{align-items:flex-start}}
@media print{.bulk-report-card{font-size:10px}.bulk-report-card .bulk-school-brand img{width:42px;height:42px}.bulk-report-card .batch-table th,.bulk-report-card .batch-table td{padding:4px 5px}.bulk-report-card footer{margin-top:10px}}
.ops-card-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:8px;margin-top:6px}.ops-card-actions .btn{margin-top:0}@media(max-width:650px){.ops-card-actions{grid-template-columns:1fr}}

/* v9.15.24 — unified official report format */
.batch-official-report{margin:0 auto 24px;}
@media print{
  .report-card-batch .batch-official-report{break-after:page;page-break-after:always;margin:0!important;}
  .report-card-batch .batch-official-report:last-child{break-after:auto;page-break-after:auto;}
}

/* v9.15.26 - Bulk official reports: reliable print tree + unified professional format */
.official-finance-batch .batch-official-report{max-width:1120px;margin:0 auto 20px;padding:22px 26px 18px}
.official-finance-batch .grade-sheet-student{margin-bottom:14px}
.official-finance-batch .grade-sheet-table{table-layout:auto;min-width:0}
.official-finance-batch .grade-sheet-table th:first-child,.official-finance-batch .grade-sheet-table td:first-child{position:static;min-width:0}
.official-finance-batch .batch-totals{border-top:1px solid #e2e8f0;padding-top:14px;margin-top:14px}
.official-finance-batch .batch-totals>div{border:1px solid #e2e8f0;background:#f8fafc}
.official-finance-batch .batch-totals>div.balance{background:#ecfdf5;border-color:#bbf7d0}
.official-finance-batch .empty-state.compact{min-height:150px;display:grid;place-items:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;margin:12px 0;color:#64748b}

@page hproReportCard{size:A4 landscape;margin:5mm}
@page hproFinance{size:A4 portrait;margin:8mm}
@media print{
  /* app.css contains an older portal rule that hides the entire body print tree.
     Bulk documents must explicitly opt back in. */
  .ops-page .batch-document,
  .ops-page .batch-document *{visibility:visible!important}
  .ops-page .batch-document{display:block!important;position:static!important;width:100%!important;margin:0!important;padding:0!important}
  .ops-page .batch-official-report{display:block!important;position:static!important;left:auto!important;top:auto!important;width:100%!important;max-width:none!important;margin:0!important;box-shadow:none!important;border:0!important;border-radius:0!important;overflow:visible!important}
  .ops-page .batch-print-actions,.ops-page>.no-print{display:none!important}

  /* Exact official academic-report layout, one student per landscape page. */
  .report-card-batch .batch-official-report{page:hproReportCard;break-after:page!important;page-break-after:always!important;padding:5mm 7mm!important}
  .report-card-batch .batch-official-report:last-child{break-after:auto!important;page-break-after:auto!important}
  .report-card-batch .professional-report-header{grid-template-columns:58px 1fr 58px!important;gap:8px!important;padding-bottom:7px!important;margin-bottom:7px!important}
  .report-card-batch .report-brand-mark,.report-card-batch .report-brand-mark img{width:50px!important;height:50px!important;max-width:50px!important;max-height:50px!important}
  .report-card-batch .report-school-heading h1{font-size:14pt!important;margin:0!important}
  .report-card-batch .report-school-heading{font-size:8pt!important}
  .report-card-batch .report-document-title{margin:7px 0 6px!important}
  .report-card-batch .grade-sheet-student{gap:5px!important;margin:6px 0 8px!important}
  .report-card-batch .grade-sheet-student div{padding:4px 6px!important}
  .report-card-batch .grade-sheet-table{min-width:0!important;width:100%!important;font-size:7.5pt!important}
  .report-card-batch .grade-sheet-table th,.report-card-batch .grade-sheet-table td{padding:2.6px 4px!important}
  .report-card-batch .grade-sheet-table th:first-child,.report-card-batch .grade-sheet-table td:first-child{position:static!important}
  .report-card-batch .professional-grade-table.annual-grade-table th:first-child,.report-card-batch .professional-grade-table.annual-grade-table td:first-child{width:18%!important}
  .report-card-batch .professional-signatures{margin-top:8px!important}
  .report-card-batch .report-footer-line{margin-top:7px!important;font-size:6pt!important}

  /* Bills and receipt registers use the same school identity/header language,
     but remain portrait documents. Never absolutely stack student reports. */
  .official-finance-batch .batch-official-report{page:hproFinance;break-after:page!important;page-break-after:always!important;padding:7mm!important}
  .official-finance-batch .batch-official-report:last-child{break-after:auto!important;page-break-after:auto!important}
  .official-finance-batch .professional-report-header{grid-template-columns:52px 1fr 52px!important;padding-bottom:8px!important;margin-bottom:6px!important}
  .official-finance-batch .report-brand-mark,.official-finance-batch .report-brand-mark img{width:46px!important;height:46px!important;max-width:46px!important;max-height:46px!important}
  .official-finance-batch .report-school-heading h1{font-size:15pt!important}
  .official-finance-batch .report-document-title{margin:7px 0!important}
  .official-finance-batch .grade-sheet-student{margin:6px 0 10px!important;gap:5px!important}
  .official-finance-batch .grade-sheet-student div{padding:5px 7px!important}
  .official-finance-batch .grade-sheet-table{width:100%!important;min-width:0!important;font-size:8pt!important}
  .official-finance-batch .grade-sheet-table th,.official-finance-batch .grade-sheet-table td{padding:5px 6px!important}
  .official-finance-batch .batch-totals{margin-top:10px!important;padding-top:8px!important;gap:6px!important}
  .official-finance-batch .batch-totals>div{padding:6px 8px!important;min-width:120px!important}
  .official-finance-batch .empty-state.compact{min-height:95px!important;margin:8px 0!important}
  .official-finance-batch .report-footer-line{margin-top:10px!important}
}

/* v9.15.30 - visible global action feedback + whole-year publishing */
.app-shell .alert-success,.app-shell .alert-error{position:fixed;top:88px;right:24px;z-index:5000;width:min(430px,calc(100vw - 32px));margin:0;padding:14px 18px 14px 46px;border-radius:12px;box-shadow:0 18px 45px rgba(15,23,42,.18);font-size:13px;font-weight:700;line-height:1.45;animation:hproToastIn .2s ease-out}
.app-shell .alert-success:before,.app-shell .alert-error:before{position:absolute;left:16px;top:13px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900}
.app-shell .alert-success:before{content:'✓';background:#16845a}.app-shell .alert-error:before{content:'!';background:#dc2626}
@keyframes hproToastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.ops-publish-modal{width:min(620px,100%)}.publish-warning{display:flex;flex-direction:column;gap:6px;background:#f0fdfa;border:1px solid #99f6e4;border-radius:12px;padding:15px 16px;color:#134e4a}.publish-warning span{font-size:13px;line-height:1.55;color:#476b68}
@media(max-width:700px){.app-shell .alert-success,.app-shell .alert-error{top:76px;right:16px;left:16px;width:auto}}
/* v9.15.32 user account management */
.school-user-manage{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit;color:inherit}.school-user-manage:hover{background:#f8fafc}.school-user-identity{display:flex;flex-direction:column;min-width:0}.school-user-identity small{color:#64748b}.manage-user-link{font-weight:800;color:#0f766e;white-space:nowrap}.access-manage-modal{width:min(940px,calc(100vw - 32px));max-height:90vh;overflow:auto}.form-grid-wide{grid-column:1/-1}.account-security-box{margin-top:18px;padding:16px;border:1px solid #dbe5ea;border-radius:14px;background:#f8fafc;display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,320px) auto;gap:14px;align-items:end}.account-security-box h3{margin:0 0 4px}.account-security-box p{margin:0;color:#64748b;font-size:13px}@media(max-width:800px){.account-security-box{grid-template-columns:1fr}.school-user-row{grid-template-columns:auto 1fr}.school-user-row .user-role-list,.school-user-row .status{grid-column:2}.manage-user-link{grid-column:2}}
.password-profile-card{margin-top:18px}.password-change-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:800px){.password-change-grid{grid-template-columns:1fr}}
/* v9.15.33 School Inventory & Asset Management */
.inventory-page{display:grid;gap:18px}.inventory-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px;border:1px solid var(--border,#e5e7eb);border-radius:18px;background:linear-gradient(135deg,#fff,#f8fafc)}.inventory-hero h1{margin:4px 0 5px;font-size:28px}.inventory-hero p{margin:0;color:#64748b}.inventory-actions{display:flex;gap:9px;flex-wrap:wrap}.inventory-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.inventory-stats>div{padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}.inventory-stats span,.inventory-stats small{display:block;color:#64748b}.inventory-stats strong{display:block;font-size:25px;margin:3px 0}.inventory-stats .attention{border-color:#fed7aa;background:#fff7ed}.inventory-tabs{display:flex;gap:4px;border-bottom:1px solid #e5e7eb}.inventory-tabs button{border:0;background:transparent;padding:11px 15px;font-weight:700;color:#64748b;cursor:pointer}.inventory-tabs button.active{color:var(--school-primary,#1d4ed8);border-bottom:3px solid var(--school-primary,#1d4ed8)}.inventory-toolbar{display:flex;gap:8px}.inventory-toolbar input{max-width:520px}.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.inventory-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:17px;display:grid;gap:14px}.inventory-card-head{display:flex;justify-content:space-between;gap:10px}.inventory-card h3{margin:4px 0 2px}.inventory-card small,.cell-sub{display:block;color:#64748b}.inventory-category{font-size:11px;font-weight:800;color:var(--school-primary,#1d4ed8);text-transform:uppercase}.inventory-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.inventory-numbers span{padding:9px;background:#f8fafc;border-radius:9px;font-size:12px}.inventory-numbers b{display:block;font-size:18px}.inventory-meta{display:grid;gap:5px;font-size:13px;color:#64748b}.inventory-meta b{color:#334155}.inventory-card-actions{display:flex;justify-content:flex-end;gap:7px}.inventory-modal{width:min(760px,calc(100vw - 30px));max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 24px 70px #0f172a40}.inventory-modal.small{width:min(540px,calc(100vw - 30px))}.inventory-availability{padding:10px 12px;border-radius:10px;background:#eff6ff;color:#1e40af;font-weight:700;margin-bottom:14px}.status-chip{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:800}.section-heading h2{margin:0}.section-heading p{margin:4px 0;color:#64748b}@media(max-width:1000px){.inventory-stats{grid-template-columns:repeat(2,1fr)}.inventory-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.inventory-hero{display:grid}.inventory-stats,.inventory-grid{grid-template-columns:1fr}.inventory-toolbar{display:grid}.inventory-tabs{overflow-x:auto}.inventory-tabs button{white-space:nowrap}}

/* v9.15.35 Notices & Announcements */
.notice-editor{margin-bottom:1.25rem}.form-block{display:block;margin-top:1rem}.form-block textarea{width:100%;margin-top:.4rem}.notice-options{display:flex;gap:1.5rem;flex-wrap:wrap;margin:1rem 0}.notice-options label{display:flex;gap:.5rem;align-items:center}.notice-list,.notice-feed{display:grid;gap:.8rem}.notice-admin-card,.notice-feed-card{display:flex;gap:1rem;align-items:flex-start;border:1px solid #dfe7ee;border-radius:14px;padding:1rem;background:#fff}.notice-main{flex:1;min-width:0}.notice-main h3,.notice-feed-card h3{margin:.15rem 0 .35rem}.notice-main p,.notice-feed-card p{margin:.2rem 0 .55rem;white-space:pre-wrap}.notice-title-line,.notice-feed-top,.notice-feed-foot{display:flex;align-items:center;gap:.5rem;justify-content:space-between}.notice-actions{display:flex;gap:.45rem;flex-wrap:wrap}.notice-priority,.notice-chip,.unread-dot{display:inline-flex;align-items:center;border-radius:999px;padding:.24rem .55rem;font-size:.75rem;font-weight:700;background:#eef3f6}.notice-priority.important{background:#fff3cd}.notice-priority.urgent{background:#fde7e7}.notice-feed-card.urgent{border-left:4px solid #b42318}.notice-feed-card.important{border-left:4px solid #b7791f}.notice-feed-card.unread{box-shadow:0 6px 18px rgba(15,23,42,.07)}.notice-feed-card{display:block}.notice-feed-foot{margin-top:.8rem}.notice-feed-foot>div{display:flex;gap:.4rem;align-items:center}@media(max-width:760px){.notice-admin-card{display:block}.notice-actions{margin-top:.8rem}.notice-feed-foot{align-items:flex-start;flex-direction:column}.notice-options{display:grid;gap:.6rem}}
.notice-attachment{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.8rem 1rem;background:#f7fafb;border:1px solid #e1e8ed;border-radius:12px}.notice-attachment-link{border:0;background:transparent;padding:0;color:inherit;font-weight:700;cursor:pointer;text-decoration:underline;margin-top:.45rem}
/* v9.15.36 library copy-level management */
.library-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.library-card-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.library-card-actions .btn{white-space:nowrap}@media(max-width:1000px){.library-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.library-stats{grid-template-columns:repeat(2,1fr)}}

/* v9.15.37 - Professional Student & Parent Portal */
.portal-dashboard-notices{margin:0 0 18px;padding:16px 18px;background:#fff;border:1px solid #dbe4f0;border-radius:16px;box-shadow:0 5px 18px rgba(15,23,42,.035)}
.portal-dashboard-notice-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:11px}.portal-dashboard-notice-head h2{margin:2px 0 0;font-size:18px}.portal-view-all{font-size:12px;font-weight:800;color:#0f766e;text-decoration:none}.portal-view-all:hover{text-decoration:underline}
.portal-dashboard-notices .notice-feed.compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-dashboard-notices .notice-feed-card{padding:12px 14px;border-radius:12px;box-shadow:none}.portal-dashboard-notices .notice-feed-card h3{font-size:14px;margin:7px 0 3px}.portal-dashboard-notices .notice-feed-message{font-size:12px;color:#64748b;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.portal-dashboard-notices .notice-feed-foot{margin-top:8px}.portal-dashboard-notices .notice-feed-foot small{font-size:10px;color:#8492a6}.portal-dashboard-notices .notice-priority,.portal-dashboard-notices .notice-chip,.portal-dashboard-notices .unread-dot{font-size:9px;padding:3px 7px}.notice-feed-loading{padding:10px;color:#64748b;font-size:12px}.notice-feed-empty{padding:10px!important;margin:0!important;text-align:left!important}
.portal-page-head{margin:2px 0 14px}.portal-page-head h1{font-size:28px;margin:4px 0 5px}.portal-page-head p{margin:0;color:#64748b}
.portal-child-switcher{display:flex;align-items:center;justify-content:space-between;gap:22px;background:#f8fffe;border:1px solid #cdebe6;border-radius:14px;padding:13px 16px;margin-bottom:12px}.portal-child-switcher>div{display:flex;flex-direction:column;gap:3px}.portal-child-switcher strong{font-size:13px}.portal-child-switcher select{width:min(440px,50%)}
.professional-portal-hero{padding:15px 18px;margin-bottom:14px;border-radius:16px}.portal-student-avatar{width:44px;height:44px}.portal-student-main h2{font-size:19px;margin:1px 0 3px}.portal-student-state{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.portal-student-state small{font-size:10px;color:#94a3b8}
.portal-service-section{margin-bottom:14px}.portal-service-heading{display:flex;justify-content:space-between;align-items:end;margin:0 2px 8px}.portal-service-heading h3{font-size:15px;margin:2px 0 0}.portal-quick-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:0}.portal-action-card{min-height:76px;padding:11px 12px;border-radius:13px}.portal-action-icon{width:34px;height:34px;border-radius:10px}.portal-action-card b{font-size:12px}.portal-action-card small{font-size:10px}.portal-action-arrow{font-size:18px}
.portal-section{border-radius:15px}.portal-section-head{padding:15px 18px}.portal-section-head h3{font-size:17px}.portal-stats-grid{padding:14px 18px;gap:9px}.portal-stat-card{padding:14px;border-radius:12px}.portal-stat-card strong{font-size:22px}
.portal-library-actions{display:flex;gap:7px}.portal-library-catalog{border-bottom:1px solid #edf1f5;background:#fbfdff}.portal-library-subhead{display:flex;justify-content:space-between;align-items:center;padding:14px 18px 0}.portal-library-subhead h3{margin:2px 0;font-size:15px}.portal-library-subhead>span{font-size:11px;color:#64748b}.portal-library-section .library-book-grid{padding:12px 18px 16px}.portal-library-section .library-book-card{padding:12px}.portal-library-section .library-book-mark{width:40px;height:46px}.portal-library-section .library-book-copy h3{font-size:14px}.portal-library-section>.table-wrap{padding:0 18px 16px}.portal-library-section .professional-list-table{width:100%}
@media(max-width:1100px){.portal-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.portal-dashboard-notices .notice-feed.compact{grid-template-columns:1fr}.portal-child-switcher{align-items:stretch;flex-direction:column}.portal-child-switcher select{width:100%}.portal-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.portal-dashboard-notices{padding:13px}.portal-dashboard-notice-head{align-items:flex-start}.portal-page-head h1{font-size:24px}.professional-portal-hero{grid-template-columns:auto 1fr}.portal-student-state{grid-column:2;align-items:flex-start}.portal-quick-actions{grid-template-columns:1fr}.portal-action-card{min-height:68px}.portal-section-head{align-items:flex-start;flex-direction:column}.portal-library-actions{width:100%}.portal-library-actions .btn{flex:1}.portal-library-section>.table-wrap{padding:0 0 10px;overflow-x:auto}.portal-library-section .professional-list-table{min-width:620px}}

/* v9.15.38 Finance command center */
.finance-command-center{background:linear-gradient(135deg,#fff,#f7fbfb);border:1px solid #dce7e7;border-radius:18px;padding:22px;margin:0 0 20px;box-shadow:0 8px 28px rgba(15,45,55,.06)}
.finance-command-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.finance-command-head h2{margin:3px 0 2px}.finance-command-head p{margin:0;color:#65758b}
.finance-command-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.finance-command-grid article{background:#fff;border:1px solid #e1e9ec;border-radius:14px;padding:15px;display:flex;flex-direction:column;gap:5px}.finance-command-grid article span{font-size:.78rem;font-weight:800;color:#65758b;text-transform:uppercase;letter-spacing:.04em}.finance-command-grid article strong{font-size:1.18rem;color:#10243e}.finance-command-grid article small{color:#748399}.finance-command-grid .finance-outstanding{border-color:#ead9c2;background:#fffaf4}
@media(max-width:1100px){.finance-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.finance-command-center{padding:16px}.finance-command-head{flex-direction:column}.finance-command-grid{grid-template-columns:1fr}}
/* v9.15.39.2 fast curriculum + teacher assignment workflow */
.curriculum-builder{padding:18px 20px 4px}.curriculum-class{max-width:520px}.curriculum-picker-head{margin-top:20px}.curriculum-subject-grid{margin-bottom:16px}.curriculum-save{padding:4px 0 16px;align-items:center;gap:14px}.selection-summary{margin-right:auto;color:#475569;font-size:12px;font-weight:750}.curriculum-hint{margin:16px 0;padding:18px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;color:#64748b;text-align:center}.assignment-editor .subject-check-grid:empty:after{content:'No subjects are assigned to this class yet. Go to Subjects and build the class curriculum first.';grid-column:1/-1;padding:18px;border:1px dashed #cbd5e1;border-radius:10px;color:#64748b;background:#fff;text-align:center}
@media(max-width:760px){.curriculum-save{align-items:stretch;flex-direction:column}.selection-summary{margin-right:0}.curriculum-save .btn{width:100%}}

/* v9.15.39.3 scalable list + assignment UX */
.long-picker-search{position:relative;max-width:520px;margin:0 0 12px}.long-picker-search>span{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#64748b;z-index:1}.long-picker-search input{padding-left:38px!important}.long-picker-grid{max-height:340px;overflow:auto;padding:2px 6px 8px 2px;scrollbar-gutter:stable}.grouped-summary-list{display:grid;gap:10px;padding:14px 0}.grouped-summary-card{padding:14px 16px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.grouped-summary-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.grouped-summary-head>div:first-child{display:flex;flex-direction:column;gap:3px}.grouped-summary-head small{color:#64748b;font-size:11px}.grouped-summary-actions{display:flex;align-items:center;gap:8px}.compact-chip-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.compact-chip-list>span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:700}.compact-chip-list small{color:#64748b}.compact-chip-list .muted-chip{font-weight:500;color:#64748b}.assignment-group-list{padding:12px 14px}.long-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}.long-list-toolbar .long-picker-search{margin:0;flex:1}.long-list-toolbar>span{font-size:12px;color:#64748b}.long-list-scroll{max-height:430px;overflow:auto;scrollbar-gutter:stable}.fee-template-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;margin-bottom:14px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff}.fee-template-bar>div:first-child{display:flex;flex-direction:column;gap:3px}.fee-template-bar small{color:#64748b;font-size:11px}.fee-template-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:760px){.grouped-summary-head,.fee-template-bar,.long-list-toolbar{align-items:flex-start;flex-direction:column}.grouped-summary-actions,.fee-template-actions{width:100%;flex-wrap:wrap}.long-list-toolbar .long-picker-search{width:100%;max-width:none}.long-picker-grid{max-height:420px}}

/* v9.15.39.4 — scalable workflow UX */
.sponsor-context-bar{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:18px;align-items:end;background:#fff;border:1px solid #dfe7ef;border-radius:16px;padding:16px 18px;margin-bottom:14px}.sponsor-context-bar small{display:block;color:#64748b;font-weight:700;margin-bottom:6px}.sponsor-context-help{display:flex;justify-content:flex-end;gap:10px;align-items:center;color:#64748b;font-size:13px}.sponsor-context-help strong{color:#17283e}.sponsor-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.sponsor-metrics>div{background:#fff;border:1px solid #dfe7ef;border-radius:14px;padding:14px 16px}.sponsor-metrics span,.sponsor-metrics small{display:block;color:#64748b}.sponsor-metrics strong{display:block;font-size:24px;margin:3px 0;color:#17283e}.sponsor-tabs{display:flex;gap:5px;border-bottom:1px solid #dfe7ef;margin:4px 0 16px;overflow-x:auto}.sponsor-tabs button{border:0;background:transparent;padding:11px 14px;font-weight:800;color:#64748b;cursor:pointer;white-space:nowrap;border-bottom:3px solid transparent}.sponsor-tabs button.active{color:var(--school-primary,#1d4ed8);border-bottom-color:var(--school-primary,#1d4ed8)}.sponsor-flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sponsor-flow-grid button{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;text-align:left;border:1px solid #dfe7ef;background:#fff;border-radius:14px;padding:16px;cursor:pointer}.sponsor-flow-grid button:hover{border-color:#9db8ee;background:#f8fbff}.sponsor-flow-grid b{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eaf1ff;color:#1d4ed8}.sponsor-flow-grid strong,.sponsor-flow-grid small{display:block}.sponsor-flow-grid small{color:#64748b;margin-top:3px;line-height:1.35}.sponsor-flow-grid i{font-style:normal;font-size:20px;color:#94a3b8}.compact-section-head{display:flex;justify-content:space-between;align-items:center;margin:24px 0 10px}.compact-section-head h3{margin:0}.compact-section-head span,.record-count{color:#64748b;font-size:13px}.sponsor-program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sponsor-program-grid.spaced{margin-top:22px;padding-top:18px;border-top:1px solid #e5e7eb}.sponsor-program-card{border:1px solid #dfe7ef;border-radius:13px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.sponsor-program-card strong,.sponsor-program-card small{display:block}.sponsor-program-card small{color:#64748b;margin-top:3px}.chip-row{grid-column:1/-1;display:flex;gap:5px;flex-wrap:wrap}.chip-row span{background:#f1f5f9;border-radius:999px;padding:5px 8px;font-size:11px;color:#475569}.compact-create-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.2fr auto;gap:10px;align-items:end;padding:14px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:13px}.compact-create-grid label,.assignment-toolbar label{font-size:12px;font-weight:750;color:#334155}.compact-list{display:grid;margin-top:16px}.compact-list>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;padding:12px 4px;border-bottom:1px solid #edf1f5}.compact-list small{grid-column:2;color:#64748b}.list-avatar{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#eaf1ff;color:#1d4ed8;font-weight:800}.picker-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:18px 0 8px}.picker-head strong,.picker-head small{display:block}.picker-head small{color:#64748b;margin-top:3px}.picker-head>div:last-child{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.picker-head input{max-width:240px}.bounded-picker{max-height:310px;overflow:auto;border:1px solid #dfe7ef;border-radius:12px;background:#fff;padding:6px}.select-row{display:flex!important;align-items:center!important;gap:10px!important;padding:10px 11px!important;margin:0!important;border-radius:9px;cursor:pointer}.select-row:hover,.select-row.selected{background:#f1f6ff}.select-row input{width:auto!important}.select-row span{min-width:0}.select-row strong,.select-row small{display:block}.select-row small{color:#64748b;margin-top:2px}.assignment-toolbar{display:grid;grid-template-columns:1fr 1.4fr auto;gap:10px;align-items:end}.student-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:3px}.responsive-table-wrap{overflow:auto;max-height:460px}.sponsor-payment-modal{width:min(820px,calc(100vw - 32px));max-height:90vh;overflow:auto}.sponsor-payment-modal .panel-head{display:flex;justify-content:space-between}.student-modal{width:min(1040px,calc(100vw - 32px));max-height:88vh;overflow:auto}.student-modal .modal-head{position:sticky;top:0;background:#fff;z-index:2;padding-bottom:12px}.student-modal .modal-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid #e5e7eb;padding-top:14px}.admission-wizard-modal{width:min(1080px,calc(100vw - 32px));max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.admission-wizard-modal .modal-head{flex:0 0 auto}.admission-wizard-modal .admission-stepper{flex:0 0 auto}.admission-wizard-modal .wizard-section{overflow-y:auto;overflow-x:hidden;min-height:0;padding-right:6px}.admission-wizard-modal .admission-wizard-actions{flex:0 0 auto;position:sticky;bottom:0;background:#fff;border-top:1px solid #e5e7eb;padding-top:14px}.admission-wizard-modal .form-grid{min-width:0}.user-access-list{max-height:560px;overflow:auto}.access-employee-list{max-height:540px;overflow:auto}
@media(max-width:1100px){.sponsor-flow-grid,.sponsor-metrics{grid-template-columns:repeat(2,1fr)}.sponsor-program-grid{grid-template-columns:repeat(2,1fr)}.compact-create-grid{grid-template-columns:repeat(2,1fr)}.compact-create-grid .btn{justify-self:end}.sponsor-context-bar{grid-template-columns:1fr}.sponsor-context-help{justify-content:flex-start}}
@media(max-width:700px){.sponsor-flow-grid,.sponsor-metrics,.sponsor-program-grid,.student-picker,.assignment-toolbar,.compact-create-grid{grid-template-columns:1fr}.picker-head{align-items:stretch;flex-direction:column}.picker-head>div:last-child{justify-content:flex-start}.sponsor-context-help{display:grid}.admission-wizard-modal,.student-modal{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.modal-backdrop{padding:0}.admission-stepper{display:flex;overflow-x:auto}.admission-step{min-width:max-content}.form-grid{grid-template-columns:1fr!important}}

/* v9.15.39.5 - class-aware sponsorship coverage builder */
.coverage-builder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.coverage-step{border:1px solid #dbe4f0;border-radius:16px;padding:16px;background:#fbfdff;min-width:0}.step-label{display:flex;gap:10px;align-items:center;margin-bottom:12px}.step-label>span{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#e7efff;color:#1747b8;font-weight:800}.step-label div{display:flex;flex-direction:column}.step-label small,.program-scope{color:#71809b}.compact-picker{max-height:250px}.coverage-preview{grid-column:1/-1;padding:14px 16px;border-radius:14px;background:#f1f6ff;border:1px solid #cfe0ff;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.coverage-preview>span{color:#596b86}.program-scope{display:block;margin-top:8px}@media(max-width:900px){.coverage-builder{grid-template-columns:1fr}.coverage-preview{grid-column:auto}}

/* v9.15.39.7 scalable operational workflow */
.review-class-toolbar{display:flex;align-items:center;gap:12px;margin:0 0 14px}.review-class-toolbar .hpro-control{max-width:460px}.review-class-toolbar span{margin-left:auto;color:#64748b;font-size:12px;font-weight:700}.review-class-list{display:grid;gap:10px;max-height:620px;overflow:auto;scrollbar-gutter:stable;padding-right:4px}.review-class-card{border:1px solid #dfe7ef;border-radius:14px;background:#fff;overflow:hidden}.review-class-card.has-exception{border-color:#fecaca}.review-class-summary{width:100%;border:0;background:#fff;display:grid;grid-template-columns:minmax(210px,1.2fr) minmax(260px,1fr) auto;align-items:center;gap:16px;padding:16px;text-align:left;cursor:pointer;color:inherit}.review-class-summary:hover{background:#f8fbff}.review-class-title{display:flex;flex-direction:column;gap:4px}.review-class-title strong{font-size:15px}.review-class-title span{font-size:11px;color:#64748b}.review-class-stats{display:flex;gap:6px;flex-wrap:wrap}.review-class-pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef4ff;color:#245bb8;font-size:11px;font-weight:800}.review-class-pill.success{background:#eaf8f1;color:#176b4d}.review-class-pill.danger{background:#fff1f2;color:#b42318}.review-expand{font-size:11px;font-weight:800;color:var(--school-primary);white-space:nowrap}.review-subject-list{border-top:1px solid #e8edf4;background:#fbfdff}.review-subject-row{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(150px,.7fr) auto auto;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid #edf1f5}.review-subject-row:last-child{border-bottom:0}.review-subject-row>div:first-child{display:flex;flex-direction:column;gap:3px}.review-subject-row>div:first-child span{font-size:11px;color:#64748b}.scalable-register{max-height:560px;overflow:auto;scrollbar-gutter:stable;border-radius:10px}.scalable-register .data-table thead th{position:sticky;top:0;background:#fff;z-index:2}.table-shell,.ops-table-wrap{max-height:560px;overflow:auto;scrollbar-gutter:stable}.table-shell .hpro-table thead th,.ops-table-wrap .data-table thead th{position:sticky;top:0;background:#fff;z-index:2}@media(max-width:850px){.review-class-summary{grid-template-columns:1fr}.review-class-stats{order:2}.review-expand{order:3}.review-subject-row{grid-template-columns:1fr 1fr}.review-subject-row .btn{justify-self:end}}@media(max-width:560px){.review-class-toolbar{align-items:stretch;flex-direction:column}.review-class-toolbar .hpro-control{max-width:none}.review-class-toolbar span{margin-left:0}.review-subject-row{grid-template-columns:1fr}.review-subject-row .btn{justify-self:stretch}}

/* v9.15.39.8 class-scoped grade workflow */
.review-class-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;padding:.7rem 1rem;border-top:1px solid var(--border,#e5e7eb);background:#fbfcff;flex-wrap:wrap}.review-class-action-note{margin-right:auto;color:#667085;font-size:.84rem}.review-class-actions .btn.compact{min-width:132px}@media(max-width:760px){.review-class-actions{align-items:stretch}.review-class-action-note{width:100%}.review-class-actions .btn{flex:1}}

/* v9.15.39.11 — official report PDF reliability and correction UX */
.official-report-meta{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:5px;font-size:.72rem;color:#475569}.official-report-meta strong{color:var(--report-accent,#0f766e)}
.grade-correction-target{background:#fffbeb!important}.student-correction-box{border:1px solid #fbbf24;background:#fffbeb}
@media print{
  .app-shell,.main-area,.main-content,.content,.page-content,.ops-page,.report-card-batch{visibility:visible!important;display:block!important}
  .report-card-batch,.report-card-batch *{visibility:visible!important}
  .report-card-batch{position:static!important;inset:auto!important;width:100%!important;height:auto!important;overflow:visible!important}
  .report-card-batch .batch-official-report{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .official-report-meta{font-size:6.5pt!important;margin-top:2px!important;gap:8px!important}
}


/* v9.15.39.13 — explicit report scope + reliable academic report printing */
.ops-report-level-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;padding:12px 14px;border:1px solid var(--theme-border,#c7dff8);border-radius:12px;background:var(--theme-soft,#f5f9ff)}
.ops-report-level-banner strong{font-size:.78rem;color:#52657a;text-transform:uppercase;letter-spacing:.04em}.ops-report-level-banner span{font-weight:850;color:#10233f}
@media(max-width:700px){.ops-report-level-banner{align-items:flex-start;flex-direction:column;gap:4px}}
@media print{
  /* A finance-report rule intentionally hides body descendants. Academic reports
     must explicitly restore their own print tree or Edge/Chrome previews are blank. */
  body:has(.academic-page.grade-sheet-shell) .academic-page.grade-sheet-shell,
  body:has(.academic-page.grade-sheet-shell) .academic-page.grade-sheet-shell *{visibility:visible!important}
  body:has(.academic-page.grade-sheet-shell) .academic-page.grade-sheet-shell{display:block!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  body:has(.academic-page.grade-sheet-shell) .grade-sheet-paper{display:block!important;visibility:visible!important;position:static!important;width:100%!important;max-width:none!important;margin:0!important;overflow:visible!important}
  body:has(.academic-page.grade-sheet-shell) .grade-sheet-actions{display:none!important}
}
/* v9.15.40 progression workspace */
.progression-step{margin-bottom:18px}.progression-title{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}.progression-title>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#1d4ed8;color:white;font-weight:800}.progression-title h3{margin:0 0 3px}.progression-title p{margin:0;color:#64748b}.progression-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.progression-grid .span-2{grid-column:span 2}.movement-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:8px 0 20px}.movement-card{border:1px solid #dbe3ef;background:#fff;border-radius:12px;padding:14px;text-align:left;cursor:pointer}.movement-card strong,.movement-card small{display:block}.movement-card small{margin-top:5px;color:#64748b;line-height:1.35}.movement-card.active{border:2px solid #2563eb;background:#eff6ff}.bulk-select-bar{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.progression-warning{margin-top:16px;padding:13px 15px;border-radius:10px;background:#f8fafc;border:1px solid #dbe3ef;color:#475569}@media(max-width:900px){.progression-grid{grid-template-columns:1fr 1fr}.movement-picker{grid-template-columns:1fr 1fr}.progression-grid .span-2{grid-column:span 2}}@media(max-width:600px){.progression-grid,.movement-picker{grid-template-columns:1fr}.progression-grid .span-2{grid-column:auto}}
/* v9.15.41 — automated progression recommendations and class progression rules */
.progression-rule-summary{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0;padding:12px 14px;border:1px solid #cbdcf4;border-radius:12px;background:#f7faff;color:#334155}.progression-rule-summary strong{color:#10233f}.recommendation-chip{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:.78rem;font-weight:800;white-space:nowrap}.rec-promote{background:#dcfce7;color:#166534}.rec-double{background:#dbeafe;color:#1d4ed8}.rec-graduate{background:#ede9fe;color:#6d28d9}.rec-repeat{background:#fee2e2;color:#991b1b}.rec-review{background:#fef3c7;color:#92400e}.rec-wait{background:#f1f5f9;color:#64748b}.progression-rules-table select{min-width:145px}.progression-rules-table .rule-number{min-width:78px;width:86px}.progression-rules-table td{text-align:center}.progression-rules-table td:first-child,.progression-rules-table td:nth-child(2){text-align:left}

/* Dream Technology corporate branding */
:root{--dream-green:#184c36;--dream-lime:#8cc63f;--dream-gold:#f5bd21;--dream-charcoal:#202124}
.dream-powered{margin:10px 5px 2px;padding:10px 9px;border:1px solid rgba(255,255,255,.09);border-radius:11px;display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.035)}
.dream-powered img{width:34px;height:34px;object-fit:contain;border-radius:50%;background:#fff}
.dream-powered div{display:grid;min-width:0}.dream-powered span{font-size:8px;letter-spacing:.11em;text-transform:uppercase;color:#8194af;font-weight:800}.dream-powered strong{font-size:10px;color:#d9e4f3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.dream-auth-brand{gap:13px}.dream-login-logo{width:62px;height:62px;object-fit:contain;border-radius:50%;background:#fff;box-shadow:0 10px 26px rgba(0,0,0,.18)}
.dream-auth-brand>div{display:grid}.dream-auth-brand>div strong{font-size:24px}.dream-auth-brand>div span{font-size:11px;letter-spacing:.04em;opacity:.8;margin-top:3px}
.dream-auth-footer{display:flex!important;align-items:center;gap:10px}.dream-auth-footer img{width:34px;height:34px;object-fit:contain;border-radius:50%;background:#fff}.dream-auth-footer span{line-height:1.35}.dream-auth-footer b{font-weight:800}
.dream-mobile-brand{align-items:center!important;gap:8px}.dream-mobile-brand img{width:34px;height:34px;object-fit:contain;border-radius:50%}
.mobile-brand img{width:27px;height:27px;object-fit:contain;border-radius:50%;margin-right:7px;vertical-align:middle;background:#fff}
@media(max-width:720px){.dream-login-logo{width:48px;height:48px}.dream-auth-footer{display:none!important}}

/* HPro production UX pass: branded boot experience + responsive shell */
.hpro-boot{min-height:100dvh;display:grid;place-items:center;padding:28px;background:linear-gradient(145deg,#f8fbff,#eef4fb);color:#10213c}.hpro-boot-card{text-align:center;width:min(360px,92vw)}.hpro-boot-logo{width:72px;height:72px;object-fit:contain;margin:0 auto 15px;filter:drop-shadow(0 10px 18px rgba(16,33,60,.10))}.hpro-boot h1{font-size:28px;margin:0;letter-spacing:-.03em}.hpro-boot h1 span{font-size:12px;color:#2f6fed;vertical-align:top;margin-left:4px}.hpro-boot p{margin:7px 0 22px;color:#71809a;font-size:13px}.hpro-boot-loader{width:42px;height:42px;margin:auto;border:3px solid #dce7f5;border-top-color:#2463d4;border-radius:50%;animation:hpro-spin .8s linear infinite}.hpro-boot-status{display:block;margin-top:14px;font-size:11px;color:#8794a8}.hpro-boot-powered{display:block;margin-top:28px;font-size:10px;letter-spacing:.04em;color:#7d8b9f}@keyframes hpro-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.hpro-boot-loader{animation-duration:1.8s}}
.mobile-menu-button{display:none;width:40px;height:40px;border:1px solid #dce4ef;border-radius:10px;background:#fff;color:#17345f;font-size:20px;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.mobile-nav-backdrop{display:none}.academic-context-pill{display:flex;align-items:center;gap:7px;min-width:0}.academic-context-pill>*{white-space:nowrap}.table-shell,.attendance-table-wrap,.grade-sheet-table-wrap,.ops-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.panel,.metric-card,.page-heading,.page-title-row{min-width:0}img{max-width:100%}
@media(max-width:800px){html,body{overflow-x:hidden}.app-shell{display:block;min-height:100dvh}.sidebar{display:flex;position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);height:100dvh;transform:translateX(-105%);transition:transform .22s ease;z-index:50;overflow-y:auto;overscroll-behavior:contain}.sidebar.mobile-open{transform:translateX(0)}.mobile-nav-backdrop{display:block;position:fixed;inset:0;background:rgba(8,22,43,.48);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:45}.mobile-nav-backdrop.show{opacity:1;pointer-events:auto}.mobile-menu-button{display:inline-flex}.topbar{height:auto;min-height:68px;padding:10px 14px;gap:10px}.mobile-brand{display:flex;align-items:center;font-size:19px;font-weight:900;white-space:nowrap}.top-actions{gap:8px;min-width:0}.academic-context-pill{max-width:min(54vw,360px);overflow-x:auto;scrollbar-width:none;padding:7px 9px;border-radius:10px;background:#f7f9fc}.academic-context-pill::-webkit-scrollbar{display:none}.academic-context-pill .sep{display:none}.online-label,.live-dot{display:none}.top-avatar{margin-left:0;flex:0 0 36px}.content{padding:18px 14px 28px;width:100%;max-width:100vw}.panel{padding:16px}.page-heading,.page-title-row{gap:12px}.page-heading h1,.page-title-row h1{font-size:23px}.btn{min-height:42px}.row-actions{width:100%}.data-table{min-width:680px}.auth-form-side{min-height:100dvh;padding:24px 20px}.login-card{width:100%;max-width:440px}.mobile-login-brand{margin-bottom:34px}}
@media(max-width:560px){.topbar{align-items:center}.academic-context-pill{max-width:48vw;font-size:10px}.academic-context-pill .sep,.academic-context-pill>span{display:none}.context-change-link{font-weight:800}.content{padding:14px 12px 24px}.panel{border-radius:12px;padding:14px}.metric-card{padding:15px}.page-heading .btn,.page-title-row .btn{width:100%}.form-panel input,.form-panel select,.field input{font-size:16px}.modal-card{width:100%;max-width:none}.auth-form-side{padding:22px 18px}.login-card h2{font-size:28px}.login-card>p{line-height:1.5}.login-submit{min-height:48px}}


/* v9.16.8 guided school setup + configuration explanations */
.setup-journey{margin-bottom:18px}.setup-journey-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}.setup-journey-head h2{margin:3px 0 5px}.setup-journey-head p{margin:0;color:#64748b;max-width:760px}.setup-required-pill{white-space:nowrap;padding:7px 10px;border-radius:999px;background:#eef6ff;color:#1d4ed8;font-size:11px;font-weight:850}.setup-journey-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.setup-journey-step{appearance:none;width:100%;border:1px solid #dfe7ef;background:#fff;border-radius:13px;padding:13px;display:grid;grid-template-columns:34px 1fr;gap:10px;text-align:left;align-items:start;color:#10233f}.setup-journey-step button{font:inherit}.setup-journey-grid button.setup-journey-step{cursor:pointer}.setup-journey-grid button.setup-journey-step:hover{border-color:#9bb8ef;background:#f8fbff}.setup-journey-step>b{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#edf3ff;color:#1d4ed8}.setup-journey-step strong,.setup-journey-step small{display:block}.setup-journey-step small{margin-top:4px;color:#64748b;line-height:1.4}.setup-journey-step>span,.setup-journey-step>i{grid-column:2;font-size:9px;font-style:normal;font-weight:900;letter-spacing:.05em;color:#64748b}.setup-journey-step.current{border-color:#7ca5ef;background:#f6f9ff}.setup-journey-step.current>b{background:#1d4ed8;color:#fff}.setup-journey-note{margin-top:14px;padding:11px 13px;border-radius:10px;background:#f8fafc;color:#526174;font-size:12px;line-height:1.5}.config-help{margin-top:7px;border:1px solid #dbe5f1;border-radius:10px;background:#f8fbff}.config-help summary{cursor:pointer;padding:9px 11px;color:#1d4ed8;font-size:11px;font-weight:850}.config-help-body{padding:0 11px 10px;color:#526174;font-size:11px;line-height:1.5}.config-help-body p{margin:7px 0}.field-group>small{display:block;margin-top:6px;color:#64748b;line-height:1.4}
@media(max-width:1050px){.setup-journey-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.setup-journey-head{flex-direction:column}.setup-journey-grid{grid-template-columns:1fr}.setup-required-pill{white-space:normal}}

/* v9.16.9 system-wide guided workflow */
.setup-flow-banner{display:flex;justify-content:space-between;align-items:center;gap:24px;border-left:4px solid var(--school-primary,#1d4ed8);margin-bottom:20px}.setup-flow-banner h2{margin:4px 0 6px}.setup-flow-banner p{margin:0;max-width:850px;color:#64748b}.setup-flow-actions{display:flex;gap:10px;flex-shrink:0}@media(max-width:760px){.setup-flow-banner{align-items:stretch;flex-direction:column}.setup-flow-actions{justify-content:space-between}.setup-flow-actions .btn{flex:1}}

/* Admissions guided workflow */
.admissions-journey{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.admissions-journey>div{padding:14px;border:1px solid var(--border-color,#d9e2ea);border-radius:12px;background:var(--surface,#f8fafc)}
.admissions-journey strong,.admissions-journey small{display:block}
.admissions-journey small{margin-top:7px;line-height:1.5;opacity:.8}
@media(max-width:850px){.admissions-journey{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.admissions-journey{grid-template-columns:1fr}}

/* Professional student finance documents: A4, consistent with academic report cards. */
.hpro-finance-print{display:none}
@media print {
 @page{size:A4 portrait;margin:12mm 13mm}
 html:has(.hpro-finance-print),body:has(.hpro-finance-print){margin:0!important;padding:0!important;min-height:0!important;height:auto!important;background:white!important}
 body:has(.hpro-finance-print) *{visibility:hidden!important}
 body:has(.hpro-finance-print) .hpro-finance-print,body:has(.hpro-finance-print) .hpro-finance-print *{visibility:visible!important}
 body:has(.hpro-finance-print) .hpro-finance-print{display:block!important;position:absolute!important;inset:0 auto auto 0!important;width:100%!important;box-sizing:border-box!important;padding:0!important;margin:0!important;background:#fff!important;color:#172b3d!important;font:9.5pt/1.4 Arial,Helvetica,sans-serif!important}
 .hpro-finance-print .finance-document-topline{height:6px;background:#174c74;margin-bottom:15px}
 .hpro-finance-print .finance-document-header{display:flex;align-items:center;justify-content:space-between;gap:22px}
 .hpro-finance-print .finance-document-identity{display:flex;align-items:center;gap:11px}
 .hpro-finance-print .finance-document-mark{width:48px;height:48px;border:2px solid #174c74;border-radius:6px;color:#174c74;font:bold 26px Arial;display:flex;align-items:center;justify-content:center}
 .hpro-finance-print .finance-document-identity h1{font-size:17pt;line-height:1.15;margin:0;color:#173a55}
 .hpro-finance-print .finance-document-identity p{font-size:8pt;color:#667989;margin:5px 0 0}
 .hpro-finance-print .finance-document-heading{text-align:right;max-width:47%}
 .hpro-finance-print .finance-document-heading span{font-size:7pt;letter-spacing:1.5px;font-weight:700;color:#55758b}
 .hpro-finance-print .finance-document-heading h2{font-size:12pt;line-height:1.25;margin:4px 0;color:#173a55}
 .hpro-finance-print .finance-document-heading small{font-size:8pt;color:#60778a}
 .hpro-finance-print .finance-document-rule{height:2px;background:#174c74;margin:16px 0}
 .hpro-finance-print .finance-document-student{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:14px;background:#f2f6f9;border:1px solid #dbe5ed;border-radius:5px;padding:12px 14px;margin-bottom:17px}
 .hpro-finance-print .finance-document-student div,.hpro-finance-print .finance-document-receipt-meta div{min-width:0;overflow-wrap:anywhere}
 .hpro-finance-print .finance-document-student span,.hpro-finance-print .finance-document-receipt-meta span{display:block;font-size:7pt;letter-spacing:.8px;font-weight:700;color:#647c8e;margin-bottom:5px}
 .hpro-finance-print .finance-document-student strong,.hpro-finance-print .finance-document-receipt-meta strong{display:block;font-size:9.5pt;color:#1b3347}
 .hpro-finance-print .finance-document-receipt-meta{display:grid;grid-template-columns:1fr 1fr;gap:13px 20px;margin:14px 0 18px}
 .hpro-finance-print .finance-document-amount{border-left:5px solid #174c74;background:#edf4f9;padding:14px 17px;margin:16px 0 18px}
 .hpro-finance-print .finance-document-amount span{display:block;font-size:8pt;letter-spacing:.9px;font-weight:700;color:#48677d}
 .hpro-finance-print .finance-document-amount strong{display:block;font-size:23pt;line-height:1.3;color:#173a55}
 .hpro-finance-print .finance-document-amount small{font-size:8pt;color:#536f83}
 .hpro-finance-print h3{font-size:10.5pt;text-transform:uppercase;letter-spacing:.6px;color:#173a55;margin:17px 0 8px;border-bottom:1px solid #d9e4ed;padding-bottom:6px}
 .hpro-finance-print table{width:100%;border-collapse:collapse;table-layout:auto;margin:6px 0 14px;font-size:8.2pt}
 .hpro-finance-print th{background:#e9f0f5!important;color:#23465e;font-weight:700}
 .hpro-finance-print th,.hpro-finance-print td{padding:8px 7px;text-align:left;border-bottom:1px solid #dce5ec;vertical-align:top;overflow-wrap:anywhere}
 .hpro-finance-print .finance-document-money{text-align:right;white-space:nowrap}
 .hpro-finance-print tfoot td{font-weight:700;background:#f1f5f8}
 .hpro-finance-print .finance-document-outstanding{font-weight:700;color:#173a55}
 .hpro-finance-print .finance-document-warning{border:2px solid #9b2c2c;padding:12px;color:#8b1f1f;margin-top:14px}
 .hpro-finance-print .finance-document-signoff{display:flex;justify-content:space-between;gap:25px;margin:30px 0 18px;break-inside:avoid}
 .hpro-finance-print .finance-document-signoff>div{width:46%;font-size:8pt;color:#677c8a}
 .hpro-finance-print .finance-document-signature-line{border-bottom:1px solid #7d8e99;margin-top:30px}
 .hpro-finance-print .finance-document-stamp{border-bottom:1px solid #7d8e99;margin-top:30px}
 .hpro-finance-print footer{display:flex;justify-content:space-between;gap:15px;border-top:2px solid #174c74;padding-top:9px;margin-top:14px;font-size:7.5pt;color:#637888;break-inside:avoid}
 .hpro-finance-print footer strong{white-space:nowrap;color:#173a55}
 .hpro-finance-print tr,.hpro-finance-print .finance-document-student,.hpro-finance-print .finance-document-amount{break-inside:avoid}
}

/* Finance document header: reuse the logged-in school's report-card identity. */
@media print {
 .hpro-finance-print .finance-document-topline{display:none!important}
 .hpro-finance-print .finance-document-header{display:grid!important;grid-template-columns:66px minmax(0,1fr) 66px!important;align-items:center!important;gap:8px!important;min-height:63px!important}
 .hpro-finance-print .finance-document-logo{width:60px;height:60px;display:flex;align-items:center;justify-content:center}
 .hpro-finance-print .finance-document-logo img{width:58px;height:58px;object-fit:contain}
 .hpro-finance-print .finance-document-logo-placeholder{border:1px solid var(--finance-school-primary,#1D4ED8);border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:15pt;font-weight:700;color:var(--finance-school-primary,#1D4ED8)}
 .hpro-finance-print .finance-document-school{text-align:center;min-width:0}
 .hpro-finance-print .finance-document-school h1{font-size:15pt!important;line-height:1.15!important;margin:0 0 3px!important;text-transform:uppercase;color:#14243a!important;letter-spacing:.35px}
 .hpro-finance-print .finance-document-school p{font-size:7.5pt;margin:1px 0;color:#526171}
 .hpro-finance-print .finance-document-rule{height:2px!important;background:var(--finance-school-primary,#1D4ED8)!important;margin:9px 0 8px!important}
 .hpro-finance-print .finance-document-heading{text-align:center!important;max-width:none!important;margin:0 0 12px}
 .hpro-finance-print .finance-document-heading h2{font-size:11pt!important;letter-spacing:1px!important;color:var(--finance-school-primary,#1D4ED8)!important;margin:0 0 2px!important}
 .hpro-finance-print .finance-document-heading small{font-size:8pt;color:#34465a}
 .hpro-finance-print .finance-document-student{background:#fff!important;border:0!important;border-radius:0!important;grid-template-columns:1fr 1fr 1fr!important;padding:0!important;gap:6px!important;margin-bottom:12px!important}
 .hpro-finance-print .finance-document-student div{border:1px solid #dce2e9!important;border-radius:3px;padding:8px!important}
 .hpro-finance-print footer{border-top:1px solid #b9c6d5!important;margin-top:10px!important}
 .hpro-finance-print .finance-document-amount{border-left-color:var(--finance-school-primary,#1D4ED8)!important}
 .hpro-finance-print .finance-document-signoff{margin-top:22px!important}
 .hpro-finance-print{break-after:auto!important;page-break-after:auto!important}
}

/* Guided setup on-page links: consistent with navigable step buttons. */
a.setup-journey-step { text-decoration:none; color:inherit; cursor:pointer; }
a.setup-journey-step:hover, a.setup-journey-step:focus-visible { text-decoration:none; outline:2px solid var(--primary, #e56b25); outline-offset:2px; }
#student-numbering, #school-documents, #active-academic-context { scroll-margin-top:90px; }

/* v9.21.0: compact searchable administration directories */
.directory-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:16px 0 20px}.directory-toolbar input{flex:2 1 250px;min-width:180px}.directory-toolbar select{flex:1 1 165px;max-width:240px}.directory-count{white-space:nowrap;color:#64748b;font-size:.85rem}.hr-directory{display:grid;grid-template-columns:1fr;gap:10px}.hr-directory .hr-card{display:flex;align-items:center;gap:16px;min-width:0;padding:14px 18px}.hr-directory .hr-card-main{flex:1;min-width:0;display:flex;justify-content:space-between;gap:16px}.hr-directory .employee-card-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.hr-directory .hr-card-main strong{overflow-wrap:anywhere}@media(max-width:850px){.hr-directory .hr-card,.hr-directory .hr-card-main{flex-wrap:wrap}.hr-directory .employee-card-actions{width:100%;justify-content:flex-start}.directory-toolbar select{max-width:none}}
