:root{--navy:#071d49;--navy2:#0b3477;--blue:#1468c7;--gold:#ffc928;--ink:#14213d;--muted:#68758d;--line:#dce4ef;--page:#f3f6fa;--green:#16875a;--red:#b83c50;--white:#fff}*{box-sizing:border-box}html{min-width:320px}body{margin:0;color:var(--ink);background:var(--page);font-family:Inter,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:256px minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:256px;display:flex;flex-direction:column;padding:24px 18px 18px;color:#fff;background:linear-gradient(175deg,#071c48,#061638 62%,#041027);box-shadow:12px 0 40px rgba(4,17,45,.13)}.brand{display:flex;align-items:center;gap:12px;min-height:60px;padding:0 8px 22px;border-bottom:1px solid rgba(255,255,255,.11)}.brand img{width:48px;height:52px;object-fit:contain;filter:drop-shadow(0 5px 10px rgba(0,0,0,.28))}.brand div{display:flex;flex-direction:column;gap:3px}.brand strong{font-size:15px}.brand span{color:#a8bddf;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.sidebar nav{flex:1;padding-top:28px}.sidebar nav>p{margin:0 10px 10px;color:#6f88b1;font-size:9px;font-weight:800;letter-spacing:.2em}.sidebar nav a{display:flex;align-items:center;gap:13px;margin:3px 0;padding:11px 12px;color:#b9c9e2;border-radius:10px;font-size:13px;font-weight:600;text-decoration:none;transition:.18s}.sidebar nav a i{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;color:#8fa8d0;border:1px solid rgba(255,255,255,.12);border-radius:8px;font-size:9px;font-style:normal;font-weight:800}.sidebar nav a:hover{color:#fff;background:rgba(255,255,255,.06)}.sidebar nav a.active{color:var(--navy);background:linear-gradient(90deg,#ffcf35,#ffbf19);box-shadow:0 8px 22px rgba(255,194,22,.18)}.sidebar nav a.active i{color:var(--navy);border-color:rgba(7,29,73,.18);background:rgba(255,255,255,.35)}.profile{display:grid;grid-template-columns:38px 1fr 24px;align-items:center;gap:10px;padding:15px 7px 3px;border-top:1px solid rgba(255,255,255,.11)}.profile>span{display:grid;place-items:center;width:38px;height:38px;color:var(--navy);background:var(--gold);border-radius:50%;font-size:11px;font-weight:900}.profile div{min-width:0;display:flex;flex-direction:column;gap:2px}.profile strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.profile small{color:#8099c1;font-size:9px;text-transform:uppercase}.profile>a{color:#8da5ca;text-decoration:none}.workspace{grid-column:2;min-width:0}.topbar{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;top:0;z-index:20;padding:17px clamp(24px,4vw,56px);border-bottom:1px solid #e4e9f1;background:rgba(255,255,255,.94);backdrop-filter:blur(14px)}.topbar p{margin:0 0 4px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.11em}.topbar h1{margin:0;color:var(--navy);font-size:22px}.topbar>span{padding:7px 10px;color:#126446;background:#eaf8f2;border:1px solid #cfecdf;border-radius:999px;font-size:9px;font-weight:900}.menu-open,.mobile-close,.menu-backdrop{display:none}.content{padding:34px clamp(24px,4vw,56px) 60px}.welcome{min-height:230px;display:grid;grid-template-columns:1fr 250px;align-items:center;overflow:hidden;position:relative;padding:clamp(30px,5vw,52px);color:#fff;background:linear-gradient(120deg,#0a285f,#0b3477 58%,#1268c3);border-radius:18px;box-shadow:0 18px 50px rgba(9,46,105,.16)}.welcome:before{content:"";position:absolute;width:360px;height:360px;right:-90px;top:-175px;border:1px solid rgba(255,255,255,.09);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 105px rgba(255,255,255,.02)}.welcome>div{position:relative;z-index:2}.welcome em,.section-title em{display:inline-flex;padding:5px 9px;color:#684a00;background:var(--gold);border-radius:5px;font-size:9px;font-style:normal;font-weight:900;letter-spacing:.13em}.welcome h2,.section-title h2{margin:13px 0 8px;font-size:clamp(28px,3vw,38px);line-height:1.05;letter-spacing:-.04em}.welcome p{max-width:620px;margin:0 0 22px;color:#c4d8f4;font-size:14px;line-height:1.65}.welcome>img{position:relative;z-index:2;width:130px;height:140px;justify-self:center;object-fit:contain;filter:drop-shadow(0 16px 18px rgba(1,14,42,.35))}.btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 17px;border-radius:8px;font-size:11px;font-weight:800;text-decoration:none}.btn.primary{color:#061941;background:linear-gradient(90deg,#ffd33c,#ffc421);border:1px solid #f2b900;box-shadow:0 7px 18px rgba(241,181,0,.16)}.btn.secondary{color:var(--navy);background:#fff;border:1px solid var(--line)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-top:22px}.metric-grid article{min-height:128px;display:grid;grid-template-columns:4px 1fr;column-gap:18px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(20,33,61,.045)}.metric-grid article>i{grid-row:1/5;width:4px;border-radius:9px}.metric-grid i.blue{background:var(--blue)}.metric-grid i.gold{background:var(--gold)}.metric-grid i.green{background:var(--green)}.metric-grid i.navy{background:var(--navy)}.metric-grid strong{align-self:end;color:var(--navy);font-size:27px}.metric-grid h3{margin:7px 0 2px;font-size:12px}.metric-grid p{margin:0;color:var(--muted);font-size:10px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;margin-top:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 30px rgba(20,33,61,.045)}.dashboard-grid>.panel,.form-panel{padding:25px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:18px;border-bottom:1px solid #edf0f5}.panel-head span{color:var(--blue);font-size:8px;font-weight:900;letter-spacing:.15em}.panel-head h2{margin:4px 0 0;color:var(--navy);font-size:17px}.panel-head>a{color:var(--blue);font-size:10px;font-weight:800;text-decoration:none}.progress-list{display:flex;flex-direction:column;gap:16px;padding-top:22px}.progress-row{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:12px}.progress-row>b{display:grid;place-items:center;width:38px;height:38px;color:#185baa;background:#eaf4ff;border-radius:9px;font-size:9px}.progress-row>div>p{display:flex;justify-content:space-between;gap:10px;margin:0 0 7px}.progress-row p strong{font-size:11px}.progress-row p span,.progress-row>em{color:var(--muted);font-size:9px;font-style:normal}.progress-row>div>div{height:6px;overflow:hidden;background:#eef2f7;border-radius:999px}.progress-row>div>div i{display:block;height:100%;background:linear-gradient(90deg,#1269c7,#52a0f1)}.quick{display:flex;flex-direction:column;padding-top:10px}.quick a{display:grid;grid-template-columns:36px 1fr 18px;align-items:center;gap:11px;padding:14px 5px;color:var(--ink);border-bottom:1px solid #edf0f5;text-decoration:none}.quick a>i{display:grid;place-items:center;width:34px;height:34px;color:var(--navy);background:#fff8d9;border-radius:8px;font-size:9px;font-style:normal;font-weight:900}.quick a>span{display:flex;flex-direction:column;gap:3px}.quick strong{font-size:11px}.quick small{color:var(--muted);font-size:9px}.section-title{min-height:105px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.section-title h2{color:var(--navy)}.section-title p{max-width:680px;margin:0;color:var(--muted);font-size:13px}.section-title>b{padding:14px 18px;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:12px;font-size:22px;text-align:center}.section-title>b small{display:block;color:var(--muted);font-size:8px}.marks-panel{overflow:hidden}.marks-toolbar{display:grid;grid-template-columns:minmax(220px,.8fr) 1fr;gap:28px;padding:20px 24px;background:#fbfcfe;border-bottom:1px solid var(--line)}label{display:flex;flex-direction:column;gap:7px;color:#45516a;font-size:9px;font-weight:800;letter-spacing:.03em}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #d7e0ec;border-radius:8px;outline:0}input,select{height:40px;padding:0 11px}textarea{padding:10px 11px;resize:vertical}.marks-toolbar>div{display:flex;flex-direction:column;justify-content:center;gap:6px}.marks-toolbar>div span{color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.1em}.marks-toolbar>div strong{font-size:12px}.table-wrap,.schedule-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{padding:12px 14px;color:#64718a;background:#f5f7fa;border-bottom:1px solid var(--line);font-size:8px;font-weight:900;text-align:left;text-transform:uppercase}td{padding:13px 14px;border-bottom:1px solid #edf0f5;color:#3e4a61;font-size:10px}.student{display:flex;align-items:center;gap:10px;min-width:180px}.student>i,.roster>a>i{display:grid;place-items:center;width:34px;height:34px;color:#1760ae;background:#eaf4ff;border-radius:50%;font-size:9px;font-style:normal;font-weight:900}.student>span,.roster>a>span{display:flex;flex-direction:column;gap:3px}.student strong{color:var(--ink);font-size:10px}.student small,.roster small{color:#8b96a8;font-size:8px}.mark-field{width:78px}.comment-field{min-width:240px}.status{font-size:9px;font-weight:800}.status.pass{color:var(--green)}.status.support{color:var(--red)}.status.pending{color:#7e899b}.sticky-actions{display:flex;justify-content:flex-end;padding:16px 22px;background:#fbfcfe;border-top:1px solid var(--line)}.split{display:grid;grid-template-columns:minmax(360px,.78fr) minmax(420px,1.22fr);gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;padding-top:22px}.form-grid.single{grid-template-columns:1fr}.form-grid .wide{grid-column:1/-1}.form-grid small{color:var(--muted);font-weight:500}.form-actions{display:flex;justify-content:flex-end;gap:9px}.roster{max-height:620px;overflow:auto;padding-top:12px}.roster>a{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:12px 8px;color:var(--ink);border-bottom:1px solid #edf0f5;text-decoration:none}.roster b{color:var(--blue);font-size:9px}.teacher-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(500px,1.4fr);gap:20px;align-items:start}.assignment{grid-row:span 2}.teacher-grid>.form-panel:last-child{grid-column:1}.select-teacher{margin:18px 0}.subject-checks{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:500px;overflow:auto;margin-bottom:18px}.subject-checks label{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;position:relative;padding:10px;border:1px solid #dfe6ef;border-radius:10px;cursor:pointer}.subject-checks input{position:absolute;opacity:0}.subject-checks i{display:grid;place-items:center;height:34px;color:#537092;background:#f1f5f9;border-radius:7px;font-size:8px;font-style:normal;font-weight:900}.subject-checks span{display:flex;flex-direction:column;gap:3px}.subject-checks strong{font-size:9px}.subject-checks small{color:var(--muted);font-size:8px}.subject-checks label.selected{border-color:#7eb5ef;background:#f4f9ff}.subject-checks label.selected i{color:#fff;background:var(--blue)}.subject-add{display:grid;grid-template-columns:1fr 72px 38px;gap:7px;margin-top:18px}.subject-add button{color:var(--navy);background:var(--gold);border:0;border-radius:8px;font-size:20px}.subject-list{max-height:300px;overflow:auto;margin-top:14px}.subject-list div{display:grid;grid-template-columns:50px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid #edf0f5;font-size:9px}.subject-list b{color:var(--blue)}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.report-tile{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:14px;padding:18px}.report-tile>i{display:grid;place-items:center;width:46px;height:46px;color:var(--blue);background:#eaf4ff;border-radius:50%;font-size:11px;font-style:normal;font-weight:900}.report-tile h3{margin:0 0 4px;font-size:13px}.report-tile p{margin:0 0 5px;color:var(--muted);font-size:9px}.report-tile span{font-size:8px;font-weight:800}.settings-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:20px}.settings-grid>.form-panel:last-child{grid-column:1/-1}.empty,.empty-card{display:flex;align-items:center;justify-content:center;min-height:130px;padding:20px;color:var(--muted);font-size:11px}.empty-card{background:#fff;border:1px solid var(--line);border-radius:14px}.toast{position:fixed;z-index:80;right:24px;top:102px;max-width:430px;display:grid;grid-template-columns:24px 1fr 20px;align-items:center;gap:9px;padding:13px 15px;border:1px solid;border-radius:12px;box-shadow:0 18px 45px rgba(20,33,61,.16);font-size:12px;font-weight:600}.toast.success{color:#126142;border-color:#bfe4d5;background:#f1fbf7}.toast.error{color:#943044;border-color:#efc8cf;background:#fff5f7}.toast>b{display:grid;place-items:center;width:22px;height:22px;color:#fff;background:currentColor;border-radius:50%}.toast button{color:currentColor;background:transparent;border:0;font-size:17px}
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px;background:radial-gradient(circle at 50% 15%,#f8fbff,#e8eff8)}.login-card,.installer-card{width:min(900px,100%);display:grid;grid-template-columns:1fr 1fr;overflow:hidden;background:#fff;border:1px solid #d9e2ed;border-radius:22px;box-shadow:0 25px 70px rgba(8,34,76,.15)}.installer-card{width:min(1040px,100%);grid-template-columns:.8fr 1.2fr}.login-visual,.installer-brand{min-height:510px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:45px;color:#fff;text-align:center;background:radial-gradient(circle at 60% 15%,#165bb1,transparent 38%),linear-gradient(145deg,#071c48,#0b3475)}.login-visual img,.installer-brand img{width:170px;height:185px;object-fit:contain;filter:drop-shadow(0 18px 25px rgba(0,0,0,.35))}.login-visual p,.installer-brand p{margin:12px 0 6px;color:var(--gold);font-size:9px;font-weight:900;letter-spacing:.14em}.login-visual h1,.installer-brand h1{margin:0 0 5px;font-size:23px}.login-visual span,.installer-brand span{color:#bed0e9;font-size:12px}.login-form,.installer-form{display:flex;flex-direction:column;justify-content:center;padding:50px}.installer-form{padding:38px 44px}.step-label{display:inline-flex;align-self:flex-start;padding:5px 8px;color:#155fae;background:#eaf4ff;border-radius:6px;font-size:8px;font-weight:900;letter-spacing:.12em}.login-form h2,.installer-form h2{margin:18px 0 9px;color:var(--navy);font-size:34px}.login-form>p,.installer-form>p{margin:0 0 22px;color:var(--muted);font-size:13px;line-height:1.7}.login-form form{display:flex;flex-direction:column;gap:15px}.login-form .btn{margin-top:5px}.login-form>small{margin-top:18px;color:var(--muted);font-size:9px}.alert{margin:0 0 16px;padding:11px 12px;border:1px solid;border-radius:8px;font-size:10px}.alert.error{color:#943044;border-color:#efc8cf;background:#fff5f7}.alert.success{color:#126142;border-color:#bfe4d5;background:#f1fbf7}.form-divider{padding:7px 0;color:var(--blue);border-bottom:1px solid var(--line);font-size:9px;font-weight:900;letter-spacing:.1em}
.print-page,.schedule-page{padding:30px;background:#edf2f8}.print-toolbar,.schedule-toolbar{width:min(900px,100%);display:flex;justify-content:space-between;margin:0 auto 16px}.report-card{width:min(900px,100%);margin:auto;padding:28px 30px 24px;color:#06235b;background:#fff;border:1px solid #cfd8e5;box-shadow:0 15px 45px rgba(12,35,80,.1)}.report-card>header{display:grid;grid-template-columns:78px 1fr 78px;align-items:center;text-align:center}.report-card>header img{width:66px;height:74px;object-fit:contain}.report-card h1{margin:0;font-size:18px}.report-card header p,.report-card header span{display:block;margin:2px 0;font-size:8px}.report-card header h2{margin:8px 0 6px;font-size:16px}.student-info{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:12px;padding:8px;border:1.5px solid #53a1f3;border-radius:9px}.photo{display:grid;place-items:center;width:56px;height:56px;border:1px solid #a9b5c5;border-radius:50%;color:#6e7b8e;font-size:7px}.info-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.info-columns dl{margin:0}.info-columns dl>div{display:grid;grid-template-columns:auto 1fr;gap:4px;margin:3px 0}.info-columns dt{font-size:7px;font-weight:900;text-transform:uppercase}.info-columns dd{margin:0;font-size:7px;font-weight:700}.report-domain{margin-top:9px;padding:5px 7px;border:1.5px solid #53a1f3;border-radius:6px 6px 0 0;font-size:8px;font-weight:900}.report-table{table-layout:fixed}.report-table th,.report-table td{padding:4px 5px;border:1px solid #53a1f3;font-size:7px;white-space:normal}.report-table th:first-child{width:22%}.report-table th:last-child{width:34%}.report-summary,.report-comparison{display:grid;grid-template-columns:repeat(5,1fr);border:1.5px solid #53a1f3}.report-summary{border-top:0}.report-comparison{margin-top:6px;border-radius:6px}.report-summary>div,.report-comparison>div{display:flex;flex-direction:column;gap:3px;padding:6px;border-right:1px solid #53a1f3}.report-summary>div:last-child,.report-comparison>div:last-child{border-right:0}.report-summary span,.report-comparison span{font-size:6px;font-weight:900;text-transform:uppercase}.report-summary strong,.report-comparison strong{font-size:8px}.comment-box{margin-top:7px;padding:7px;border:1.5px solid #53a1f3;border-radius:7px}.comment-box strong{font-size:8px}.comment-box p{min-height:15px;margin:5px 0 2px;font-size:8px}.comment-box i{display:block;height:1px;margin-top:8px;background:#aeb7c4}.next-term{margin-top:7px;overflow:hidden;border:1.5px solid #53a1f3;border-radius:7px}.next-term>strong{display:block;padding:4px 7px;background:#edf6ff;font-size:7px}.next-term p{margin:0;padding:5px 7px;border-top:1px solid #53a1f3;font-size:7px}.report-card>footer{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}.report-card>footer span{padding-top:5px;border-top:1px solid #4d8ed7;font-size:6px;font-weight:900;text-align:center}.report-card>footer .stamp{padding-top:18px}.schedule-toolbar{width:min(1500px,100%)}.schedule-toolbar>div{display:flex;gap:9px}.schedule-sheet{width:min(1500px,100%);margin:auto;background:#fff;border:1px solid var(--line);box-shadow:0 15px 45px rgba(12,35,80,.1)}.schedule-sheet>header{display:flex;align-items:center;gap:14px;padding:20px 24px;color:#fff;background:linear-gradient(90deg,var(--navy),#0d428e)}.schedule-sheet>header img{width:48px;height:52px;object-fit:contain}.schedule-sheet h1{margin:0 0 4px;font-size:17px}.schedule-sheet header p,.schedule-sheet header span{display:block;margin:2px 0;color:#c3d4ec;font-size:10px}.schedule-sheet td,.schedule-sheet th{padding:10px 8px;text-align:center}.schedule-sheet td:nth-child(2),.schedule-sheet th:nth-child(2){min-width:170px;text-align:left}.schedule-sheet td:nth-child(2){display:flex;flex-direction:column;gap:3px}.schedule-sheet td:nth-child(2) small{color:var(--muted);font-size:8px}.schedule-sheet td.low{color:var(--red);background:#fff7f8;font-weight:800}.schedule-sheet td:last-child span{display:inline-grid;place-items:center;width:28px;height:28px;color:#1760ae;background:#eaf4ff;border-radius:7px;font-weight:900}.schedule-sheet>footer{padding:12px 20px;color:var(--muted);border-top:1px solid var(--line);font-size:8px;text-align:right}
@media(max-width:1100px){.metric-grid{grid-template-columns:1fr 1fr}.dashboard-grid,.teacher-grid,.settings-grid{grid-template-columns:1fr}.assignment,.teacher-grid>.form-panel:last-child,.settings-grid>.form-panel:last-child{grid-column:auto;grid-row:auto}.split{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr}}
@media(max-width:820px){.app-shell{display:block}.sidebar{transform:translateX(-105%);transition:.22s}.menu-visible .sidebar{transform:translateX(0)}.menu-backdrop{position:fixed;inset:0;z-index:25;background:rgba(2,12,31,.55);border:0}.menu-visible .menu-backdrop{display:block}.mobile-close,.menu-open{display:block}.mobile-close{margin-left:auto;color:#fff;background:transparent;border:0;font-size:24px}.menu-open{width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff}.workspace{width:100%}.topbar{padding:14px 18px}.topbar>span{display:none}.content{padding:24px 18px 45px}.welcome{grid-template-columns:1fr}.welcome>img{display:none}.marks-toolbar{grid-template-columns:1fr}.report-card,.schedule-sheet{min-width:720px}.print-page,.schedule-page{overflow:auto}.login-card,.installer-card{grid-template-columns:1fr}.login-visual,.installer-brand{min-height:300px}.login-visual img,.installer-brand img{width:120px;height:130px}}
@media(max-width:560px){.metric-grid{grid-template-columns:1fr}.form-grid,.subject-checks{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.welcome{padding:30px 24px}.report-grid{grid-template-columns:1fr}.report-tile{grid-template-columns:44px 1fr}.report-tile .btn{grid-column:1/-1}.login-form,.installer-form{padding:34px 26px}}
@media print{@page{size:A4 portrait;margin:8mm}body{background:#fff!important}.print-toolbar,.schedule-toolbar{display:none!important}.print-page,.schedule-page{padding:0}.report-card,.schedule-sheet{width:100%!important;min-width:0!important;padding:0!important;border:0!important;box-shadow:none!important}.report-table th,.report-table td{padding:3px 4px;font-size:6.5px}.schedule-page{@page{size:A4 landscape;margin:7mm}}.schedule-sheet th,.schedule-sheet td{padding:5px 3px;font-size:6px}.schedule-sheet>header{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.metric-grid i.red{background:var(--red)}.auto-comment{min-width:310px;height:auto;min-height:54px;color:#52617a;background:#f8fafc;line-height:1.45;resize:none}.profile-grid{display:grid;grid-template-columns:minmax(240px,.62fr) minmax(420px,1.38fr);gap:20px;align-items:start}.profile-grid>.form-panel:last-child{grid-column:2}.profile-summary{grid-row:span 2;padding:30px;text-align:center}.profile-avatar{width:88px;height:88px;display:grid;place-items:center;margin:0 auto 16px;color:var(--navy);background:linear-gradient(145deg,#ffdc5b,#ffc21f);border:6px solid #fff8da;border-radius:50%;font-size:23px;font-weight:900}.profile-summary h2{margin:0;color:var(--navy);font-size:20px}.profile-summary>p{margin:5px 0 22px;color:var(--blue);font-size:10px;font-weight:800;text-transform:uppercase}.profile-summary dl{margin:0;text-align:left}.profile-summary dl>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #edf0f5}.profile-summary dt{color:var(--muted);font-size:9px}.profile-summary dd{margin:0;font-size:10px;font-weight:800;text-align:right}.profile-subjects{display:flex;flex-direction:column;gap:7px;margin-top:22px;text-align:left}.profile-subjects>strong{margin-bottom:3px;color:var(--navy);font-size:10px;text-transform:uppercase}.profile-subjects>span{padding:8px 10px;color:#155fae;background:#eef6ff;border-radius:7px;font-size:9px;font-weight:700}.profile-subjects>small{color:var(--muted)}.payroll-register,.payment-history{overflow:hidden;margin-top:20px}.payroll-register>.panel-head,.payment-history>.panel-head{padding:20px 24px}.payroll-register td:first-child{min-width:180px}.payroll-register td:first-child,.payment-history td:first-child{display:flex;flex-direction:column;gap:4px}.payroll-register td small{color:var(--muted);font-size:8px}.payment-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:900}.payment-status.paid{color:#126142;background:#eaf8f2}.payment-status.pending{color:#8a6310;background:#fff7d7}.signature-cell{min-width:110px}.signature-cell i{display:block;width:95px;margin-top:18px;border-top:1px solid #7c8799}.table-link{display:block;margin:4px 0;color:var(--blue);font-size:9px;font-weight:800;text-decoration:none}.payment-form{max-width:920px;margin:20px auto 0}.payment-preview{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;color:#fff;background:linear-gradient(90deg,var(--navy),var(--navy2));border-radius:9px}.payment-preview span{font-size:10px}.payment-preview strong{font-size:14px}.auto-preview{display:flex;flex-direction:column;gap:7px;margin:18px 0 0;padding:16px;background:#f5f9ff;border:1px solid #dbeaf9;border-radius:10px}.auto-preview span{color:var(--blue);font-size:8px;font-weight:900;text-transform:uppercase}.auto-preview p{margin:0 0 8px;color:#40506b;font-size:11px;line-height:1.6}.subject-subhead th{color:#77859b;background:#fbfcfe;font-size:6px}.subject-grade{color:var(--blue);font-weight:900}.report-table-wrap{overflow-x:auto}.payslip-page{padding:30px;background:#edf2f8}.payslip-toolbar{width:min(900px,100%)}.payslip-sheet{width:min(900px,100%);margin:auto;padding:34px;color:#10264f;background:#fff;border:1px solid #cfd8e5;box-shadow:0 15px 45px rgba(12,35,80,.1)}.payslip-sheet>header{display:grid;grid-template-columns:86px 1fr 86px;align-items:center;padding-bottom:20px;border-bottom:3px solid var(--navy);text-align:center}.payslip-sheet>header img{width:72px;height:80px;object-fit:contain}.payslip-sheet h1{margin:0;color:var(--navy);font-size:19px}.payslip-sheet header p{margin:4px 0;color:var(--muted);font-size:9px}.payslip-sheet header h2{margin:12px 0 4px;font-size:16px}.payslip-sheet header span{font-size:10px;font-weight:800}.payslip-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.payslip-meta>div,.payslip-payment>div{display:flex;flex-direction:column;gap:5px;padding:14px;background:#f7f9fc;border:1px solid var(--line);border-radius:9px}.payslip-meta span,.payslip-payment span{color:var(--blue);font-size:7px;font-weight:900;letter-spacing:.08em}.payslip-meta strong,.payslip-payment strong{font-size:11px}.payslip-meta small{color:var(--muted);font-size:8px;line-height:1.45}.payslip-calculation{margin-top:18px}.payslip-calculation h3{margin:0;padding:10px 12px;color:#fff;background:var(--navy);font-size:11px}.payslip-calculation table{white-space:normal}.payslip-calculation td:last-child,.payslip-calculation th:last-child{text-align:right}.payslip-calculation .net-row td{color:var(--navy);background:#fff6ce;font-size:12px;font-weight:900}.payslip-payment{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.payslip-notes{margin-top:16px;padding:13px;border:1px solid var(--line);border-radius:8px}.payslip-notes strong{font-size:9px}.payslip-notes p{margin:5px 0 0;font-size:9px}.payslip-signatures{display:grid;grid-template-columns:1fr 1fr 130px;gap:30px;align-items:end;margin-top:50px}.payslip-signatures>div:not(.payslip-stamp){display:flex;flex-direction:column;gap:5px}.payslip-signatures i{border-top:1px solid #44536b}.payslip-signatures strong{font-size:8px}.payslip-signatures span,.payslip-signatures small{font-size:8px}.payslip-stamp{height:88px;display:grid;place-items:center;border:1px dashed #7a8798;border-radius:50%;font-size:8px;text-align:center}.payslip-sheet>footer{margin-top:28px;padding-top:10px;color:var(--muted);border-top:1px solid var(--line);font-size:7px;text-align:center}
@media(max-width:1100px){.profile-grid{grid-template-columns:1fr}.profile-summary{grid-row:auto}.profile-grid>.form-panel:last-child{grid-column:auto}}
@media(max-width:820px){.report-card{min-width:0}.report-table{min-width:700px}.print-page{overflow-x:hidden}.payslip-page{padding:18px}.payslip-sheet{padding:24px}.payslip-meta,.payslip-payment{grid-template-columns:1fr}.payslip-signatures{grid-template-columns:1fr 1fr}.payslip-stamp{grid-column:1/-1;width:130px;justify-self:center}.section-title{align-items:flex-start;flex-direction:column}.section-title>b{align-self:flex-start}.payroll-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.marks-table{overflow:visible}.marks-table table,.marks-table tbody,.marks-table tr,.marks-table td{display:block;width:100%}.marks-table thead{display:none}.marks-table tr{margin:12px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 5px 16px rgba(20,33,61,.05)}.marks-table td{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #edf0f5;white-space:normal}.marks-table td:last-child{border-bottom:0}.marks-table td:before{content:attr(data-label);color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase}.marks-table .student,.marks-table .comment-field,.marks-table .mark-field{min-width:0;width:100%}.sticky-actions{position:sticky;bottom:0;z-index:4}.payment-preview{align-items:flex-start;flex-direction:column}.payslip-sheet>header{grid-template-columns:64px 1fr}.payslip-sheet>header img{width:58px;height:64px}.payslip-sheet h1{font-size:15px}.payslip-signatures{grid-template-columns:1fr}.payslip-stamp{grid-column:auto}.payroll-metrics{grid-template-columns:1fr}.schedule-toolbar>div,.print-toolbar{flex-wrap:wrap}}
@media(max-width:480px){.content{padding:20px 12px 40px}.topbar{padding:12px}.topbar h1{font-size:18px}.welcome h2,.section-title h2{font-size:27px}.dashboard-grid>.panel,.form-panel,.profile-summary{padding:20px 16px}.toast{left:12px;right:12px;top:80px}.payslip-page{padding:8px}.payslip-sheet{padding:16px}.payslip-sheet>header{grid-template-columns:1fr}.payslip-sheet>header img{margin:auto}.payslip-calculation{overflow:auto}.payslip-calculation table{min-width:520px}.payslip-signatures{margin-top:34px}}
@media print{.payslip-page{padding:0}.payslip-toolbar{display:none!important}.payslip-sheet{width:100%;padding:0;border:0;box-shadow:none}.payslip-sheet,.payslip-sheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.app-shell .sidebar,.app-shell .topbar,.toast{display:none!important}.app-shell,.workspace{display:block!important}.content{padding:0}.payroll-register{border:0;box-shadow:none}.payroll-register .panel-head{padding:0 0 10px}.payroll-register table{white-space:normal}.payroll-register th,.payroll-register td{padding:5px 3px;font-size:6px}.payment-form,.payroll-metrics,.section-title .btn{display:none!important}}
.settings-grid>.form-panel:last-child{grid-column:auto}
.sidebar nav{overflow-y:auto}.payslip-sheet table{white-space:normal}
@media(max-width:820px){.student-info{grid-template-columns:1fr}.photo{margin:auto}.info-columns{grid-template-columns:1fr;gap:3px}.report-summary,.report-comparison{grid-template-columns:1fr 1fr}.report-summary>div,.report-comparison>div{border-bottom:1px solid #53a1f3}.report-card>header{grid-template-columns:64px 1fr}.report-card{padding:20px 16px}.print-toolbar{padding:0 4px}}
@media print{.report-table-wrap{overflow:visible}}
