﻿:root{--navy:#12213a;--blue:#2563eb;--blue2:#eff6ff;--green:#12b76a;--red:#f04438;--amber:#f79009;--purple:#7a5af8;--bg:#f5f7fb;--card:#fff;--line:#e4e7ec;--text:#172b4d;--muted:#667085;--shadow:0 6px 22px rgba(16,24,40,.07)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text);background:var(--bg);font-size:13px}button,input,select,textarea{font:inherit}button{cursor:pointer}.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 15% 10%,#dbeafe,transparent 30%),radial-gradient(circle at 90% 80%,#dcfce7,transparent 30%),#f7f9fc}.login-card{width:min(1080px,100%);display:grid;grid-template-columns:1.1fr .9fr;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 24px 70px rgba(16,24,40,.12);overflow:hidden}.login-hero{padding:48px;background:linear-gradient(145deg,#12213a,#1d3557);color:#fff}.brand{font-weight:900;font-size:20px;letter-spacing:-.03em}.login-hero h1{font-size:40px;line-height:1.05;margin:80px 0 16px;max-width:480px}.login-hero p{color:#c9d5e7;max-width:500px;line-height:1.6}.login-panel{padding:36px}.login-panel h2{margin:0 0 5px;font-size:24px}.login-panel>p{margin:0 0 20px;color:var(--muted)}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:18px}.role-chip{border:1px solid var(--line);background:#fff;padding:10px 8px;border-radius:10px;font-size:11px;text-align:left}.role-chip.active{border-color:#93b4ff;background:var(--blue2);color:#175cd3;font-weight:800}.field{display:grid;gap:6px}.field label{font-size:10px;font-weight:800;color:#344054}.field input,.field select,.field textarea,.field .fake-input{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:10px;background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#84adff;box-shadow:0 0 0 3px #eff6ff}.login-submit{width:100%;padding:12px;border:0;border-radius:9px;background:var(--blue);color:#fff;font-weight:900;margin-top:16px}.hint{font-size:10px;color:var(--muted);margin-top:9px}.app-shell{min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:245px;background:var(--navy);color:#fff;padding:16px 12px;z-index:50;overflow:auto}.sidebar .brand{padding:4px 8px 18px;display:block}.role-badge{font-size:9px;color:#c9d5e7;padding:7px 8px;background:#ffffff12;border:1px solid #ffffff14;border-radius:8px;margin-bottom:12px}.nav-group{margin:10px 0 4px;padding:8px;color:#8fa0bb;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.nav-item{width:100%;border:0;background:transparent;color:#d6deea;text-align:left;padding:9px 10px;border-radius:8px;font-size:11px;margin:1px 0}.nav-item:hover,.nav-item.active{background:#ffffff12;color:#fff}.nav-item.active{box-shadow:inset 3px 0 var(--blue)}.main{margin-left:245px;min-height:100vh}.topbar{height:60px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 20px;position:sticky;top:0;z-index:35}.hamb{display:none;border:0;background:none;font-size:21px}.top-title{font-weight:900}.school-select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px;font-size:10px}.top-spacer{flex:1}.top-search{width:230px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.top-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px;font-size:10px}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#dbeafe;color:#175cd3;font-weight:900;font-size:10px}.content{padding:20px;max-width:1500px;margin:auto}.page-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.page-head h1{margin:0;font-size:24px;letter-spacing:-.03em}.page-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.head-actions{margin-left:auto;display:flex;gap:7px;flex-wrap:wrap}.btn{border:1px solid #d0d5dd;background:#fff;color:#344054;border-radius:8px;padding:8px 11px;font-size:10px;font-weight:800}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.success{background:#ecfdf3;border-color:#abefc6;color:#027a48}.btn.danger{background:#fef3f2;border-color:#fecdca;color:#b42318}.btn.warn{background:#fffaeb;border-color:#fedf89;color:#b54708}.btn:disabled{opacity:.45;cursor:not-allowed}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:var(--shadow)}.metric span{font-size:9px;color:var(--muted);display:block}.metric strong{display:block;font-size:23px;margin-top:4px}.metric small{font-size:9px}.grid{display:grid;gap:14px}.g2{grid-template-columns:1.5fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:15px}.card h3{margin:0 0 12px;font-size:13px}.toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.toolbar input{min-width:190px}.input,.toolbar input,.toolbar select{border:1px solid #d0d5dd;border-radius:8px;padding:8px;background:#fff;font-size:10px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.table{width:100%;border-collapse:collapse;min-width:680px}.table th{font-size:9px;text-transform:uppercase;color:#667085;background:#f8fafc;text-align:left;padding:9px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{font-size:10px;padding:10px 9px;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.row-actions{display:flex;gap:4px;flex-wrap:wrap}.row-actions .btn{padding:5px 7px;font-size:9px}.badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900;background:#f2f4f7;color:#475467}.badge.green{background:#ecfdf3;color:#027a48}.badge.red{background:#fef3f2;color:#b42318}.badge.blue{background:#eff6ff;color:#175cd3}.badge.amber{background:#fffaeb;color:#b54708}.badge.purple{background:#f4f3ff;color:#5925dc}.mobile-cards{display:none}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);margin:-2px 0 15px;overflow:auto}.tab{border:0;background:none;padding:9px 12px;font-size:10px;color:#667085;white-space:nowrap}.tab.active{color:#175cd3;font-weight:900;border-bottom:2px solid var(--blue)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-grid .full{grid-column:1/-1}.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;background:#10182866;z-index:80;display:none}.modal-backdrop.show,.drawer-backdrop.show{display:block}.modal{position:fixed;z-index:90;top:50%;left:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 30px));max-height:90vh;overflow:auto;background:#fff;border-radius:14px;padding:18px;box-shadow:0 24px 70px rgba(16,24,40,.2);display:none}.modal.show{display:block}.modal h2{margin:0;font-size:17px}.modal-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:15px}.close{border:0;background:#f2f4f7;border-radius:7px;width:28px;height:28px}.modal-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:16px}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(520px,100vw);background:#fff;z-index:90;transform:translateX(100%);transition:.18s;box-shadow:-20px 0 50px rgba(16,24,40,.16);overflow:auto;padding:18px}.drawer.show{transform:translateX(0)}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.detail{border:1px solid var(--line);border-radius:8px;padding:9px}.detail small{display:block;color:var(--muted);font-size:8px}.detail b{display:block;margin-top:3px;font-size:10px}.timeline{margin-top:15px}.event{padding:10px 0;border-bottom:1px solid var(--line);font-size:10px}.event small{display:block;color:var(--muted);margin-top:3px}.chart{height:180px;display:flex;align-items:flex-end;gap:8px;padding:15px 4px}.bar{flex:1;background:#bfdbfe;border-radius:5px 5px 2px 2px;position:relative;min-width:15px}.bar span{position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-size:8px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.quick{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px;text-align:left}.quick b{font-size:10px;display:block}.quick small{font-size:8px;color:var(--muted)}.alert{padding:10px;border-radius:9px;background:#fffaeb;border:1px solid #fedf89;color:#b54708;font-size:10px;margin-bottom:10px}.danger-box{padding:12px;border-radius:10px;background:#fef3f2;border:1px solid #fecdca;color:#b42318}.driver-run{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}.route-map{height:420px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#dbeafe,#ecfdf3);position:relative;overflow:hidden}.road{position:absolute;background:#fff;border-radius:20px;opacity:.9}.road.a{width:120%;height:34px;left:-10%;top:45%;transform:rotate(-14deg)}.road.b{height:120%;width:34px;left:58%;top:-10%;transform:rotate(18deg)}.bus-marker{position:absolute;background:#2563eb;color:#fff;border-radius:8px;padding:7px 9px;font-size:9px;left:47%;top:43%;box-shadow:0 5px 12px #10182833}.stop-marker{position:absolute;width:11px;height:11px;border-radius:50%;background:#12b76a;border:2px solid #fff;box-shadow:0 2px 6px #10182844}.s1{left:18%;top:50%}.s2{left:36%;top:44%}.s3{left:63%;top:55%}.s4{left:80%;top:35%}.checklist{display:grid;gap:7px}.check{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:9px;border-radius:8px;font-size:10px}.check input{accent-color:var(--blue)}.bottom-nav{display:none}.menu-overlay{display:none}.empty{padding:28px;text-align:center;color:var(--muted);font-size:11px}.qa-pass{color:#027a48}.qa-fail{color:#b42318}.log{font-family:ui-monospace,monospace;background:#101828;color:#d1e0f0;padding:12px;border-radius:9px;font-size:9px;max-height:260px;overflow:auto;white-space:pre-wrap}.toast{position:fixed;right:20px;bottom:20px;background:#101828;color:#fff;padding:11px 14px;border-radius:9px;font-size:10px;z-index:120;display:none;box-shadow:0 10px 30px #10182833}.toast.show{display:block}.toast.ok{border-left:3px solid var(--green)}.toast.warn{border-left:3px solid var(--amber)}.toast.err{border-left:3px solid var(--red)}
@media(max-width:1000px){.sidebar{width:220px}.main{margin-left:220px}.metrics{grid-template-columns:repeat(2,1fr)}.g2,.driver-run{grid-template-columns:1fr}.g3{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.login-card{grid-template-columns:1fr}.login-hero{display:none}.login-panel{padding:22px}.role-grid{grid-template-columns:repeat(2,1fr)}.sidebar{transform:translateX(-100%);transition:.2s;width:270px}.app-shell.menu-open .sidebar{transform:translateX(0)}.menu-overlay{position:fixed;inset:0;background:#10182866;z-index:45;display:none}.app-shell.menu-open .menu-overlay{display:block}.main{margin-left:0;padding-bottom:68px}.hamb{display:block}.topbar{padding:0 12px}.top-search,.school-select{display:none}.content{padding:14px 10px}.page-head{display:block}.head-actions{margin-top:10px}.head-actions .btn{flex:1}.metrics{grid-template-columns:1fr 1fr;gap:7px}.metric{padding:11px}.metric strong{font-size:19px}.desktop-table{display:none}.mobile-cards{display:grid;gap:8px}.record{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px}.record-top{display:flex;justify-content:space-between;gap:8px}.record h4{margin:0;font-size:11px}.record small{color:var(--muted);font-size:9px}.record-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:9px 0}.record-meta div{background:#f8fafc;border-radius:7px;padding:7px}.record-meta b{display:block;font-size:9px}.record-meta span{display:block;color:var(--muted);font-size:8px}.row-actions{margin-top:7px}.row-actions .btn{flex:1}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.modal{width:calc(100vw - 14px);max-height:94vh;padding:14px}.drawer{width:100%}.detail-list{grid-template-columns:1fr 1fr}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:64px;background:#fff;border-top:1px solid var(--line);z-index:40}.bottom-nav button{flex:1;border:0;background:#fff;color:#667085;font-size:8px}.bottom-nav button b{display:block;font-size:16px;margin-bottom:3px}.bottom-nav button.active{color:#2563eb;font-weight:900}.tabs{margin-left:-3px;margin-right:-3px}.quick-grid{grid-template-columns:1fr 1fr}.route-map{height:300px}}
@media(max-width:420px){.top-title{font-size:11px}.avatar{display:none}.detail-list{grid-template-columns:1fr}.role-grid{grid-template-columns:1fr 1fr}.page-head h1{font-size:21px}.head-actions{display:grid;grid-template-columns:1fr 1fr}.head-actions .primary{grid-column:1/-1}}

.req{color:#b42318;font-weight:900}.field input,.field select,.field textarea{max-width:100%;box-sizing:border-box}@media(max-width:760px){.field input,.field select,.field textarea{width:100%}.modal-actions{position:sticky;bottom:0;background:#fff;padding-top:10px}}

/* V3.1.5 additions: header popovers, onboarding stepper */
.v315-anchor{position:relative}
.v315-pop{display:none;position:absolute;right:0;top:calc(100% + 8px);width:280px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 46px rgba(16,24,40,.18);z-index:100;overflow:hidden}
.v315-pop.show{display:block}
.v315-pop-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:11px}
.v315-pop-link{border:0;background:none;color:#2563eb;font-size:9px;font-weight:800}
.v315-pop-item{display:flex;gap:9px;align-items:flex-start;width:100%;text-align:left;border:0;background:none;padding:10px 12px;border-bottom:1px solid #f2f4f7}
.v315-pop-item:hover{background:#f8fafc}
.v315-pop-item b{display:block;font-size:10px}
.v315-pop-item small{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.v315-notif-ic{font-size:13px;line-height:1;flex-shrink:0}
.v315-notif-body{flex:1;min-width:0}
.v315-notif-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);flex-shrink:0;margin-top:4px}
.v315-pop-item.is-unread{background:var(--blue2)}
.v315-pop-item.is-unread:hover{background:#e0ecff}
.v315-pop-item.is-read b{color:#475467}
.v315-pop-item.is-read .v315-notif-dot{visibility:hidden}
.v315-notif-new{margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--blue);color:#fff;font-size:8px;font-weight:900}
.v315-pop-foot{padding:8px}
.v315-lang{width:210px}
.avatar{border:0;cursor:pointer}
.v315-steps{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.v315-step{flex:1;min-width:120px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;font-size:9px;font-weight:800;color:#667085;background:#fff;display:flex;align-items:center;gap:7px}
.v315-step span{width:18px;height:18px;border-radius:50%;background:#f2f4f7;display:inline-flex;align-items:center;justify-content:center;font-size:9px}
.v315-step.active{border-color:#93b4ff;background:#eff6ff;color:#175cd3}
.v315-step.active span{background:#2563eb;color:#fff}
.v315-step.done{color:#027a48}
.v315-step.done span{background:#12b76a;color:#fff}
@media(max-width:760px){.v315-pop{width:min(88vw,300px);right:-40px}.v315-steps{gap:5px}.v315-step{min-width:100%;}}
/* V3.1.6 additive form usability only */
.v316-tab-form{overflow:hidden}
.v316-tab-form .form-grid{min-width:0}
.v316-tab-form .field{min-width:0}
.v316-tab-form input,.v316-tab-form select,.v316-tab-form textarea{max-width:100%;box-sizing:border-box}
@media(max-width:760px){.v316-tab-form .page-head{display:block}.v316-tab-form .head-actions{margin-top:8px}.v316-tab-form .form-grid{grid-template-columns:1fr}.v316-tab-form .field.full{grid-column:auto}.v316-tab-form .modal-actions{display:grid;grid-template-columns:1fr;gap:8px}.v316-tab-form .modal-actions .btn{width:100%}}
@media(max-width:420px){.v316-tab-form{margin-left:-2px;margin-right:-2px}.v316-tab-form .card{padding:12px}}

/* V3.1.9 â€” Principal-first admissions and student registry */
.school-context-pill{display:flex;flex-direction:column;justify-content:center;min-width:220px;max-width:320px;padding:6px 12px;border:1px solid var(--border,#dfe5ec);border-radius:10px;background:var(--surface,#fff);font-size:12px;line-height:1.15}.school-context-pill span{font-size:10px;color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.05em}.school-context-pill b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border,#e5e7eb);border-radius:12px;background:var(--surface,#fff);margin:0 0 14px}.context-strip div{display:flex;flex-direction:column;gap:3px}.context-strip span:not(.badge){font-size:12px;color:var(--muted,#6b7280)}.admission-tabs{overflow-x:auto;white-space:nowrap}.wizard-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 18px}.wizard-step{display:flex;align-items:center;gap:8px;color:var(--muted,#6b7280);font-size:12px}.wizard-step span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--border,#dfe5ec);font-weight:700}.wizard-step.active{color:var(--text,#111827);font-weight:700}.wizard-step.active span,.wizard-step.done span{background:var(--primary,#2563eb);color:#fff;border-color:var(--primary,#2563eb)}.review-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.review-card{padding:12px;border:1px solid var(--border,#e5e7eb);border-radius:10px;background:#fafbfc}.review-card span{display:block;color:var(--muted,#6b7280);font-size:11px;margin-bottom:4px}.review-card b{font-size:13px}.pipeline{display:flex;gap:5px;overflow:auto;padding-bottom:12px}.pipeline span{white-space:nowrap;padding:6px 9px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:11px}.pipeline span.done{background:#dcfce7;color:#166534}.pipeline span.active{background:#dbeafe;color:#1d4ed8}.admission-drawer-body details{border-top:1px solid var(--border,#e5e7eb);padding:12px 0}.admission-drawer-body summary{cursor:pointer;font-weight:700;font-size:13px}.checklist{display:flex;flex-direction:column;gap:8px;margin:10px 0}.checklist label{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--border,#e5e7eb);border-radius:8px}.checklist .badge{margin-left:auto}.approval-summary{display:grid;gap:6px;margin:10px 0 12px}.approval-summary b{padding:8px;background:#f8fafc;border-radius:8px;font-size:12px}.admission-drawer-body .form-grid{margin-top:10px}.mobile-cards{display:none}
@media(max-width:900px){.school-context-pill{min-width:160px;max-width:210px}.context-strip{align-items:flex-start}.wizard-steps{grid-template-columns:1fr 1fr}.wizard-step small{font-size:10px}.review-summary{grid-template-columns:1fr}}
@media(max-width:680px){.school-context-pill{display:none}.context-strip{padding:10px}.desktop-table{display:none!important}.mobile-cards{display:block}.admission-tabs{margin-right:-8px}.metrics{grid-template-columns:1fr 1fr}.wizard-steps{grid-template-columns:1fr 1fr}.modal{width:calc(100vw - 20px);max-height:92vh;overflow:auto}.drawer{width:100%;max-width:100%}.row-actions{flex-wrap:wrap}.context-strip .badge{flex-shrink:0}}

/* V3.1.11 Classes â€” responsive recovery styles */
.class-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:thin}.class-tabs .tab-btn{flex:0 0 auto;border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:10px;padding:9px 14px;font-weight:600;cursor:pointer}.class-tabs .tab-btn.active{background:#4f46e5;color:#fff;border-color:#4f46e5}.class-search{display:flex;gap:10px;margin:16px 0}.class-search input,.class-search select{min-height:42px;border:1px solid #cbd5e1;border-radius:10px;padding:8px 12px}.class-search input{flex:1}.class-table-wrap{overflow:auto}.class-table{min-width:900px}.class-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 20px}.class-step{display:flex;align-items:center;gap:8px;color:#64748b;font-size:12px}.class-step span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0;color:#475569;font-weight:700}.class-step.active{color:#4f46e5}.class-step.active span,.class-step.done span{background:#4f46e5;color:#fff}.form-section{border:1px solid #e2e8f0;border-radius:14px;padding:16px;background:#f8fafc}.form-section h3{margin:0 0 4px}.section-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.subject-pick-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.subject-pick{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer}.subject-pick span{display:flex;flex-direction:column}.subject-pick small{color:#64748b}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.review-grid>div{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:11px}.review-grid small{display:block;color:#64748b}.review-grid b{display:block;margin-top:3px}.chip-list{display:flex;flex-wrap:wrap;gap:6px}.existing-exams{display:grid;gap:8px;margin-top:12px}.exam-row{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #e2e8f0;background:#fff;border-radius:12px;padding:13px;cursor:pointer}.exam-row>span:first-child{flex:1;display:flex;flex-direction:column}.exam-row small{color:#64748b;margin-top:2px}.class-review-note{margin-top:16px}
@media(max-width:700px){.class-search{flex-direction:column}.class-tabs{margin-right:-8px}.class-stepper{grid-template-columns:1fr 1fr}.class-step b{font-size:11px}.subject-pick-list,.review-grid{grid-template-columns:1fr}.section-row{align-items:flex-start;flex-direction:column}.section-row .btn{width:100%}.class-table-wrap{margin:0 -8px;padding:0 8px}.modal .class-stepper{margin-bottom:14px}.form-section{padding:12px}.class-review-note{font-size:12px}}

/* ================= V4.1 Attendance â€” Deep Indigo / Slate ================= */
:root{--att-indigo:#4F46E5;--att-indigo-dark:#4338CA;--att-slate-50:#F8FAFC;--att-slate-100:#F1F5F9;--att-slate-200:#E2E8F0;--att-slate-500:#64748B;--att-slate-700:#334155;--att-slate-900:#0F172A;--att-green:#047857;--att-green-bg:#ECFDF5;--att-red:#BE123C;--att-red-bg:#FFF1F2;--att-amber:#B45309;--att-amber-bg:#FFFBEB;}
.att-tabbar{display:flex;gap:6px;overflow:auto;padding:4px;border-bottom:1px solid var(--att-slate-200);margin:0 0 14px;scrollbar-width:none}.att-tabbar::-webkit-scrollbar{display:none}.att-tab{border:0;background:transparent;color:var(--att-slate-500);font-weight:700;padding:10px 13px;border-radius:9px;white-space:nowrap;cursor:pointer}.att-tab:hover{background:#EEF2FF;color:var(--att-indigo)}.att-tab.active{background:#EEF2FF;color:var(--att-indigo);box-shadow:inset 0 -2px 0 var(--att-indigo)}
.att-filterbar{display:flex;gap:14px;align-items:center;margin-bottom:14px;padding:12px 14px}.att-filter-title{min-width:145px;display:flex;flex-direction:column}.att-filter-title span{font-size:11px;color:var(--att-slate-500);margin-top:2px}.att-filters{display:flex;gap:8px;flex-wrap:wrap;flex:1}.att-filters select,.att-filters input,.att-filterbar input,.att-filterbar select{min-height:38px;border:1px solid var(--att-slate-200);border-radius:8px;background:#fff;padding:7px 10px;color:var(--att-slate-900);font-size:13px;outline:none}.att-filters select:focus,.att-filters input:focus{box-shadow:0 0 0 2px rgba(79,70,229,.18);border-color:var(--att-indigo)}
.att-teacher-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);gap:14px}.att-roster,.att-session{min-width:0}.roster-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.roster-head h3,.section-head h3{margin:0}.att-mini-kpis{display:flex;gap:12px}.att-mini-kpis b{font-size:18px;color:var(--att-green);text-align:center}.att-mini-kpis small{display:block;font-size:10px;font-weight:600;color:var(--att-slate-500)}.att-mini-kpis .red-t{color:var(--att-red)}.att-mini-kpis .amber-t{color:var(--att-amber)}
.roster-list{margin-top:12px;border-top:1px solid var(--att-slate-200)}.att-student-row{display:grid;grid-template-columns:38px minmax(130px,1fr) auto 34px auto auto;gap:9px;align-items:center;padding:10px 2px;border-bottom:1px solid var(--att-slate-100)}.student-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#EEF2FF;color:var(--att-indigo);font-size:11px;font-weight:800}.student-ident{min-width:0}.student-ident b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-ident small{color:var(--att-slate-500);font-size:11px}.status-pills{display:flex;gap:4px}.status-pill{width:31px;height:31px;border:1px solid var(--att-slate-200);border-radius:8px;background:#fff;color:var(--att-slate-500);font-weight:800;cursor:pointer}.status-pill span{display:none}.status-pill.selected.present{background:var(--att-green-bg);border-color:#A7F3D0;color:var(--att-green)}.status-pill.selected.absent{background:var(--att-red-bg);border-color:#FECDD3;color:var(--att-red)}.status-pill.selected.late{background:var(--att-amber-bg);border-color:#FDE68A;color:var(--att-amber)}.status-pill.selected.excused{background:#EEF2FF;border-color:#C7D2FE;color:var(--att-indigo)}.icon-btn{border:1px solid var(--att-slate-200);background:#fff;border-radius:8px;width:32px;height:32px;cursor:pointer}.notify-mini{font-size:10px;color:var(--att-slate-500);white-space:nowrap}
.session-context{display:grid;grid-template-columns:1fr 1.2fr;gap:7px 10px;margin:12px 0 15px;padding-bottom:15px;border-bottom:1px solid var(--att-slate-200)}.session-context span{font-size:11px;color:var(--att-slate-500)}.session-context b{font-size:12px}.dispatch-guard{display:flex;gap:10px;padding:12px;border:1px solid #C7D2FE;background:#EEF2FF;border-radius:10px;cursor:pointer}.dispatch-guard input{margin-top:3px;accent-color:var(--att-indigo)}.dispatch-guard b{display:block;font-size:12px;color:#3730A3}.dispatch-guard small{display:block;color:#4338CA;margin-top:4px;line-height:1.4}.dispatch-preview{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.dispatch-preview div{padding:10px;border:1px solid var(--att-slate-200);border-radius:9px;background:var(--att-slate-50)}.dispatch-preview span{display:block;font-size:10px;color:var(--att-slate-500)}.dispatch-preview strong{font-size:20px;color:var(--att-slate-900)}.save-state{font-size:11px;color:var(--att-green);font-weight:700;margin-top:8px}.mobile-savebar{display:none}
.att-exec-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.exec-card{background:#fff;border:1px solid var(--att-slate-200);border-radius:12px;padding:16px}.exec-card span{font-size:12px;color:var(--att-slate-500)}.exec-card strong{display:block;font-size:28px;letter-spacing:-.03em;margin:4px 0}.exec-card small{color:var(--att-slate-500);font-size:11px}.exec-card.danger strong{color:var(--att-red)}.progress{height:6px;background:var(--att-slate-100);border-radius:99px;overflow:hidden;margin:7px 0}.progress i{display:block;height:100%;background:var(--att-indigo);border-radius:99px}.att-table td,.att-table th{white-space:nowrap}.count{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:10px;background:#fff;color:var(--att-indigo);font-size:10px;margin-left:3px}.report-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin-bottom:14px}.notif-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.notif-kpis b{padding:12px;background:var(--att-green-bg);border:1px solid #A7F3D0;border-radius:9px;color:var(--att-green);font-size:20px}.notif-kpis small{display:block;color:var(--att-slate-500);font-size:10px}.notif-kpis .red-t{background:var(--att-red-bg);border-color:#FECDD3;color:var(--att-red)}.queue-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;background:var(--att-slate-50);border:1px solid var(--att-slate-200);border-radius:9px}.queue-row small{display:block;color:var(--att-slate-500);margin-top:4px}.att-period .period-dot{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:7px;background:var(--att-slate-100);font-size:11px}.att-period .ok{background:var(--att-green-bg);color:var(--att-green)}.att-period .bad{background:var(--att-red-bg);color:var(--att-red)}.att-period .late{background:var(--att-amber-bg);color:var(--att-amber)}.bar-cell{min-width:130px;display:flex;align-items:center;gap:8px}.bar-cell i{display:block;height:7px;background:var(--att-indigo);border-radius:99px;max-width:85px}.calendar-head{display:flex;align-items:center;justify-content:center;gap:16px}.attendance-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:16px}.cal-day{min-height:58px;border:1px solid var(--att-slate-200);border-radius:8px;padding:7px;background:#fff}.cal-day b{display:block}.cal-day small{font-size:10px}.cal-day.present small{color:var(--att-green)}.cal-day.absent{background:var(--att-red-bg);border-color:#FECDD3}.cal-day.absent small{color:var(--att-red)}.cal-day.late{background:var(--att-amber-bg);border-color:#FDE68A}.cal-day.late small{color:var(--att-amber)}.cal-day.recorded{background:var(--att-slate-50)}.cal-day.recorded small{color:var(--att-slate-500)}.cal-day.unmarked{background:repeating-linear-gradient(45deg,#fff,#fff 6px,var(--att-slate-100) 6px,var(--att-slate-100) 12px);border-style:dashed}.cal-day.unmarked small{color:var(--att-slate-500)}.legend{display:flex;flex-wrap:wrap;gap:15px;margin-top:14px;font-size:11px;color:var(--att-slate-500)}.legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--att-green);margin-right:5px}.legend span:nth-child(2):before{background:#F59E0B}.legend span:nth-child(3):before{background:#E11D48}.legend span:nth-child(4):before{background:#94A3B8}.legend span:nth-child(5):before{background:#E2E8F0}.legend span:nth-child(6):before{background:#CBD5E1}.att-modal-body{padding:16px}.att-modal-body .detail-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.att-modal-body .detail{padding:10px;border:1px solid var(--att-slate-200);border-radius:8px;background:var(--att-slate-50)}.att-modal-body .detail small{display:block;color:var(--att-slate-500);font-size:10px}.att-modal-body .detail b{display:block;margin-top:3px}.empty{padding:25px;text-align:center;color:var(--att-slate-500)}
@media(max-width:1100px){.att-exec-kpis{grid-template-columns:repeat(2,1fr)}.att-teacher-grid{grid-template-columns:1fr}.att-session{order:-1}.report-grid{grid-template-columns:1fr}.att-filterbar{align-items:flex-start}.att-filter-title{min-width:120px}}
@media(max-width:760px){.att-filterbar{display:block}.att-filter-title{margin-bottom:9px}.att-filters{display:grid;grid-template-columns:1fr 1fr}.att-filters>*{width:100%}.att-exec-kpis{grid-template-columns:1fr 1fr}.att-student-row{grid-template-columns:34px minmax(90px,1fr) auto 30px}.att-student-row>.badge,.att-student-row>.notify-mini{display:none}.status-pills{gap:2px}.status-pill{width:28px;height:28px}.att-mini-kpis{display:none}.mobile-savebar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 14px;background:rgba(255,255,255,.96);border-top:1px solid var(--att-slate-200);backdrop-filter:blur(8px);align-items:center;justify-content:space-between;box-shadow:0 -4px 18px rgba(15,23,42,.08)}.att-teacher-grid{padding-bottom:65px}.att-modal-body .detail-list{grid-template-columns:1fr}.notif-kpis{grid-template-columns:1fr 1fr}.attendance-calendar{gap:4px}.cal-day{min-height:48px;padding:5px}.att-tab{padding:9px 10px}.att-table{min-width:900px}.report-grid .form-grid{grid-template-columns:1fr}.session-context{grid-template-columns:1fr 1fr}}

/* ================= V4.2 Attendance MVP â€” Attendance-first interaction ================= */
.att-first-action-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;margin:0 0 12px;background:#fff;border:1px solid var(--att-slate-200);border-left:4px solid var(--att-indigo);border-radius:12px}.att-first-action-bar b{display:block;color:var(--att-slate-900);font-size:14px}.att-first-action-bar span{display:block;color:var(--att-slate-500);font-size:12px;margin-top:3px}.att-first-actions{display:flex;gap:7px;flex-wrap:wrap}.att-fast-strip{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.att-fast-strip>span{background:#fff;border:1px solid var(--att-slate-200);border-radius:999px;padding:7px 11px;font-size:12px;color:var(--att-slate-700)}.att-fast-strip b{font-size:15px;color:var(--att-green)}.att-fast-strip .abs b{color:var(--att-red)}.att-fast-strip .late b{color:var(--att-amber)}.att-fast-strip .exc b{color:var(--att-indigo)}.att-session-chip{margin-left:auto!important;background:#EEF2FF!important;color:#3730A3!important;border-color:#C7D2FE!important;font-weight:700}.att-primary-roster{border-radius:16px;box-shadow:0 6px 22px rgba(15,23,42,.05)}.att-primary-roster .roster-list{margin-top:14px}.att-primary-roster .att-student-row{min-height:64px;padding:11px 4px;cursor:pointer;border-radius:10px;transition:background .12s,transform .12s}.att-primary-roster .att-student-row:hover{background:#F8FAFC}.att-primary-roster .att-student-row:active{transform:scale(.998)}.att-student-row.is-absent{background:#FFF7F8}.att-main-status{min-width:110px}.tap-present,.tap-absent{display:inline-flex;align-items:center;justify-content:center;min-width:88px;height:32px;border-radius:8px;font-size:11px;font-weight:900;letter-spacing:.04em}.tap-present{background:var(--att-green-bg);color:var(--att-green);border:1px solid #A7F3D0}.tap-absent{background:var(--att-red-bg);color:var(--att-red);border:1px solid #FECDD3}.att-secondary-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-top:14px}.att-method-card h3{margin-top:0}.att-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.att-method{display:flex;flex-direction:column;text-align:left;gap:5px;padding:15px;border:1px solid var(--att-slate-200);background:#fff;border-radius:12px;cursor:pointer;transition:.15s}.att-method:hover{border-color:#C7D2FE;background:#F8FAFC;transform:translateY(-1px)}.att-method strong{font-size:24px;color:var(--att-indigo)}.att-method b{font-size:13px;color:var(--att-slate-900)}.att-method small{color:var(--att-slate-500);line-height:1.35}.att-safety-note{margin-top:12px;padding:10px;border-radius:9px;background:var(--att-green-bg);border:1px solid #A7F3D0;color:var(--att-green);font-size:11px}.scan-panel{display:grid;grid-template-columns:1fr 1fr;gap:16px}.scan-visual{min-height:220px;border-radius:14px;background:#F8FAFC;border:1px dashed #94A3B8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px}.scan-visual.qr{background:#EEF2FF;border-color:#A5B4FC}.scan-visual.rfid{background:#ECFDF5;border-color:#A7F3D0}.scan-icon{font-size:62px;color:var(--att-indigo);margin-bottom:10px}.scan-visual.rfid .scan-icon{color:var(--att-green)}.scan-visual b{font-size:15px}.scan-visual small{color:var(--att-slate-500);margin-top:5px}.scan-form{display:flex;flex-direction:column;gap:12px;justify-content:center}.scan-form .field span{display:block;font-size:12px;font-weight:700;color:var(--att-slate-700);margin-bottom:5px}.scan-form select,.scan-form input{width:100%;box-sizing:border-box;border:1px solid #CBD5E1;border-radius:9px;padding:10px;background:#fff}.scan-result{padding:12px;border-radius:10px;background:#F8FAFC;border:1px solid var(--att-slate-200)}.scan-result span{display:block;color:var(--att-slate-500);font-size:11px}.scan-result b{display:block;margin-top:3px}.att-primary-roster .status-pills{justify-content:flex-end}.att-primary-roster .status-pill{width:34px;height:34px}.att-primary-roster .notify-mini{min-width:72px;text-align:right}
@media(max-width:900px){.att-secondary-grid{grid-template-columns:1fr}.att-first-action-bar{align-items:flex-start;flex-direction:column}.att-first-actions{width:100%}.att-first-actions .btn{flex:1}.scan-panel{grid-template-columns:1fr}.scan-visual{min-height:150px}.att-session-chip{margin-left:0!important}}
@media(max-width:600px){.att-first-action-bar{padding:12px}.att-first-actions{display:grid;grid-template-columns:1fr 1fr}.att-first-actions .btn:first-child{grid-column:1/-1}.att-fast-strip{display:grid;grid-template-columns:repeat(2,1fr)}.att-fast-strip>span{border-radius:9px;text-align:center}.att-session-chip{grid-column:1/-1}.att-primary-roster .att-student-row{grid-template-columns:34px minmax(100px,1fr) auto}.att-primary-roster .att-main-status{min-width:0}.att-primary-roster .status-pills{grid-column:2/-1;justify-content:flex-start;margin-top:-4px}.att-primary-roster .icon-btn{position:absolute;right:6px;top:7px}.att-primary-roster .att-student-row{position:relative;padding-right:42px}.att-primary-roster .notify-mini{display:none}.tap-present,.tap-absent{min-width:76px;height:34px}.att-methods{grid-template-columns:1fr}.att-secondary-grid{padding-bottom:8px}.scan-visual{min-height:130px}.scan-icon{font-size:46px}}

/* V4.2.1 Attendance MVP â€” teacher-first minimal workspace */
.att-class-picker{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;border-left:4px solid var(--att-indigo)}
.att-class-picker strong{display:block;font-size:20px;color:var(--att-slate-900);margin-top:2px}
.att-class-picker small{display:block;color:var(--att-slate-500);margin-top:4px}
.att-class-picker select{min-width:260px;border:1px solid var(--att-slate-200);border-radius:10px;padding:11px 12px;background:#fff;font-weight:700;color:var(--att-slate-800)}
.att-class-picker-inline{margin:0 0 16px;padding:0 0 16px 12px;border-bottom:1px solid var(--att-slate-200)}
.att-mvp{padding:18px;margin-bottom:14px}
.att-mvp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.att-mvp-head h2{margin:3px 0 4px;font-size:22px;letter-spacing:-.02em}
.att-mvp-head p{margin:0;color:var(--att-slate-500);font-size:12px}
.att-counts{display:flex;gap:8px;flex-wrap:wrap}
.att-counts span{padding:8px 10px;border:1px solid var(--att-slate-200);border-radius:9px;background:var(--att-slate-50);font-size:11px;white-space:nowrap}
.att-counts b{font-size:15px;color:var(--att-green);margin-right:3px}.att-counts .abs b{color:var(--att-red)}.att-counts .late b{color:var(--att-amber)}
.att-method-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.att-method-choice.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.att-method-choice.single{grid-template-columns:minmax(0,420px)}
.roster-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.att-choice{position:relative;text-align:left;border:1px solid var(--att-slate-200);background:#fff;border-radius:12px;padding:15px;cursor:pointer;min-height:118px;transition:border-color .15s,box-shadow .15s,transform .15s}
.att-choice:hover{border-color:#A5B4FC;transform:translateY(-1px)}
.att-choice.selected{border:2px solid var(--att-indigo);background:#EEF2FF;box-shadow:0 4px 14px rgba(79,70,229,.09)}
.att-choice-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#E0E7FF;color:#3730A3;font-weight:900;font-size:19px;margin-bottom:9px}
.att-choice strong{display:block;font-size:14px;color:var(--att-slate-900)}
.att-choice small{display:block;color:var(--att-slate-500);font-size:11px;line-height:1.4;margin-top:4px;padding-right:5px}
.att-choice em{position:absolute;top:9px;right:9px;font-size:9px;font-style:normal;font-weight:800;color:#4338CA;background:#E0E7FF;padding:4px 6px;border-radius:999px}
.att-attendance-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:14px 16px;background:#fff;border:1px solid var(--att-slate-200);border-radius:12px}
.att-attendance-footer b{display:block;font-size:13px;color:var(--att-slate-900)}.att-attendance-footer span{display:block;color:var(--att-slate-500);font-size:11px;margin-top:3px}
.qr-scanner-only{position:relative;min-height:62vh;background:#020617;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.qr-scanner-only video{width:100%;height:62vh;object-fit:cover;display:block}
.qr-scan-frame{position:absolute;width:min(68vw,300px);height:min(68vw,300px);border:3px solid #fff;border-radius:20px;box-shadow:0 0 0 9999px rgba(2,6,23,.28)}
.qr-scan-frame:before,.qr-scan-frame:after,.qr-scan-frame i:before,.qr-scan-frame i:after{content:'';position:absolute;width:30px;height:30px;border-color:#818CF8}
.qr-scan-frame:before{top:-3px;left:-3px;border-top:5px solid;border-left:5px solid;border-radius:15px 0 0 0}.qr-scan-frame:after{top:-3px;right:-3px;border-top:5px solid;border-right:5px solid;border-radius:0 15px 0 0}.qr-scan-frame i:before{bottom:-3px;left:-3px;border-bottom:5px solid;border-left:5px solid;border-radius:0 0 0 15px}.qr-scan-frame i:after{bottom:-3px;right:-3px;border-bottom:5px solid;border-right:5px solid;border-radius:0 0 15px 0}
.qr-scanner-caption{position:absolute;bottom:18px;left:14px;right:14px;text-align:center;color:#fff;background:rgba(15,23,42,.72);backdrop-filter:blur(8px);padding:12px;border-radius:11px}.qr-scanner-caption b{display:block}.qr-scanner-caption span{font-size:11px;color:#CBD5E1}
.nfc-reader-screen{min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:#F8FAFC;border-radius:14px}.nfc-pulse{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;font-size:64px;color:var(--att-indigo);background:#EEF2FF;box-shadow:0 0 0 12px #E0E7FF,0 0 0 24px #EEF2FF;margin-bottom:24px}.nfc-reader-screen h3{margin:0}.nfc-reader-screen p{color:var(--att-slate-500);font-size:12px;max-width:360px}.nfc-detected{display:flex;align-items:center;gap:12px;margin:14px 0;padding:12px 16px;background:#ECFDF5;border:1px solid #A7F3D0;border-radius:12px;text-align:left}.nfc-detected .student-avatar{width:42px;height:42px}.nfc-detected span,.nfc-detected strong{display:block;font-size:11px}.nfc-detected strong{color:var(--att-green);margin-top:3px}
@media(max-width:800px){.att-class-picker,.att-mvp-head,.att-attendance-footer{align-items:stretch;flex-direction:column}.att-class-picker select{min-width:0;width:100%}.att-counts{width:100%}.att-counts span{flex:1;text-align:center}.att-method-choice{grid-template-columns:1fr}.att-choice{min-height:92px}.att-attendance-footer .btn{width:100%}.qr-scanner-only,.qr-scanner-only video{min-height:58vh;height:58vh}.qr-scan-frame{width:62vw;height:62vw}}
@media(max-width:480px){.att-class-picker strong{font-size:18px}.att-mvp{padding:14px}.att-mvp-head h2{font-size:19px}.att-counts{display:grid;grid-template-columns:repeat(2,1fr)}.att-choice{padding:13px}.att-attendance-footer{margin-bottom:65px}.qr-scanner-only,.qr-scanner-only video{min-height:54vh;height:54vh}.qr-scan-frame{width:72vw;height:72vw}.nfc-reader-screen{min-height:390px}}

/* ================================================================
   Homework Workspace â€” V4.2.1 additive UX refinement
   Scoped only to Homework so existing modules remain untouched.
================================================================ */
.hwux{--hw-indigo:#4F46E5;--hw-indigo2:#4338CA;--hw-slate:#0F172A;--hw-muted:#64748B;--hw-line:#E2E8F0;--hw-bg:#F8FAFC;--hw-green:#047857;--hw-green-bg:#ECFDF5;--hw-amber:#B45309;--hw-amber-bg:#FFFBEB;--hw-rose:#BE123C;--hw-rose-bg:#FFF1F2}
.hwux .hw-tabs{display:flex;gap:6px;border-bottom:1px solid var(--hw-line);overflow-x:auto;scrollbar-width:none;margin-bottom:14px}.hwux .hw-tabs::-webkit-scrollbar{display:none}
.hwux .hw-tab{border:0;background:transparent;color:#64748B;font-weight:800;padding:10px 14px;white-space:nowrap;border-bottom:2px solid transparent;cursor:pointer}.hwux .hw-tab:hover{color:var(--hw-indigo);background:#EEF2FF;border-radius:8px 8px 0 0}.hwux .hw-tab.active{color:var(--hw-indigo);border-bottom-color:var(--hw-indigo)}
.hwux .hw-context{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;background:#fff;border:1px solid var(--hw-line);border-radius:12px;margin-bottom:12px}.hwux .hw-context strong{font-size:15px}.hwux .hw-context small{display:block;color:var(--hw-muted);margin-top:3px}.hwux .hw-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto auto;gap:9px;align-items:end}.hwux .hw-filter label{display:block;font-size:10px;font-weight:800;color:#475569;margin-bottom:5px}.hwux .hw-filter select,.hwux .hw-filter input{width:100%;min-height:39px;border:1px solid #CBD5E1;border-radius:8px;background:#fff;padding:7px 10px;color:var(--hw-slate);box-sizing:border-box}.hwux .hw-filter select:focus,.hwux .hw-filter input:focus{outline:none;border-color:var(--hw-indigo);box-shadow:0 0 0 2px rgba(79,70,229,.14)}
.hwux .hw-table-wrap{overflow:auto;border:1px solid var(--hw-line);border-radius:12px;background:#fff}.hwux .hw-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;font-size:12px}.hwux .hw-table th{position:sticky;top:0;z-index:1;background:#F8FAFC;color:#475569;font-size:10px;text-align:left;text-transform:none;padding:10px 11px;border-bottom:1px solid var(--hw-line);white-space:nowrap}.hwux .hw-table td{padding:11px;border-bottom:1px solid #EEF2F7;vertical-align:middle}.hwux .hw-table tr:last-child td{border-bottom:0}.hwux .hw-table tr:hover td{background:#FAFAFF}
.hwux .hw-title{font-weight:800;color:#0F172A}.hwux .hw-sub{font-size:10px;color:#64748B;margin-top:3px}.hwux .hw-progress{display:flex;align-items:center;gap:7px;min-width:110px}.hwux .hw-progress-bar{height:6px;width:60px;background:#E2E8F0;border-radius:999px;overflow:hidden}.hwux .hw-progress-bar i{display:block;height:100%;background:#10B981;border-radius:999px}.hwux .hw-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #E2E8F0;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:800;white-space:nowrap}.hwux .hw-chip.green{background:var(--hw-green-bg);border-color:#A7F3D0;color:var(--hw-green)}.hwux .hw-chip.amber{background:var(--hw-amber-bg);border-color:#FDE68A;color:var(--hw-amber)}.hwux .hw-chip.rose{background:var(--hw-rose-bg);border-color:#FECDD3;color:var(--hw-rose)}.hwux .hw-chip.blue{background:#EEF2FF;border-color:#C7D2FE;color:#4338CA}
.hwux .hw-actions{display:flex;gap:5px;flex-wrap:wrap}.hwux .hw-actions .btn{font-size:10px;padding:7px 9px}.hwux .hw-empty{padding:38px 16px;text-align:center;color:#64748B}.hwux .hw-empty strong{display:block;color:#0F172A;margin-bottom:5px}
.hwux .hw-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.hwux .hw-kpi{padding:14px;border:1px solid var(--hw-line);border-radius:12px;background:#fff}.hwux .hw-kpi span{display:block;font-size:10px;color:#64748B;font-weight:700}.hwux .hw-kpi strong{display:block;font-size:24px;margin-top:4px;color:#0F172A}.hwux .hw-kpi small{color:#64748B}.hwux .hw-kpi .ring{float:right;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#10B981 0 80%,#E2E8F0 80%);position:relative}.hwux .hw-kpi .ring:after{content:'';position:absolute;width:30px;height:30px;border-radius:50%;background:#fff}.hwux .hw-kpi .ring b{position:relative;z-index:1;font-size:9px}
.hwux .hw-submission-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:12px}.hwux .hw-grade-summary{display:grid;gap:9px}.hwux .hw-grade-summary .summary-box{border:1px solid var(--hw-line);border-radius:11px;padding:12px;background:#fff}.hwux .summary-box span{display:block;font-size:10px;color:#64748B}.hwux .summary-box strong{display:block;font-size:19px;margin-top:3px}.hwux .hw-modal-note{background:#EEF2FF;color:#3730A3;border:1px solid #C7D2FE;border-radius:10px;padding:10px;font-size:11px}
.hwux .hw-form-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:14px}.hwux .hw-form-step{padding:9px;border:1px solid var(--hw-line);border-radius:9px;color:#64748B;font-size:10px;font-weight:800}.hwux .hw-form-step.active{background:#EEF2FF;color:var(--hw-indigo);border-color:#C7D2FE}.hwux .hw-form-step.done{background:#ECFDF5;color:#047857;border-color:#A7F3D0}.hwux .hw-form-page{display:none}.hwux .hw-form-page.active{display:block}.hwux .hw-fieldset{border:1px solid var(--hw-line);border-radius:11px;padding:12px;background:#FAFBFC;margin-bottom:10px}.hwux .hw-fieldset h4{margin:0 0 10px;font-size:12px}.hwux .hw-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hwux .hw-form-grid .full{grid-column:1/-1}.hwux .hw-form-grid label{display:block;font-size:10px;font-weight:800;color:#475569;margin-bottom:5px}.hwux .hw-form-grid input,.hwux .hw-form-grid select,.hwux .hw-form-grid textarea{width:100%;box-sizing:border-box;border:1px solid #CBD5E1;border-radius:8px;background:#fff;padding:8px 9px;font:inherit;font-size:12px}.hwux .hw-form-grid textarea{min-height:78px;resize:vertical}.hwux .hw-form-grid input:focus,.hwux .hw-form-grid select:focus,.hwux .hw-form-grid textarea:focus{outline:none;border-color:var(--hw-indigo);box-shadow:0 0 0 2px rgba(79,70,229,.14)}
.hwux .hw-mobile-list{display:none}.hwux .hw-mobile-card{border:1px solid var(--hw-line);border-radius:12px;background:#fff;padding:12px;margin-bottom:9px}.hwux .hw-mobile-card .top{display:flex;justify-content:space-between;gap:8px}.hwux .hw-mobile-card .meta{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}.hwux .hw-mobile-card .meta span{font-size:10px;color:#64748B}.hwux .hw-mobile-card .meta b{display:block;color:#0F172A;margin-top:2px}.hwux .hw-mobile-card .hw-actions{display:grid;grid-template-columns:1fr 1fr}.hwux .hw-mobile-card .hw-actions .btn{width:100%}
.hwux .hw-review-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:12px;align-items:start}.hwux .hw-review-files{border:1px solid var(--hw-line);border-radius:14px;background:#F8FAFC;padding:10px}.hwux .hw-review-files-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:8px}.hwux .hw-review-files-head span{font-size:10px;font-weight:800;color:#334155;text-transform:uppercase;letter-spacing:.04em}.hwux .hw-review-files-head small{font-size:9px;color:#64748B}
.hwux .hw-gallery{border:1px solid var(--hw-line);border-radius:12px;background:#fff;padding:9px}.hwux .hw-gallery-stage{display:flex;align-items:flex-start;justify-content:flex-start;min-height:170px;max-height:320px;overflow:auto;background:#F8FAFC;border:1px solid #EEF2F7;border-radius:10px}.hwux .hw-gallery-img{display:block;flex:0 0 auto;max-width:none;height:auto;margin:auto;border-radius:6px}.hwux .hw-gallery-file{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px;text-align:center;color:#0F172A;font-size:12px}.hwux .hw-gallery-kind{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:52px;padding:0 8px;border-radius:10px;background:#EEF2FF;color:#4338CA;font-size:11px;font-weight:800;letter-spacing:.04em}
.hwux .hw-gallery-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:10px;color:#475569}.hwux .hw-gallery-zoom{display:flex;align-items:center;gap:5px}.hwux .hw-gallery-zoom .btn{font-size:11px;padding:3px 8px;min-width:26px}.hwux .hw-gallery-zoom span{font-size:10px;font-weight:800;color:#334155;min-width:38px;text-align:center}.hwux .hw-gallery-zoom .btn:disabled{opacity:.45;cursor:not-allowed}.hwux .hw-gallery-caption{font-size:10px;color:#64748B;word-break:break-word}
.hwux .hw-gallery-strip{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.hwux .hw-gallery-thumbwrap{position:relative}.hwux .hw-gallery-thumb{width:64px;height:64px;border:2px solid #E2E8F0;border-radius:9px;background:#F8FAFC;padding:0;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#4338CA;font-size:10px;font-weight:800}.hwux .hw-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.hwux .hw-gallery-thumb.active{border-color:var(--hw-indigo);box-shadow:0 0 0 2px rgba(79,70,229,.15)}.hwux .hw-gallery-remove{position:absolute;top:-5px;right:-5px;width:19px;height:19px;border-radius:999px;border:1px solid #FECDD3;background:#FFF1F2;color:#BE123C;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.hwux .hw-gallery-empty{border:1px dashed #CBD5E1;border-radius:10px;padding:16px;text-align:center;color:#64748B;font-size:11px;background:#F8FAFC}.hwux .hw4-files{grid-column:1/-1;margin-top:10px;max-width:680px}
@media(max-width:900px){.hwux .hw-review-layout{grid-template-columns:1fr}}
@media(max-width:900px){.hwux .hw-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.hwux .hw-filters .hw-filter:last-of-type{grid-column:span 2}.hwux .hw-submission-grid{grid-template-columns:1fr}}
@media(max-width:680px){.hwux .hw-context{align-items:flex-start;flex-direction:column}.hwux .hw-context .btn{width:100%}.hwux .hw-filters{grid-template-columns:1fr 1fr}.hwux .hw-filters .hw-filter:last-of-type{grid-column:span 2}.hwux .hw-kpis{grid-template-columns:1fr 1fr}.hwux .hw-kpi:last-child{grid-column:1/-1}.hwux .hw-table-wrap{display:none}.hwux .hw-mobile-list{display:block}.hwux .hw-form-steps{grid-template-columns:1fr}.hwux .hw-form-grid{grid-template-columns:1fr}.hwux .hw-form-grid .full{grid-column:auto}.hwux .modal-actions{display:grid;grid-template-columns:1fr;gap:7px}.hwux .modal-actions .btn{width:100%}}
@media(max-width:420px){.hwux .hw-filters{grid-template-columns:1fr}.hwux .hw-filters .hw-filter:last-of-type{grid-column:auto}.hwux .hw-kpis{grid-template-columns:1fr}.hwux .hw-kpi:last-child{grid-column:auto}}

/* ================================================================
   V4.2.2 Homework â€” end-user role recovery / responsive workspace
   Additive only: scoped to .hw4 and does not alter other modules.
================================================================ */
.hw4{--i:#4F46E5;--i2:#4338CA;--s50:#F8FAFC;--s100:#F1F5F9;--s200:#E2E8F0;--s500:#64748B;--s700:#334155;--s900:#0F172A;--g:#047857;--gbg:#ECFDF5;--a:#B45309;--abg:#FFFBEB;--r:#BE123C;--rbg:#FFF1F2;color:var(--s900)}
.hw4 .hw4-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin:0 0 12px}.hw4 .hw4-kicker{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--s500);margin-bottom:4px}.hw4 h1{font-size:24px;line-height:1.15;margin:0}.hw4 h2{font-size:16px;margin:0}.hw4 p{color:var(--s500);font-size:12px;margin:5px 0 0}.hw4 .hw4-tabs{display:flex;gap:5px;overflow:auto;border-bottom:1px solid var(--s200);margin-bottom:14px;scrollbar-width:none}.hw4 .hw4-tabs::-webkit-scrollbar{display:none}.hw4 .hw4-tab{border:0;background:transparent;color:var(--s500);font-weight:800;padding:10px 14px;border-bottom:2px solid transparent;white-space:nowrap;cursor:pointer}.hw4 .hw4-tab.active{color:var(--i);border-bottom-color:var(--i);background:#EEF2FF}.hw4 .hw4-tab:hover{color:var(--i);background:#F5F3FF}.hw4 .hw4-filterbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto auto;gap:9px;align-items:end;background:#fff;border:1px solid var(--s200);border-radius:12px;padding:12px;margin-bottom:12px}.hw4 label{display:block;font-size:10px;font-weight:800;color:var(--s700);margin-bottom:5px}.hw4 select,.hw4 input,.hw4 textarea{font:inherit}.hw4 .hw4-filterbar select,.hw4 .hw4-childbar select{width:100%;min-height:40px;border:1px solid #CBD5E1;border-radius:8px;padding:8px;background:#fff;color:var(--s900)}.hw4 .hw4-filterbar select:focus,.hw4 input:focus,.hw4 select:focus,.hw4 textarea:focus{outline:none;border-color:var(--i);box-shadow:0 0 0 2px rgba(79,70,229,.14)}.hw4 .hw4-sectionhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.hw4 .hw4-tablewrap{overflow:auto;border:1px solid var(--s200);border-radius:10px}.hw4 .hw4-table{width:100%;min-width:820px;border-collapse:separate;border-spacing:0;font-size:12px}.hw4 .hw4-table th{background:var(--s50);color:var(--s700);font-size:10px;text-align:left;padding:10px;border-bottom:1px solid var(--s200);white-space:nowrap}.hw4 .hw4-table td{padding:11px 10px;border-bottom:1px solid var(--s100);vertical-align:middle}.hw4 .hw4-table tr:last-child td{border-bottom:0}.hw4 .hw4-table td b{display:block}.hw4 .hw4-table td small{display:block;color:var(--s500);font-size:10px;margin-top:3px}.hw4 .hw4-actions{display:flex;gap:6px;flex-wrap:wrap}.hw4 .hw4-actions .btn{font-size:11px;padding:7px 9px}.hw4 .hw4-progress{display:flex;align-items:center;gap:7px;min-width:100px}.hw4 .hw4-progress>span{width:58px;height:6px;background:var(--s200);border-radius:99px;overflow:hidden}.hw4 .hw4-progress i{display:block;height:100%;background:#10B981;border-radius:99px}.hw4 .hw4-chip{display:inline-flex;align-items:center;border:1px solid var(--s200);border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;white-space:nowrap}.hw4 .hw4-chip.green{background:var(--gbg);border-color:#A7F3D0;color:var(--g)}.hw4 .hw4-chip.amber{background:var(--abg);border-color:#FDE68A;color:var(--a)}.hw4 .hw4-chip.rose{background:var(--rbg);border-color:#FECDD3;color:var(--r)}.hw4 .hw4-chip.blue{background:#EEF2FF;border-color:#C7D2FE;color:#4338CA}.hw4 .hw4-mobilelist{display:none}.hw4 .hw4-card{border:1px solid var(--s200);border-radius:12px;padding:12px;margin-bottom:9px}.hw4 .hw4-cardtop,.hw4 .hw4-selftop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.hw4 .hw4-cardtop b,.hw4 .hw4-selftop b{font-size:13px}.hw4 .hw4-cardtop small,.hw4 .hw4-selftop small{display:block;color:var(--s500);font-size:10px;margin-top:4px}.hw4 .hw4-meta,.hw4 .hw4-selfmeta{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}.hw4 .hw4-meta span,.hw4 .hw4-selfmeta span{font-size:10px;color:var(--s500)}.hw4 .hw4-meta b,.hw4 .hw4-selfmeta b{display:block;font-size:11px;margin-top:2px}.hw4 .hw4-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.hw4 .hw4-kpis>div{background:#fff;border:1px solid var(--s200);border-radius:12px;padding:14px}.hw4 .hw4-kpis span{display:block;color:var(--s500);font-size:10px;font-weight:700}.hw4 .hw4-kpis b{display:block;font-size:24px;margin-top:4px}.hw4 .hw4-kpis small{color:var(--s500);font-size:10px}.hw4 .hw4-summarygrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:12px;margin-bottom:12px}.hw4 .hw4-classrow{display:grid;grid-template-columns:160px 1fr;gap:15px;align-items:center;padding:12px 0;border-top:1px solid var(--s100)}.hw4 .hw4-classrow small{display:block;color:var(--s500);font-size:10px;margin-top:3px}.hw4 .hw4-alert{padding:10px 11px;border:1px solid #FDE68A;background:var(--abg);color:#92400E;border-radius:9px;font-size:11px;margin-bottom:8px}.hw4 .hw4-reportbig{font-size:34px;font-weight:800;margin:10px 0 4px;color:var(--i)}.hw4 .hw4-childbar{display:flex;align-items:end;gap:10px;background:#fff;border:1px solid var(--s200);border-radius:12px;padding:12px;margin-bottom:12px}.hw4 .hw4-childbar>div{min-width:240px}.hw4 .hw4-childbar select{max-width:280px}.hw4 .hw4-selflist{display:grid;gap:10px}.hw4 .hw4-selfcard{border:1px solid var(--s200);border-radius:12px;padding:14px;background:#fff}.hw4 .hw4-selfmeta{grid-template-columns:repeat(3,1fr)}.hw4 .hw4-note{margin-top:10px;padding:9px 10px;border-radius:8px;background:var(--abg);color:#92400E;font-size:11px}.hw4 .hw4-feedback{margin-top:10px;padding:10px;border-radius:8px;background:#EEF2FF;border:1px solid #C7D2FE;color:#3730A3;font-size:11px}.hw4 .hw4-feedback b{display:block;margin-bottom:3px}.hw4 .hw4-empty{text-align:center;padding:42px 15px;color:var(--s500)}.hw4 .hw4-empty strong{display:block;color:var(--s900);margin-bottom:4px}.hw4 .hw4-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px}.hw4 .hw4-stepper span{padding:9px;border:1px solid var(--s200);border-radius:8px;font-size:10px;font-weight:800;color:var(--s500)}.hw4 .hw4-stepper span.active{background:#EEF2FF;border-color:#C7D2FE;color:var(--i)}.hw4 .hw4-stepper span.done{background:var(--gbg);border-color:#A7F3D0;color:var(--g)}.hw4 .hw4-formstep{display:none}.hw4 .hw4-formstep.active{display:block}.hw4 .hw4-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hw4 .hw4-formgrid .full{grid-column:1/-1}.hw4 .hw4-formgrid input,.hw4 .hw4-formgrid select,.hw4 .hw4-formgrid textarea{width:100%;box-sizing:border-box;border:1px solid #CBD5E1;border-radius:8px;padding:9px;background:#fff}.hw4 .hw4-formgrid textarea{min-height:110px;resize:vertical}.hw4 .hw4-help{display:block;color:var(--s500);font-size:10px;margin-top:4px}.hw4 .hw4-review{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hw4 .hw4-review>div{border:1px solid var(--s200);background:var(--s50);border-radius:9px;padding:10px}.hw4 .hw4-review span{display:block;color:var(--s500);font-size:10px}.hw4 .hw4-review b{display:block;margin-top:3px;font-size:12px}.hw4 .hw4-publishbox{margin-top:12px;border:1px solid #C7D2FE;background:#EEF2FF;border-radius:10px;padding:12px}.hw4 .hw4-publishbox select{max-width:240px}.hw4 .hw4-publishbox p{color:#3730A3}.hw4 .hw4-drawbody{padding:4px 0}.hw4 .hw4-detailhero{display:grid;gap:8px;padding:12px;border-radius:10px;background:var(--s50);border:1px solid var(--s200);margin-bottom:12px}.hw4 .hw4-detailrow{padding:11px 0;border-bottom:1px solid var(--s100)}.hw4 .hw4-detailrow span{display:block;color:var(--s500);font-size:10px;margin-bottom:4px}.hw4 .hw4-detailrow b{font-size:12px;line-height:1.5}.hw4 .hw4-head .btn{white-space:nowrap}
@media(max-width:900px){.hw4 .hw4-summarygrid{grid-template-columns:1fr}.hw4 .hw4-filterbar{grid-template-columns:1fr 1fr}.hw4 .hw4-filterbar>button{width:100%}.hw4 .hw4-selfmeta{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.hw4 .hw4-head{display:block}.hw4 .hw4-head .btn{width:100%;margin-top:10px}.hw4 h1{font-size:20px}.hw4 .hw4-filterbar{grid-template-columns:1fr}.hw4 .hw4-kpis{grid-template-columns:1fr}.hw4 .hw4-classrow{grid-template-columns:1fr}.hw4 .hw4-tablewrap{display:none}.hw4 .hw4-mobilelist{display:block}.hw4 .hw4-selfmeta{grid-template-columns:1fr 1fr}.hw4 .hw4-childbar{align-items:stretch;flex-direction:column}.hw4 .hw4-childbar>div,.hw4 .hw4-childbar select{max-width:none;width:100%}.hw4 .hw4-stepper{grid-template-columns:1fr 1fr}.hw4 .hw4-formgrid,.hw4 .hw4-review{grid-template-columns:1fr}.hw4 .hw4-formgrid .full{grid-column:auto}.hw4 .hw4-actions{display:grid;grid-template-columns:1fr 1fr}.hw4 .hw4-actions .btn{width:100%}.hw4 .hw4-selfcard .hw4-actions{grid-template-columns:1fr}.hw4 .hw4-tabs{margin-right:-8px}}
@media(max-width:420px){.hw4 .hw4-selfmeta{grid-template-columns:1fr}.hw4 .hw4-actions{grid-template-columns:1fr}.hw4 .hw4-stepper{grid-template-columns:1fr}.hw4 .hw4-kpis>div{padding:12px}}
/* V4.2.3 Homework stable release */
.hw423{max-width:1400px;margin:0 auto;padding:4px 2px 32px;color:#0f172a}.hw423-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}.hw423-head h1{margin:2px 0 5px;font-size:25px}.hw423-head p{margin:0;color:#64748b;max-width:760px}.hw423 .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#4f46e5;font-weight:800}.hw423-tabs{display:flex;gap:4px;border-bottom:1px solid #e2e8f0;margin-bottom:12px;overflow-x:auto}.hw423-tab{border:0;background:transparent;padding:11px 15px;font-weight:700;color:#64748b;white-space:nowrap;cursor:pointer;border-bottom:3px solid transparent}.hw423-tab.active{color:#4f46e5;border-bottom-color:#4f46e5}.hw423-context,.hw423-childbar,.hw423-studentbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;margin-bottom:12px}.hw423-context div:first-child{display:flex;flex-direction:column;gap:2px}.hw423-context span{font-size:12px;color:#64748b}.hw423-filterbar{display:grid;grid-template-columns:1fr 1fr 1fr auto auto;gap:10px;padding:14px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.hw423-filterbar label,.hw423-formgrid label{display:block;font-size:12px;font-weight:700;color:#334155;margin-bottom:5px}.hw423-filterbar select,.hw423-formgrid input,.hw423-formgrid select,.hw423-formgrid textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:9px 10px;font:inherit;color:#0f172a}.hw423-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden}.hw423-tablewrap{width:100%;overflow-x:auto}.hw423-table{width:100%;border-collapse:collapse;min-width:880px}.hw423-table th{font-size:11px;text-transform:uppercase;color:#64748b;text-align:left;background:#f8fafc;padding:11px 12px;border-bottom:1px solid #e2e8f0;white-space:nowrap}.hw423-table td{padding:12px;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:13px}.hw423-table td small{display:block;color:#64748b;margin-top:3px;font-size:11px}.hw423-chip{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;white-space:nowrap}.hw423-chip.green{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.hw423-chip.amber{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.hw423-chip.blue{background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe}.hw423-chip.slate{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.hw423-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px}.hw423-kpis>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.hw423-kpis span{display:block;color:#64748b;font-size:12px;margin-bottom:5px}.hw423-kpis b{font-size:24px}.hw423-sectiontitle{padding:14px}.hw423-sectiontitle h2{margin:0 0 3px;font-size:17px}.hw423-sectiontitle p{margin:0;color:#64748b;font-size:12px}.hw423-progressrow{display:grid;grid-template-columns:150px 1fr 50px;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid #f1f5f9}.hw423-progressrow div:first-child{display:flex;flex-direction:column;gap:2px}.hw423-progressrow span{font-size:11px;color:#64748b}.hw423-progress{height:9px;background:#e2e8f0;border-radius:999px;overflow:hidden}.hw423-progress i{display:block;height:100%;background:#4f46e5;border-radius:999px}.hw423-mobilelist{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.hw423-personcard{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px}.hw423-personcard .top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.hw423-personcard .top>div{display:flex;flex-direction:column;gap:3px}.hw423-personcard .top small{color:#64748b;font-size:12px}.hw423-childstates{margin:12px 0;display:grid;gap:7px}.hw423-childstates>div{display:flex;justify-content:space-between;align-items:center;padding:8px 9px;background:#f8fafc;border-radius:8px}.hw423-detailgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.hw423-detailgrid>div{background:#f8fafc;border-radius:9px;padding:10px}.hw423-detailgrid span{display:block;color:#64748b;font-size:11px;margin-bottom:3px}.hw423-detailgrid b{display:block;font-size:12px;line-height:1.45}.hw423-detailgrid .full{grid-column:1/-1}.hw423-empty{padding:40px 20px;text-align:center;display:flex;flex-direction:column;gap:5px;color:#64748b}.hw423-empty b{color:#0f172a}.hw423-stepper{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:16px}.hw423-stepper span{padding:8px 6px;border-radius:8px;background:#f1f5f9;color:#64748b;text-align:center;font-size:11px;font-weight:800}.hw423-stepper span.active{background:#eef2ff;color:#4338ca}.hw423-stepper span.done{background:#ecfdf5;color:#047857}.hw423-formstep{display:none}.hw423-formstep.active{display:block}.hw423-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hw423-formgrid .full{grid-column:1/-1}.hw423-formgrid textarea{min-height:120px;resize:vertical}.hw423-review{margin-top:14px;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.hw423-review>div{display:flex;justify-content:space-between;gap:15px;padding:9px 11px;border-bottom:1px solid #f1f5f9;font-size:12px}.hw423-review span{color:#64748b}.hw423-drawerbody{padding:4px 0 12px}.hw423-detailhero{display:flex;align-items:center;gap:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px;margin-bottom:12px}.hw423-muted{font-size:12px;color:#94a3b8}.hw423-submitnote{font-size:12px;color:#64748b;background:#f8fafc;border-radius:8px;padding:10px}
@media(max-width:900px){.hw423-head{flex-direction:column}.hw423-filterbar{grid-template-columns:1fr 1fr}.hw423-kpis{grid-template-columns:1fr 1fr}.hw423-mobilelist{grid-template-columns:1fr}}
@media(max-width:600px){.hw423-head h1{font-size:21px}.hw423-filterbar{grid-template-columns:1fr}.hw423-kpis{grid-template-columns:1fr 1fr}.hw423-progressrow{grid-template-columns:1fr 45px}.hw423-progressrow .hw423-progress{grid-column:1/-1}.hw423-context,.hw423-childbar,.hw423-studentbar{align-items:flex-start;flex-direction:column}.hw423-formgrid{grid-template-columns:1fr}.hw423-formgrid .full{grid-column:auto}.hw423-stepper{grid-template-columns:1fr}.hw423-stepper span{display:none}.hw423-stepper span.active{display:block}.hw423-detailgrid{grid-template-columns:1fr}.hw423-detailgrid .full{grid-column:auto}}

/* V4.2.4 Grading MVP â€” additive, page-scoped */
.gmvp{--gi:#4f46e5;--gs:#0f172a;--gl:#f8fafc;--gb:#e2e8f0;--ge:#047857;--gr:#be123c;--ga:#b45309;color:var(--gs)}
.gmvp *{box-sizing:border-box}.gmvp-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:14px}.gmvp-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800}.gmvp h1{font-size:24px;margin:4px 0}.gmvp h2{font-size:17px;margin:0}.gmvp p{margin:4px 0;color:#64748b;font-size:13px}.gmvp-tabs{display:flex;gap:6px;border-bottom:1px solid var(--gb);margin-bottom:14px;overflow:auto}.gmvp-tab{border:0;background:transparent;padding:11px 14px;font-weight:700;color:#64748b;white-space:nowrap;border-bottom:3px solid transparent;cursor:pointer}.gmvp-tab.active{color:var(--gi);border-bottom-color:var(--gi)}.gmvp-toolbar,.gmvp-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap;background:#fff;border:1px solid var(--gb);padding:12px;border-radius:12px;margin-bottom:12px}.gmvp-field{min-width:150px;flex:1}.gmvp-field label{display:block;font-size:11px;font-weight:800;color:#475569;margin-bottom:5px}.gmvp-field select,.gmvp-field input,.gmvp-grid input,.gmvp-grid select,.gmvp-remark{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:8px;background:#fff;color:#0f172a}.gmvp-field select:focus,.gmvp-field input:focus,.gmvp-grid input:focus,.gmvp-grid select:focus,.gmvp-remark:focus{outline:2px solid #c7d2fe;border-color:var(--gi)}.gmvp-card{background:#fff;border:1px solid var(--gb);border-radius:14px;padding:14px;margin-bottom:12px}.gmvp-cardhead{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.gmvp-actions{display:flex;gap:8px;flex-wrap:wrap}.gmvp-btn{border:1px solid #cbd5e1;background:#fff;border-radius:8px;padding:8px 11px;font-weight:700;cursor:pointer}.gmvp-btn.primary{background:var(--gi);border-color:var(--gi);color:#fff}.gmvp-btn.primary:hover{background:#4338ca}.gmvp-btn:disabled{opacity:.5;cursor:not-allowed}.gmvp-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.gmvp-status.green{background:#ecfdf5;color:#047857}.gmvp-status.amber{background:#fffbeb;color:#b45309}.gmvp-status.rose{background:#fff1f2;color:#be123c}.gmvp-status.blue{background:#eef2ff;color:#4338ca}.gmvp-gridwrap{overflow:auto;border:1px solid var(--gb);border-radius:10px}.gmvp-grid{width:100%;min-width:1050px;border-collapse:collapse}.gmvp-grid th{background:#f8fafc;color:#475569;font-size:11px;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:9px;border-bottom:1px solid var(--gb);position:sticky;top:0;z-index:1}.gmvp-grid td{padding:8px;border-bottom:1px solid #eef2f7;font-size:13px;vertical-align:middle}.gmvp-grid tr:last-child td{border-bottom:0}.gmvp-grid input{width:78px}.gmvp-grid .student{min-width:170px}.gmvp-grid .total{font-weight:900}.gmvp-grid .disabled{background:#f8fafc;color:#94a3b8}.gmvp-bottom{position:sticky;bottom:10px;display:flex;justify-content:space-between;gap:10px;align-items:center;background:#0f172a;color:#fff;padding:10px 12px;border-radius:12px;margin-top:10px;box-shadow:0 8px 25px #0f172a22}.gmvp-bottom small{color:#cbd5e1}.gmvp-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.gmvp-kpi{background:#fff;border:1px solid var(--gb);border-radius:12px;padding:13px}.gmvp-kpi span{display:block;color:#64748b;font-size:11px;font-weight:700}.gmvp-kpi b{display:block;font-size:23px;margin-top:3px}.gmvp-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:12px}.gmvp-alert{padding:10px;border-radius:9px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;margin-bottom:8px}.gmvp-ok{padding:10px;border-radius:9px;background:#ecfdf5;border:1px solid #a7f3d0;color:#047857}.gmvp-dist{display:flex;gap:6px;align-items:end;height:110px;padding-top:10px}.gmvp-bar{flex:1;background:#e0e7ff;border-radius:6px 6px 0 0;position:relative;min-width:28px}.gmvp-bar i{position:absolute;bottom:0;left:0;right:0;background:#6366f1;border-radius:6px 6px 0 0}.gmvp-bar small{position:absolute;top:-17px;left:0;right:0;text-align:center;font-size:10px}.gmvp-bar label{position:absolute;bottom:-20px;left:0;right:0;text-align:center;font-size:10px}.gmvp-reportgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.gmvp-reportrow{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #eef2f7;padding:9px 0}.gmvp-reportrow:last-child{border-bottom:0}.gmvp-muted{color:#64748b;font-size:12px}.gmvp-parentcards,.gmvp-studentcards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gmvp-resultcard{border:1px solid var(--gb);border-radius:12px;padding:14px;background:#fff}.gmvp-resultcard h3{margin:0 0 5px;font-size:15px}.gmvp-score{font-size:28px;font-weight:900;color:var(--gi)}.gmvp-progress{height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden}.gmvp-progress i{display:block;height:100%;background:#4f46e5}.gmvp-modal{position:fixed;inset:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;padding:18px;z-index:9999}.gmvp-modalbox{width:min(720px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;border:1px solid #e2e8f0;box-shadow:0 25px 60px #0f172a33}.gmvp-modalhead{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid var(--gb)}.gmvp-modalbody{padding:15px}.gmvp-close{border:0;background:#f1f5f9;border-radius:8px;font-size:18px;width:34px;height:34px;cursor:pointer}.gmvp-formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.gmvp-formgrid .full{grid-column:1/-1}.gmvp-formgrid label{display:block;font-size:11px;font-weight:800;color:#475569;margin-bottom:5px}.gmvp-formgrid textarea{width:100%;min-height:90px;border:1px solid #cbd5e1;border-radius:8px;padding:9px}.gmvp-modalactions{display:flex;justify-content:flex-end;gap:8px;padding-top:14px}.gmvp-mobilecards{display:none}
@media(max-width:900px){.gmvp-layout{grid-template-columns:1fr}.gmvp-kpis{grid-template-columns:repeat(2,1fr)}.gmvp-parentcards,.gmvp-studentcards{grid-template-columns:1fr}.gmvp-head{flex-direction:column}.gmvp-head .gmvp-actions{width:100%}.gmvp-head .gmvp-btn{flex:1}}
@media(max-width:640px){.gmvp h1{font-size:20px}.gmvp-card{padding:11px}.gmvp-toolbar,.gmvp-filter{display:grid;grid-template-columns:1fr 1fr}.gmvp-field{min-width:0}.gmvp-actions{grid-column:1/-1}.gmvp-kpis{grid-template-columns:1fr 1fr}.gmvp-bottom{position:sticky;bottom:5px;flex-direction:column;align-items:stretch}.gmvp-bottom .gmvp-actions{display:grid;grid-template-columns:1fr 1fr}.gmvp-formgrid{grid-template-columns:1fr}.gmvp-formgrid .full{grid-column:auto}.gmvp-reportgrid{grid-template-columns:1fr}.gmvp-modal{padding:8px}.gmvp-modalbox{max-height:96vh}.gmvp-grid{min-width:980px}}

/* ================================================================
   V4.2.5 Grading â†” Exams & Results â€” additive Grading-only redesign
================================================================ */
.g425{--i:#4F46E5;--i2:#4338CA;--s50:#F8FAFC;--s100:#F1F5F9;--s200:#E2E8F0;--s500:#64748B;--s700:#334155;--s900:#0F172A;--g:#047857;--gbg:#ECFDF5;--a:#B45309;--abg:#FFFBEB;--r:#BE123C;--rbg:#FFF1F2;color:var(--s900)}
.g425 *{box-sizing:border-box}.g425-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:12px}.g425-eyebrow{font-size:10px;letter-spacing:.08em;font-weight:900;color:var(--s500);text-transform:uppercase}.g425 h1{font-size:24px;line-height:1.15;margin:4px 0}.g425 h2{font-size:17px;margin:0}.g425 h3{font-size:14px;margin:0 0 8px}.g425 p{font-size:12px;color:var(--s500);margin:5px 0}.g425-tabs{display:flex;gap:5px;overflow:auto;border-bottom:1px solid var(--s200);margin-bottom:12px;scrollbar-width:none}.g425-tabs::-webkit-scrollbar{display:none}.g425-tab{border:0;background:transparent;padding:10px 14px;color:var(--s500);font-weight:800;white-space:nowrap;border-bottom:2px solid transparent;cursor:pointer}.g425-tab.active{color:var(--i);border-bottom-color:var(--i);background:#EEF2FF}.g425-context{border:1px solid #C7D2FE;background:#F8FAFF;border-radius:14px;padding:14px;margin-bottom:12px}.g425-context-title{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.g425-context-title span{font-size:9px;font-weight:900;color:#4338CA;letter-spacing:.08em}.g425-context-title h2{margin-top:4px}.g425-context-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:12px}.g425-context-grid>div,.g425-modalgrid>div{background:#fff;border:1px solid #E0E7FF;border-radius:9px;padding:9px}.g425-context-grid small,.g425-modalgrid span{display:block;color:var(--s500);font-size:10px;margin-bottom:3px}.g425-context-grid b,.g425-modalgrid b{font-size:12px;line-height:1.35}.g425-selectbar{display:grid;grid-template-columns:minmax(260px,1fr) 1.3fr;gap:10px;margin-bottom:10px}.g425-selectbar>div{background:#fff;border:1px solid var(--s200);border-radius:11px;padding:10px}.g425-selectbar label{display:block;font-size:10px;font-weight:900;color:var(--s700);margin-bottom:5px}.g425-selectbar select{width:100%;padding:9px;border:1px solid #CBD5E1;border-radius:8px;background:#fff}.g425-source{display:flex;flex-direction:column;justify-content:center;background:#F8FAFC!important}.g425-source b{font-size:11px;color:#3730A3}.g425-source span{font-size:11px;color:var(--s500);margin-top:2px}.g425-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--s200);padding:11px;border-radius:12px;margin-bottom:10px}.g425-toolbar>div:first-child{display:flex;flex-direction:column;gap:3px}.g425-toolbar span{font-size:11px;color:var(--s500)}.g425-actions{display:flex;gap:7px;flex-wrap:wrap}.g425-actions.end{justify-content:flex-end;margin-top:12px}.g425-btn,.g425-mini{border:1px solid #CBD5E1;background:#fff;color:var(--s900);border-radius:8px;padding:8px 10px;font-size:11px;font-weight:800;cursor:pointer}.g425-btn:hover,.g425-mini:hover{border-color:#A5B4FC;background:#F8FAFF}.g425-btn.primary{background:var(--i);border-color:var(--i);color:#fff}.g425-btn.primary:hover{background:var(--i2)}.g425-btn:disabled{opacity:.45;cursor:not-allowed}.g425-tablewrap{overflow:auto;border:1px solid var(--s200);border-radius:12px;background:#fff}.g425-table{border-collapse:collapse;width:100%;min-width:980px}.g425-table th{position:sticky;top:0;background:#F8FAFC;color:#475569;font-size:10px;text-align:left;padding:9px;border-bottom:1px solid var(--s200);z-index:2}.g425-table th small{display:block;font-weight:600;color:#94A3B8;margin-top:2px}.g425-table td{padding:8px 9px;border-bottom:1px solid #EEF2F7;font-size:12px;vertical-align:middle}.g425-table tr:last-child td{border-bottom:0}.g425-table .student{min-width:170px}.g425-table input,.g425-table select{width:100%;min-width:78px;border:1px solid #CBD5E1;border-radius:7px;padding:7px;background:#fff}.g425-table input:disabled{background:#F8FAFC;color:#94A3B8}.g425-table .total{font-weight:900}.g425-mini{font-size:10px;padding:6px 8px}.g425-mobile-note{display:none;font-size:10px;color:var(--s500);padding:7px 2px}.g425-sticky{position:sticky;bottom:8px;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--s900);color:#fff;padding:10px 12px;border-radius:11px;margin-top:10px;box-shadow:0 8px 25px #0F172A22}.g425-sticky>div:first-child{display:flex;flex-direction:column;gap:2px}.g425-sticky small{color:#CBD5E1;font-size:10px}.g425-chip{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;background:#EEF2FF;color:#4338CA}.g425-chip.green{background:var(--gbg);color:var(--g)}.g425-chip.amber{background:var(--abg);color:var(--a)}.g425-chip.rose{background:var(--rbg);color:var(--r)}.g425-review-head,.g425-cardhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.g425-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:10px 0}.g425-summary>div{background:#fff;border:1px solid var(--s200);border-radius:11px;padding:12px}.g425-summary span{display:block;color:var(--s500);font-size:10px;font-weight:700}.g425-summary b{display:block;font-size:22px;margin-top:3px}.g425-reviewgrid{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}.g425-card{background:#fff;border:1px solid var(--s200);border-radius:13px;padding:13px;margin-bottom:10px}.g425-alert{display:flex;justify-content:space-between;gap:10px;padding:9px;border-radius:8px;margin-top:7px;font-size:11px}.g425-alert span{color:inherit;opacity:.85}.g425-alert.rose{background:var(--rbg);color:var(--r)}.g425-alert.amber{background:var(--abg);color:var(--a)}.g425-alert.green{background:var(--gbg);color:var(--g)}.g425-detail,.g425-history,.g425-resultrow,.g425-linked{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #EEF2F7;font-size:11px}.g425-detail span,.g425-history span{color:var(--s500)}.g425-flow{display:flex;align-items:center;gap:7px;overflow:auto;padding:10px 0;white-space:nowrap}.g425-flow span{padding:7px 9px;border-radius:999px;background:#F1F5F9;color:#64748B;font-size:10px;font-weight:800}.g425-flow span.done{background:#ECFDF5;color:#047857}.g425-flow i{color:#94A3B8}.g425-reportrow{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #EEF2F7}.g425-reportrow small,.g425-resultrow small{display:block;color:var(--s500);font-size:10px;margin-top:3px}.g425-reportrow strong,.g425-resultrow strong{font-size:13px;color:var(--i)}.g425-personbar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--s200);border-radius:12px;padding:12px;margin-bottom:10px}.g425-personbar>div{display:flex;flex-direction:column;gap:3px}.g425-personbar span{font-size:11px;color:var(--s500)}.g425-personbar select{border:1px solid #CBD5E1;border-radius:8px;padding:8px;background:#fff}.g425-linked{background:#F8FAFC;border-radius:9px;padding:10px;border:0}.g425-empty{padding:40px 15px;text-align:center;background:#fff;border:1px solid var(--s200);border-radius:12px;color:var(--s500)}.g425-modal{position:fixed;inset:0;background:#0F172A66;z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px}.g425-modalbox{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:15px;box-shadow:0 24px 60px #0F172A33}.g425-modalhead{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border-bottom:1px solid var(--s200)}.g425-modalhead small{display:block;color:var(--s500);font-size:10px;margin-top:2px}.g425-close{width:32px;height:32px;border:0;border-radius:8px;background:#F1F5F9;font-size:18px;cursor:pointer}.g425-modalbody{padding:14px}.g425-modalgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}.g425-modalbody label{display:block;font-size:11px;font-weight:800;margin-bottom:5px}.g425-modalbody input,.g425-modalbody textarea{width:100%;box-sizing:border-box;border:1px solid #CBD5E1;border-radius:8px;padding:9px}.g425-modalactions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.g425-source-note{margin-top:12px;background:#EEF2FF;color:#3730A3;border:1px solid #C7D2FE;border-radius:9px;padding:10px;font-size:11px;line-height:1.5}
@media(max-width:950px){.g425-context-grid{grid-template-columns:repeat(3,1fr)}.g425-selectbar{grid-template-columns:1fr}.g425-reviewgrid{grid-template-columns:1fr}.g425-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.g425 h1{font-size:20px}.g425-context-title{flex-direction:column}.g425-context-title .g425-btn{width:100%}.g425-context-grid{grid-template-columns:1fr 1fr}.g425-toolbar{align-items:stretch;flex-direction:column}.g425-toolbar .g425-actions{display:grid;grid-template-columns:1fr 1fr}.g425-toolbar .g425-actions .primary{grid-column:1/-1}.g425-mobile-note{display:block}.g425-sticky{align-items:stretch;flex-direction:column}.g425-sticky .g425-actions{display:grid;grid-template-columns:1fr 1fr}.g425-summary{grid-template-columns:1fr 1fr}.g425-alert{flex-direction:column}.g425-personbar{align-items:stretch;flex-direction:column}.g425-personbar select{width:100%}.g425-modal{padding:8px}.g425-modalbox{max-height:96vh}.g425-modalgrid{grid-template-columns:1fr}.g425-flow{padding-bottom:15px}}
@media(max-width:420px){.g425-context-grid,.g425-summary{grid-template-columns:1fr}.g425-sticky .g425-actions{grid-template-columns:1fr}.g425-toolbar .g425-actions{grid-template-columns:1fr}.g425-toolbar .g425-actions .primary{grid-column:auto}}

/* V4.2.6 â€” Multi-assessment Grading UX */
.g426{--i:#4F46E5;--i2:#4338CA;--s50:#F8FAFC;--s100:#F1F5F9;--s200:#E2E8F0;--s500:#64748B;--s700:#334155;--s900:#0F172A;--g:#047857;--gbg:#ECFDF5;--a:#B45309;--abg:#FFFBEB;--r:#BE123C;--rbg:#FFF1F2;color:var(--s900)}.g426 *{box-sizing:border-box}.g426-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:12px}.g426-eyebrow{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--s500)}.g426 h1{font-size:24px;margin:3px 0}.g426 h2{font-size:17px;margin:0}.g426 h3{font-size:14px;margin:0 0 8px}.g426 p{font-size:11px;color:var(--s500);line-height:1.45;margin:5px 0}.g426-tabs{display:flex;gap:4px;border-bottom:1px solid var(--s200);overflow:auto;margin-bottom:12px}.g426-tab{border:0;background:transparent;padding:10px 14px;color:var(--s500);font-weight:800;white-space:nowrap;border-bottom:2px solid transparent}.g426-tab.active{color:var(--i);background:#EEF2FF;border-bottom-color:var(--i)}.g426-picker{background:#fff;border:1px solid var(--s200);border-radius:14px;padding:13px;margin-bottom:10px}.g426-picker-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.g426-picker-title span:first-child{font-size:9px;color:#4338CA;font-weight:900;letter-spacing:.07em}.g426-picker-title h2{margin-top:3px}.g426-source{background:#ECFDF5;color:#047857;border:1px solid #A7F3D0;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;white-space:nowrap}.g426-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.g426-filters label,.g426-resultfilters label{font-size:9px;font-weight:900;color:var(--s700)}.g426-filters select,.g426-resultfilters select,.g426-person select{display:block;width:100%;margin-top:4px;border:1px solid #CBD5E1;border-radius:8px;background:#fff;padding:9px}.g426-assessment-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.g426-assessment{border:1px solid var(--s200);background:#fff;border-radius:10px;padding:10px;text-align:left;display:flex;flex-direction:column;gap:3px}.g426-assessment:hover{border-color:#A5B4FC;background:#F8FAFF}.g426-assessment.selected{border:2px solid var(--i);background:#EEF2FF}.g426-assessment span{font-size:9px;color:#4338CA;font-weight:900}.g426-assessment b{font-size:12px}.g426-assessment small{color:var(--s500);font-size:9px}.g426-context{background:#F8FAFF;border:1px solid #C7D2FE;border-radius:13px;padding:12px;margin-bottom:10px;display:flex;justify-content:space-between;gap:14px}.g426-context>div:first-child span{font-size:9px;color:#4338CA;font-weight:900}.g426-context h2{margin-top:4px}.g426-context-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.g426-context-meta>*{background:#fff;border:1px solid #E0E7FF;border-radius:8px;padding:7px;font-size:10px}.g426-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--s200);border-radius:11px;padding:10px;margin-bottom:9px}.g426-toolbar>div:first-child{display:flex;flex-direction:column;gap:2px}.g426-toolbar span{font-size:10px;color:var(--s500)}.g426-actions{display:flex;gap:6px;flex-wrap:wrap}.g426-btn,.g426-link{border:1px solid #CBD5E1;background:#fff;color:var(--s900);border-radius:8px;padding:8px 10px;font-size:10px;font-weight:800}.g426-btn.primary{background:var(--i);border-color:var(--i);color:#fff}.g426-btn:disabled{opacity:.45}.g426-tablewrap{overflow:auto;border:1px solid var(--s200);border-radius:11px;background:#fff}.g426-table{width:100%;min-width:900px;border-collapse:collapse}.g426-table th{position:sticky;top:0;background:#F8FAFC;text-align:left;padding:8px;font-size:9px;color:#475569;border-bottom:1px solid var(--s200);z-index:2}.g426-table th small{display:block;color:#94A3B8}.g426-table td{padding:8px;border-bottom:1px solid #EEF2F7;font-size:11px}.g426-table input,.g426-table select{width:100%;min-width:68px;border:1px solid #CBD5E1;border-radius:7px;padding:7px;background:#fff}.g426-table input:disabled{background:#F8FAFC;color:#94A3B8}.g426-link{padding:5px 7px;font-size:9px}.g426-mobilehint{display:none;color:var(--s500);font-size:9px;padding:7px}.g426-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:9px}.g426-summary>div,.g426-card{background:#fff;border:1px solid var(--s200);border-radius:12px;padding:12px}.g426-summary span{display:block;color:var(--s500);font-size:9px}.g426-summary b{display:block;font-size:20px;margin-top:3px}.g426-two{display:grid;grid-template-columns:1.2fr .8fr;gap:9px;margin-bottom:9px}.g426-alert{padding:8px;border-radius:8px;margin-top:6px;display:flex;justify-content:space-between;gap:8px;font-size:10px}.g426-alert.amber{background:var(--abg);color:var(--a)}.g426-alert.rose{background:var(--rbg);color:var(--r)}.g426-alert.green{background:var(--gbg);color:var(--g)}.g426-flow{display:flex;align-items:center;gap:7px;overflow:auto;white-space:nowrap;padding:8px 0}.g426-flow span{background:#F1F5F9;color:#64748B;border-radius:999px;padding:7px 9px;font-size:9px;font-weight:800}.g426-flow span.done{background:#ECFDF5;color:#047857}.g426-flow i{color:#94A3B8}.g426-actions.end{justify-content:flex-end}.g426-person{background:#fff;border:1px solid var(--s200);border-radius:11px;padding:10px;display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.g426-person select{width:260px}.g426-cardhead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.g426-resultfilters{display:grid;grid-template-columns:220px 220px;gap:8px;margin:10px 0}.g426-results{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.g426-result{border:1px solid var(--s200);border-radius:10px;padding:11px;display:flex;justify-content:space-between;gap:10px}.g426-result span{font-size:9px;color:#4338CA;font-weight:900}.g426-result h3{margin:3px 0;font-size:13px}.g426-result small{display:block;color:var(--s500);font-size:9px}.g426-result strong{font-size:14px;color:var(--i);white-space:nowrap}.g426-result strong small{text-align:right}.g426-empty{padding:25px;text-align:center;color:var(--s500);border:1px dashed var(--s200);border-radius:9px;grid-column:1/-1}
@media(max-width:900px){.g426-assessment-list{grid-template-columns:repeat(2,1fr)}.g426-two{grid-template-columns:1fr}.g426-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.g426 h1{font-size:20px}.g426-picker-title,.g426-context,.g426-toolbar,.g426-person{flex-direction:column;align-items:stretch}.g426-source{align-self:flex-start}.g426-filters{grid-template-columns:1fr}.g426-assessment-list,.g426-results{grid-template-columns:1fr}.g426-context-meta{justify-content:flex-start}.g426-toolbar .g426-actions{display:grid;grid-template-columns:1fr 1fr}.g426-toolbar .g426-actions .primary{grid-column:1/-1}.g426-mobilehint{display:block}.g426-summary{grid-template-columns:1fr 1fr}.g426-resultfilters{grid-template-columns:1fr}.g426-person select{width:100%}.g426-alert{flex-direction:column}.g426-actions.end{justify-content:stretch}.g426-actions.end .g426-btn{flex:1}}
@media(max-width:420px){.g426-summary{grid-template-columns:1fr}.g426-toolbar .g426-actions{grid-template-columns:1fr}.g426-toolbar .g426-actions .primary{grid-column:auto}.g426-context-meta{display:grid;grid-template-columns:1fr 1fr}.g426-context-meta>*:last-child{grid-column:1/-1}}
.a427{--i:#4F46E5;--s50:#F8FAFC;--s200:#E2E8F0;--s500:#64748B;--s900:#0F172A;color:var(--s900)}.a427 *{box-sizing:border-box}.a427title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.a427title h1{margin:3px 0;font-size:24px}.a427title small{font-weight:900;color:var(--s500);font-size:9px}.a427title p{color:var(--s500);font-size:10px}.a427tabs{display:flex;gap:3px;border-bottom:1px solid var(--s200);overflow:auto;margin-bottom:12px}.a427tab{border:0;background:transparent;padding:10px 14px;white-space:nowrap;color:var(--s500);font-weight:800;border-bottom:2px solid transparent}.a427tab.on{color:var(--i);background:#EEF2FF;border-color:var(--i)}.a427btn,.a427link{border:1px solid #CBD5E1;background:#fff;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:800;cursor:pointer}.a427btn.primary{background:var(--i);color:#fff;border-color:var(--i)}.a427filters{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;background:#fff;border:1px solid var(--s200);border-radius:12px;padding:11px;margin-bottom:10px}.a427filters label,.a427form label{font-size:10px;font-weight:800}.a427filters select,.a427reviewtop select{display:block;width:100%;margin-top:4px;padding:8px;border:1px solid #CBD5E1;border-radius:8px;background:#fff}.a427stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.a427stats b{background:#fff;border:1px solid var(--s200);border-radius:11px;padding:11px;font-size:20px}.a427stats small{display:block;font-size:9px;color:var(--s500);font-weight:500}.a427table{overflow:auto;background:#fff;border:1px solid var(--s200);border-radius:12px}.a427table table{width:100%;min-width:850px;border-collapse:collapse}.a427table th,.a427table td{padding:9px;text-align:left;border-bottom:1px solid #EEF2F7;font-size:10px}.a427table th{background:var(--s50);font-size:9px}.a427table small{display:block;color:var(--s500);margin-top:2px}.a427mobile{display:none}.a427badge{display:inline-block;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900}.a427badge.ok{background:#ECFDF5;color:#047857}.a427badge.late{background:#FFFBEB;color:#B45309}.a427badge.bad{background:#FFF1F2;color:#BE123C}.a427reviewtop{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#fff;border:1px solid var(--s200);border-radius:12px;padding:11px;margin-bottom:10px}.a427reviewtop small{display:block;color:var(--s500);margin-top:3px}.a427reviewtop select{width:300px}.a427card{background:#fff;border:1px solid var(--s200);border-radius:12px;padding:14px}.a427self{display:grid;gap:9px}.a427self article{background:#fff;border:1px solid var(--s200);border-radius:12px;padding:13px}.a427self article small{color:#4338CA;font-weight:900}.a427self article h2{font-size:15px;margin:5px 0}.a427self article p{font-size:10px;color:var(--s500)}.a427self .a427btn{margin-top:9px}.a427modal{position:fixed;inset:0;background:#0F172A66;z-index:10000;display:flex;align-items:center;justify-content:center;padding:12px}.a427box{background:#fff;width:min(700px,100%);max-height:94vh;overflow:auto;border-radius:14px}.a427head{display:flex;justify-content:space-between;gap:10px;padding:14px;border-bottom:1px solid var(--s200)}.a427close{border:0;background:#F1F5F9;width:32px;height:32px;border-radius:8px;font-size:18px}.a427form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}.a427form input,.a427form select,.a427form textarea{display:block;width:100%;margin-top:5px;border:1px solid #CBD5E1;border-radius:8px;padding:9px;font-size:11px}.a427form .full{grid-column:1/-1}.a427note,.a427preview{margin:0 14px 10px;background:#EEF2FF;color:#3730A3;border:1px solid #C7D2FE;border-radius:9px;padding:9px;font-size:10px}.a427preview{background:#F8FAFC;color:var(--s900);border-color:var(--s200);margin-top:14px}.a427actions{display:flex;justify-content:flex-end;gap:7px;padding:0 14px 14px}.a427body{padding:14px}@media(max-width:700px){.a427title{flex-direction:column}.a427title>.a427btn{width:100%}.a427filters{grid-template-columns:1fr}.a427stats{grid-template-columns:1fr 1fr}.a427table{display:none}.a427mobile{display:grid;gap:8px}.a427mobile article{background:#fff;border:1px solid var(--s200);border-radius:12px;padding:12px}.a427mobile h3{margin:4px 0}.a427reviewtop{flex-direction:column;align-items:stretch}.a427reviewtop select{width:100%}.a427form{grid-template-columns:1fr}.a427form .full{grid-column:auto}.a427actions{display:grid;grid-template-columns:1fr 1fr}.a427self article .a427btn{width:100%}}@media(max-width:420px){.a427stats{grid-template-columns:1fr}.a427actions{grid-template-columns:1fr}}

/* V4.2.8 â€” Assignments form consistency, visible filter actions, restrained typography */
.a427filters{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end}
.a427filter-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end}
.a427filters label,.a427form label{font-weight:500}
.a427filters label,.a427-field label{font-size:10px;color:#344054}
.a427-field label span{color:#b42318;font-weight:700}
.a427-record-title{font-weight:600}
.a427table td strong,.a427table td b,.a427mobile h3{font-weight:600}
.a427btn,.a427link{font-weight:500}
.a427btn.primary{font-weight:600}
.a427head{align-items:flex-start}
.a427head>div{display:flex;flex-direction:column;gap:3px}
.a427head b{font-size:15px;font-weight:600}
.a427-eyebrow{font-size:9px;color:#667085;letter-spacing:.08em;font-weight:600}
.a427-subtitle{font-size:10px;color:#667085;font-weight:400}
.a427-form-body{padding:14px}
.a427-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.a427-form-grid .full{grid-column:1/-1}
.a427-field{min-width:0}
.a427-field input,.a427-field select,.a427-field textarea{display:block;width:100%;margin-top:5px;border:1px solid #d0d5dd;border-radius:8px;padding:10px;background:#fff;outline:none;font-size:11px;font-weight:400}
.a427-field input:focus,.a427-field select:focus,.a427-field textarea:focus{border-color:#84adff;box-shadow:0 0 0 3px #eff6ff}
.a427-note{margin-top:12px;background:#f8fafc;color:#667085;border:1px solid #e4e7ec;border-radius:9px;padding:9px;font-size:10px;font-weight:400}
.a427-form-footer{display:flex;justify-content:flex-end;gap:7px;padding:11px 14px;border-top:1px solid #e4e7ec;background:#fff;position:sticky;bottom:0;z-index:2}
.a427-preview{margin:0 0 12px;background:#f8fafc;color:#101828;border:1px solid #e4e7ec;border-radius:9px;padding:11px;font-size:10px}
.a427-preview>span:first-child{display:block;font-size:9px;color:#667085;font-weight:500}
.a427-preview p{margin:5px 0 8px;font-weight:400}
@media(max-width:760px){
 .a427filters{grid-template-columns:1fr}
 .a427filter-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
 .a427filter-actions .a427btn{width:100%}
 .a427-form-grid{grid-template-columns:1fr}
 .a427-form-grid .full{grid-column:auto}
 .a427-form-footer{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .a427-form-footer .primary{grid-column:1/-1}
 .a427-form-footer .a427btn{width:100%;min-height:40px}
}
@media(max-width:420px){
 .a427-form-footer{grid-template-columns:1fr}
 .a427-form-footer .primary{grid-column:auto}
}
/* V4.2.9 Assignments submission/review publication patch */
.a429{max-width:1400px;margin:0 auto;padding:4px 2px 32px;color:#0f172a}.a429-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}.a429-head h1{font-size:25px;margin:3px 0 5px;font-weight:650}.a429-head p{margin:0;color:#64748b}.a429-head small{font-size:11px;letter-spacing:.08em;color:#4f46e5}.a429-tabs{display:flex;gap:4px;border-bottom:1px solid #e2e8f0;margin-bottom:12px;overflow:auto}.a429-tab{border:0;background:transparent;padding:11px 15px;color:#64748b;white-space:nowrap;cursor:pointer;font-weight:500}.a429-tab.on{color:#4f46e5;border-bottom:3px solid #4f46e5}.a429-filter{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px;margin-bottom:12px}.a429-filter label,.a429-formgrid label{display:block;font-size:12px;color:#334155;font-weight:600}.a429-filter select,.a429-formgrid input,.a429-formgrid select,.a429-formgrid textarea,.a429-selfbar select{display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:9px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font:inherit}.a429-filter-actions{display:flex;align-items:end;gap:8px}.a429-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:8px;padding:9px 13px;cursor:pointer;font:inherit}.a429-btn.primary{background:#4f46e5;color:#fff;border-color:#4f46e5}.a429-btn:disabled{opacity:.5;cursor:not-allowed}.a429-link{border:0;background:transparent;color:#4f46e5;cursor:pointer;font:inherit;padding:5px}.a429-kpis,.a429-review-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.a429-kpis>div,.a429-review-summary>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.a429-kpis span,.a429-review-summary span{display:block;color:#64748b;font-size:12px}.a429-kpis b,.a429-review-summary b{display:block;font-size:24px;font-weight:650;margin-top:4px}.a429-kpis small{display:block;color:#64748b;margin-top:4px;font-size:11px}.a429-kpis .attention{border-color:#fde68a;background:#fffbeb}.a429-tablewrap{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:auto}.a429-table{width:100%;border-collapse:collapse;min-width:930px}.a429-table th{background:#f8fafc;color:#64748b;font-size:11px;text-align:left;text-transform:uppercase;padding:11px 12px;border-bottom:1px solid #e2e8f0;white-space:nowrap;font-weight:600}.a429-table td{padding:12px;border-bottom:1px solid #f1f5f9;font-size:13px;vertical-align:middle}.a429-table td strong{font-weight:550}.a429-table td small{display:block;color:#64748b;font-size:11px;margin-top:3px}.a429-chip{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:600;margin-right:4px}.a429-chip.green{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.a429-chip.amber{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.a429-chip.blue{background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe}.a429-chip.rose{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}.a429-chip.slate{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.a429-mobilelist,.a429-selflist{display:none}.a429-context{display:flex;justify-content:space-between;gap:15px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px;margin-bottom:12px}.a429-context span{font-size:11px;text-transform:uppercase;color:#64748b}.a429-context h2{margin:4px 0;font-size:18px;font-weight:600}.a429-context p{margin:0;color:#64748b;font-size:12px}.a429-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.a429-card h2,.a429-card h3{font-weight:600}.a429-cardmeta{display:flex;gap:5px;align-items:center;margin:10px 0}.a429-progress{display:grid;grid-template-columns:90px 1fr 45px;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #f1f5f9}.a429-progress div{height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden}.a429-progress i{display:block;height:100%;background:#4f46e5}.a429-selfbar{display:flex;justify-content:space-between;align-items:end;gap:15px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px;margin-bottom:12px;color:#64748b;font-size:12px}.a429-selflist{grid-template-columns:repeat(2,1fr);gap:12px}.a429-file{display:flex;justify-content:space-between;align-items:center;padding:9px;background:#f8fafc;border-radius:8px;margin:9px 0;font-size:12px}.a429-feedback{border-left:3px solid #4f46e5;background:#eef2ff;padding:10px;margin-top:10px}.a429-feedback strong{font-size:18px}.a429-feedback p{margin:4px 0;color:#334155;font-size:12px}.a429-muted{color:#64748b;font-size:12px}.a429-modal{position:fixed;inset:0;background:rgba(15,23,42,.42);display:flex;align-items:center;justify-content:center;padding:20px;z-index:9999}.a429-box{width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(15,23,42,.2)}.a429-modalhead{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px;border-bottom:1px solid #e2e8f0}.a429-modalhead small{color:#4f46e5;font-size:10px}.a429-modalhead h2{margin:3px 0;font-size:19px;font-weight:600}.a429-close{border:0;background:transparent;font-size:24px;color:#64748b;cursor:pointer}.a429-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:20px}.a429-formgrid .full{grid-column:1/-1}.a429-formgrid textarea{min-height:110px;resize:vertical}.a429-formfooter{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid #e2e8f0;background:#f8fafc}.a429-submission{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:20px}.a429-submission>div{background:#f8fafc;border-radius:8px;padding:10px}.a429-submission span{display:block;color:#64748b;font-size:11px;margin-bottom:4px}.a429-submission strong{font-size:12px;font-weight:550}.a429-fileviewer{padding:20px}.a429-fileicon{width:54px;height:54px;display:grid;place-items:center;background:#eef2ff;color:#4338ca;border-radius:10px;font-weight:700}.a429-previewbox{height:260px;border:1px dashed #cbd5e1;border-radius:10px;display:grid;place-items:center;text-align:center;color:#64748b;margin:14px 0;background:#f8fafc}.a429-empty{text-align:center;padding:40px;color:#64748b}
@media(max-width:900px){.a429-filter{grid-template-columns:1fr 1fr}.a429-filter-actions{grid-column:1/-1}.a429-kpis,.a429-review-summary{grid-template-columns:1fr 1fr}.a429-mobilelist,.a429-selflist{display:grid}.a429-tablewrap{display:none}.a429-selflist{grid-template-columns:1fr}.a429-selfbar{align-items:flex-start;flex-direction:column}.a429-selfbar label{width:100%}}
@media(max-width:600px){.a429{padding-bottom:24px}.a429-head{flex-direction:column}.a429-head h1{font-size:22px}.a429-head .a429-btn{width:100%}.a429-filter{grid-template-columns:1fr}.a429-filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.a429-kpis,.a429-review-summary{grid-template-columns:1fr 1fr}.a429-context{flex-direction:column}.a429-formgrid{grid-template-columns:1fr;padding:16px}.a429-formgrid .full{grid-column:auto}.a429-submission{grid-template-columns:1fr;padding:16px}.a429-formfooter{position:sticky;bottom:0;flex-wrap:wrap}.a429-formfooter .a429-btn{flex:1;min-width:120px}.a429-box{max-height:96vh}.a429-tabs{margin-left:-2px;margin-right:-2px}.a429-selfbar{font-size:11px}}

.a429-selfkpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.a429-selfkpis>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.a429-selfkpis span,.a429-detailgrid span,.a429-detailblock>span,.a429-result>span{display:block;color:#64748b;font-size:12px;font-weight:500;margin-bottom:5px}.a429-selfkpis b{font-size:22px;font-weight:600;color:#0f172a}.a429-detail{padding:0}.a429-detailgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:20px}.a429-detailgrid>div,.a429-detailblock{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px}.a429-detailgrid strong{font-size:14px;font-weight:500;color:#0f172a}.a429-detailblock{margin:0 20px 12px}.a429-detailblock p{margin:4px 0;color:#334155;line-height:1.5}.a429-result{margin:12px 20px;padding:16px;border:1px solid #a7f3d0;background:#ecfdf5;border-radius:10px}.a429-result strong{font-size:22px;font-weight:600;color:#047857}.a429-result p{margin:6px 0;color:#334155}.a429-result small{color:#64748b}.a429-cardactions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
@media(max-width:700px){.a429-selfkpis{grid-template-columns:1fr 1fr}.a429-detailgrid{grid-template-columns:1fr;padding:16px}.a429-detailblock,.a429-result{margin-left:16px;margin-right:16px}}
/* V4.2.11 Assignments - Student & Parent visibility/review workspace */
.a429-detailhero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.a429-detailhero span{display:block;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.a429-detailhero h3{margin:4px 0 3px;font-size:19px;font-weight:600;color:#0f172a}.a429-detailhero p{margin:0;color:#64748b;font-size:12px}.a429-detailgrid-small{padding-top:0}.a429-pending-result,.a429-info-result{margin:12px 20px;padding:14px;border-radius:10px;border:1px solid #cbd5e1;background:#f8fafc}.a429-pending-result span,.a429-info-result span{display:block;color:#64748b;font-size:11px;margin-bottom:4px}.a429-pending-result strong,.a429-info-result strong{display:block;color:#334155;font-size:14px;font-weight:600}.a429-pending-result p,.a429-info-result p{margin:5px 0 0;color:#64748b;font-size:12px}.a429-selfcard{display:flex;flex-direction:column;gap:10px}.a429-assignmenttitle{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.a429-assignmenttitle h3{margin:4px 0 0;font-size:16px;font-weight:600}.a429-assignmentfacts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.a429-assignmentfacts span{display:flex;flex-direction:column;gap:3px;padding:9px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#334155;font-size:12px}.a429-assignmentfacts b{color:#64748b;font-size:10px;font-weight:500;text-transform:uppercase}.a429-submittedmeta{font-size:12px;color:#475569}.a429-submittedmeta b{font-weight:600;color:#334155}.a429-cardactions .a429-btn{min-height:38px}.a429-selflist:empty:after{content:'No assignments match this view.';display:block;grid-column:1/-1;padding:40px;text-align:center;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:12px}
@media(max-width:700px){.a429-detailhero{flex-direction:column}.a429-assignmenttitle{flex-direction:column}.a429-assignmentfacts{grid-template-columns:1fr}.a429-cardactions{display:grid;grid-template-columns:1fr}.a429-cardactions .a429-btn{width:100%}.a429-detailgrid-small{padding-top:0}.a429-pending-result,.a429-info-result{margin-left:16px;margin-right:16px}}

/* V4.2.12 â€” Student + Parent Assignments workspace */
.a412-selfbar{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px;margin-bottom:12px}.a412-selfbar label,.a412-selfbar span{display:block;color:#64748b;font-size:11px}.a412-selfbar select{min-width:280px;margin-top:5px}.a412-selfbar strong{display:block;color:#0f172a;font-size:14px;font-weight:500;margin-top:4px}.a412-rolehint{color:#64748b;font-size:12px;text-align:right}.a412-selfkpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.a412-selfkpis>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.a412-selfkpis span{display:block;color:#64748b;font-size:12px}.a412-selfkpis b{display:block;color:#0f172a;font-size:24px;font-weight:600;margin-top:4px}.a412-selfkpis small{display:block;color:#64748b;font-size:11px;margin-top:3px}.a412-statusnote{background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;border-radius:10px;padding:11px 13px;font-size:12px;margin-bottom:12px}.a412-assignmentcard{min-width:0}.a412-cardstatus{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.a412-cardstatus>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:9px}.a412-cardstatus span{display:block;color:#64748b;font-size:10px;text-transform:uppercase;margin-bottom:3px}.a412-cardstatus strong{display:block;color:#334155;font-size:12px;font-weight:500}.a412-cardgrade{background:#ecfdf5!important;border-color:#a7f3d0!important}.a412-cardgrade strong{color:#047857!important;font-size:16px!important}.a412-detailhero{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 20px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.a412-detailhero span,.a412-gradehero span,.a412-section h4+span{color:#64748b;font-size:11px;text-transform:uppercase}.a412-detailhero h3,.a412-gradehero h3{margin:4px 0;font-size:19px;font-weight:600;color:#0f172a}.a412-detailhero p,.a412-gradehero p{margin:0;color:#64748b;font-size:12px}.a412-section{padding:16px 20px;border-bottom:1px solid #e2e8f0}.a412-section h4{margin:0 0 10px;color:#0f172a;font-size:14px;font-weight:600}.a412-grid,.a412-gradegrid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.a412-grid>div,.a412-gradegrid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px}.a412-grid span,.a412-gradegrid span,.a412-feedback span{display:block;color:#64748b;font-size:10px;text-transform:uppercase;margin-bottom:4px}.a412-grid strong,.a412-gradegrid strong{font-size:12px;color:#0f172a;font-weight:500}.a412-copy{margin:0;color:#334155;line-height:1.55;font-size:13px}.a412-note{margin:10px 0 0;color:#475569;font-size:12px}.a412-inlineaction{margin-top:10px}.a412-released{background:#f0fdf4}.a412-releasehead{display:flex;justify-content:space-between;align-items:center;gap:12px}.a412-releasehead strong{font-size:26px;color:#047857;font-weight:600}.a412-releasehead small{color:#64748b}.a412-await{background:#f8fafc}.a412-await p{margin:0;color:#64748b;font-size:12px}.a412-gradeview{padding:0}.a412-gradehero{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.a412-gradepill{font-size:28px;font-weight:600;color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;padding:10px 14px;border-radius:10px;white-space:nowrap}.a412-gradegrid{padding:16px 20px}.a412-feedback{margin-top:10px;padding:13px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:9px}.a412-feedback p{margin:4px 0 0;color:#334155;font-size:13px;line-height:1.5}.a412-gradeview .a429-formfooter{margin-top:0}
@media(max-width:800px){.a412-selfbar{align-items:flex-start;flex-direction:column}.a412-rolehint{text-align:left}.a412-selfkpis{grid-template-columns:1fr 1fr}.a412-cardstatus{grid-template-columns:1fr 1fr}.a412-detailhero,.a412-gradehero{flex-direction:column;align-items:flex-start}.a412-gradepill{font-size:24px}.a412-grid,.a412-gradegrid{grid-template-columns:1fr}}
@media(max-width:600px){.a412-selfbar select{min-width:0;width:100%}.a412-selfkpis{grid-template-columns:1fr 1fr}.a412-cardstatus{grid-template-columns:1fr}.a412-section{padding:14px 16px}.a412-detailhero,.a412-gradehero{padding:16px}.a412-gradepill{width:100%;box-sizing:border-box;text-align:center}.a412-gradeview .a429-formfooter{position:sticky;bottom:0}.a412-gradeview .a429-formfooter .a429-btn{flex:1;min-width:120px}}

/* V4.3.0 â€” Fees role-first workspace */
.f430{max-width:1500px;margin:0 auto}.f430-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}.f430-head small{color:#6366f1;font-size:10px;letter-spacing:.08em}.f430-head h1{margin:4px 0;font-size:25px;font-weight:600;color:#0f172a}.f430-head p{margin:0;color:#64748b;font-size:13px}.f430-tabs{display:flex;gap:4px;border-bottom:1px solid #e2e8f0;margin-bottom:14px;overflow-x:auto}.f430-tab{border:0;background:transparent;padding:11px 14px;color:#64748b;white-space:nowrap;cursor:pointer;font-size:12px}.f430-tab.on{color:#4f46e5;border-bottom:2px solid #4f46e5}.f430-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.f430-kpis>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.f430-kpis span,.f430-kpis small{display:block;color:#64748b;font-size:11px}.f430-kpis b{display:block;font-size:23px;font-weight:600;color:#0f172a;margin:5px 0}.f430-grid2{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-bottom:14px}.f430-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;margin-bottom:14px}.f430-sectionhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.f430-sectionhead h2{font-size:15px;font-weight:600;color:#0f172a;margin:0}.f430-sectionhead p{font-size:11px;color:#64748b;margin:4px 0 0}.f430-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:7px;padding:8px 11px;font-size:12px;cursor:pointer}.f430-btn:hover{border-color:#818cf8}.f430-btn.primary{background:#4f46e5;border-color:#4f46e5;color:#fff}.f430-btn.danger{color:#be123c;border-color:#fecdd3;background:#fff1f2}.f430-btn.small{padding:5px 8px;font-size:11px}.f430-link{border:0;background:transparent;color:#4f46e5;cursor:pointer;font-size:11px}.f430-health{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.f430-health div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:11px}.f430-health span,.f430-row small{display:block;color:#64748b;font-size:10px}.f430-health strong{display:block;font-size:17px;color:#0f172a;margin-top:4px;font-weight:600}.f430-progress{height:8px;background:#e2e8f0;border-radius:99px;margin:14px 0;overflow:hidden}.f430-progress span{display:block;height:100%;background:#4f46e5;border-radius:99px}.f430-list,.f430-row{display:flex;flex-direction:column;gap:8px}.f430-list>div,.f430-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f1f5f9}.f430-row span{display:block}.f430-row b{font-size:12px;font-weight:500;color:#334155}.f430-row strong{font-size:13px;color:#0f172a}.f430-tablewrap{overflow:auto;border:1px solid #e2e8f0;border-radius:9px}.f430-tablewrap table{width:100%;border-collapse:collapse;min-width:760px}.f430-tablewrap th,.f430-tablewrap td{padding:10px 11px;border-bottom:1px solid #f1f5f9;text-align:left;font-size:11px;color:#334155;white-space:nowrap}.f430-tablewrap th{background:#f8fafc;color:#64748b;font-weight:500}.f430-tablewrap td b{font-weight:500}.f430-tablewrap td small{display:block;color:#94a3b8;font-size:9px;margin-top:2px}.f430-chip{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;border:1px solid}.f430-chip.green{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.f430-chip.amber{background:#fffbeb;color:#b45309;border-color:#fde68a}.f430-chip.rose{background:#fff1f2;color:#be123c;border-color:#fecdd3}.f430-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.f430-filters input,.f430-filters select,.f430-formgrid input,.f430-formgrid select,.f430-formgrid textarea,.f430-childswitch select{border:1px solid #cbd5e1;border-radius:7px;padding:8px 9px;font:inherit;font-size:12px;color:#334155;background:#fff;outline:0}.f430-filters input:focus,.f430-filters select:focus,.f430-formgrid input:focus,.f430-formgrid select:focus,.f430-formgrid textarea:focus{border-color:#6366f1;box-shadow:0 0 0 2px #e0e7ff}.f430-note{padding:10px 12px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;color:#3730a3;font-size:11px;margin-bottom:12px}.f430-recon{padding:18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px}.f430-recon b{display:block;font-size:26px;color:#0f172a;font-weight:600}.f430-recon span,.f430-recon small{display:block;color:#64748b;font-size:11px;margin-top:3px}.f430-parenthero{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:18px;margin-bottom:12px}.f430-parenthero span,.f430-parenthero small{display:block;color:#64748b;font-size:11px}.f430-parenthero strong{display:block;font-size:28px;color:#0f172a;font-weight:600;margin:3px 0}.f430-childswitch{display:flex;align-items:center;gap:9px;margin-bottom:12px}.f430-childswitch label{font-size:11px;color:#64748b}.f430-bill{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #f1f5f9}.f430-bill span,.f430-bill small,.f430-billamount span{display:block;color:#64748b;font-size:10px}.f430-bill h3{font-size:13px;font-weight:500;margin:3px 0;color:#0f172a}.f430-billamount{text-align:right}.f430-billamount strong{display:block;color:#0f172a;font-size:17px;font-weight:600;margin-top:3px}.f430-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}.f430-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45)}.f430-dialog{position:relative;width:min(680px,calc(100vw - 28px));max-height:90vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 20px 50px rgba(15,23,42,.2)}.f430-modalhead{display:flex;justify-content:space-between;padding:17px 18px;border-bottom:1px solid #e2e8f0}.f430-modalhead small{color:#6366f1;font-size:9px;letter-spacing:.08em}.f430-modalhead h2{margin:3px 0 0;font-size:17px;font-weight:600;color:#0f172a}.f430-close{border:0;background:transparent;font-size:22px;color:#64748b;cursor:pointer}.f430-modalbody{padding:18px}.f430-formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.f430-formgrid label{display:flex;flex-direction:column;gap:5px;color:#475569;font-size:11px}.f430-formgrid label.full{grid-column:1/-1}.f430-formfooter{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #e2e8f0;padding-top:14px;margin-top:16px}.f430-detailgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.f430-detailgrid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px}.f430-detailgrid span{display:block;color:#64748b;font-size:9px;text-transform:uppercase}.f430-detailgrid b{display:block;color:#0f172a;font-size:12px;font-weight:500;margin-top:4px}
@media(max-width:850px){.f430-kpis{grid-template-columns:repeat(2,1fr)}.f430-grid2{grid-template-columns:1fr}.f430-bill{grid-template-columns:1fr auto}.f430-billamount{text-align:left}.f430-bill .f430-btn{width:100%}.f430-bill .f430-btn:nth-last-child(-n+2){grid-column:auto}.f430-head{flex-direction:column}.f430-head .f430-btn{width:100%}}
@media(max-width:600px){.f430-kpis{grid-template-columns:1fr 1fr}.f430-card{padding:13px}.f430-sectionhead{flex-direction:column}.f430-sectionhead>div:last-child{width:100%}.f430-sectionhead .f430-btn{width:100%;margin-top:4px}.f430-health{grid-template-columns:1fr}.f430-formgrid,.f430-detailgrid{grid-template-columns:1fr}.f430-formgrid label.full{grid-column:auto}.f430-formfooter{position:sticky;bottom:0;background:#fff}.f430-formfooter .f430-btn{flex:1}.f430-parenthero{align-items:flex-start;flex-direction:column}.f430-parenthero .f430-btn{width:100%}.f430-childswitch{align-items:flex-start;flex-direction:column}.f430-childswitch select{width:100%}.f430-bill{grid-template-columns:1fr}.f430-billamount{text-align:left}.f430-bill .f430-btn{width:100%}}

/* V4.4.0 Leave workspace */
.v44{--i:#4f46e5;--sl:#0f172a;--muted:#64748b;--line:#e2e8f0;--bg:#f8fafc;--ok:#047857;--okbg:#ecfdf5;--warn:#b45309;--warnbg:#fffbeb;--bad:#be123c;--badbg:#fff1f2;background:var(--bg);min-height:100%;padding:2px}.v44-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-bottom:16px}.v44-eyebrow{font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--i);margin-bottom:4px}.v44-head h1{margin:0;color:var(--sl);font-size:25px;letter-spacing:-.02em}.v44-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.v44-head-actions,.v44-actions{display:flex;gap:7px;flex-wrap:wrap}.v44-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:9px;padding:8px 11px;font-size:12px;cursor:pointer}.v44-btn:hover{border-color:#a5b4fc;background:#eef2ff}.v44-btn.primary{background:var(--i);border-color:var(--i);color:#fff}.v44-btn.danger{color:var(--bad);border-color:#fecdd3;background:#fff}.v44-btn.small{padding:5px 8px}.v44-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}.v44-tab{border:0;background:transparent;padding:11px 14px;color:#64748b;white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent;font-size:13px}.v44-tab.active{color:var(--i);font-weight:700;border-bottom-color:var(--i)}.v44-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.v44-kpis>div,.v44-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;box-shadow:0 1px 2px rgba(15,23,42,.03)}.v44-kpis span,.v44-kpis small{display:block;color:#64748b;font-size:11px}.v44-kpis strong{display:block;font-size:23px;color:var(--sl);margin:4px 0}.v44-filter{display:flex;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);padding:10px;border-radius:12px;margin-bottom:12px}.v44-filter select,.v44-child-select select,.v44-proxy-box select,.v44-proxy-box input,.v44-form-grid input,.v44-form-grid select,.v44-form-grid textarea,.v44-decision textarea{border:1px solid #cbd5e1;border-radius:8px;padding:9px;background:#fff;color:#0f172a;font:inherit;font-size:12px;min-width:145px}.v44-filter select:focus,.v44-form-grid input:focus,.v44-form-grid select:focus,.v44-form-grid textarea:focus,.v44-decision textarea:focus{outline:2px solid #c7d2fe;border-color:#6366f1}.v44-table-wrap{overflow:auto}.v44-table{width:100%;border-collapse:collapse;min-width:920px}.v44-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}.v44-table td{padding:11px 10px;border-bottom:1px solid #f1f5f9;color:#334155;font-size:12px;vertical-align:top}.v44-table td strong{color:#0f172a;display:block}.v44-table td small{display:block;color:#94a3b8;margin-top:3px}.v44-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:700}.v44-status.pending{background:#eef2ff;color:#4338ca}.v44-status.approved{background:var(--okbg);color:var(--ok)}.v44-status.rejected{background:var(--badbg);color:var(--bad)}.v44-status.withdrawn{background:#f1f5f9;color:#475569}.v44-impact{display:inline-block;padding:4px 6px;border-radius:6px;background:var(--warnbg);color:var(--warn);font-size:10px}.v44-id{font-family:ui-monospace,monospace;color:#4f46e5}.v44-note,.v44-student-note{margin-top:12px;padding:11px 12px;border-left:3px solid #818cf8;background:#eef2ff;color:#475569;font-size:12px;border-radius:6px}.v44-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.v44-card-head h3,.v44-card h3{margin:0;color:#0f172a;font-size:15px}.v44-card-head p{margin:3px 0 0;color:#64748b;font-size:12px}.v44-chip{background:#eef2ff;color:#4338ca;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:700}.v44-balance{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:15px}.v44-balance>div{background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:11px}.v44-balance span,.v44-balance small{display:block;color:#64748b;font-size:10px}.v44-balance strong{font-size:20px;display:block;margin:3px 0;color:#0f172a}.v44-calendar-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:12px}.v44-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));gap:6px;overflow:auto}.v44-day{min-height:150px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:8px}.v44-day>b{font-size:10px;color:#475569}.v44-event{background:#fff;border-left:3px solid #10b981;border-radius:5px;padding:7px;margin-top:7px;font-size:10px;color:#334155}.v44-event.warn{border-left-color:#f59e0b}.v44-event strong{font-weight:600}.v44-coverage>div{padding:11px 0;border-bottom:1px solid #f1f5f9}.v44-coverage b,.v44-coverage span,.v44-coverage em{display:block}.v44-coverage b{font-size:12px;color:#0f172a}.v44-coverage span{font-size:11px;color:#64748b;margin:3px 0}.v44-coverage em{font-style:normal;color:#047857;font-size:10px;margin-bottom:7px}.v44-child-select{display:flex;align-items:end;gap:15px;margin-bottom:13px;padding:10px;background:#f8fafc;border:1px solid var(--line);border-radius:9px}.v44-child-select label{display:grid;gap:4px;font-size:10px;color:#64748b}.v44-child-select span{font-size:11px;color:#64748b;padding-bottom:9px}.v44-timeline-mini{display:flex;gap:4px;flex-wrap:wrap}.v44-timeline-mini span{font-size:9px;padding:3px 5px;border-radius:5px;background:#f1f5f9;color:#94a3b8}.v44-timeline-mini span.done{background:#ecfdf5;color:#047857}.v44-timeline-mini span.current{background:#eef2ff;color:#4338ca}.v44-history-strip{display:grid;gap:8px}.v44-history-strip>div{border-left:4px solid #10b981;background:#f8fafc;border-radius:7px;padding:11px}.v44-history-strip>div:not(.approved){border-left-color:#94a3b8}.v44-history-strip b,.v44-history-strip span{display:block}.v44-history-strip b{font-size:12px}.v44-history-strip span{font-size:11px;color:#64748b;margin-top:3px}.v44-risk{text-align:center;padding:20px}.v44-risk strong{font-size:36px;color:#047857;display:block}.v44-risk span,.v44-risk small{display:block;color:#64748b}.v44-risk small{margin-top:8px}.v44-modal{background:#fff;max-width:720px;width:min(720px,calc(100vw - 24px));max-height:90vh;overflow:auto;border-radius:14px;padding:20px;box-shadow:0 20px 50px rgba(15,23,42,.25)}.v44-modal-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:15px}.v44-modal-head h2{margin:0;font-size:20px;color:#0f172a}.v44-modal-head p{margin:3px 0;color:#64748b;font-size:12px}.v44-detail-grid,.v44-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v44-detail-grid>div{padding:10px;background:#f8fafc;border:1px solid var(--line);border-radius:8px}.v44-detail-grid span{display:block;color:#64748b;font-size:10px;margin-bottom:4px}.v44-detail-grid b{font-size:12px;color:#0f172a}.v44-detail-grid .full,.v44-form-grid .full{grid-column:1/-1}.v44-impact-box{background:#fffbeb!important;border-color:#fde68a!important}.v44-proxy-box{margin-top:13px;border:1px solid #c7d2fe;background:#eef2ff;border-radius:9px;padding:12px}.v44-proxy-box h3{margin-bottom:9px}.v44-proxy-box label{display:grid;gap:4px;font-size:10px;color:#64748b;margin-top:8px}.v44-decision{margin-top:13px}.v44-decision label,.v44-form-grid label{display:grid;gap:5px;color:#475569;font-size:11px}.v44-decision textarea{width:100%;box-sizing:border-box;min-height:75px}.v44-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.v44-form-grid textarea{min-height:90px;resize:vertical}.v44-form-note{margin-top:12px;background:#f8fafc;border:1px solid var(--line);padding:10px;border-radius:8px;color:#64748b;font-size:11px}.v44-link{border:0;background:transparent;color:#4f46e5;padding:0;cursor:pointer;font-size:11px}.v44-link:hover{text-decoration:underline}
@media(max-width:900px){.v44-kpis{grid-template-columns:repeat(2,1fr)}.v44-calendar-layout{grid-template-columns:1fr}.v44-calendar-grid{grid-template-columns:repeat(4,minmax(130px,1fr))}.v44-head{align-items:flex-start;flex-direction:column}.v44-head-actions{width:100%}.v44-head-actions .v44-btn{flex:1}.v44-filter>*{flex:1;min-width:130px}.v44-filter .v44-btn{flex:0 0 auto}.v44-card{overflow:hidden}}
@media(max-width:600px){.v44{padding:0}.v44-head h1{font-size:21px}.v44-kpis{grid-template-columns:repeat(2,1fr);gap:7px}.v44-kpis>div{padding:10px}.v44-kpis strong{font-size:19px}.v44-tabs{margin-left:-2px;margin-right:-2px}.v44-tab{padding:10px 9px;font-size:11px}.v44-filter{display:grid;grid-template-columns:1fr 1fr}.v44-filter select,.v44-filter .v44-btn{min-width:0;width:100%;box-sizing:border-box}.v44-filter .v44-btn{font-size:11px}.v44-card{padding:11px;border-radius:10px}.v44-card-head{align-items:flex-start;flex-direction:column}.v44-card-head .v44-btn,.v44-card-head .v44-chip{align-self:stretch;text-align:center}.v44-balance{grid-template-columns:1fr}.v44-child-select{align-items:stretch;flex-direction:column}.v44-child-select span{padding-bottom:0}.v44-detail-grid,.v44-form-grid{grid-template-columns:1fr}.v44-detail-grid .full,.v44-form-grid .full{grid-column:auto}.v44-modal{padding:15px;border-radius:12px}.v44-modal-actions{position:sticky;bottom:-15px;background:#fff;padding:11px 0 0}.v44-modal-actions .v44-btn{flex:1}.v44-calendar-grid{grid-template-columns:repeat(2,minmax(145px,1fr))}.v44-head-actions{display:flex}.v44-head-actions .v44-btn{flex:auto}.v44-table{min-width:880px}}

/* V4.5.0 â€” Certificates role-first legal document workspace */
.c450{--ind:#4f46e5;--sl:#0f172a;--mut:#64748b;--line:#e2e8f0;--bg:#f8fafc;--ok:#047857;--okbg:#ecfdf5;--warn:#b45309;--warnbg:#fffbeb;--bad:#be123c;--badbg:#fff1f2}.c450-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:14px}.c450-eyebrow{font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--ind)}.c450-head h1{margin:3px 0;font-size:25px;font-weight:600;color:var(--sl)}.c450-head p{margin:0;color:var(--mut);font-size:13px}.c450-actions{display:flex;gap:7px;flex-wrap:wrap}.c450-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:8px;padding:8px 11px;font-size:12px;cursor:pointer}.c450-btn:hover{border-color:#818cf8;background:#eef2ff}.c450-btn.primary{background:var(--ind);border-color:var(--ind);color:#fff}.c450-btn.success{background:var(--okbg);border-color:#a7f3d0;color:var(--ok)}.c450-btn.danger{background:var(--badbg);border-color:#fecdd3;color:var(--bad)}.c450-btn.small{padding:5px 8px;font-size:11px}.c450-tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:13px}.c450-tab{border:0;background:transparent;border-bottom:2px solid transparent;color:var(--mut);padding:10px 13px;white-space:nowrap;cursor:pointer;font-size:12px}.c450-tab.active{color:var(--ind);border-bottom-color:var(--ind);font-weight:600}.c450-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:12px}.c450-kpis>div,.c450-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.c450-kpis span,.c450-kpis small{display:block;color:var(--mut);font-size:10px}.c450-kpis strong{display:block;color:var(--sl);font-size:22px;margin:4px 0;font-weight:600}.c450-filter{display:flex;gap:7px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px;margin-bottom:12px}.c450-filter select,.c450-form input,.c450-form select,.c450-form textarea,.c450-verify input{border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:var(--sl);padding:8px 9px;font:inherit;font-size:12px;min-width:145px}.c450-filter select:focus,.c450-form input:focus,.c450-form select:focus,.c450-form textarea:focus,.c450-verify input:focus{outline:2px solid #c7d2fe;border-color:#6366f1}.c450-table-wrap{overflow:auto}.c450-table{width:100%;border-collapse:collapse;min-width:900px}.c450-table th{background:#f8fafc;color:var(--mut);font-size:10px;text-transform:uppercase;text-align:left;padding:9px;border-bottom:1px solid var(--line);white-space:nowrap}.c450-table td{padding:10px 9px;border-bottom:1px solid #f1f5f9;color:#334155;font-size:12px;vertical-align:top}.c450-table td strong{display:block;color:var(--sl);font-weight:500}.c450-table td small{display:block;color:#94a3b8;margin-top:3px}.c450-id{font-family:ui-monospace,monospace;color:var(--ind);font-size:11px}.c450-badge{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:600}.c450-badge.pending{background:#eef2ff;color:#4338ca}.c450-badge.ready{background:#fffbeb;color:#92400e}.c450-badge.issued{background:var(--okbg);color:var(--ok)}.c450-badge.rejected,.c450-badge.cancelled{background:var(--badbg);color:var(--bad)}.c450-badge.draft{background:#f1f5f9;color:#475569}.c450-actions-cell{display:flex;gap:5px;flex-wrap:wrap}.c450-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.c450-cert-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.c450-cert-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.c450-cert-card h3{font-size:14px;margin:2px 0;color:var(--sl);font-weight:600}.c450-cert-card p{margin:3px 0;color:var(--mut);font-size:11px}.c450-facts{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:11px 0}.c450-facts div{background:#f8fafc;border:1px solid var(--line);border-radius:7px;padding:8px}.c450-facts span{display:block;color:var(--mut);font-size:9px;text-transform:uppercase}.c450-facts b{display:block;color:#334155;font-size:11px;margin-top:3px;font-weight:500}.c450-card-actions{display:flex;gap:6px;flex-wrap:wrap}.c450-clearance{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.c450-clearance>div{padding:10px;border:1px solid #a7f3d0;background:var(--okbg);border-radius:8px}.c450-clearance>div.warn{border-color:#fde68a;background:var(--warnbg)}.c450-clearance span{display:block;font-size:9px;color:var(--mut);text-transform:uppercase}.c450-clearance b{display:block;color:var(--ok);font-size:12px;margin-top:3px;font-weight:600}.c450-clearance .warn b{color:var(--warn)}.c450-impact{padding:10px;background:var(--warnbg);border:1px solid #fde68a;border-radius:8px;color:#92400e;font-size:11px;margin:10px 0}.c450-verify{display:flex;gap:8px;align-items:center;max-width:680px}.c450-verify input{flex:1;min-width:0}.c450-template{display:grid;grid-template-columns:1fr 1fr;gap:10px}.c450-template>div{padding:12px;background:#fff;border:1px solid var(--line);border-radius:10px}.c450-template h3{margin:0 0 5px;font-size:13px;font-weight:600}.c450-template p{margin:0 0 10px;color:var(--mut);font-size:11px}.c450-empty{padding:35px;text-align:center;color:var(--mut);background:#fff;border:1px dashed #cbd5e1;border-radius:10px}.c450-modal{background:#fff;width:min(760px,calc(100vw - 24px));max-height:90vh;overflow:auto;border-radius:14px;padding:19px;box-shadow:0 20px 55px rgba(15,23,42,.25)}.c450-modal-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:15px}.c450-modal-head h2{margin:0;color:var(--sl);font-size:19px;font-weight:600}.c450-modal-head p{margin:3px 0;color:var(--mut);font-size:11px}.c450-form{display:grid;gap:12px}.c450-stepper{display:flex;gap:5px;margin-bottom:14px;overflow:auto}.c450-step{flex:1;min-width:100px;padding:8px;border-radius:7px;background:#f1f5f9;color:#64748b;font-size:10px;text-align:center}.c450-step.on{background:#eef2ff;color:#4338ca}.c450-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.c450-form label{display:grid;gap:5px;color:#475569;font-size:11px}.c450-form label.full{grid-column:1/-1}.c450-form textarea{min-height:80px;resize:vertical}.c450-checks{display:grid;grid-template-columns:1fr 1fr;gap:7px}.c450-checks label{display:flex;align-items:center;gap:7px;background:#f8fafc;border:1px solid var(--line);padding:9px;border-radius:7px}.c450-checks input{min-width:0}.c450-form-note{padding:10px;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;border-radius:8px;font-size:11px}.c450-modal-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:15px;position:sticky;bottom:-19px;background:#fff;padding-top:10px}.c450-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.c450-detail-grid>div{background:#f8fafc;border:1px solid var(--line);padding:9px;border-radius:7px}.c450-detail-grid span{display:block;color:var(--mut);font-size:9px;text-transform:uppercase}.c450-detail-grid b{display:block;color:var(--sl);font-size:12px;font-weight:500;margin-top:3px}.c450-timeline{margin-top:13px;border-left:2px solid #c7d2fe;padding-left:14px}.c450-timeline div{margin-bottom:10px}.c450-timeline b{font-size:11px;color:var(--sl)}.c450-timeline span{display:block;font-size:10px;color:var(--mut);margin-top:2px}.c450-footer-note{font-size:10px;color:var(--mut);margin-top:10px}.c450-no-delete{color:#64748b;font-size:10px;margin-top:8px}
@media(max-width:900px){.c450-kpis{grid-template-columns:repeat(2,1fr)}.c450-card-grid{grid-template-columns:1fr 1fr}.c450-template{grid-template-columns:1fr}.c450-head{align-items:flex-start;flex-direction:column}.c450-actions{width:100%}.c450-actions .c450-btn{flex:1}.c450-clearance{grid-template-columns:1fr}.c450-filter>*{flex:1;min-width:130px}}
@media(max-width:600px){.c450-head h1{font-size:21px}.c450-kpis{gap:7px}.c450-kpis>div{padding:10px}.c450-kpis strong{font-size:18px}.c450-card-grid{grid-template-columns:1fr}.c450-filter{display:grid;grid-template-columns:1fr 1fr}.c450-filter>*{width:100%;min-width:0;box-sizing:border-box}.c450-form-grid,.c450-detail-grid,.c450-checks{grid-template-columns:1fr}.c450-form label.full{grid-column:auto}.c450-modal{padding:15px;border-radius:12px}.c450-modal-actions .c450-btn{flex:1}.c450-verify{flex-direction:column;align-items:stretch}.c450-verify .c450-btn{width:100%}.c450-table{min-width:900px}}

/* V4.6.0 Notices â€” responsive role-first workspace */
.n46{max-width:1500px;margin:0 auto;padding-bottom:90px}.n46-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.n46-eyebrow{font-size:11px;letter-spacing:.08em;color:#64748b;font-weight:700}.n46-head h1{margin:4px 0 5px;color:#0f172a;font-size:28px}.n46-head p{margin:0;color:#64748b;max-width:760px}.n46-head-actions{display:flex;gap:8px;flex-wrap:wrap}.n46-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:9px;padding:9px 13px;font-weight:600;cursor:pointer}.n46-btn:hover{background:#f8fafc}.n46-btn.primary{background:#4f46e5;border-color:#4f46e5;color:#fff}.n46-btn.primary:hover{background:#4338ca}.n46-btn.danger{background:#fff1f2;border-color:#fecdd3;color:#be123c}.n46-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.n46-kpis>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:15px}.n46-kpis span,.n46-kpis small{display:block;color:#64748b;font-size:12px}.n46-kpis b{display:block;color:#0f172a;font-size:24px;margin:4px 0}.n46-tabs{display:flex;gap:4px;border-bottom:1px solid #e2e8f0;margin-top:14px;overflow:auto}.n46-tab{border:0;background:transparent;padding:11px 14px;color:#64748b;font-weight:600;white-space:nowrap;border-bottom:2px solid transparent;cursor:pointer}.n46-tab.active{color:#4f46e5;border-bottom-color:#4f46e5}.n46-filter{display:flex;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px;margin:14px 0}.n46-filter input,.n46-filter select{min-height:40px;border:1px solid #cbd5e1;border-radius:8px;padding:0 10px;background:#fff;color:#0f172a}.n46-filter input{flex:1;min-width:240px}.n46-list{display:grid;gap:10px}.n46-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px}.n46-card-top,.n46-card-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center}.n46-id{font:600 11px ui-monospace;color:#64748b;margin-right:8px}.n46-category{font-size:11px;background:#eef2ff;color:#4338ca;border-radius:999px;padding:4px 8px}.n46-urgent{font-size:10px;background:#fff1f2;color:#be123c;border-radius:999px;padding:4px 7px;margin-left:5px;font-weight:800}.n46-card h3{margin:10px 0 6px;color:#0f172a;font-size:17px}.n46-card p{margin:0;color:#475569;line-height:1.5}.n46-meta{display:flex;gap:18px;flex-wrap:wrap;margin:13px 0;color:#64748b;font-size:12px}.n46-meta b{color:#334155}.n46-engage{font-size:12px;color:#64748b}.n46-actionbadge{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;border-radius:999px;padding:5px 8px;font-weight:700}.n46-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.n46-empty{padding:50px;text-align:center;background:#fff;border:1px dashed #cbd5e1;border-radius:12px;color:#64748b}.n46-modal{max-width:820px;background:#fff;border-radius:14px;padding:22px;max-height:90vh;overflow:auto}.n46-modal-head{display:flex;justify-content:space-between;gap:15px;margin-bottom:16px}.n46-modal-head span{font-size:11px;color:#64748b;font-weight:700;letter-spacing:.06em}.n46-modal-head h2{margin:3px 0;color:#0f172a}.n46-modal-head p{margin:0;color:#64748b}.n46-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.n46-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#334155}.n46-form-grid .full{grid-column:1/-1}.n46-form-grid input,.n46-form-grid select,.n46-form-grid textarea{font:inherit;font-weight:400;border:1px solid #cbd5e1;border-radius:8px;padding:10px;background:#fff;color:#0f172a}.n46-form-grid input:focus,.n46-form-grid select:focus,.n46-form-grid textarea:focus{outline:2px solid #c7d2fe;border-color:#4f46e5}.n46-toggle{justify-content:center}.n46-toggle input{width:auto}.n46-modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:18px}.n46-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.n46-detail-grid>div{border:1px solid #e2e8f0;background:#f8fafc;border-radius:9px;padding:12px}.n46-detail-grid span{display:block;color:#64748b;font-size:11px}.n46-detail-grid b{display:block;margin-top:3px;color:#0f172a}.n46-message{margin-top:14px;padding:15px;border:1px solid #e2e8f0;border-radius:10px;line-height:1.65;color:#334155;white-space:pre-wrap}.n46-ackbox{margin-top:14px;padding:14px;border:1px solid #c7d2fe;background:#eef2ff;border-radius:10px}.n46-ackbox span{display:block;color:#475569;font-size:12px;margin-top:4px}.n46-progress{height:7px;background:#e2e8f0;border-radius:99px;margin-top:10px;overflow:hidden}.n46-progress i{display:block;height:100%;background:#4f46e5}
@media(max-width:900px){.n46-kpis{grid-template-columns:repeat(2,1fr)}.n46-head{flex-direction:column}.n46-head-actions{width:100%}.n46-head-actions .n46-btn{flex:1}.n46-card-bottom{align-items:flex-start;flex-direction:column}.n46-actions{width:100%;justify-content:flex-start}.n46-actions .n46-btn{flex:1}.n46-form-grid{grid-template-columns:1fr}.n46-form-grid .full{grid-column:auto}}
@media(max-width:560px){.n46{padding:0 2px 90px}.n46-head h1{font-size:23px}.n46-kpis{grid-template-columns:1fr 1fr;gap:8px}.n46-kpis>div{padding:11px}.n46-kpis b{font-size:20px}.n46-filter{display:grid;grid-template-columns:1fr 1fr}.n46-filter input{grid-column:1/-1;min-width:0}.n46-filter .n46-btn{grid-column:1/-1}.n46-card{padding:13px}.n46-meta{display:grid;gap:5px}.n46-modal{padding:16px;border-radius:12px}.n46-detail-grid{grid-template-columns:1fr}.n46-modal-actions .n46-btn{flex:1}.n46-tabs{margin-right:-8px}}

/* V5.1.0 â€” Role-aware Settings workspace */
.s510{max-width:1500px;margin:0 auto;padding-bottom:70px}.s510-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}.s510-head h1{margin:3px 0 4px;color:#0f172a;font-size:27px;font-weight:600}.s510-head p{margin:0;color:#64748b;font-size:13px}.s510-eyebrow{font-size:10px;letter-spacing:.08em;color:#4f46e5;font-weight:700}.s510-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px}.s510-nav,.s510-panel,.s510-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px}.s510-nav{padding:8px;height:max-content;position:sticky;top:12px}.s510-nav button{display:flex;width:100%;align-items:center;gap:9px;border:0;background:transparent;color:#475569;text-align:left;border-radius:8px;padding:10px 11px;cursor:pointer;font-size:12px}.s510-nav button:hover{background:#f8fafc}.s510-nav button.active{background:#eef2ff;color:#4338ca;font-weight:600}.s510-nav .s510-nav-group{padding:11px 11px 5px;color:#94a3b8;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.s510-main{min-width:0}.s510-panel{padding:17px}.s510-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.s510-panel-head h2{margin:0;color:#0f172a;font-size:17px;font-weight:600}.s510-panel-head p{margin:4px 0 0;color:#64748b;font-size:11px}.s510-search{display:flex;gap:8px;margin-bottom:12px}.s510-search input{flex:1;min-width:0}.s510-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.s510-card{padding:14px}.s510-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.s510-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#eef2ff;color:#4f46e5;font-size:17px}.s510-card h3{margin:10px 0 4px;font-size:14px;color:#0f172a;font-weight:600}.s510-card p{margin:0;color:#64748b;font-size:11px;line-height:1.5;min-height:33px}.s510-scope{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f8fafc;color:#64748b;border:1px solid #e2e8f0;font-size:9px}.s510-setting-list{display:grid;gap:8px;margin-top:12px}.s510-setting{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 11px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px}.s510-setting span{display:block;color:#64748b;font-size:10px}.s510-setting b{display:block;color:#334155;font-size:12px;font-weight:500;margin-top:2px}.s510-status{font-size:9px;padding:4px 7px;border-radius:999px;white-space:nowrap}.s510-status.edit{background:#ecfdf5;color:#047857}.s510-status.view{background:#eef2ff;color:#4338ca}.s510-status.lock{background:#f8fafc;color:#64748b}.s510-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:8px;padding:8px 11px;font-size:11px;cursor:pointer}.s510-btn:hover{background:#f8fafc}.s510-btn.primary{background:#4f46e5;border-color:#4f46e5;color:#fff}.s510-btn.primary:hover{background:#4338ca}.s510-btn.danger{color:#be123c;background:#fff1f2;border-color:#fecdd3}.s510-actions{display:flex;gap:7px;flex-wrap:wrap}.s510-audit{margin-top:14px}.s510-audit-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.4fr;gap:8px;padding:10px;border-bottom:1px solid #e2e8f0;font-size:11px}.s510-audit-row:last-child{border-bottom:0}.s510-audit-row span{color:#64748b}.s510-empty{padding:35px;text-align:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:10px}.s510-modal{background:#fff;width:min(760px,calc(100vw - 24px));max-height:90vh;overflow:auto;border-radius:14px;padding:20px}.s510-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.s510-form-grid label{display:grid;gap:5px;color:#475569;font-size:11px}.s510-form-grid .full{grid-column:1/-1}.s510-form-grid input,.s510-form-grid select,.s510-form-grid textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;padding:9px;background:#fff;color:#0f172a;font:inherit}.s510-form-grid input:focus,.s510-form-grid select:focus,.s510-form-grid textarea:focus{outline:2px solid #c7d2fe;border-color:#4f46e5}.s510-form-note{padding:10px;border:1px solid #c7d2fe;background:#eef2ff;color:#3730a3;border-radius:8px;font-size:11px;line-height:1.5}.s510-modal-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.s510-modal-head h2{margin:0;color:#0f172a;font-size:18px;font-weight:600}.s510-modal-head p{margin:4px 0 0;color:#64748b;font-size:11px}.s510-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;position:sticky;bottom:-20px;background:#fff;padding-top:10px}.s510-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.s510-kpis>div{padding:13px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.s510-kpis span{display:block;color:#64748b;font-size:10px}.s510-kpis b{display:block;color:#0f172a;font-size:20px;font-weight:600;margin-top:3px}.s510-perm{display:grid;grid-template-columns:1.4fr repeat(3,90px);gap:8px;align-items:center;padding:9px;border-bottom:1px solid #e2e8f0;font-size:11px}.s510-perm.head{color:#64748b;font-size:9px;text-transform:uppercase;font-weight:700}.s510-perm strong{font-weight:500;color:#334155}.s510-perm .yes{color:#047857}.s510-perm .no{color:#94a3b8}.s510-danger{color:#be123c;font-size:10px;margin-top:9px}
@media(max-width:1050px){.s510-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.s510-layout{grid-template-columns:190px minmax(0,1fr)}}
@media(max-width:760px){.s510-head{flex-direction:column}.s510-layout{grid-template-columns:1fr}.s510-nav{position:static;display:flex;overflow:auto;gap:4px;padding:6px}.s510-nav .s510-nav-group{display:none}.s510-nav button{width:auto;white-space:nowrap}.s510-grid{grid-template-columns:1fr}.s510-kpis{grid-template-columns:1fr 1fr}.s510-form-grid{grid-template-columns:1fr}.s510-form-grid .full{grid-column:auto}.s510-audit-row{grid-template-columns:1fr 1fr}.s510-perm{grid-template-columns:1fr repeat(3,60px)}}
@media(max-width:480px){.s510{padding-bottom:90px}.s510-panel{padding:13px}.s510-kpis{gap:7px}.s510-kpis>div{padding:10px}.s510-kpis b{font-size:18px}.s510-actions{display:grid;grid-template-columns:1fr}.s510-actions .s510-btn{width:100%}.s510-modal{padding:15px}.s510-modal-actions .s510-btn{flex:1}.s510-perm{grid-template-columns:1fr 55px 55px 55px;overflow-x:auto}.s510-search{display:grid;grid-template-columns:1fr}.s510-search .s510-btn{width:100%}}

/* V5.4.0 Compliance â€” role-first responsive workspace */
.c54{--c54i:#4f46e5;--c54sl:#0f172a;--c54mut:#64748b;--c54line:#e2e8f0;--c54bg:#f8fafc;--c54ok:#059669;--c54warn:#d97706;--c54bad:#e11d48;background:var(--c54bg);border-radius:18px;padding:18px}.c54 *{box-sizing:border-box}.c54-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.c54-eyebrow{font-size:11px;letter-spacing:.12em;color:var(--c54i);font-weight:700}.c54 h1{margin:4px 0 4px;font-size:26px;color:var(--c54sl)}.c54 p{margin:0;color:var(--c54mut);font-size:13px}.c54-actions{display:flex;gap:8px;flex-wrap:wrap}.c54-btn{border:1px solid var(--c54line);background:#fff;color:#334155;border-radius:10px;padding:9px 12px;font-weight:600;cursor:pointer}.c54-btn.primary{background:var(--c54i);border-color:var(--c54i);color:#fff}.c54-btn.success{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.c54-btn.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}.c54-btn.danger{background:#fff1f2;border-color:#fecdd3;color:#be123c}.c54-tabs{display:flex;gap:6px;overflow:auto;padding-bottom:5px;margin-bottom:14px}.c54-tab{white-space:nowrap;border:0;background:transparent;padding:9px 13px;border-radius:9px;color:#64748b;font-weight:600;cursor:pointer}.c54-tab.active{background:#eef2ff;color:#4338ca}.c54-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.c54-kpi{background:#fff;border:1px solid var(--c54line);border-radius:14px;padding:14px}.c54-kpi span{display:block;color:var(--c54mut);font-size:12px}.c54-kpi strong{display:block;font-size:24px;color:var(--c54sl);margin:4px 0}.c54-kpi small{font-size:11px}.c54-ok{color:var(--c54ok)}.c54-warn{color:var(--c54warn)}.c54-bad{color:var(--c54bad)}.c54-grid{display:grid;grid-template-columns:1.45fr .9fr;gap:14px}.c54-card{background:#fff;border:1px solid var(--c54line);border-radius:14px;padding:15px;min-width:0}.c54-card h3{margin:0 0 10px;font-size:15px;color:var(--c54sl)}.c54-card .sub{font-size:12px;color:var(--c54mut);margin-bottom:12px}.c54-row{display:flex;gap:10px;align-items:center;padding:12px 0;border-top:1px solid #f1f5f9}.c54-row:first-child{border-top:0}.c54-grow{flex:1;min-width:0}.c54-grow strong{display:block;font-size:13px;color:#1e293b}.c54-grow small{display:block;color:var(--c54mut);font-size:11px;margin-top:3px}.c54-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700;white-space:nowrap}.c54-pill.ok{background:#ecfdf5;color:#047857}.c54-pill.warn{background:#fffbeb;color:#92400e}.c54-pill.bad{background:#fff1f2;color:#be123c}.c54-pill.info{background:#eef2ff;color:#4338ca}.c54-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.c54-filter select,.c54-filter input,.c54-field input,.c54-field select,.c54-field textarea{width:100%;border:1px solid #cbd5e1;border-radius:9px;padding:9px;background:#fff;color:#0f172a}.c54-filter>*{min-width:145px;flex:1}.c54-table{width:100%;border-collapse:collapse;font-size:12px}.c54-table th{text-align:left;color:#64748b;background:#f8fafc;padding:10px;border-bottom:1px solid var(--c54line);white-space:nowrap}.c54-table td{padding:10px;border-bottom:1px solid #f1f5f9;vertical-align:top}.c54-table-wrap{overflow:auto}.c54-progress{height:7px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin-top:7px}.c54-progress i{display:block;height:100%;background:var(--c54i);border-radius:99px}.c54-notice{border:1px solid #c7d2fe;background:#eef2ff;border-radius:12px;padding:12px;color:#3730a3;font-size:12px;margin-bottom:12px}.c54-mobile-actions{display:none}.c54-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:10000;display:flex;justify-content:flex-end}.c54-drawer{width:min(620px,100%);height:100%;background:#fff;padding:18px;overflow:auto;box-shadow:-12px 0 35px rgba(15,23,42,.18)}.c54-drawer-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:15px}.c54-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.c54-field label{display:block;font-size:11px;font-weight:700;color:#475569;margin-bottom:5px}.c54-field.full{grid-column:1/-1}.c54-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;position:sticky;bottom:0;background:#fff;padding-top:12px}.c54-check{display:flex;gap:8px;align-items:center;padding:8px 0;font-size:12px}.c54-locked{opacity:.65}.c54-tag{font-size:10px;color:#64748b;border:1px solid #e2e8f0;border-radius:6px;padding:3px 6px}.c54-empty{padding:30px;text-align:center;color:#64748b}
@media(max-width:900px){.c54-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.c54-grid{grid-template-columns:1fr}.c54-head{flex-direction:column}.c54-actions{width:100%}.c54-actions .c54-btn{flex:1}.c54-mobile-actions{display:flex;position:sticky;bottom:8px;z-index:20;background:#fff;border:1px solid var(--c54line);padding:8px;border-radius:12px;box-shadow:0 8px 25px rgba(15,23,42,.12)}}
@media(max-width:600px){.c54{padding:12px;border-radius:12px}.c54 h1{font-size:22px}.c54-kpis{grid-template-columns:1fr 1fr;gap:8px}.c54-kpi{padding:11px}.c54-kpi strong{font-size:20px}.c54-form-grid{grid-template-columns:1fr}.c54-field.full{grid-column:auto}.c54-filter>*{min-width:100%}.c54-row{align-items:flex-start;flex-wrap:wrap}.c54-row .c54-btn{margin-left:auto}.c54-table{min-width:760px}}

/* V5.7.0 Universal Transport & Commute Engine */
.t56{--t56line:#E5E7EB;--t56muted:#64748B;--t56ink:#0F172A;--t56soft:#F8FAFC;--t56brand:#2563EB;--t56good:#047857;--t56warn:#B45309;--t56bad:#B91C1C;color:var(--t56ink)}
.t56-wrap{max-width:1400px;margin:0 auto;padding:4px 0 40px}.t56-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:12px}.t56-eyebrow{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--t56brand);margin-bottom:4px}.t56-head h1{font-size:25px;margin:0 0 4px}.t56-head p{margin:0;color:var(--t56muted);font-size:11px}.t56-actions{display:flex;gap:7px;flex-wrap:wrap}.t56-btn{border:1px solid #CBD5E1;background:#fff;color:#334155;border-radius:8px;padding:8px 11px;font-size:10px;font-weight:800;cursor:pointer}.t56-btn:hover{background:#F8FAFC}.t56-btn.primary{background:var(--t56brand);border-color:var(--t56brand);color:#fff}.t56-btn.danger{background:#FEF2F2;border-color:#FCA5A5;color:#B91C1C}.t56-tabs{display:flex;gap:3px;overflow:auto;border-bottom:1px solid var(--t56line);margin-bottom:12px}.t56-tab{border:0;background:transparent;padding:10px 13px;white-space:nowrap;font-size:10px;font-weight:800;color:var(--t56muted);border-bottom:2px solid transparent;cursor:pointer}.t56-tab.active{color:var(--t56brand);background:#EFF6FF;border-color:var(--t56brand)}.t56-grid{display:grid;gap:10px;margin-bottom:10px}.t56-g2{grid-template-columns:repeat(2,minmax(0,1fr))}.t56-g3{grid-template-columns:repeat(3,minmax(0,1fr))}.t56-g4{grid-template-columns:repeat(4,minmax(0,1fr))}.t56-card{background:#fff;border:1px solid var(--t56line);border-radius:12px;padding:14px;box-shadow:0 1px 2px rgba(15,23,42,.03);margin-bottom:10px}.t56-card h2,.t56-card h3{margin:0 0 7px}.t56-card h2{font-size:18px}.t56-card h3{font-size:13px}.t56-card p{font-size:10px;color:var(--t56muted)}.t56-cardhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.t56-cardhead small,.t56-muted{color:var(--t56muted);font-size:9px}.t56-kpi{background:#fff;border:1px solid var(--t56line);border-radius:12px;padding:13px}.t56-kpi small{display:block;color:var(--t56muted);font-size:9px;font-weight:700}.t56-kpi strong{display:block;font-size:22px;margin:4px 0}.t56-sub{font-size:9px;color:var(--t56muted)}.t56-sub.warn{color:var(--t56warn);font-weight:800}.t56-status{display:inline-block;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:900;white-space:nowrap}.t56-status.ok{background:#ECFDF5;color:var(--t56good)}.t56-status.warn{background:#FFFBEB;color:var(--t56warn)}.t56-status.bad{background:#FEF2F2;color:var(--t56bad)}.t56-line{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #F1F5F9}.t56-line:last-child{border-bottom:0}.t56-line>span:first-child{flex:1;min-width:0}.t56-line b{display:block;font-size:10px}.t56-line small{display:block;color:var(--t56muted);font-size:8px;margin-top:2px}.t56-line .t56-btn{margin-left:auto}.t56-chip{display:inline-block;background:#EFF6FF;color:#1D4ED8;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:900}.t56-live{font-size:9px;font-weight:900;color:#047857;margin:7px 0}.t56-map{height:120px;background:linear-gradient(135deg,#EFF6FF,#F8FAFC);border:1px solid #DBEAFE;border-radius:10px;margin:10px 0;position:relative;overflow:hidden}.t56-route-line{position:absolute;height:3px;background:#60A5FA;left:12%;right:12%;top:55%;transform:rotate(-8deg);border-radius:5px}.t56-dot{position:absolute;width:12px;height:12px;border-radius:50%;background:#2563EB;border:3px solid #fff;box-shadow:0 1px 5px #64748B}.t56-dot.d1{left:15%;top:51%}.t56-dot.d2{right:15%;top:42%}.t56-map b{position:absolute;right:10px;bottom:8px;background:#fff;border:1px solid var(--t56line);border-radius:6px;padding:5px 7px;font-size:9px}.t56-hero .t56-actions{margin-top:10px}.t56-qr{width:100px;height:100px;margin:12px auto;background:#0F172A;color:#fff;display:flex;align-items:center;justify-content:center;font-size:55px;border-radius:10px;flex-direction:column}.t56-qr small{font-size:7px;letter-spacing:.1em}.t56-qr.large{width:170px;height:170px;font-size:90px}.t56-passcard{text-align:center}.t56-barrow{display:grid;grid-template-columns:1fr auto;gap:5px;margin:12px 0;font-size:9px}.t56-barrow i{grid-column:1/-1;height:6px;background:#E2E8F0;border-radius:10px;overflow:hidden}.t56-barrow em{display:block;height:100%;background:#60A5FA;border-radius:10px}.t56-driverhero{display:flex;justify-content:space-between;gap:15px;align-items:center}.t56-dangerpanel{border-color:#FCA5A5;background:#FFF7F7}.t56-auditnote{font-size:9px;color:#64748B;background:#F8FAFC;border:1px solid var(--t56line);border-radius:10px;padding:10px}.t56-table{overflow:auto;border:1px solid var(--t56line);border-radius:10px}.t56-table table{width:100%;min-width:760px;border-collapse:collapse}.t56-table th,.t56-table td{padding:9px 10px;border-bottom:1px solid #F1F5F9;text-align:left;font-size:9px;vertical-align:middle}.t56-table th{background:#F8FAFC;font-size:8px;color:#475569}.t56-mobile{display:none}.t56-mrow{font-size:9px;color:#475569;padding:4px 0}.t56-mobile article{border:1px solid var(--t56line);border-radius:10px;padding:11px;background:#fff}.t56-mobile h3{font-size:11px;margin:0 0 6px}
@media(max-width:950px){.t56-g4{grid-template-columns:repeat(2,minmax(0,1fr))}.t56-g3{grid-template-columns:1fr 1fr}.t56-g2{grid-template-columns:1fr}.t56-driverhero{align-items:flex-start;flex-direction:column}.t56-driverhero .t56-actions{width:100%}.t56-driverhero .t56-btn{flex:1}}
@media(max-width:650px){.t56-wrap{padding-bottom:70px}.t56-head{flex-direction:column}.t56-head h1{font-size:21px}.t56-head .t56-actions{width:100%}.t56-head .t56-btn{flex:1}.t56-g4,.t56-g3{grid-template-columns:1fr 1fr}.t56-kpi{padding:10px}.t56-kpi strong{font-size:19px}.t56-card{padding:11px}.t56-cardhead{align-items:flex-start;flex-direction:column}.t56-cardhead .t56-btn{width:100%}.t56-table{display:none}.t56-mobile{display:grid;gap:8px}.t56-actions{width:100%}.t56-actions .t56-btn{flex:1}.t56-line{align-items:flex-start;flex-wrap:wrap}.t56-line .t56-btn{margin-left:auto}.t56-map{height:105px}}
@media(max-width:420px){.t56-g4,.t56-g3{grid-template-columns:1fr}.t56-tabs{margin-right:-4px}.t56-tab{padding:9px 10px}.t56-actions{display:grid;grid-template-columns:1fr}.t56-actions .t56-btn{width:100%}.t56-line .t56-btn{width:100%;margin-left:0}}

/* V6.0.0 Profile header menu + role-aware profile drawer */
.v60-profile-anchor{position:relative}.v60-avatar-trigger{width:34px;height:34px;border-radius:50%;font-size:10px}.v60-profile-pop{display:none;position:absolute;right:0;top:calc(100% + 9px);width:285px;background:#fff;border:1px solid #E4E7EC;border-radius:14px;box-shadow:0 20px 55px rgba(16,24,40,.18);z-index:110;overflow:hidden}.v60-profile-pop.show{display:block}.v60-pop-person{display:flex;gap:10px;align-items:center;padding:14px;border-bottom:1px solid #EAECF0;background:#F8FAFC}.v60-pop-person b{display:block;font-size:12px;color:#101828}.v60-pop-person span{display:block;font-size:9px;color:#667085;margin-top:3px}.v60-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#E0EAFF;color:#175CD3;font-weight:900;font-size:11px;flex:0 0 auto}.v60-avatar.small{width:34px;height:34px}.v60-pop-actions{padding:6px}.v60-pop-actions button,.v60-pop-signout button{width:100%;display:flex;gap:10px;align-items:center;border:0;background:#fff;padding:11px 12px;border-radius:8px;text-align:left;font-size:11px;color:#344054}.v60-pop-actions button:hover{background:#F2F4F7}.v60-pop-signout{border-top:1px solid #EAECF0;padding:6px}.v60-pop-signout button{color:#B42318}.v60-pop-signout button:hover{background:#FEF3F2}.v60-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px}.v60-person{display:flex;gap:11px;align-items:center;min-width:0}.v60-person h2{margin:3px 0 2px;font-size:19px;color:#101828}.v60-person p{margin:0;color:#667085;font-size:9px}.v60-eyebrow{font-size:8px;letter-spacing:.12em;font-weight:900;color:#2563EB}.v60-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:13px}.v60-summary>div{border:1px solid #EAECF0;border-radius:9px;padding:9px;min-width:0}.v60-summary small,.v60-field small{display:block;color:#667085;font-size:8px}.v60-summary b{display:block;color:#101828;font-size:9px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v60-section{border:1px solid #EAECF0;border-radius:11px;padding:11px;margin-bottom:10px}.v60-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.v60-section-head h3{margin:0;font-size:12px;color:#101828}.v60-section-head>span{font-size:8px;color:#667085;background:#F2F4F7;border-radius:999px;padding:4px 7px}.v60-field{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px 0;border-top:1px solid #F2F4F7}.v60-field:first-of-type{border-top:0}.v60-field b{display:block;font-size:10px;color:#344054;margin-top:3px;overflow-wrap:anywhere}.v60-field>span{font-size:8px;color:#667085;white-space:nowrap}.v60-field.v60-locked b{color:#475467}.v60-field.v60-request>span{color:#B54708}.v60-field.v60-self>span{color:#027A48}.v60-mini,.v60-link{border:0;background:none;color:#2563EB;font-size:9px;font-weight:800;padding:4px;white-space:nowrap}.v60-policy{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:8px 0;border-top:1px solid #F2F4F7;font-size:9px}.v60-policy:first-of-type{border-top:0}.v60-policy span{color:#667085}.v60-activity{margin-top:12px}.v60-event{border-top:1px solid #EAECF0;padding:9px 0}.v60-event b{display:block;font-size:9px}.v60-event span{display:block;color:#667085;font-size:8px;margin-top:3px}.v60-security{display:grid;gap:8px}.v60-security-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid #EAECF0;border-radius:10px;padding:11px;font-size:10px}.v60-security-row>span{color:#475467}.v60-security-note{background:#F8FAFC;border:1px solid #EAECF0;border-radius:9px;padding:10px;color:#667085;font-size:9px;line-height:1.5}.v60-pref-grid,.v60-edit-box{display:grid;grid-template-columns:1fr 1fr;gap:12px}.v60-pref-grid label,.v60-edit-box label{display:grid;gap:5px;font-size:9px;font-weight:800;color:#344054}.v60-pref-grid select,.v60-edit-box input,.v60-edit-box textarea{width:100%;border:1px solid #D0D5DD;border-radius:8px;padding:9px;background:#fff;outline:none;font-size:10px}.v60-edit-box{grid-template-columns:1fr}.v60-audit-row{border-bottom:1px solid #EAECF0;padding:10px 0}.v60-audit-row b{display:block;font-size:9px}.v60-audit-row span{display:block;color:#667085;font-size:8px;margin-top:3px}.v60-audit-row small{display:inline-block;margin-top:5px;background:#ECFDF3;color:#027A48;border-radius:999px;padding:3px 6px;font-size:7px;font-weight:800}
@media(max-width:760px){.v60-profile-pop{right:-38px;width:min(88vw,300px)}.v60-summary{grid-template-columns:1fr 1fr}.v60-field{grid-template-columns:minmax(0,1fr) auto}.v60-field>span{grid-column:1}.v60-mini{grid-row:1/3;grid-column:2}.v60-pref-grid{grid-template-columns:1fr}.v60-person h2{font-size:17px}}
@media(max-width:420px){.v60-profile-pop{right:-45px}.v60-summary{grid-template-columns:1fr}.v60-field{grid-template-columns:1fr auto}.v60-field>span{grid-column:1}.v60-mini{grid-row:1/3;grid-column:2}.v60-policy{grid-template-columns:1fr}.v60-security-row{align-items:flex-start;flex-direction:column}}


/* V6.1.0 Safety Hub â€” header action + responsive drawer */
.v610-safety-trigger{border:1px solid #FECACA;background:#FEF2F2;color:#B42318;border-radius:10px;min-width:40px;height:36px;padding:0 10px;font-size:16px;font-weight:900;cursor:pointer;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.v610-safety-trigger:hover{background:#FEE4E2}
.v610-safety-drawer{padding:18px;min-height:100%;overflow:auto}
.v610-safety-hero{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.v610-eyebrow{font-size:9px;letter-spacing:.08em;font-weight:900;color:#B42318}
.v610-safety-hero h2{margin:5px 0 3px;font-size:20px}
.v610-safety-hero p{margin:0;color:#667085;font-size:11px;line-height:1.5}
.v610-safety-scope{margin:16px 0 12px;padding:11px 12px;border:1px solid #EAECF0;border-radius:10px;background:#F8FAFC;display:grid;grid-template-columns:auto 1fr auto;gap:7px 10px;align-items:center;font-size:9px}
.v610-safety-scope span{color:#667085}.v610-safety-scope b{font-size:10px}.v610-safety-status{color:#027A48!important;font-weight:800}
.v610-safety-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.v610-safety-metrics>div{border:1px solid #EAECF0;border-radius:10px;padding:10px;background:#fff}
.v610-safety-metrics span{display:block;font-size:8px;color:#667085}.v610-safety-metrics b{display:block;margin-top:4px;font-size:15px}
.v610-section-title{display:flex;justify-content:space-between;align-items:end;gap:8px;margin:12px 0 8px}
.v610-section-title h3{margin:0;font-size:12px}.v610-section-title small{color:#667085;font-size:8px}
.v610-safety-actions{display:grid;gap:7px}
.v610-safety-action{display:grid;grid-template-columns:34px 1fr auto;align-items:center;text-align:left;gap:9px;width:100%;border:1px solid #EAECF0;background:#fff;border-radius:10px;padding:10px;cursor:pointer}
.v610-safety-action:hover{border-color:#FDA29B;background:#FFFBFA}
.v610-safety-icon{font-size:17px}.v610-safety-action b{display:block;font-size:10px;color:#101828}.v610-safety-action small{display:block;margin-top:2px;color:#667085;font-size:8px;line-height:1.35}.v610-safety-action em{font-style:normal;font-size:7px;font-weight:900;color:#475467;border:1px solid #D0D5DD;border-radius:999px;padding:3px 5px}
.v610-safety-section{margin-top:18px}.v610-safety-incident{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;border:0;border-bottom:1px solid #EAECF0;background:#fff;padding:9px 0;cursor:pointer}
.v610-safety-incident b{display:block;font-size:9px}.v610-safety-incident small{display:block;color:#667085;font-size:8px;margin-top:3px}
.v610-safety-audit{border-bottom:1px solid #EAECF0;padding:8px 0}.v610-safety-audit b{display:block;font-size:9px}.v610-safety-audit span{display:block;color:#667085;font-size:8px;margin-top:3px}
.v610-safety-footer{margin-top:18px;padding:10px;background:#F8FAFC;border:1px solid #EAECF0;border-radius:9px;color:#667085;font-size:8px;line-height:1.5}
@media(max-width:760px){
 .v610-safety-trigger{height:34px;min-width:36px;padding:0 8px}
 .v610-safety-drawer{padding:15px}
 .v610-safety-scope{grid-template-columns:1fr}.v610-safety-status{grid-column:auto}
 .v610-safety-metrics{grid-template-columns:1fr 1fr}.v610-safety-metrics>div:last-child{grid-column:1/-1}
 .v610-safety-action{grid-template-columns:30px 1fr}.v610-safety-action em{grid-column:2;justify-self:start}
}
@media(max-width:420px){
 .v610-safety-metrics{grid-template-columns:1fr}.v610-safety-metrics>div:last-child{grid-column:auto}
 .v610-safety-hero h2{font-size:18px}
}
/* SafeShala V6.1.7 / V6.1.8 â€” Super Admin operating-scope styles.
   Extracted from app.js runtime style injection. Append VERBATIM to safeshala.css.
   Do not rewrite. */

    .sa617-scope-control{display:flex;align-items:center;gap:5px;flex:0 1 auto;min-width:210px}.sa617-scope-control>span{font-size:9px;font-weight:800;color:#667085;white-space:nowrap}.sa617-school-select{min-width:250px!important;max-width:330px}.sa617-scope-pill{display:flex;align-items:center;gap:7px;border:1px solid #d0d5dd;background:#f8fafc;border-radius:9px;padding:8px 10px;white-space:nowrap;font-size:9px}.sa617-scope-pill span{color:#667085}.sa617-scope-pill b{color:#101828}.sa617-context{margin-bottom:10px;background:linear-gradient(135deg,#ffffff,#f8fbff);border:1px solid #dbe5f0;border-radius:12px;padding:12px 14px;box-shadow:0 1px 2px rgba(16,24,40,.03)}.sa617-context-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.sa617-eyebrow{font-size:8px;font-weight:900;letter-spacing:.1em;color:#2563eb}.sa617-context h3{margin:3px 0;font-size:16px}.sa617-context p{margin:0;color:#667085;font-size:9px;line-height:1.45}.sa617-scope-badge{font-size:9px;font-weight:800;padding:6px 8px;border-radius:999px;background:#eff6ff;color:#175cd3;white-space:nowrap}.sa617-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.sa617-metrics>div{background:#fff;border:1px solid #eaecf0;border-radius:9px;padding:9px}.sa617-metrics span,.sa617-metrics small{display:block;color:#667085;font-size:7px}.sa617-metrics b{display:block;font-size:15px;margin:2px 0}.sa617-data-note{margin-top:8px;color:#667085;font-size:7px}.sa617-rule{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:0 0 10px;padding:8px 10px;background:#f8fafc;border:1px dashed #d0d5dd;border-radius:9px;color:#475467;font-size:8px}.sa617-rule b{color:#175cd3;margin-right:6px}.sa617-rule small{font-size:7px;color:#667085;text-align:right}.topbar .sa617-scope-control{margin-left:8px}.topbar .sa617-scope-pill{margin-left:8px}
    @media(max-width:1000px){.sa617-scope-control{min-width:180px}.sa617-school-select{min-width:190px!important;max-width:250px}.sa617-metrics{grid-template-columns:repeat(2,1fr)}}
    @media(max-width:700px){.topbar .sa617-scope-control{order:3;width:100%;margin:6px 0 0}.topbar .sa617-scope-control .sa617-school-select{width:100%;max-width:none}.topbar .sa617-scope-pill{order:3;margin:6px 0 0;width:100%;box-sizing:border-box;justify-content:space-between}.sa617-context-head{display:block}.sa617-scope-badge{display:inline-block;margin-top:7px}.sa617-metrics{grid-template-columns:1fr 1fr}.sa617-rule{display:block}.sa617-rule small{display:block;text-align:left;margin-top:4px}.topbar{height:auto;flex-wrap:wrap;padding-bottom:9px}}
    @media(max-width:420px){.sa617-metrics{grid-template-columns:1fr}.sa617-context{padding:11px}.sa617-context h3{font-size:15px}}
  

    .sa618-scope-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:10px 13px;border:1px solid #dbe5f0;border-radius:10px;background:#f8fbff;box-shadow:0 1px 2px rgba(16,24,40,.03)}
    .sa618-scope-strip>div{min-width:0}.sa618-eyebrow{display:block;font-size:7px;font-weight:900;letter-spacing:.11em;color:#2563eb}.sa618-scope-strip strong{display:block;font-size:13px;margin-top:2px;color:#101828}.sa618-scope-strip small{display:block;color:#667085;font-size:8px;margin-top:2px}.sa618-badge{font-size:8px;font-weight:900;padding:6px 8px;border-radius:999px;background:#eff6ff;color:#175cd3;white-space:nowrap}
    @media(max-width:700px){.sa618-scope-strip{align-items:flex-start}.sa618-badge{flex:none}.sa618-scope-strip strong{font-size:12px}}
    @media(max-width:420px){.sa618-scope-strip{display:block}.sa618-badge{display:inline-block;margin-top:7px}}


/* V4.x injected styles (extracted verbatim from reference/prototype-app.js - GEN-22) */

    :root{--v4-indigo:#4F46E5;--v4-indigo-700:#4338CA;--v4-slate-50:#F8FAFC;--v4-slate-100:#F1F5F9;--v4-slate-200:#E2E8F0;--v4-slate-500:#64748B;--v4-slate-700:#334155;--v4-slate-800:#1E293B;--v4-slate-900:#0F172A;--v4-emerald-50:#ECFDF5;--v4-emerald-700:#047857;--v4-rose-50:#FFF1F2;--v4-rose-700:#BE123C}
    body{background:var(--v4-slate-50);color:var(--v4-slate-900)}.sidebar{background:var(--v4-slate-900)!important}.main{background:var(--v4-slate-50)!important}.card,.metric,.modal,.drawer,.record{background:#fff!important;border-color:var(--v4-slate-200)!important}.btn.primary,.login-submit{background:var(--v4-indigo)!important;border-color:var(--v4-indigo)!important}.btn.primary:hover,.login-submit:hover{background:var(--v4-indigo-700)!important}.field input,.field select,.field textarea,.v4-field input,.v4-field select,.v4-field textarea,.top-search,.class-search input,.class-search select{border-color:#CBD5E1!important;outline:none}.field input:focus,.field select:focus,.field textarea:focus,.v4-field input:focus,.v4-field select:focus,.v4-field textarea:focus{border-color:var(--v4-indigo)!important;box-shadow:0 0 0 2px rgba(79,70,229,.18)!important}
    .v4-tabs{display:flex;gap:4px;border-bottom:1px solid var(--v4-slate-200);margin:0 0 16px;overflow:auto}.v4-tab{border:0;background:transparent;padding:12px 15px;color:var(--v4-slate-500);font-weight:700;white-space:nowrap;border-bottom:2px solid transparent;cursor:pointer}.v4-tab.active{color:var(--v4-indigo);border-bottom-color:var(--v4-indigo);background:#fff}.v4-current-card{display:flex;justify-content:space-between;gap:24px;padding:22px;background:#fff;border:1px solid var(--v4-slate-200);border-radius:16px;margin-bottom:14px}.v4-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--v4-slate-500);font-weight:800}.v4-current-card h2{margin:5px 0;font-size:24px}.v4-current-card p{margin:0;color:var(--v4-slate-500)}.v4-current-metric{width:330px}.v4-current-metric>b{display:block;margin-bottom:5px}.v4-current-metric strong{font-size:25px}.v4-current-metric strong small{font-size:13px;color:var(--v4-slate-500)}.v4-progress>div{height:8px;background:var(--v4-slate-100);border-radius:999px;overflow:hidden}.v4-progress span{display:block;height:100%;background:var(--v4-indigo);border-radius:999px}.v4-progress small{display:block;margin-top:5px;color:var(--v4-slate-500)}.v4-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.v4-kpis>div{background:#fff;border:1px solid var(--v4-slate-200);border-radius:14px;padding:16px}.v4-kpis span,.v4-kpis small{display:block;color:var(--v4-slate-500);font-size:12px}.v4-kpis b{display:block;font-size:19px;margin:5px 0}.v4-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#fff;border:1px solid var(--v4-slate-200);border-radius:12px;padding:10px;margin-bottom:12px}.v4-toolbar-left,.v4-toolbar-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.v4-toolbar input,.v4-toolbar select{height:38px;border:1px solid #CBD5E1;border-radius:8px;padding:0 10px;background:#fff}.v4-table-wrap{overflow:auto}.v4-table{width:100%;border-collapse:collapse;min-width:760px}.v4-table th,.v4-table td{padding:13px 14px;border-bottom:1px solid var(--v4-slate-200);text-align:left;vertical-align:middle}.v4-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--v4-slate-500);background:var(--v4-slate-50);position:sticky;top:0;z-index:1}.v4-table td small{display:block;color:var(--v4-slate-500);margin-top:3px}.v4-table td .btn{margin-right:5px}.v4-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.v4-card{padding:18px}.v4-section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.v4-section-head h3{margin:0}.v4-section-head p{margin:4px 0 0;color:var(--v4-slate-500);font-size:13px}.v4-mini-row{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--v4-slate-200)}.v4-mini-row:last-child{border-bottom:0}.v4-mini-row span{color:var(--v4-slate-500);font-size:13px}.v4-modal{width:min(920px,calc(100vw - 28px));max-height:92vh;overflow:auto}.v4-modal-head{display:flex;justify-content:space-between;gap:15px;padding:20px 22px 10px}.v4-modal-head h2{margin:4px 0}.v4-modal-head p{margin:0;color:var(--v4-slate-500)}.v4-stepbar{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:10px 22px 18px}.v4-step{display:flex;gap:8px;align-items:center;color:var(--v4-slate-500);font-size:12px}.v4-step span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--v4-slate-100);font-weight:800}.v4-step.current{color:var(--v4-indigo)}.v4-step.current span,.v4-step.done span{background:#EEF2FF;color:var(--v4-indigo)}.v4-modal form{padding:0 22px 22px}.v4-section-title{display:flex;gap:10px;align-items:flex-start;margin:8px 0 16px}.v4-section-title>span{width:28px;height:28px;border-radius:8px;background:#EEF2FF;color:var(--v4-indigo);display:grid;place-items:center;font-weight:800}.v4-section-title h3{margin:0}.v4-section-title p{margin:3px 0 0;color:var(--v4-slate-500);font-size:13px}.v4-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.v4-field label{display:block;font-size:12px;font-weight:700;color:var(--v4-slate-700);margin-bottom:5px}.v4-field label span{color:var(--v4-rose-700)}.v4-field input,.v4-field select,.v4-field textarea{width:100%;box-sizing:border-box;border:1px solid #CBD5E1;border-radius:9px;padding:10px 11px;background:#fff;color:var(--v4-slate-900)}.v4-full{grid-column:1/-1}.v4-term-editor{display:grid;gap:10px}.v4-term-row{display:grid;grid-template-columns:70px repeat(5,1fr);gap:8px;padding:12px;background:var(--v4-slate-50);border:1px solid var(--v4-slate-200);border-radius:10px;align-items:end}.v4-term-label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--v4-slate-500)}.v4-term-label b{color:var(--v4-slate-900)}.v4-upload{border:1px dashed #94A3B8;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px}.v4-upload small{color:var(--v4-slate-500)}.v4-upload input{margin-top:4px}.v4-holiday-list{margin-top:14px}.v4-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.v4-holiday-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 36px;gap:8px;margin-bottom:8px}.v4-holiday-row input,.v4-holiday-row select{width:100%;box-sizing:border-box;padding:9px;border:1px solid #CBD5E1;border-radius:8px}.icon-btn{border:1px solid var(--v4-slate-200);background:#fff;border-radius:8px;cursor:pointer}.v4-validation{margin-top:16px;border:1px solid var(--v4-slate-200);border-radius:12px;padding:14px}.v4-validation.success{background:var(--v4-emerald-50);border-color:#A7F3D0;color:var(--v4-emerald-700)}.v4-validation.error{background:var(--v4-rose-50);border-color:#FECDD3;color:var(--v4-rose-700)}.v4-validation ul{margin:8px 0 0 18px}.v4-review-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.v4-review-card{padding:13px;border:1px solid var(--v4-slate-200);border-radius:10px}.v4-review-card span,.v4-review-card small{display:block;color:var(--v4-slate-500);font-size:11px}.v4-review-card b{display:block;margin:5px 0}.v4-wizard-actions{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--v4-slate-200);padding-top:14px;margin-top:18px}.v4-wizard-actions>div{display:flex;gap:8px}.v4-drawer{width:min(560px,100vw);padding:0;display:flex;flex-direction:column}.v4-drawer-head{padding:20px;border-bottom:1px solid var(--v4-slate-200);display:flex;justify-content:space-between;gap:10px}.v4-drawer-head h2{margin:4px 0}.v4-drawer-head p{margin:0;color:var(--v4-slate-500);font-size:13px}.v4-drawer-body{padding:18px;overflow:auto;flex:1}.v4-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.v4-summary>div{background:var(--v4-slate-50);border-radius:10px;padding:12px}.v4-summary span,.v4-detail-grid small{display:block;color:var(--v4-slate-500);font-size:11px}.v4-summary b{display:block;margin-top:4px}.v4-detail-section{margin-top:20px}.v4-detail-section h3{font-size:14px;margin:0 0 10px}.v4-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.v4-detail-grid>div{padding:10px;border:1px solid var(--v4-slate-200);border-radius:8px}.v4-detail-grid b{display:block;margin-top:4px}.v4-audit-row{padding:10px 0;border-bottom:1px solid var(--v4-slate-200)}.v4-audit-row span{display:block;color:var(--v4-slate-500);font-size:12px;margin-top:3px}.v4-drawer-actions{padding:14px 18px;border-top:1px solid var(--v4-slate-200);display:flex;gap:8px;justify-content:flex-end}.badge.green{background:var(--v4-emerald-50)!important;color:var(--v4-emerald-700)!important;border-color:#A7F3D0!important}.badge.red{background:var(--v4-rose-50)!important;color:var(--v4-rose-700)!important;border-color:#FECDD3!important}.badge.amber,.badge.blue{background:#EEF2FF!important;color:#3730A3!important;border-color:#C7D2FE!important}
    @media(max-width:900px){.v4-kpis{grid-template-columns:repeat(2,1fr)}.v4-current-card{flex-direction:column}.v4-current-metric{width:auto}.v4-two-col{grid-template-columns:1fr}.v4-review-grid{grid-template-columns:repeat(2,1fr)}.v4-term-row{grid-template-columns:1fr 1fr}.v4-term-label{grid-column:1/-1}.v4-toolbar{align-items:stretch;flex-direction:column}.v4-toolbar-right input,.v4-toolbar-right select{flex:1;min-width:0}}
    @media(max-width:600px){.v4-kpis{grid-template-columns:1fr 1fr}.v4-step b{display:none}.v4-stepbar{padding-left:12px;padding-right:12px}.v4-modal-head,.v4-modal form{padding-left:14px;padding-right:14px}.v4-grid,.v4-review-grid{grid-template-columns:1fr}.v4-full{grid-column:auto}.v4-holiday-row{grid-template-columns:1fr 1fr}.v4-holiday-row input:first-child{grid-column:1/-1}.v4-holiday-row select{grid-column:1}.v4-wizard-actions{position:sticky;bottom:0;background:#fff;padding-bottom:2px}.v4-drawer-actions{flex-wrap:wrap}.v4-drawer-actions .btn{flex:1}.v4-summary,.v4-detail-grid{grid-template-columns:1fr}.v4-current-card h2{font-size:20px}.v4-toolbar-left{overflow:auto;flex-wrap:nowrap}.v4-toolbar-left .btn{white-space:nowrap}}
  
/* My Profile drawer: the inline editor replaces the row's action button, so it has to fit the same grid
   cell as the chip it replaces, and stack under the value on narrow screens. */
.v60-field-edit{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.v60-field-edit input,.v60-field-edit select{min-width:0;max-width:170px;border:1px solid #D0D5DD;border-radius:8px;padding:6px;font-size:10px;background:#fff;color:#344054}
.v60-field-edit .v60-link{color:#667085}
.v60-error{margin:0 0 8px;color:#B42318;font-size:10px;font-weight:700}
@media(max-width:760px){.v60-field-edit{grid-row:2;grid-column:1/-1;justify-content:flex-start}}

/* STUDENT-IMPORT (reference/72-screen-student-import.md §4) — appended verbatim from the prototype's
   stylesheet: the 4-step strip, the inset cards, the three-cell review summary and the error
   variant of .alert. The media rule drops both grids to two columns on a phone. */
.import-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 16px}
.import-step{display:flex;align-items:center;gap:7px;color:var(--muted,#667085);font-size:10px}
.import-step b{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line,#d0d5dd)}
.import-step.active{color:#111827;font-weight:800}
.import-step.active b{background:var(--blue,#2563eb);color:#fff;border-color:var(--blue,#2563eb)}
.card.inset{box-shadow:none;margin:10px 0;background:#f8fafc}
.card.inset .check{background:#fff}
.import-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.import-summary>div{background:#fff;border:1px solid var(--line,#e4e7ec);border-radius:9px;padding:10px;text-align:center}
.import-summary b{display:block;font-size:18px}
.import-summary small{color:var(--muted,#667085);font-size:9px}
.alert.error{background:#fef3f2;border-color:#fecdca;color:#b42318}
@media(max-width:680px){.import-steps{grid-template-columns:1fr 1fr}.import-summary{grid-template-columns:1fr 1fr}.import-summary>div:last-child{grid-column:1/-1}}
.att-toast-prompt{top:76px;bottom:auto;max-width:min(440px,calc(100vw - 40px));line-height:1.5}
.att-toast-prompt .att-toast-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}
.att-toast-prompt .btn{padding:6px 10px;font-size:10px}
@media(max-width:480px){.att-toast-prompt{left:20px;right:20px;max-width:none}}

/* The bell's "All activity" dialog: the year's notifications, day by day (MainLayout's bell footer). */
.modal.notif-activity{width:min(920px,calc(100vw - 30px));max-height:88vh}
.notif-activity .na-head{min-width:0}
.notif-activity .na-eyebrow{color:var(--blue);font-size:9px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}
.notif-activity .na-head h2{margin:3px 0 4px;font-size:18px}
.notif-activity .na-sub{margin:0;color:var(--muted);font-size:11px}
.notif-activity .na-body{max-height:calc(88vh - 180px);overflow:auto;margin:0 -2px;padding:0 2px}
.notif-activity .na-state{margin:0 0 14px;padding:15px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:11px;text-align:center}
.na-day{margin-bottom:15px}
.na-day-head{display:flex;align-items:center;gap:8px;margin:0 0 7px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.na-day-head::after{content:"";order:1;flex:1;height:1px;background:var(--line)}
.na-day-head small{order:2;padding:1px 7px;border-radius:999px;background:#f2f4f7;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:0}
.na-row{display:flex;gap:10px;align-items:flex-start;width:100%;margin-bottom:6px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left}
.na-row:hover{background:#f8fafc}
.na-row.is-unread{background:var(--blue2);border-color:#cfe0ff}
.na-row.is-unread:hover{background:#e0ecff}
.na-row-body{flex:1;min-width:0}
.na-row-body b{display:block;font-size:11px}
.na-row-body small{display:block;margin-top:2px;color:var(--muted);font-size:9px}
.na-row.is-read b{color:#475467}
.na-row.is-read .v315-notif-dot{visibility:hidden}
.na-row-time{padding-top:2px;color:var(--muted);font-size:9px;font-weight:700;white-space:nowrap}
.notif-activity .na-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;border-top:1px solid var(--line)}
.na-total{color:var(--muted);font-size:10px;font-weight:700}
@media(max-width:760px){.notif-activity .na-body{max-height:calc(94vh - 190px)}.na-row-time{display:none}}

