:root{color-scheme:light;--paper:#f4f3ef;--surface:#ffffff;--surface-2:#ebe9e4;--ink:#121212;--ink-soft:#2e2b28;--muted:#615c56;--muted-soft:#918b84;--line:#dedbd4;--line-strong:#c4c0b8;--brand:#c2410c;--brand-strong:#9a3412;--brand-fill:#f97316;--brand-fill-strong:#ea580c;--brand-light:#ffe1c7;--brand-soft:#fff1e6;--brand-line:#fdba74;--on-brand:#121212;--nav:#0b0b0b;--nav-raised:#1c1b19;--nav-line:#262523;--nav-ink:#f4f3ef;--nav-muted:#a3a09a;--nav-link:#d9d6d0;--on-dark:#ffffff;--on-dark-line:#ffffff40;--on-dark-fill:#ffffff1c;--focus:#c2410c;--focus-on-dark:#f97316;--amber:#8a5a00;--amber-fill:#946400;--amber-ink:#5c3d00;--amber-light:#fbf0c9;--amber-line:#ecd486;--green:#15803d;--green-fill:#15803d;--green-ink:#166534;--green-light:#dcfce7;--green-soft:#f0fdf4;--green-line:#bbf7d0;--green-bright:#4ade80;--red:#b91c1c;--red-fill:#b91c1c;--red-ink:#991b1b;--red-light:#fee2e2;--red-line:#fecaca;--shadow:0 18px 50px rgba(0,0,0,.09);--shadow-soft:0 2px 10px rgba(0,0,0,.05);--shadow-brand:0 12px 32px rgba(249,115,22,.28);--radius:14px}
/* Gradally. One palette, orange on ink, painted only through the tokens above: a neutral paper,
   an orange brand for what the machine decided, a mustard amber for what is still moving, green and red for full and
   zero credit, an ink-dark rail for the way around. The dark theme redefines every token so each rule below switches
   with it. Motion is short and eased, and it is skipped for readers who prefer reduced motion; every animated value
   already stands in the markup. */
html[data-theme="dark"]{color-scheme:dark;--paper:#0f0f0e;--surface:#1a1917;--surface-2:#262420;--ink:#f3f2ee;--ink-soft:#d5d2cb;--muted:#a19d96;--muted-soft:#736f69;--line:#2f2d29;--line-strong:#46433e;--brand:#f97316;--brand-strong:#fb923c;--brand-fill:#f97316;--brand-fill-strong:#ea580c;--brand-light:rgba(249,115,22,.2);--brand-soft:rgba(249,115,22,.11);--brand-line:rgba(249,115,22,.5);--on-brand:#111111;--nav:#060606;--nav-raised:#1b1a18;--nav-line:#232220;--nav-ink:#f3f2ee;--nav-muted:#9d9993;--nav-link:#cfccc5;--on-dark:#ffffff;--on-dark-line:#ffffff40;--on-dark-fill:#ffffff1c;--focus:#f97316;--focus-on-dark:#f97316;--amber:#fbbf24;--amber-fill:#946400;--amber-ink:#fde68a;--amber-light:rgba(245,158,11,.16);--amber-line:rgba(245,158,11,.45);--green:#4ade80;--green-fill:#15803d;--green-ink:#86efac;--green-light:rgba(34,197,94,.16);--green-soft:rgba(34,197,94,.09);--green-line:rgba(34,197,94,.45);--green-bright:#4ade80;--red:#f87171;--red-fill:#b91c1c;--red-ink:#fca5a5;--red-light:rgba(248,113,113,.16);--red-line:rgba(248,113,113,.45);--shadow:0 18px 50px rgba(0,0,0,.55);--shadow-soft:0 2px 10px rgba(0,0,0,.4);--shadow-brand:0 12px 32px rgba(0,0,0,.5);--radius:14px}
/* ---- Base ---- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 "Segoe UI Variable Text","Segoe UI","Noto Sans Arabic",Tahoma,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
button,input,textarea,select{font:inherit}
h1,h2,h3,h4,p{margin-top:0}
h1{font-size:30px;line-height:1.35;margin-bottom:8px;letter-spacing:-.4px;font-weight:750}
h2{font-size:19px;line-height:1.6;margin-bottom:12px;font-weight:700}h3{font-size:16px;font-weight:700}h4{font-size:14px;margin-bottom:6px}
p{margin-bottom:14px}
.muted{color:var(--muted)}.tiny{font-size:12px;color:var(--muted)}.eyebrow{font-size:12px;color:var(--brand);font-weight:700;margin-bottom:6px;letter-spacing:.2px}
.numeric,.tabular{font-variant-numeric:tabular-nums}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 18px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);cursor:pointer;font-weight:600;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-soft)}
button:hover,.button:hover{background:var(--surface-2);text-decoration:none;transform:translateY(-1px)}
button:active,.button:active{transform:translateY(0)}
.primary{background:var(--brand-fill);border-color:var(--brand-fill);color:var(--on-brand);box-shadow:var(--shadow-brand)}.primary:hover{background:var(--brand-fill-strong)}
.button.ghost,button.ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--brand)}.button.ghost:hover,button.ghost:hover{background:var(--brand-soft)}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.sidebar :focus-visible{outline-color:var(--focus-on-dark)}
/* ---- Shell: a fixed rail on the reading side, a slim sticky top bar, the page column ---- */
.sidebar{position:fixed;right:0;top:0;bottom:0;width:236px;background:var(--nav);color:var(--nav-ink);padding:26px 18px 22px;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;border-left:1px solid var(--nav-line)}
.sidebar .brand{display:flex;gap:12px;align-items:center;color:var(--on-dark);font-size:22px;font-weight:750;margin-bottom:34px;letter-spacing:.2px}
.sidebar .brand:hover{text-decoration:none}.sidebar .brand small{display:block;font-size:11px;font-weight:500;color:var(--focus-on-dark);letter-spacing:0}
.brand-mark{height:42px;width:42px;flex-shrink:0;background:var(--brand-fill);border:1px solid var(--on-dark-line);border-radius:13px 13px 4px 13px;display:grid;place-items:center;color:var(--on-brand)}.brand-mark svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}
.nav-label{font-size:11px;color:var(--nav-muted);padding-right:12px;margin:0 0 8px;letter-spacing:.3px}
.sidebar nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;color:var(--nav-link);margin-bottom:4px;border-radius:9px;border-inline-start:3px solid transparent}
.sidebar nav a svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.sidebar nav a:hover{background:var(--nav-raised);color:var(--on-dark);text-decoration:none}
.sidebar nav a[aria-current]{background:var(--brand-fill);color:var(--on-brand);text-decoration:none;border-inline-start:3px solid var(--focus-on-dark)}
.sidebar-bottom{margin-top:auto;font-size:12px;padding:18px 10px 0;border-top:1px solid var(--nav-line)}
.sidebar-bottom p{font-size:11px;color:var(--nav-muted);margin:6px 0 0}
.mode-dot{display:inline-block;width:8px;height:8px;background:var(--green-bright);border-radius:50%;margin-left:7px;box-shadow:0 0 0 3px var(--on-dark-fill)}
.user-name{margin-top:18px;font-weight:600;color:var(--nav-ink)}
.sidebar-bottom a{color:var(--nav-link)}
.logout{border:0;color:var(--nav-link);background:transparent;padding:6px 0;font-size:12px;box-shadow:none;min-height:0}.logout:hover{color:var(--on-dark);background:transparent;transform:none}
.theme-toggle{margin-top:14px;width:100%;justify-content:flex-start;background:var(--on-dark-fill);border-color:var(--on-dark-line);color:var(--nav-ink);box-shadow:none;min-height:40px}
.theme-toggle:hover{background:var(--nav-raised);transform:none}
.workspace{margin-right:236px;min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:5;height:62px;background:var(--surface);border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:13px}
.topbar .crumb{font-weight:600;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.engine-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--surface-2);font-size:12px;color:var(--ink-soft);white-space:nowrap}
.engine-dot{width:9px;height:9px;border-radius:50%;background:var(--muted-soft);position:relative}
.engine-dot[data-state="ready"]{background:var(--green-bright)}.engine-dot[data-state="ready"]::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--green-bright);opacity:.6;animation:pulse 2s ease-out infinite}
.engine-dot[data-state="down"]{background:var(--red)}
main{width:100%;max-width:1480px;padding:30px 32px 48px;margin:0 auto;flex:1}
footer{display:flex;justify-content:space-between;gap:16px;font-size:11px;color:var(--muted);padding:18px 32px;border-top:1px solid var(--line)}
.skip{position:absolute;top:-70px;right:20px;background:var(--surface);padding:12px;z-index:9;border-radius:8px}.skip:focus{top:8px}
/* ---- Page pieces shared by every page ---- */
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.page-heading p{margin-bottom:0}
.pill,.tag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;background:var(--surface-2);color:var(--ink-soft);white-space:nowrap;font-weight:600}
.tag.brand,.pill.brand{background:var(--brand-light);color:var(--brand-strong)}.green{background:var(--green-light);color:var(--green-ink)}.amber{background:var(--amber-light);color:var(--amber-ink)}.red{background:var(--red-light);color:var(--red-ink)}
.notice{border:1px solid var(--brand-line);background:var(--brand-soft);border-radius:10px;padding:12px 17px;font-size:13px;line-height:1.85;margin-bottom:22px;color:var(--brand-strong)}
.notice.success{background:var(--green-light);color:var(--green-ink);border-color:var(--green-line)}.notice.warning{background:var(--amber-light);color:var(--amber-ink);border-color:var(--amber-line)}.notice.error{background:var(--red-light);color:var(--red-ink);border-color:var(--red-line)}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;overflow:hidden;box-shadow:var(--shadow-soft)}
.metrics>div{padding:20px 22px;border-left:1px solid var(--line)}.metrics>div:last-child{border-left:0}
.metrics span{color:var(--muted);font-size:12px}.metrics strong{display:block;font-size:34px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.7}.metrics em{font-size:18px;font-style:normal;margin-right:3px}.metrics small{display:block;font-size:11px;color:var(--muted)}.metrics .small-value{font-size:22px;line-height:2.95}
.surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-bottom:22px;min-width:0;box-shadow:var(--shadow-soft)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.section-heading p{font-size:12px;margin-bottom:0}
.table-scroll{overflow-x:auto}.table-scroll table{min-width:640px}table{width:100%;border-collapse:collapse;text-align:right;font-size:13px}
th{font-size:11px;color:var(--muted);background:var(--paper);font-weight:600;white-space:nowrap;letter-spacing:.2px}
td,th{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--paper)}
.strong{font-weight:650}.subline{display:block;margin-top:4px;font-size:11px;color:var(--muted)}.answer-cell{min-width:240px;max-width:650px;overflow-wrap:anywhere}
.empty{padding:30px 8px;color:var(--muted);font-size:13px;text-align:center}
.split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.split-3{display:grid;grid-template-columns:2fr 1fr;gap:22px}
.activity{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.activity:last-child{border-bottom:0}
.avatar{display:grid;place-items:center;width:31px;height:31px;flex-shrink:0;background:var(--brand-light);border-radius:50%;color:var(--brand-strong);font-weight:700}
hr{border:0;border-top:1px solid var(--line);margin:22px 0}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.actions form{margin:0}
.question-strip{display:flex;gap:12px;margin-bottom:22px;flex-wrap:wrap}.question-chip{border:1px solid var(--line);padding:9px 15px;background:var(--surface);border-radius:10px;font-size:13px}.question-chip span{display:block;font-size:10px;color:var(--muted)}
.toolbar{display:flex;align-items:end;gap:15px;flex-wrap:wrap;margin-bottom:20px}.toolbar label{min-width:160px}.toolbar .muted{margin:auto auto 10px 0;font-size:12px}
label{display:block;font-size:13px;font-weight:600}
input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;border:1px solid var(--line-strong);border-radius:9px;padding:9px 12px;margin-top:7px;background:var(--surface);color:var(--ink)}
input[type=checkbox],input[type=radio]{accent-color:var(--brand-fill);width:17px;height:17px;vertical-align:middle;margin-left:7px}
textarea{resize:vertical;min-height:95px}form p{margin-bottom:18px}.errorlist{color:var(--red);font-size:13px;padding-right:18px}.helptext{font-size:11px;color:var(--muted)}.full-width{width:100%}
.pagination{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:20px}.pagination div{display:flex;gap:10px}
.review-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:24px;align-items:start}.question-text{font-size:19px}
.student-answer{white-space:pre-wrap;overflow-wrap:anywhere;font-size:23px;font-weight:500;line-height:2;min-height:115px;padding:10px 0}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}
.decision-panel{border-top:3px solid var(--brand)}#id_fraction{display:flex;gap:8px;flex-wrap:wrap}#id_fraction>div{border:1px solid var(--line);border-radius:6px;padding:8px}
.audit-row{display:grid;grid-template-columns:200px 70px 1fr;gap:12px;border-bottom:1px solid var(--line);padding:16px 0;font-size:12px}.audit-row small{grid-column:1/-1;color:var(--muted)}.audit-row p{margin:0}
details{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}summary{cursor:pointer;color:var(--brand);font-size:13px;margin-bottom:12px}
pre{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);padding:18px;border-radius:8px;text-align:left;direction:ltr}
.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.tabs a{padding:8px 15px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:13px}
.check{margin-bottom:20px}.calculator{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.calculator button{align-self:end}
/* ---- Sign-in ---- */
.login-workspace{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(900px 480px at 88% -8%,var(--brand-light),transparent 62%),var(--paper)}
.login-workspace main{width:100%;max-width:520px;margin:7vh auto 3vh}
.login-panel{background:var(--surface);border:1px solid var(--line);padding:38px;border-radius:18px;box-shadow:var(--shadow)}
.login-panel .brand-mark{margin-bottom:22px;width:52px;height:52px}.login-panel .brand-mark svg{width:32px;height:32px;animation:brand-settle .5s cubic-bezier(.3,1.4,.4,1) 1.15s both}.login-panel .brand-mark path:first-child{stroke-dasharray:96;animation:brand-ring .9s cubic-bezier(.2,.7,.2,1) both}.login-panel .brand-mark path:last-child{stroke-dasharray:38;animation:brand-check .45s cubic-bezier(.2,.7,.2,1) .8s both}@keyframes brand-ring{from{stroke-dashoffset:96}to{stroke-dashoffset:0}}@keyframes brand-check{from{stroke-dashoffset:38}to{stroke-dashoffset:0}}@keyframes brand-settle{0%{transform:scale(1)}40%{transform:scale(1.06)}100%{transform:scale(1)}}.login-panel h1{font-size:26px}.login-panel .tiny{margin:20px 0 0}
.login-panel .theme-toggle{width:auto;margin-top:22px;background:var(--surface-2);border-color:var(--line);color:var(--ink)}
.login-workspace footer{margin-top:auto}
/* ---- Control room: heading, indicator tiles, rings, bars, sources, questions, timelines, results ---- */
.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin-bottom:22px}
.hero h1{margin-bottom:4px}.hero .lead{color:var(--muted);margin:0;max-width:64ch}.hero .actions{justify-content:flex-end}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px;margin-bottom:22px}
.kpi{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px 16px;box-shadow:var(--shadow-soft);overflow:hidden}
.kpi::before{content:"";position:absolute;inset-inline-start:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--line-strong)}
.kpi.brand::before{background:var(--brand-fill)}.kpi.green::before{background:var(--green-fill)}.kpi.amber::before{background:var(--amber-fill)}.kpi.red::before{background:var(--red-fill)}
.kpi span{display:block;font-size:12px;color:var(--muted);font-weight:600}
.kpi strong{display:block;font-size:32px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1.5;letter-spacing:-.5px}
.kpi strong em{font-style:normal;font-size:16px;color:var(--muted);margin-right:3px;font-weight:600}
.kpi small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.ring-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center}
.ring{position:relative;width:132px;height:132px;flex-shrink:0}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:10;stroke-linecap:round}
.ring circle[data-rail]{stroke:var(--surface-2)}
.ring circle[data-track]{stroke:var(--brand-fill);transition:stroke-dashoffset 1.2s cubic-bezier(.22,.8,.3,1)}
.ring.green circle[data-track]{stroke:var(--green-fill)}
.ring-value{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.ring-value strong{display:block;font-size:26px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1.1}.ring-value small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.bar{position:relative;height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden}
.bar .fill{position:absolute;top:0;bottom:0;right:0;height:100%;background:var(--brand-fill);border-radius:999px;transition:width 1s cubic-bezier(.22,.8,.3,1)}
.bar.green .fill{background:var(--green-fill)}.bar.amber .fill{background:var(--amber-fill)}.bar.red .fill{background:var(--red-fill)}.bar.muted .fill{background:var(--muted-soft)}
.bar.thin{height:6px}
.stack{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--surface-2)}
.stack span{display:block;height:100%;transition:width 1s cubic-bezier(.22,.8,.3,1)}
.stack .full{background:var(--green-fill)}.stack .half{background:var(--amber-fill)}.stack .zero{background:var(--red-fill)}.stack .wait{background:var(--muted-soft)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:8px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:6px;vertical-align:middle}
.legend .full i{background:var(--green-fill)}.legend .half i{background:var(--amber-fill)}.legend .zero i{background:var(--red-fill)}.legend .wait i{background:var(--muted-soft)}
.sources{display:grid;gap:12px}
.source{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px}
.source .bar{margin-top:6px}.source b{font-weight:650}.source .share{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px;white-space:nowrap}
.q-table td{vertical-align:middle}.q-table .bar{min-width:120px}
.q-prompt{display:block;max-width:420px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini{font-size:12px;color:var(--muted)}
.timeline .entry{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:start}
.timeline .entry:last-child{border-bottom:0}
.timeline .when{font-size:11px;color:var(--muted);white-space:nowrap;padding-top:4px;font-variant-numeric:tabular-nums}
.timeline .text{font-size:14px;line-height:1.8;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.timeline .meta{font-size:11px;color:var(--muted);margin-top:2px}
.grade{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.grade.full{background:var(--green-light);color:var(--green-ink)}.grade.half{background:var(--amber-light);color:var(--amber-ink)}.grade.zero{background:var(--red-light);color:var(--red-ink)}.grade.none{background:var(--surface-2);color:var(--muted)}
.results th.q,.results td.q{text-align:center;font-variant-numeric:tabular-nums}.results td.total{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.cell{display:inline-block;min-width:44px;padding:4px 8px;border-radius:8px;font-size:12px;font-weight:600;text-align:center;font-variant-numeric:tabular-nums}
.cell.full{background:var(--green-light);color:var(--green-ink)}.cell.half{background:var(--amber-light);color:var(--amber-ink)}.cell.zero{background:var(--red-light);color:var(--red-ink)}.cell.wait{background:var(--surface-2);color:var(--muted)}.cell.none{color:var(--muted-soft)}
.search{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.search label{flex:1;min-width:200px}.search input{margin-top:6px}
.refresh-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--brand-line);background:var(--brand-soft);color:var(--brand-strong);border-radius:10px;padding:10px 16px;margin-bottom:18px;font-size:13px}
.updated{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
[data-panel-state="offline"] .updated::after{content:" · انقطع التحديث مؤقتًا";color:var(--amber)}
.exam-row .bar{min-width:140px}
.status-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface-2);color:var(--ink-soft);white-space:nowrap}
.status-chip i{width:7px;height:7px;border-radius:50%;background:var(--muted-soft)}
.status-chip.live i{background:var(--green-bright);animation:blink 1.6s ease-in-out infinite}.status-chip.done i{background:var(--green-fill)}.status-chip.busy i{background:var(--amber)}
.state-list{display:grid;gap:8px;font-size:13px}.state-list div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line)}.state-list div:last-child{border-bottom:0}
.state-list b{font-variant-numeric:tabular-nums}
.budget-line{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:6px;font-variant-numeric:tabular-nums}
.key-card h2{font-size:18px}.key-card dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px}.key-card dt{color:var(--muted)}.key-card dd{margin:0}
.term{display:inline-block;padding:2px 9px;border-radius:6px;background:var(--brand-soft);color:var(--brand-strong);font-size:12px;margin:2px 0 2px 4px}
.term.wrong{background:var(--red-light);color:var(--red-ink)}
.member{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.member:last-child{border-bottom:0}.member form{margin:0}
/* ---- Motion ---- */
@keyframes pulse{0%{transform:scale(.6);opacity:.8}100%{transform:scale(1.8);opacity:0}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
html.js [data-reveal]{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s cubic-bezier(.22,.8,.3,1)}
html.js [data-reveal].is-in{opacity:1;transform:none}
main>*:first-child{animation:rise .45s cubic-bezier(.22,.8,.3,1)}
.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--surface),var(--surface-2));background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:8px;min-height:14px}
@media(prefers-reduced-motion:no-preference){button,.button{transition:background-color .15s ease,transform .15s ease,box-shadow .15s ease}.surface,.kpi{transition:box-shadow .2s ease,transform .2s ease}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html.js [data-reveal]{opacity:1;transform:none}}
/* ---- Workbench, trust and calibration pieces (older pages paint through the same tokens) ---- */
.wb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.wb-head p{margin-bottom:0}
.wb-progress{margin-bottom:26px}.wb-bar{display:flex;height:16px;background:var(--line);border-radius:999px;overflow:hidden;margin-bottom:16px}.wb-bar .decided{background:var(--brand-fill)}.wb-bar .proposed{background:var(--amber)}
.wb-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.wb-tiles.small{margin-bottom:16px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;border-top:5px solid var(--line-strong)}.tile strong{display:block;font-size:34px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.6}.tile span{display:block;font-weight:600}.tile small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.tile.decided{border-top-color:var(--brand)}.tile.proposed{border-top-color:var(--amber)}.tile.waiting{border-top-color:var(--muted-soft)}.tile.total{border-top-color:var(--line-strong)}
.wb-card{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.wb-card:last-of-type{border-bottom:0}
.wb-answer .student{font-size:20px;font-weight:500;line-height:1.9;margin:8px 0 4px;white-space:pre-wrap;overflow-wrap:anywhere}.wb-answer .tag{margin-left:6px}
.wb-choice fieldset{border:0;padding:0;margin:0 0 10px;display:flex;gap:8px;flex-wrap:wrap}.wb-choice legend{font-size:12px;color:var(--muted);margin-bottom:6px}
.wb-choice label{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-weight:600;background:var(--surface)}.wb-choice label:has(input:checked){border-color:var(--brand);background:var(--brand-light);color:var(--brand)}
.wb-choice input[type=text]{margin:0 0 10px}.wb-choice button{width:100%}
.wb-list{padding-right:20px;line-height:2}.wb-list code{background:var(--surface-2);padding:2px 6px;border-radius:4px}
.trust-badge{display:inline-block;padding:3px 10px;border-radius:5px;font-size:11px;font-weight:600;background:var(--surface-2);color:var(--ink-soft);white-space:nowrap;margin-left:6px}
.trust-trusted{background:var(--green-light);color:var(--green-ink)}.trust-likely{background:var(--brand-light);color:var(--brand)}.trust-review{background:var(--amber-light);color:var(--amber-ink)}.trust-none{background:var(--surface-2);color:var(--muted)}
.tile.trust{border-top-color:var(--green)}
.trust-stale{border:1px solid var(--amber-line);background:var(--amber-light);color:var(--amber-ink);border-radius:7px;padding:10px 14px;font-size:13px;line-height:1.85;margin-bottom:12px}
.wb-queue .wb-card{border-inline-start:3px solid var(--amber);padding-inline-start:14px}
.wb-queue .proposal{margin:2px 0 6px;font-size:13px;color:var(--muted)}.wb-queue .proposal strong{color:var(--ink);font-size:16px}
.wb-queue .reasons{margin:0 0 6px;padding-right:18px;font-size:12px;color:var(--muted);line-height:1.8}
.wb-actions{display:grid;gap:8px}.wb-actions button{width:100%;white-space:normal}
.wb-actions .confirm{order:-1}
.trust-unscored{background:var(--paper);color:var(--muted);border:1px dashed var(--line-strong)}
.queue-notice{border:1px solid var(--amber-line);background:var(--amber-light);color:var(--amber-ink);border-radius:7px;padding:10px 14px;font-size:13px;line-height:1.85;margin-bottom:12px}
.wb-status{margin:8px 0 0;font-size:13px;font-weight:600;line-height:1.8;overflow-wrap:anywhere}
.wb-status.pending{color:var(--muted)}.wb-status.saved{color:var(--green-ink)}.wb-status.error{color:var(--red)}
.wb-card[aria-busy=true] button{opacity:.6;cursor:progress}
.wb-card.wb-saved{border-inline-start:3px solid var(--green);padding-inline-start:14px;background:var(--green-soft)}
.wb-card.wb-collapsed{grid-template-columns:1fr;padding-top:10px;padding-bottom:10px}
.wb-card.wb-collapsed .wb-choice,.wb-card.wb-collapsed .proposal,.wb-card.wb-collapsed .reasons,.wb-card.wb-collapsed .tiny,.wb-card.wb-collapsed .wb-answer>small{display:none}
.wb-card.wb-collapsed .student{font-size:15px;margin:4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.source-figure {margin: 1.5rem 0; text-align: center;}
.source-figure img {display: block; max-width: 100%; max-height: 320px; width: auto; margin: 0 auto; border-radius: 12px;}
.source-figure figcaption {margin-top: .6rem; font-size: .85rem; color: var(--muted);}
.source-answers {margin: 1rem 0;}
.preparation-field {margin-bottom: 20px;}
#prepare-question-form fieldset {min-inline-size: 0; border: 1px solid var(--line); border-radius: 8px; padding: 18px; margin-bottom: 18px;}
#prepare-question-form legend {font-weight: 700; color: var(--brand);}
[hidden]{display:none!important}
.prep-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:24px;align-items:start}
.prep-preview{position:sticky;top:20px;min-width:0}
.prep-navigation{margin-bottom:18px}
#prepare-question-form .prep-core{border:0;padding:0;margin:0}
#prepare-question-form .prep-core>legend{padding:0;margin-bottom:18px;font-size:19px}
#prepare-question-form .choice-field{padding:0;border:0;margin-bottom:0}
.choice-field>div{display:grid;gap:8px}
#id_kind{grid-template-columns:repeat(2,minmax(0,1fr))}
.choice-field label,.entry-choices label{display:flex;align-items:center;gap:5px;min-height:48px;padding:11px 13px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-weight:500;background:var(--surface)}
.choice-field label:has(input:checked),.entry-choices label:has(input:checked){border-color:var(--brand);background:var(--brand-light);color:var(--brand)}
.choice-field input,.entry-choices input{flex-shrink:0}
.entry-choices{border:0;padding:0;margin:22px 0;display:grid;gap:8px;min-inline-size:0}
.entry-choices legend{margin-bottom:10px;font-weight:700}
.mark-choices{margin-bottom:20px}.mark-choices p{margin-bottom:8px;font-size:13px;font-weight:600}
.mark-choices button{min-width:44px}.mark-choices button[aria-pressed=true],#true-false-choices button[aria-pressed=true]{color:var(--brand);border-color:var(--brand);background:var(--brand-light)}
#true-false-choices{margin-bottom:24px}#true-false-choices button{min-width:100px}
#choice-builder{padding:18px;background:var(--paper);border:1px solid var(--line);border-radius:8px;margin-bottom:24px}
#choice-builder>label{margin-top:20px}#option-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.prep-options{padding:10px 15px;border:1px solid var(--line);border-radius:8px;background:var(--paper);margin:18px 0}
.prep-options summary,.prep-preview summary{display:flex;align-items:center;min-height:44px;margin:0;font-weight:600}
.prep-options summary::before,.prep-preview summary::before{content:'＋';margin-left:10px;font-size:18px}
.prep-options[open]>summary::before,.prep-preview details[open]>summary::before{content:'−'}
.prep-options[open]>summary,.prep-preview details[open]>summary{margin-bottom:16px}
.approval-box{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}
.prep-savebar{border-top:1px solid var(--line);padding-top:18px;margin-top:20px;display:grid;gap:12px}
#save-state{font-size:12px;color:var(--muted)}
.prep-layout button,.prep-layout .button,.entry-choices button{min-height:44px}
.prep-layout button:disabled{opacity:.55;cursor:not-allowed}
.prep-layout h1,.prep-layout h2{text-wrap:balance}.prep-layout p{text-wrap:pretty}
.weight-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:10px}
#weight-total{font-variant-numeric:tabular-nums;font-size:13px;color:var(--brand)}
#weight-total.invalid-total{color:var(--red)}
#preview-status{font-size:13px;padding:12px;border-right:3px solid var(--brand);background:var(--brand-soft);min-height:70px;margin-bottom:14px}
#preview-errors:empty{display:none}#try-answer{margin:12px 0 16px}#trial-result{overflow-wrap:anywhere;margin-bottom:12px}
.workshop-launch{border:2px solid var(--brand);background:linear-gradient(130deg,var(--brand-soft),var(--surface));box-shadow:var(--shadow-brand)}
.workshop-launch h2{font-size:28px;color:var(--brand-strong)}.workshop-launch select{max-width:390px;margin-top:10px}
.workshop-steps{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.workshop-steps span{padding:12px 16px;background:var(--brand-fill);color:var(--on-brand);border-radius:12px;font-weight:700}
.workshop-pass,.workshop-fail{display:inline-block;border-radius:8px;padding:5px 10px;font-weight:700;white-space:nowrap}
.workshop-pass{background:var(--green-light);color:var(--green-ink)}.workshop-fail{background:var(--amber-light);color:var(--amber-ink)}
.table-scroll td{max-width:550px;overflow-wrap:anywhere}
.prep-steps{padding-right:24px}.prep-steps li{padding:8px 0}
.wb-calibrate{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0 0;font-size:13px;line-height:1.8}.wb-calibrate .button{white-space:nowrap}
.cal-explain ol{padding-right:22px;margin:0;line-height:2}.cal-explain li{margin-bottom:6px}
.cal-strata tr.selected td{background:var(--brand-soft)}.cal-strata .button{min-height:34px;padding:4px 12px;font-size:12px}
.cal-level{display:inline-block;padding:2px 9px;border-radius:5px;font-size:12px;font-weight:700;white-space:nowrap}
.cal-level-zero{background:var(--red-light);color:var(--red-ink)}.cal-level-half{background:var(--amber-light);color:var(--amber-ink)}.cal-level-full{background:var(--green-light);color:var(--green-ink)}.cal-level-other{background:var(--surface-2);color:var(--muted)}
.cal-item{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.cal-item:last-of-type{border-bottom:0}
.cal-answer .student{font-size:20px;font-weight:500;line-height:1.9;margin:8px 0 4px;white-space:pre-wrap;overflow-wrap:anywhere}.cal-answer .tag{margin-left:6px}
.cal-strata .cal-ledger{font-size:12px;white-space:normal}
.cal-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin-bottom:10px}
.cal-grade{min-height:58px;font-size:19px;font-weight:700;border-width:2px}
.cal-grade-zero{border-color:var(--red);color:var(--red-ink);background:var(--red-light)}.cal-grade-zero:hover{background:var(--red-line)}
.cal-grade-half{border-color:var(--amber);color:var(--amber-ink);background:var(--amber-light)}.cal-grade-half:hover{background:var(--amber-line)}
.cal-grade-full{border-color:var(--green);color:var(--green-ink);background:var(--green-light)}.cal-grade-full:hover{background:var(--green-line)}
.cal-choice input[type=text]{margin:0 0 6px}.cal-choice small{display:block}
/* ---- Narrow screens ---- */
@media(max-width:1100px){.sidebar{width:200px}.workspace{margin-right:200px}main{padding:24px 22px}.review-layout,.split,.split-3,.prep-layout{grid-template-columns:1fr}.prep-preview{position:static}.metrics{grid-template-columns:1fr 1fr}.metrics>div{border-bottom:1px solid var(--line)}.page-heading,.hero{align-items:flex-start;grid-template-columns:1fr}.calculator{grid-template-columns:1fr 1fr}.wb-card,.cal-item{grid-template-columns:1fr}.wb-head{flex-direction:column}}
@media(max-width:680px){.sidebar{position:static;width:100%;padding:14px 16px;border-left:0}.sidebar .brand{margin-bottom:12px;font-size:19px}.brand-mark{width:34px;height:34px}.brand-mark svg{width:21px;height:21px}.nav-label{display:none}.sidebar nav{display:flex;flex-wrap:wrap;gap:6px}.sidebar nav a{padding:8px 10px;font-size:12px;margin:0;gap:6px}.sidebar nav a svg{display:none}.sidebar nav .nav-advanced{margin-top:4px;padding-top:0;border-top:0;width:100%}.sidebar nav .nav-advanced>summary{padding:6px 10px;min-height:36px;margin-bottom:4px}.workspace{margin-right:0}.topbar{padding:0 16px;height:52px;font-size:11px;position:static}.topbar .engine-chip{display:none}main{padding:20px 16px}.page-heading{flex-direction:column;align-items:flex-start;margin-bottom:18px}h1{font-size:24px}.surface{padding:16px}.metrics>div{padding:15px}.metrics strong{font-size:28px}.kpi strong{font-size:26px}.ring-card{grid-template-columns:1fr}.calculator{grid-template-columns:1fr}.audit-row{grid-template-columns:1fr 50px}.audit-row p{grid-column:1/-1}.toolbar label{min-width:120px;flex:1}.actions{width:100%}.actions .button,.actions button{font-size:12px}.student-answer{font-size:21px}footer{padding:16px;font-size:10px;gap:15px;flex-direction:column}.login-panel{padding:26px}.login-workspace main{margin-top:2vh}#id_kind,#option-rows{grid-template-columns:1fr}.prep-savebar .actions{flex-direction:column}.prep-layout .actions button{font-size:13px;white-space:normal}.prep-options{padding:8px 12px}.sidebar .sidebar-bottom{display:flex;flex-wrap:wrap;gap:8px 15px;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid var(--nav-line)}.sidebar-bottom p{display:none}.sidebar-bottom .user-name{margin-top:0}.sidebar-bottom form{margin:0}.sidebar-bottom .logout{min-height:36px}.theme-toggle{width:auto;margin-top:0}}
