@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-arabic-arabic-400-normal-CyU-ddYS.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-arabic-400-normal-EA1o-u_Q.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-arabic-arabic-600-normal-0pRdybE_.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-arabic-600-normal-MJZ0liF5.woff)format("woff")}:root{--canvas:#fafaf9;--surface:#fff;--line:#e7e5e4;--line-soft:#f5f5f4;--line-strong:#d6d3d1;--text:#1c1917;--text-2:#57534e;--text-3:#78716c;--accent:#0f766e;--accent-hover:#115e59;--accent-tint:#f0fdfa;--accent-tint-line:#ccfbf1;--ok-bg:#ecfdf3;--ok-fg:#166534;--ok-line:#bbf7d0;--warn-bg:#fef6e7;--warn-fg:#92400e;--warn-line:#fce3b0;--bad-bg:#fef2f2;--bad-fg:#991b1b;--bad-line:#fecaca;--neutral-bg:#f5f5f4;--neutral-fg:#44403c;--radius:8px;--font:"Inter", "IBM Plex Sans Arabic", system-ui, sans-serif;--font-ar:"IBM Plex Sans Arabic", "Inter", system-ui, sans-serif;font-family:var(--font);color:var(--text);background:var(--canvas);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}:lang(ar){font-family:var(--font-ar)}body{background:var(--canvas);margin:0}*,:before,:after{box-sizing:border-box}h1{letter-spacing:-.01em;margin:0 0 8px;font-size:28px;font-weight:600}h2{margin:32px 0 12px;font-size:20px;font-weight:600}h3{margin:24px 0 8px;font-size:16px;font-weight:600}section>h2:first-child{margin-block-start:0}.muted{color:var(--text-2);font-size:13px}.small{word-break:break-all;font-size:13px}.big{font-size:16px;font-weight:600}.num{text-align:end;font-variant-numeric:tabular-nums}.error{color:var(--bad-fg);margin:0}.center{text-align:center;color:var(--text-2);margin-block-start:20vh}a{color:var(--accent)}a:hover{color:var(--accent-hover)}button{border-radius:var(--radius);background:var(--accent);color:#fff;height:40px;font:600 14px var(--font);cursor:pointer;border:0;padding:0 16px;transition:background-color .15s}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.link{height:auto;color:var(--accent);background:0 0;padding:0 4px;font-size:13px}button.link:hover:not(:disabled){color:var(--accent-hover);background:0 0;text-decoration:underline}label{flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}label.check{flex-direction:row;align-items:center;gap:8px;font-weight:400}input,textarea,select{min-height:40px;font:400 14px var(--font);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);padding:8px 12px}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;accent-color:var(--accent)}textarea{resize:vertical}fieldset{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:12px;padding:16px;display:flex}legend{padding:0 6px;font-weight:600}form.inline,div.inline{flex-wrap:wrap;align-items:flex-end;gap:8px;margin:12px 0;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:16px;max-width:400px;margin:12vh auto;padding:32px;display:flex}.card h1{margin:0;font-size:20px}.card h2,.card h3{margin:0}.card.wide>button,.card.wide>div>button{align-self:flex-start}.card.wide{border-radius:var(--radius);max-width:560px;margin:24px 0;padding:24px}.note{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-fg);border-radius:var(--radius);word-break:break-all;padding:12px 16px}.tile{border-radius:var(--radius);border:1px solid;padding:12px 16px}dl{grid-template-columns:max-content 1fr;gap:10px 24px;display:grid}dt{color:var(--text-2)}dd{margin:0}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%}th,td{text-align:start;border-block-end:1px solid var(--line-soft);vertical-align:middle;padding:12px 16px;font-size:14px}th{color:var(--text-2);border-block-end-color:var(--line);font-size:13px;font-weight:600}th.num,td.num{text-align:end}tbody tr:last-child td{border-block-end:0}tbody tr:hover td{background:var(--canvas)}@media (width<=760px){table{display:block;overflow-x:auto}th,td{white-space:nowrap}}.badge{border:0;border-radius:999px;align-items:center;height:22px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.badge.green{background:var(--ok-bg);color:var(--ok-fg)}.badge.amber,.tile.amber{background:var(--warn-bg);color:var(--warn-fg);border-color:var(--warn-line)}.badge.red,.tile.red{background:var(--bad-bg);color:var(--bad-fg);border-color:var(--bad-line)}.badge.unknown{background:var(--neutral-bg);color:var(--neutral-fg)}nav:not(.sidebar){border-block-end:1px solid var(--line);flex-wrap:wrap;gap:24px;margin-block-end:24px;display:flex}nav:not(.sidebar) button{height:40px;color:var(--text-2);background:0 0;border-block-end:2px solid #0000;border-radius:0;margin-block-end:-1px;padding:0}nav:not(.sidebar) button:hover:not(:disabled){color:var(--text);background:0 0}nav:not(.sidebar) button.active{color:var(--text);border-block-end-color:var(--accent)}.shell{flex-wrap:wrap;min-height:100vh;display:flex}.sidebar{background:var(--surface);border-inline-end:1px solid var(--line);flex-direction:column;flex:240px;gap:24px;max-width:100%;padding:24px 16px;display:flex}.sidebar .brand{align-items:center;gap:10px;padding:0 8px;font-size:16px;font-weight:600;display:flex}.sidebar .brand-mark{border-radius:var(--radius);background:var(--accent);flex-shrink:0;width:28px;height:28px}.sidebar .menu-toggle{background:var(--surface);height:36px;color:var(--text);border:1px solid var(--line-strong);margin-inline-start:auto;padding:0 12px;font-size:13px;display:none}.sidebar .menu-toggle:hover:not(:disabled){background:var(--canvas)}.sidebar .group{flex-direction:column;gap:2px;display:flex}.sidebar .group-title{color:var(--text-3);padding:0 8px 6px;font-size:13px;font-weight:600}.sidebar .item{width:100%;height:36px;color:var(--neutral-fg);text-align:start;background:0 0;justify-content:space-between;align-items:center;padding:0 8px;font-weight:400;display:flex}.sidebar .item:hover:not(:disabled){background:var(--canvas)}.sidebar .item[aria-current=page]{background:var(--accent-tint);color:var(--accent);font-weight:600}.sidebar .count{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:600;display:inline-flex}.content{flex-direction:column;flex:999 560px;min-width:0;display:flex}.topbar{background:var(--surface);border-block-end:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;min-height:64px;padding:12px 40px;display:flex}.topbar .spacer{flex-grow:1}.topbar .who{flex-direction:column;align-items:flex-end;line-height:1.3;display:flex}.topbar .who .muted{font-size:12px}.topbar .avatar{background:var(--accent-tint);width:36px;height:36px;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.page{width:100%;max-width:1200px;padding:40px}@media (width<=760px){.topbar{padding:12px 16px}.page{padding:24px 16px}.sidebar{border-inline-end:0;border-block-end:1px solid var(--line);gap:16px;padding:12px 16px}.sidebar .menu-toggle{align-items:center;display:inline-flex}.sidebar:not(.open) .group,.topbar .who{display:none}}.dash-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-block-start:24px;display:grid}.dash-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;min-width:0;padding:20px;display:flex}.dash-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.dash-head h2{margin:0;font-size:16px}.stat{letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:28px;font-weight:600}.stat-note{color:var(--text-2);letter-spacing:0;margin-inline-start:8px;font-size:13px;font-weight:400}.warn-text{color:var(--warn-fg);margin:0}.bad-text{color:var(--bad-fg)}.dash-card>p.muted{margin:0}.dash-list{margin:4px 0 0;padding:0;list-style:none}.dash-list li{border-block-start:1px solid var(--line-soft);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.dash-list li>span:last-child{flex-shrink:0}.dash-dl{gap:8px 16px;margin:4px 0 0}@media (width<=760px){.dash-grid{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-block-end:32px;display:flex}.page-title{flex-direction:column;gap:4px;min-width:0;display:flex}.page-title h1{margin:0}.page-title p{max-width:640px;margin:0;font-size:14px}.page-actions{flex-wrap:wrap;gap:8px;display:flex}button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--line-strong)}button.secondary:hover:not(:disabled){background:var(--canvas)}button.danger{background:var(--surface);color:var(--bad-fg);border:1px solid var(--bad-line)}button.danger:hover:not(:disabled){background:var(--bad-bg)}.split{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.req-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex:2 280px;min-width:0;overflow:hidden}.req-item{background:var(--surface);width:100%;height:auto;color:var(--text);text-align:start;border-block-end:1px solid var(--line-soft);border-inline-start:3px solid #0000;border-radius:0;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px;font-weight:400;display:flex}.req-item:hover:not(:disabled){background:var(--canvas)}.req-item[aria-current=true]{background:var(--canvas);border-inline-start-color:var(--accent)}.req-title{font-weight:600}.decide{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;flex:3 400px;gap:16px;min-width:0;padding:24px;display:flex}.decide h3{margin:0;font-size:20px}.decide-actions{justify-content:flex-end;gap:12px;display:flex}.diff{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.diff-side{border-radius:var(--radius);background:var(--canvas);flex-direction:column;gap:8px;padding:16px;display:flex}.diff-side.after{background:var(--accent-tint)}.diff-label{color:var(--text-2);font-size:13px;font-weight:600}.diff-side.after .diff-label{color:var(--accent)}.diff-row{overflow-wrap:anywhere;justify-content:space-between;gap:12px;display:flex}.diff-row .changed{font-weight:600}.alert-banner{border-radius:var(--radius);background:var(--bad-bg);border:1px solid var(--bad-line);color:var(--bad-fg);flex-wrap:wrap;align-items:center;gap:12px;margin-block-end:24px;padding:14px 16px;display:flex}.alert-banner .spacer{flex-grow:1}.alert-dot{background:#b91c1c;border-radius:999px;flex-shrink:0;width:10px;height:10px}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-size:14px;font-weight:600}.seg{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;display:inline-flex;overflow:hidden}.seg-opt{cursor:pointer;min-height:38px;color:var(--text-2);flex-direction:row;align-items:center;padding:8px 14px;font-size:14px;font-weight:400;transition:background .15s,color .15s;position:relative}.seg-opt+.seg-opt{border-inline-start:1px solid var(--line-strong)}.seg-opt input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.seg-opt:hover{background:var(--line-soft)}.seg-opt.on{background:var(--accent-tint);color:var(--accent);font-weight:600}.seg-opt:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}.seg.small .seg-opt{min-height:30px;padding:4px 10px;font-size:13px}.mark-summary{flex-wrap:wrap;align-items:center;gap:12px;margin-block:8px 12px;display:flex}.panel-backdrop{z-index:40;background:#1c19173d;animation:.18s ease-out fade-in;position:fixed;inset:0}.side-panel{background:var(--canvas);border-inline-start:1px solid var(--line);z-index:41;outline:none;flex-direction:column;width:min(720px,100vw);animation:.2s ease-out slide-in;display:flex;position:fixed;inset-block:0;inset-inline-end:0}.side-panel-head{background:var(--surface);border-block-end:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px;display:flex}.side-panel-head h2{margin:0;font-size:20px}.side-panel-head p{margin:4px 0 0}.side-panel-body{flex:1;padding:24px;overflow-y:auto}.side-panel-body .card.wide{max-width:none;margin-block:0 16px}button.icon{width:40px;padding:0}@keyframes fade-in{0%{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}[dir=rtl] .side-panel{animation-name:slide-in-rtl}@keyframes slide-in-rtl{0%{opacity:0;transform:translate(-24px)}}@media (prefers-reduced-motion:reduce){.side-panel,.panel-backdrop{animation:none}}@media (width<=760px){.side-panel-body,.side-panel-head{padding:16px}}.auth{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100vh;padding:24px 16px;display:flex}.auth-brand{align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex}.auth-brand .brand-mark{border-radius:var(--radius);background:var(--accent);width:32px;height:32px}.auth-card{box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:20px;width:100%;max-width:400px;padding:32px;display:flex}.auth-intro{flex-direction:column;gap:6px;display:flex}.auth-intro h1{margin:0;font-size:20px}.auth-intro p{color:var(--text-2);margin:0}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-form input{height:44px;font-size:15px}.auth-form .code-input{letter-spacing:.3em;font-variant-numeric:tabular-nums;font-weight:600}button.block{width:100%;height:44px;font-size:15px}.auth-links{color:var(--text-2);flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;display:flex}.auth-links .link{font-size:13px}.auth-help{color:var(--text-3);margin:0;font-size:13px}.qr{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.school-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.school-list button{background:var(--surface);width:100%;height:56px;color:var(--text);border:1px solid var(--line);text-align:start;align-items:center;gap:12px;padding:0 14px;font-weight:600;display:flex}.school-list button:hover{border-color:var(--accent);background:var(--accent-tint)}.school-list .avatar{background:var(--accent-tint);width:32px;height:32px;color:var(--accent);border-radius:50%;place-items:center;font-size:13px;display:grid}.school-list span:nth-child(2){flex:1}.school-list .chev{color:var(--text-3);font-size:18px}.cycle h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:24px 0 12px;font-size:13px}.grade-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.grade-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.grade-card h3{margin:0 0 12px}.grade-card ul{margin:0;padding:0;list-style:none}.grade-card li{border-block-start:1px solid var(--line-soft);flex-direction:column;gap:2px;padding:10px 0;display:flex}.sec-line{justify-content:space-between;gap:8px;display:flex}.small-text{font-size:13px}.cal-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;display:grid}.cal-month{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.cal-head{justify-content:space-between;align-items:center;margin-block-end:12px;display:flex}.cal-head h2{margin:0;font-size:16px}.cal-grid{border-block-start:1px solid var(--line);border-inline-start:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-dow{color:var(--text-3);border-block-end:1px solid var(--line);border-inline-end:1px solid var(--line);padding:8px;font-size:12px;font-weight:600}.cal-cell{border-block-end:1px solid var(--line);border-inline-end:1px solid var(--line);flex-direction:column;gap:4px;min-width:0;min-height:88px;padding:6px;display:flex}.cal-cell.empty{background:var(--canvas)}.cal-day{font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;width:24px;height:24px;font-size:13px;display:grid}.cal-day.today{background:var(--accent);color:#fff;font-weight:600}.cal-event{background:var(--accent-tint);color:var(--accent-hover);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:2px 6px;font-size:12px;overflow:hidden}.cal-side{flex-direction:column;gap:16px;display:flex}.cal-side h3{margin:0 0 8px}@media (width<=1000px){.cal-layout{grid-template-columns:1fr}}@media (width<=760px){.cal-cell{min-height:56px;padding:4px}.cal-event{height:6px;padding:0;font-size:0}}fieldset.settings{border:0;gap:16px;padding:0}.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:16px;max-width:760px;padding:24px;display:flex}fieldset.settings+.settings-card{margin-block-start:16px}.settings-card h2{margin:0;font-size:16px}.settings-card p{margin:0}.settings-card.readonly{background:var(--canvas)}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.settings-grid .span-2{grid-column:1/-1}label.narrow{max-width:200px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line-strong);cursor:pointer;background:var(--surface);border-radius:999px;flex-direction:row;padding:6px 14px;font-weight:400;position:relative}.chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.chip.on{background:var(--accent-tint);border-color:var(--accent);color:var(--accent);font-weight:600}.chip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.save-bar{background:var(--canvas);border-block-start:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;max-width:760px;margin-block-start:24px;padding:12px 0;display:flex;position:sticky;bottom:0}@media (width<=760px){.settings-grid{grid-template-columns:1fr}}.field>.seg{align-self:flex-start}.report-bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-block-end:24px;display:flex}.report-bar form.period{align-items:flex-end;margin:0}.report-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.report-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-block-end:16px;display:flex}.report-head h2{margin:0 0 4px;font-size:16px}.report-head .stat{margin:0}.report-split{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-block-end:8px;display:grid}.report-card h3{color:var(--text-2);font-size:14px}.info-banner{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-fg);border-radius:var(--radius);flex-direction:column;gap:6px;margin-block-end:24px;padding:14px 16px;display:flex}.info-banner ul{margin:0;padding-inline-start:18px}.purpose-group{margin-block-end:24px}.purpose-group-head{flex-wrap:wrap;align-items:baseline;gap:12px;margin-block-end:8px;display:flex}.purpose-group-head h2{margin:0;font-size:16px}.purpose-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:0;padding:0;list-style:none}.purpose{justify-content:space-between;gap:16px;padding:16px 20px;display:flex}.purpose+.purpose{border-block-start:1px solid var(--line-soft)}.purpose.removed{opacity:.75}.purpose-text{flex-direction:column;gap:4px;min-width:0;display:flex}.purpose-text p{max-width:72ch;margin:0}.purpose-name{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.purpose-actions{flex-shrink:0;align-items:flex-start;gap:12px;display:flex}.purpose-text .badge{align-self:flex-start}
