:root{--font:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;--mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--bg:#f6f5f1;--surface:#fff;--text:#1c1d1f;--muted:#3a3f45;--border:#6f6b63;--accent:#0b5d7a;--accent-contrast:#fff;--focus:#c2410c;--ok:#1e6b3a;--warn-bg:#fff4d6;--warn-border:#d9a520;--error:#a3222b;--error-bg:#fdecec;--radius:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--shadow:0 1px 2px #0000000f, 0 2px 8px #0000000a;--transition:.15s ease}@media (prefers-color-scheme:dark){:root{--bg:#15171a;--surface:#1e2125;--text:#eceae4;--muted:#a8adb4;--border:#8e96a1;--accent:#5fb4d4;--accent-contrast:#0d1114;--focus:#fb923c;--ok:#6fcf8f;--warn-bg:#3a2f10;--warn-border:#b98a18;--error:#ff8a8f;--error-bg:#3a1c1e}}@media (prefers-reduced-motion:reduce){:root{--transition:0s}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}*{box-sizing:border-box}html{font-size:18px}body{font-family:var(--font);background:var(--bg);color:var(--text);margin:0;font-size:18px;line-height:1.5}a{color:var(--accent)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}.skip{background:var(--surface);padding:var(--space-2) var(--space-3);position:absolute;top:0;left:-999px}.skip:focus{left:var(--space-2);z-index:10}.topbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.brand{color:var(--text);font-weight:700;text-decoration:none}.tag,.badge{letter-spacing:.02em;border:1px solid var(--border);margin-left:var(--space-2);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:600}.who{align-items:center;gap:var(--space-3);flex-wrap:wrap;max-width:100%;display:flex}.demo-banner{background:var(--warn-bg);border-bottom:1px solid var(--warn-border);padding:var(--space-2) var(--space-4);font-size:.9rem}main{max-width:860px;padding:var(--space-6) var(--space-4) var(--space-8);outline:none;margin:0 auto}h1{margin:0 0 var(--space-4);font-size:1.6rem}h2{margin:0;font-size:1.1rem}h3{margin:0 0 var(--space-2);font-size:1rem}.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4);box-shadow:var(--shadow)}.state{border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--border);background:var(--surface)}.state p{margin:0 0 var(--space-2)}.state-warn{background:var(--warn-bg);border-color:var(--warn-border)}.state-error{background:var(--error-bg);border-color:var(--error)}.error{color:var(--error)}button,.button{font:inherit;background:var(--accent);color:var(--accent-contrast);border:1px solid var(--accent);padding:var(--space-2) var(--space-4);cursor:pointer;transition:filter var(--transition);border-radius:8px;min-height:48px;font-weight:600;text-decoration:none;display:inline-block}button:hover,.button:hover{filter:brightness(1.08)}button:disabled{opacity:.55;cursor:not-allowed}button.ghost,.button.ghost{color:var(--accent);background:0 0}.row{align-items:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}label{margin-bottom:var(--space-3);font-weight:600;display:block}input,textarea,select{width:100%;margin-top:var(--space-1);font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);padding:var(--space-2) var(--space-3);border-radius:8px;min-height:48px;display:block}textarea{resize:vertical;min-height:120px}.login{max-width:420px;margin:var(--space-8) auto}.assignment header{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.drafts{margin:0 0 var(--space-3);padding:0;list-style:none}.draft-link{padding:var(--space-3);border:1px solid var(--border);margin-bottom:var(--space-2);color:var(--text);border-radius:8px;flex-direction:column;text-decoration:none;display:flex}.draft-link:hover{border-color:var(--accent)}.draft-link .title{font-weight:600}.draft-link .meta{color:var(--muted);font-size:.85rem}.years{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.chip{background:var(--surface);color:var(--text);border-color:var(--border)}.chip.active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.grade-columns{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.citation{border-left:7px solid var(--accent);padding-left:var(--space-3);margin-bottom:var(--space-3)}fieldset{border:1px solid var(--border);margin-bottom:var(--space-3);border-radius:8px}label input[type=checkbox]{width:48px;min-width:48px;height:48px;min-height:48px;margin-right:var(--space-2);vertical-align:middle;display:inline-block}.save{color:var(--muted);font-size:.9rem}.save-saved{color:var(--ok)}.save-dirty{color:var(--text);font-weight:600}.save-conflict,.save-error{color:var(--error);font-weight:600}.history ol{padding-left:var(--space-4)}.history li{justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.preview pre{white-space:pre-wrap;font-family:var(--font);background:var(--bg);padding:var(--space-2);border-radius:6px}.editor-head{margin-bottom:var(--space-4)}.work{max-width:100%;height:auto}.rubric{border-collapse:collapse;width:100%}.rubric th,.rubric td{border:1px solid var(--border);padding:var(--space-2);text-align:left;vertical-align:top}.origin-official{color:#1c1d1f;background:#d6e6f5}.origin-teacher{color:#1c1d1f;background:#fff3c4}.origin-suggestion{color:#1c1d1f;background:#d9f2df}.absence-void{color:#1c1d1f;background:#fff3c4}.internal-record{background:0 0}.origin-official textarea,.origin-teacher textarea,.origin-suggestion textarea{color:#1c1d1f;background:0 0}#print-sheet{color:#000;page:auto;background:#fff}body:has(#print-sheet){page:clean-sheet}#print-sheet table{border-collapse:collapse;width:100%}#print-sheet caption{caption-side:top;text-align:left;color:#000;margin:0 0 8px;font-weight:700}#print-sheet th,#print-sheet td{text-align:left;vertical-align:top;color:#000;border:1px solid #000;padding:4px 6px}@page clean-sheet{size:letter landscape;margin:12mm}@media print{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--text:#000;--muted:#000;--border:#000;--accent:#000;--accent-contrast:#fff;--focus:#000;--ok:#000;--warn-bg:#fff;--warn-border:#000;--error:#000;--error-bg:#fff;--shadow:none}html,body,main,.card,header,section,article,input,textarea,select,h1,h2,h3,p,li,td,th,label{color:#000!important;box-shadow:none!important;background:#fff!important}.topbar,.demo-banner,.skip,nav,aside,footer,button,.button,form,.no-print,#answer-key{display:none!important}.state-warn,.state-error{box-shadow:none!important;background:0 0!important}body:has(#print-sheet) h1{display:none!important}body.printing-key #print-sheet,body.printing-key .student-images,body.printing-key figure{display:none!important}body.printing-key #answer-key{display:block!important}body{color:#000;background:#fff}main{max-width:none}.card{box-shadow:none}.origin-official,.origin-teacher,.origin-suggestion,.absence-void,.internal-record,.origin-official textarea,.origin-teacher textarea,.origin-suggestion textarea{color:#000!important;background:0 0!important}}
