:root{--p:#4f46e5;--pd:#3730a3;--pl:#eef2ff;--bg:#f6f7fb;--tx:#1e1b4b;--mu:#6b7280;--bd:#e5e7eb;--ok:#047857;--bad:#b91c1c;--warn:#b45309;--r:12px}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--tx);line-height:1.5}
[dir=rtl] body{font-family:"Jameel Noori Nastaleeq","Noto Nastaliq Urdu","Segoe UI",Tahoma,serif;line-height:2}
a{color:var(--p)}h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{margin-top:0}
.i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px;flex:none}
.btn{display:inline-flex;gap:.4rem;align-items:center;background:var(--p);color:#fff;border:1px solid var(--p);border-radius:10px;padding:.55rem 1rem;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--pd)}.btn.ghost{background:#fff;color:var(--p)}.btn.ghost:hover{background:var(--pl)}.btn.small{padding:.3rem .7rem;font-size:.85rem}
input,select{width:100%;padding:.55rem .7rem;border:1px solid var(--bd);border-radius:10px;font:inherit;background:#fff;margin-top:.25rem}
label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.8rem}
.card{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:1.2rem;margin-bottom:1rem}
.narrow{max-width:420px;margin:2rem auto}.narrow-l{max-width:420px}.center{text-align:center}
.row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.row label{margin:0;flex:1;min-width:160px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.wide{grid-column:1/-1}
.head{display:flex;justify-content:space-between;align-items:center;gap:1rem}
table{width:100%;border-collapse:collapse}th,td{padding:.6rem .5rem;text-align:start;border-bottom:1px solid var(--bd);vertical-align:middle}th{font-size:.8rem;color:var(--mu);text-transform:uppercase}
.muted{color:var(--mu)}form.inline{display:inline-flex;gap:.4rem;margin:.1rem}form.inline input{width:140px;margin:0}
.flash{padding:.7rem 1rem;border-radius:10px;margin-bottom:1rem}.flash.ok{background:#ecfdf5;color:var(--ok)}.flash.error{background:#fef2f2;color:var(--bad)}
.badge{padding:.15rem .6rem;border-radius:99px;font-size:.8rem;font-weight:700}.badge-ok{background:#d1fae5;color:var(--ok)}.badge-bad{background:#fee2e2;color:var(--bad)}.badge-warn{background:#fef3c7;color:var(--warn)}.badge-info{background:var(--pl);color:var(--pd)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}.stat{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:1.1rem;text-decoration:none;color:inherit}.stat span{color:var(--mu);font-size:.9rem}.stat b{display:block;font-size:2rem;color:var(--p)}
dl{display:grid;grid-template-columns:160px 1fr;gap:.5rem 1rem;margin:0}dt{color:var(--mu)}dd{margin:0}
.hp{position:absolute;inset-inline-start:-9999px;height:0;overflow:hidden}
.app{display:flex;min-height:100vh}
.side{width:236px;background:#1e1b4b;color:#c7d2fe;display:flex;flex-direction:column;flex:none}
.brand{padding:1.2rem;border-bottom:1px solid #312e81}.brand b{display:block;color:#fff;font-size:1.1rem}.brand small{color:#a5b4fc}
.side nav{padding:.6rem;flex:1}.side nav a{display:flex;gap:.7rem;align-items:center;padding:.65rem .8rem;border-radius:10px;color:#c7d2fe;text-decoration:none;margin-bottom:.15rem}
.side nav a:hover{background:#312e81}.side nav a.on{background:var(--p);color:#fff}.side-foot{padding:1rem;font-size:.75rem;color:#818cf8}
.main{flex:1;min-width:0}.top{display:flex;align-items:center;gap:1rem;padding:.7rem 1.2rem;background:#fff;border-bottom:1px solid var(--bd)}
.who{margin-inline-end:auto;font-weight:600}.top form{margin:0}.lang{font-weight:600;text-decoration:none}.burger{display:none;background:none;border:0;cursor:pointer;color:var(--tx)}
.content{padding:1.4rem;max-width:1100px}
.pub-top{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fff;border-bottom:1px solid var(--bd)}.logo{font-weight:800;font-size:1.2rem;color:var(--p);text-decoration:none}
.pub-main{padding:1rem;min-height:70vh}.pub-foot{text-align:center;color:var(--mu);padding:1.5rem;font-size:.85rem}
.hero{text-align:center;padding:4rem 1rem}.hero h1{font-size:2.4rem;color:var(--p)}
@media(max-width:800px){.side{position:fixed;inset-block:0;inset-inline-start:0;z-index:20;transform:translateX(-100%);transition:transform .2s}[dir=rtl] .side{transform:translateX(100%)}.side.open{transform:none}.burger{display:block}.grid{grid-template-columns:1fr}table{display:block;overflow-x:auto}}
textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--bd);border-radius:10px;font:inherit;background:#fff;margin-top:.25rem}
.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:0 0 1rem}.tabs a{padding:.35rem .8rem;border:1px solid var(--bd);border-radius:99px;background:#fff;text-decoration:none;font-size:.9rem}.tabs a.on{background:var(--p);color:#fff;border-color:var(--p)}
input.rd{width:20px;height:20px;margin:0}.pre{white-space:pre-wrap}.receipt{max-width:520px;margin:2rem auto}
@media print{.noprint{display:none}body{background:#fff}}

.chg{background:#fff7e0}

.flash.vas{background:#fff7e6;color:#7a4b00;border:1px solid #fde4ad;display:flex;gap:.8rem;align-items:center;justify-content:space-between;margin:0;border-radius:0}
/* ---- v0.5 look: design tokens of the showcase prototype (blue primary, dark navy sidebar, Inter, soft shadows) ---- */
:root{--p:#2563EB;--pd:#1D4ED8;--pl:#EFF6FF;--bg:#F4F7FD;--tx:#0F172A;--mu:#64748B;--bd:#E5EBF4;--ok:#15803D;--bad:#B91C1C;--warn:#B45309;--r:14px;--shadow:0 1px 3px rgba(15,23,42,.07),0 6px 18px rgba(15,23,42,.05)}
body{font-size:14px}
h1{color:#0B2A66;font-weight:800}
.card,.stat{border:0;box-shadow:var(--shadow)}
.btn{border-radius:10px}.btn.ghost{border-color:#D8E0EE;color:#1E293B}.btn.ghost:hover{background:#F1F5FB}
input,select,textarea{border-color:#D8E0EE}input:focus,select:focus,textarea:focus{outline:2px solid #BFDBFE;border-color:var(--p)}
.side{width:244px;background:linear-gradient(180deg,#0B1B3F,#0F172A 60%);color:#CFE0F7}
.brand{border-bottom:1px solid rgba(255,255,255,.08)}.brand small{color:#93C5FD}
.side nav a{color:#CFE0F7;font-weight:500;font-size:13.5px}.side nav a:hover{background:rgba(255,255,255,.07)}.side nav a.on{background:var(--p);color:#fff;font-weight:600}
.side-foot{color:#93A9CF}
.top{min-height:64px;position:sticky;top:0;z-index:30;border-bottom-color:var(--bd)}
.who{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:var(--tx)}
.who .av{width:32px;height:32px;border-radius:50%;background:var(--p);color:#fff;display:inline-grid;place-items:center;font-weight:700;font-size:13px}
.stat b{color:#0B2A66;font-weight:800}
th{letter-spacing:.3px}
.badge-ok{background:#ECFDF3;color:#15803D}.badge-bad{background:#FEF2F2;color:#B91C1C}.badge-warn{background:#FFFBEB;color:#B45309}.badge-info{background:#EFF6FF;color:#1D4ED8}
.tabs a.on{background:var(--p);border-color:var(--p)}
.logo,.hero h1{color:#0B2A66}
@media(max-width:800px){.content{padding:1rem}.side{width:260px;z-index:40}}
/* ---- v0.8 dashboard ---- */
.brand{display:flex;align-items:center;gap:.7rem}.school-logo{width:40px;height:40px;object-fit:contain;border-radius:10px;background:#fff;flex:none}.school-logo.big{width:96px;height:96px}
.logo-prev{display:flex;align-items:center;gap:1rem;margin:1rem 0}
.dash-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.dash-head .school-logo{width:56px;height:56px}.dh-text{flex:1;min-width:200px}.dh-text h1{margin:0 0 .2rem}.dh-text p{margin:0}
.dh-chips{display:flex;gap:.5rem;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .8rem;border-radius:999px;background:var(--pl);color:var(--pd);font-weight:600;font-size:13px;text-decoration:none}.chip .i{width:16px;height:16px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1rem}.kpis .stat{display:flex;gap:.9rem;align-items:flex-start}.kpis .stat b{font-size:1.7rem;line-height:1.15}.kpis .stat small{display:block;margin-top:.25rem;font-size:.75rem;line-height:1.3}
.ico{width:44px;height:44px;border-radius:12px;display:inline-grid;place-items:center;flex:none;font-style:normal}.ico .i{width:22px;height:22px}
.ic1{background:#EFF6FF;color:#2563EB}.ic2{background:#F5F3FF;color:#7C3AED}.ic3{background:#ECFDF5;color:#059669}.ic4{background:#FFFBEB;color:#D97706}.ic5{background:#FFF1F2;color:#E11D48}.ic6{background:#F0F9FF;color:#0284C7}
.i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.qa-row{display:flex;gap:.6rem;flex-wrap:wrap}.qa h2{margin:0 0 .7rem;font-size:1rem}
.qa-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:10px;color:#fff;font-weight:600;text-decoration:none;font-size:13.5px}.qa-btn:hover{filter:brightness(1.08)}
.qa1{background:#059669}.qa2{background:#2563EB}.qa3{background:#D97706}.qa4{background:#7C3AED}.qa5{background:#0891B2}.qa6{background:#4F46E5}.qa7{background:#DB2777}
.dash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;grid-auto-flow:dense}.dash-grid .card{margin:0}.dash-grid .w2{grid-column:span 2}
.dash-grid .head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.6rem}.dash-grid h2{margin:0;font-size:1rem}
.more{font-size:12.5px;color:var(--p);text-decoration:none;font-weight:600}
.empty{color:var(--mu);margin:1.2rem 0;text-align:center}
.legend{display:flex;gap:1rem;font-size:12.5px;color:var(--mu);margin-bottom:.3rem}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:.4rem;vertical-align:baseline}
.chart{width:100%;height:auto;display:block}.chart .grid{stroke:#E5EBF4;stroke-width:1}.chart .ax{fill:#64748B;font-size:10px}.chart .val{fill:#0F172A;font-size:11px;font-weight:700}
.scrollx{overflow-x:auto}
.c-ok{fill:#16A34A;background:#16A34A}.c-bad{fill:#EF4444;background:#EF4444}.c-warn{fill:#F59E0B;background:#F59E0B}.c-p{fill:#2563EB;background:#2563EB}.c-pink{fill:#EC4899;background:#EC4899}.c-grey{fill:#CBD5E1;background:#CBD5E1}
svg .c-ok,svg .c-bad,svg .c-warn,svg .c-p,svg .c-pink,svg .c-grey{background:none}.dot.c-ok,.dot.c-bad,.dot.c-warn,.dot.c-p,.dot.c-pink,.dot.c-grey{fill:none}
.chart .area{fill:rgba(22,163,74,.15)}.chart .ln{stroke:#16A34A;stroke-width:2}.chart .pt{fill:#16A34A}
.donut{width:150px;height:150px;flex:none}.d-track{stroke:#EEF2F7}.d-big{font-size:7px;font-weight:800;fill:#0B2A66}.d-sub{font-size:2.6px;fill:#64748B}
.donut circle{transform-origin:21px 21px}
.sg-ok{stroke:#16A34A}.sg-warn{stroke:#F59E0B}.sg-bad{stroke:#EF4444}.sg-p{stroke:#2563EB}
.sg1{stroke:#2563EB}.sg2{stroke:#06B6D4}.sg3{stroke:#16A34A}.sg4{stroke:#F59E0B}.sg5{stroke:#EF4444}.sg6{stroke:#8B5CF6}.sg7{stroke:#CBD5E1}
.dt1{background:#2563EB}.dt2{background:#06B6D4}.dt3{background:#16A34A}.dt4{background:#F59E0B}.dt5{background:#EF4444}.dt6{background:#8B5CF6}.dt7{background:#CBD5E1}
.donut-row{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}.keys{list-style:none;margin:0;padding:0;flex:1;min-width:160px}.keys li{display:flex;align-items:center;gap:.3rem;padding:.3rem 0}.keys li span{flex:1}.keys li b{font-weight:700}
.small{font-size:12px}
.feed,.tasks,.sched{list-style:none;margin:0;padding:0}.feed li{display:flex;gap:.7rem;align-items:flex-start;padding:.55rem 0;border-bottom:1px solid var(--bd)}.feed li:last-child{border:0}.feed li>div{flex:1;min-width:0}.feed p{margin:.1rem 0 0;font-size:12.5px}.feed time{font-size:11.5px;white-space:nowrap}.feed .ico{width:36px;height:36px}
.tasks a{display:flex;align-items:center;gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--bd);color:inherit;text-decoration:none}.tasks li:last-child a{border:0}.tasks a span{flex:1}.tasks .i{color:var(--p)}
.count{font-style:normal;font-weight:700;background:#FEF2F2;color:#B91C1C;border-radius:8px;padding:.1rem .55rem;font-size:12.5px}
.sched li{display:flex;align-items:center;gap:.7rem;padding:.5rem 0;border-bottom:1px solid var(--bd)}.sched li:last-child{border:0}.sched time{font-weight:600;color:var(--pd);min-width:3rem}.sched li>div{flex:1;display:flex;flex-direction:column}
.num{text-align:end}
@media(max-width:1000px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dash-grid{grid-template-columns:1fr}.dash-grid .w2{grid-column:auto}.qa-btn{flex:1 1 45%;justify-content:center}.donut{width:130px;height:130px}}

/* ---- v0.9 mockup shell: top bar, sidebar quick actions, page head, students screen ---- */
.top{gap:.9rem}.top .grow{flex:1}.top .who{margin-inline-end:0}
.yr{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .8rem;border:1px solid #D8E0EE;border-radius:10px;background:#fff;font-weight:600;font-size:13px;white-space:nowrap}
.gsearch{display:flex;align-items:center;gap:.5rem;background:#F1F5FB;border:1px solid #E5EBF4;border-radius:12px;padding:0 .8rem;min-width:200px;max-width:340px;flex:1;color:var(--mu)}
.gsearch input{border:0;background:transparent;margin:0;padding:.55rem 0;outline:0}.gsearch input:focus{outline:0}
.bell{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#F1F5FB;color:var(--tx);text-decoration:none}
.who .wt{display:flex;flex-direction:column;line-height:1.2}.who .wt b{font-size:13px}.who .wt small{color:var(--mu);font-size:11.5px}
.side-qa{margin:.4rem .7rem .6rem;padding:.8rem;border-radius:14px;background:rgba(255,255,255,.05);display:flex;flex-direction:column;gap:.5rem}
.side-qa b{font-size:13px;color:#fff;margin-bottom:.1rem}
.side-qa a{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;border-radius:10px;color:#fff;text-decoration:none;font-weight:600;font-size:13px}
.side-qa a:hover{filter:brightness(1.1)}.sq1{background:#16A34A}.sq2{background:#2563EB}
.content{max-width:1320px}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.page-head h1{margin:0 0 .15rem}.page-head p{margin:0}
.ph-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.kpis6{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:1rem}.kpis6 .stat{display:flex;gap:.9rem;align-items:flex-start}.kpis6 .stat b{font-size:1.7rem;line-height:1.15}.kpis6 .stat small{display:block;font-size:.75rem}
.st-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:1rem;align-items:start}
.st-side .card h2{font-size:1rem;margin:0 0 .6rem}
.qlist{list-style:none;margin:0;padding:0}.qlist a{display:flex;align-items:center;gap:.7rem;padding:.5rem 0;color:var(--tx);text-decoration:none;font-weight:500;font-size:13.5px}.qlist a:hover{color:var(--p)}.qlist .ico{width:34px;height:34px;border-radius:10px}.qlist .ico .i{width:18px;height:18px}
.filters{display:flex;gap:.7rem;align-items:flex-end;flex-wrap:wrap}.filters label{margin:0;min-width:130px}.filters small{display:block;color:var(--mu);font-weight:500}.filters .fsearch{flex:2;min-width:200px;display:flex;align-items:center;gap:.5rem;border:1px solid #D8E0EE;border-radius:10px;padding:0 .7rem;background:#fff}.filters .fsearch input{border:0;margin:0;outline:0}
.tcard{padding:.4rem 1rem 1rem}.stt th{white-space:nowrap}.stt td{white-space:nowrap}.stt .code{font-weight:600;text-decoration:none}
.pn{display:inline-flex;align-items:center;gap:.6rem;font-weight:600}.av.sm,.av.sm{width:30px;height:30px;border-radius:50%;background:var(--pl);color:var(--pd);display:inline-grid;place-items:center;font-style:normal;font-weight:700;font-size:12.5px}
.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;color:var(--mu);text-decoration:none}.icon-btn:hover{background:var(--pl);color:var(--p)}
.pager{display:flex;align-items:center;gap:1rem;justify-content:space-between;flex-wrap:wrap;padding-top:.8rem}
.pg{display:flex;gap:.3rem;align-items:center}.pg a,.perp a{display:inline-grid;place-items:center;min-width:32px;height:32px;padding:0 .4rem;border:1px solid var(--bd);border-radius:8px;text-decoration:none;color:var(--tx);font-size:13px}.pg a.on,.perp a.on{background:var(--p);color:#fff;border-color:var(--p)}.perp{display:flex;gap:.3rem;align-items:center}
.st-trio{display:grid;grid-template-columns:1.3fr 1fr 1.2fr;gap:1rem;margin-top:1rem}.st-trio .card{margin:0}.st-trio h2{font-size:1rem;margin:0}.st-trio .head{margin-bottom:.6rem}
.mini{font-size:13px}.mini td,.mini th{padding:.4rem .3rem}
.imp-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.imp-grid h2{font-size:1rem}
.warnbox{background:#FFFBEB;color:#92400E;border:1px solid #FDE68A}
code{background:#F1F5FB;padding:.05rem .35rem;border-radius:6px;font-size:12.5px}
@media(max-width:1100px){.st-layout{grid-template-columns:1fr}.st-trio{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.hide-s,.yr,.who .wt{display:none}.gsearch{min-width:0}.st-trio,.imp-grid{grid-template-columns:1fr}.top{gap:.5rem;padding:.6rem .8rem}}
.hbar{display:grid;grid-template-columns:minmax(70px,1fr) 2fr auto;gap:.6rem;align-items:center;padding:.35rem 0;font-size:13px}.hbar i{display:block;height:8px;border-radius:99px;background:#EEF2F7;overflow:hidden}.hbar u{display:block;height:100%;background:var(--p);border-radius:99px}.hbar b{min-width:1.6rem;text-align:end}
.crumbs{font-size:13px;color:var(--mu);margin-bottom:.6rem}.crumbs a{text-decoration:none}
.inst-head{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}.inst-head h1{margin:0 0 .2rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.ih-main{flex:1;min-width:220px}.ih-main p{margin:0}
.ih-meta{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:.6rem;font-size:13px}.ih-meta span{display:inline-flex;gap:.4rem;align-items:center}
.av.big{width:84px;height:84px;border-radius:20px;background:var(--pl);color:var(--pd);display:inline-grid;place-items:center;font-style:normal;font-weight:800;font-size:28px}
.mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.6rem}.mod{border:1px solid var(--bd);border-radius:12px;padding:.7rem;text-align:center;display:flex;flex-direction:column;gap:.3rem;font-size:13px}.mod span{font-size:11.5px;font-weight:700;color:var(--mu);background:#F1F5F9;border-radius:99px;padding:.1rem .5rem;align-self:center}.mod.on span{background:#ECFDF3;color:#15803D}
.purpose{background:#F0FDF4}.purpose h2{display:flex;gap:.4rem;align-items:center;color:#15803D}
.acts{white-space:normal}.acts form.inline input{width:120px}
.monthnav{display:flex;gap:.4rem;align-items:center}.monthnav input{width:auto;margin:0}
.hbar.rec.g u{background:#16A34A}.hbar.rec.y u{background:#F59E0B}.hbar.rec.r u{background:#EF4444}
.bad{color:#B91C1C;font-weight:700}
.qbtn{display:flex;align-items:center;gap:.7rem;width:100%;padding:.5rem 0;background:none;border:0;font:inherit;font-weight:500;font-size:13.5px;color:var(--tx);text-decoration:none;cursor:pointer;text-align:start}.qbtn:hover{color:var(--p)}.qbtn .ico{width:34px;height:34px;border-radius:10px}.qbtn .ico .i{width:18px;height:18px}
.fee-trio{grid-template-columns:1.4fr 1fr 1fr;margin:0 0 1rem}
@media(max-width:1100px){.fee-trio{grid-template-columns:1fr}}
a.hbar{text-decoration:none;color:inherit}.ctr{text-align:center}
.stepper{display:flex;gap:1rem;flex-wrap:wrap;list-style:none;margin:0 0 1rem;padding:.8rem 1rem;background:#fff;border-radius:var(--r);box-shadow:var(--shadow)}.stepper li{display:flex;align-items:center;gap:.5rem;font-size:13px;font-weight:600;color:var(--mu)}.stepper i{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid #CBD5E1;font-style:normal;font-size:12px}.stepper li:first-child{color:var(--tx)}.stepper li:first-child i{background:var(--p);border-color:var(--p);color:#fff}
.adform fieldset{border:0;padding:1.2rem}.adform legend{font-weight:800;color:#0B2A66;font-size:1.05rem;padding:0 .4rem}
.ih-facts{display:flex;gap:1.6rem;flex-wrap:wrap;margin-top:.5rem}.ih-facts small{display:block;color:var(--mu);font-size:12px}.ih-facts b{font-size:1.05rem;color:#0B2A66}.ih-facts em{display:block;font-style:normal;color:var(--mu);font-size:12px}
.prof-trio{grid-template-columns:1fr 1fr 1fr;margin:0 0 1rem}@media(max-width:1100px){.prof-trio{grid-template-columns:1fr}}
.swlist{list-style:none;margin:.6rem 0;padding:0}.swlist li{padding:.35rem 0;border-bottom:1px solid var(--bd)}.swlist label{display:flex;align-items:center;gap:.6rem;margin:0;font-weight:500}
.card table:not(.mini):not(.stt) tr:hover td{background:#F8FAFD}
.notice .head{justify-content:flex-start;gap:.8rem}.notice .head h2{flex:1}.notice .head form{margin:0}
.card>table th,.tcard th{background:#F8FAFD}
.banner{background:linear-gradient(120deg,#0B2A66,#2563EB);color:#fff;border-radius:16px;padding:1.4rem 1.6rem;margin-bottom:1rem}.banner h1{color:#fff;margin:0 0 .3rem}.banner p{margin:0;color:#DBEAFE}
.kids{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}.kid{display:flex;gap:.9rem;align-items:center;text-decoration:none;color:inherit;margin:0}.kid b{display:block}.kid span,.kid small{display:block;font-size:12.5px}.kids.small .kid{padding:.7rem 1rem}.kid.sel{outline:2px solid var(--p)}
.duebox{border-radius:12px;padding:.8rem 1rem;margin-bottom:.6rem}.duebox b{display:block;font-size:1.5rem}.duebox.bad{background:#FEF2F2;color:#B91C1C}.duebox.ok{background:#ECFDF3;color:#15803D}

.pub-top .logo img{display:block;height:34px;width:auto}

/* ---- v0.11: marks entry, results, staff profile, class timetable ---- */
.mk-layout,.tt-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start}.mk-layout>.card,.tt-main .card{margin:0 0 1rem}
.mk-side .card{margin:0 0 1rem}.mk-side h2,.tt-side h2{font-size:1rem;margin:0 0 .6rem}.tt-side .card{margin:0 0 1rem}
.mk-meta{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem}.mk-meta dd{text-align:end}
.mk-in{width:6rem;margin:0;padding:.35rem .5rem;text-align:center;font-weight:700}
.mk-legend{margin:.6rem 0}.mk-legend span{display:inline-flex;align-items:center}
.mk-warn{margin:0;padding-inline-start:1.1rem}.mk-warn li{margin:.2rem 0;font-size:13px}
.mk-review label{margin-bottom:.5rem}
.rs-trio{grid-template-columns:1fr 1fr 1fr;margin-bottom:1rem}.rs-trio .donut{width:130px;height:130px}
.ih-contact{font-size:13px}.ih-contact p{margin:.2rem 0;display:flex;gap:.4rem;align-items:center}
table.tt{table-layout:fixed;min-width:680px}.tt th,.tt td{text-align:center;padding:.5rem .4rem;font-size:13px}.tt td select{margin:.15rem 0;font-size:12px;padding:.3rem}
.tt .tcell{border-radius:8px;border:3px solid #fff}.tt .tcell b{display:block;font-size:13px}.tt .tcell small{color:#475569}
.tt-break th,.tt-break td{background:#F1F5F9;color:#64748B;font-weight:700;letter-spacing:.4px;text-transform:uppercase;font-size:12px}
.tc0{background:#DBEAFE}.tc1{background:#DCFCE7}.tc2{background:#FCE7F3}.tc3{background:#FEF3C7}.tc4{background:#EDE9FE}.tc5{background:#CFFAFE}.tc6{background:#FFE4E6}.tc7{background:#E2E8F0}
.tcd0{background:#3B82F6}.tcd1{background:#22C55E}.tcd2{background:#EC4899}.tcd3{background:#F59E0B}.tcd4{background:#8B5CF6}.tcd5{background:#06B6D4}.tcd6{background:#F43F5E}.tcd7{background:#64748B}
.rcard{max-width:720px;border:2px solid var(--p)}.rc-head{display:flex;gap:1rem;align-items:center;justify-content:center;text-align:center;margin-bottom:.6rem}.rc-head h2{margin:0;color:#0B2A66}.rc-head p{margin:0}
.rc-dl{margin:.6rem 0 1rem}.rc-table th,.rc-table td{border:1px solid var(--bd)}.rc-table th{background:#F8FAFD}
.rc-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1rem 0;text-align:center}.rc-sum div{background:#F8FAFD;border-radius:10px;padding:.6rem}.rc-sum small{display:block;color:var(--mu)}.rc-sum b{font-size:1.2rem;color:#0B2A66}
.rc-ok{color:#15803D!important}.rc-bad{color:#B91C1C!important}
.rc-sign{display:flex;justify-content:space-between;gap:2rem;margin:2.2rem 0 1rem}.rc-sign span{flex:1;border-top:1px solid #94A3B8;text-align:center;padding-top:.3rem;font-size:12.5px;color:var(--mu)}
@media(max-width:1100px){.mk-layout,.tt-layout{grid-template-columns:1fr}.rs-trio{grid-template-columns:1fr}}
@media print{.mk-side,.tt-side,.side,.top,.ph-actions,.crumbs{display:none!important}.tt-layout{display:block}.card{box-shadow:none}}
