@font-face{font-family:FreeSans;src:local("FreeSans");font-display:swap}@font-face{font-family:FreeSerif;src:local("FreeSerif");font-display:swap;font-weight:700}:root{color-scheme:light;--forest-950: #172718;--forest-900: #203821;--forest-800: #2d4a2b;--forest-700: #3d6038;--forest-600: #52744b;--sage-600: #6e7764;--sage-500: #7d8471;--olive-500: #a4ac86;--olive-300: #cbd0b7;--olive-100: #eef0e5;--ivory: #faf9f6;--surface: #ffffff;--surface-subtle: #f4f4ee;--surface-muted: #eceee5;--text: #20251f;--text-soft: #60685c;--border: #d9ddd1;--border-strong: #bec5b7;--success: #336b45;--success-bg: #e6f2e8;--warning: #8a5b19;--warning-bg: #fbf0d8;--warning-soft: #fff8e9;--warning-border: #e5c98d;--danger: #a13d35;--danger-bg: #fbe9e6;--info: #376778;--info-bg: #e7f1f3;--focus: #7c8f59;--shadow-popover: 0 18px 48px rgba(27, 43, 26, .18);--shadow-soft: 0 1px 2px rgba(29, 40, 27, .05);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--sidebar: 252px;--sidebar-collapsed: 76px;--topbar: 68px;--container: 1280px;--container-wide: 1500px;--motion-fast: .14s;--motion-normal: .22s;--z-sidebar: 30;--z-dialog: 100;font-family:FreeSans,Tahoma,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;background:var(--ivory)}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:var(--ivory);line-height:1.6}body,button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{transition:color var(--motion-fast),background var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast)}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}img{max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.35}h1{font-family:FreeSerif,FreeSans,Tahoma,serif;font-size:clamp(1.65rem,2.5vw,2.15rem);margin-bottom:var(--space-2)}h2{font-size:1.12rem}h3{font-size:1rem}bdi,code,[dir=ltr]{unicode-bidi:isolate}:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 55%,transparent);outline-offset:2px}::selection{background:var(--olive-300)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:fixed;inset-block-start:8px;inset-inline-start:8px;z-index:999;transform:translateY(-150%);background:var(--forest-950);color:#fff;padding:10px 16px;border-radius:var(--radius-sm)}.skip-link:focus{transform:translateY(0)}.muted{color:var(--text-soft)}.text-danger{color:var(--danger)!important}.inline-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.compact-input{width:8rem;min-width:7rem}.rubric-list{list-style:none;margin:.5rem 0 1.25rem;padding:0;display:grid;gap:.55rem}.rubric-list li{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted)}.class-choice-grid button.is-selected{border-color:var(--primary);background:var(--primary-soft)}.mobile-only{display:none!important}.button{min-height:42px;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-weight:700;font-size:.9rem;white-space:nowrap}.button svg{width:18px;height:18px}.button:active:not(:disabled){transform:translateY(1px)}.button--primary{color:#fff;background:var(--forest-800);border-color:var(--forest-800)}.button--primary:hover:not(:disabled){background:var(--forest-700)}.button--secondary{color:var(--forest-800);background:var(--surface);border-color:var(--border-strong)}.button--secondary:hover:not(:disabled),.button--ghost:hover:not(:disabled){background:var(--olive-100)}.button--ghost{color:var(--forest-700);background:transparent}.button--danger{color:#fff;background:var(--danger)}.icon-button{width:42px;height:42px;padding:0;display:inline-grid;place-items:center;color:var(--text-soft);background:transparent;border:0;border-radius:var(--radius-sm)}.icon-button:hover{color:var(--forest-800);background:var(--olive-100)}.icon-button svg{width:20px}.text-button{display:inline-flex;align-items:center;gap:6px;border:0;color:var(--forest-700);background:transparent;padding:7px 0;font-weight:700}.text-button svg{width:17px}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field__label{color:var(--text);font-size:.87rem;font-weight:700}.field__label span{color:var(--danger)}.field__hint{color:var(--text-soft);font-size:.78rem;order:3}.field__error{display:flex;align-items:center;gap:5px;color:var(--danger);font-size:.78rem;order:4}.field__error svg{width:15px}.input{width:100%;min-height:44px;padding:9px 12px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.input:hover{border-color:var(--sage-500)}.input:focus{border-color:var(--forest-600);outline:3px solid color-mix(in srgb,var(--olive-500) 35%,transparent)}.input::placeholder{color:#93998e}.textarea{resize:vertical;min-height:100px}.select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;padding-inline-end:32px}.field--error .input{border-color:var(--danger)}.exam-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:var(--space-4)}.exam-card{display:flex;flex-direction:column;gap:var(--space-2);min-height:230px;padding:var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.exam-card:hover{border-color:var(--olive-500);transform:translateY(-2px);box-shadow:0 12px 30px #2d4a2b1a}.exam-card__head{display:flex;justify-content:space-between;align-items:center}.exam-card h2{margin:var(--space-3) 0 0;font-size:1.2rem}.exam-card p,.exam-card__meta{color:var(--text-soft)}.exam-card__meta{flex:1;padding-top:var(--space-2);border-top:1px solid var(--border);font-size:.86rem}.exam-workspace-head{margin-bottom:var(--space-6)}.back-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:var(--space-3);color:var(--forest-700);font-weight:700}.back-link svg{width:17px}.exam-tabs{display:flex;gap:4px;overflow:auto;padding:5px;background:var(--olive-100);border:1px solid var(--border);border-radius:var(--radius-md)}.exam-tabs button{min-width:max-content;padding:10px 18px;border:0;border-radius:7px;background:transparent;color:var(--text-soft);font-weight:700}.exam-tabs button.active{color:#fff;background:var(--forest-800);box-shadow:0 4px 12px #2d4a2b33}.workspace-stack{display:grid;gap:var(--space-5)}.next-action{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-6);color:#fff;background:linear-gradient(135deg,var(--forest-900),var(--forest-700));border-radius:var(--radius-lg)}.next-action h2{margin:.25rem 0;font-size:1.35rem}.next-action p{margin:0;color:#dce5d6}.next-action .eyebrow{color:var(--olive-300)}.next-action .button{background:var(--ivory);color:var(--forest-900)}.metric-grid,.response-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-3)}.response-summary{grid-template-columns:repeat(4,1fr);margin-bottom:var(--space-5)}.metric{display:flex;flex-direction:column;padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.metric span{color:var(--text-soft);font-size:.82rem}.metric strong{font-family:FreeSerif,FreeSans,Tahoma,sans-serif;color:var(--forest-800);font-size:1.65rem}.exam-create{display:grid;gap:var(--space-6)}.exam-create>section{padding-bottom:var(--space-5);border-bottom:1px solid var(--border)}.exam-create>section>h2{color:var(--forest-800)}.file-drop{position:relative;display:grid;place-items:center;gap:4px;min-height:150px;padding:var(--space-5);color:var(--forest-700);background:var(--olive-100);border:2px dashed var(--olive-500);border-radius:var(--radius-md);cursor:pointer}.file-drop svg{width:32px;height:32px}.file-drop .input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-drop span{color:var(--text-soft);font-size:.8rem}.question-config-list{display:grid;gap:var(--space-2)}.question-config{display:grid;grid-template-columns:120px minmax(100px,1fr) minmax(180px,1fr);align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md)}.question-config>.badge{justify-self:start}.document-upload-inline{display:flex;gap:var(--space-3);align-items:end}.document-upload-inline .input{max-width:500px}.paper-list{display:grid;gap:var(--space-2)}.paper-list article{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md)}.paper-list article>div:first-child{display:flex;flex-direction:column}.paper-list article span{color:var(--text-soft);font-size:.82rem}.paper-list article>div.identity-cell{flex-direction:row;align-items:center}.manual-review{display:grid;gap:var(--space-3);margin-top:var(--space-6);padding:var(--space-5);border:1px solid var(--warning-border);border-radius:var(--radius-lg);background:var(--warning-soft)}.manual-review article{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto;align-items:end;gap:var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface)}.manual-review article>div:first-child{display:flex;flex-direction:column;gap:var(--space-1)}.manual-review small{color:var(--danger)}.response-summary--dense{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.intake-upload,.student-submit-box,.import-workflow{display:grid;gap:var(--space-4)}.review-page{grid-template-columns:minmax(260px,1.2fr) minmax(240px,.8fr)!important;align-items:start!important}.review-page .scan-canvas{min-height:260px;max-height:520px;padding:0;border:1px solid var(--border);border-radius:var(--radius-md);background:#30372f}.review-page .scan-canvas img{display:block;margin:auto}.review-page__controls{display:grid;gap:var(--space-3)}.sticky-selection{position:sticky;inset-block-start:calc(var(--topbar) + 12px)}.intake-roster,.student-exam-list{display:grid;gap:var(--space-3)}.intake-student,.student-exam-list>article{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:var(--space-4);align-items:center;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.student-exam-list>article>div:first-child{display:grid;gap:3px}.student-exam-list p{margin:0;color:var(--text-soft)}.segmented{display:inline-flex;gap:4px;margin-bottom:var(--space-5);padding:4px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--olive-100)}.segmented button{padding:9px 16px;border:0;border-radius:7px;color:var(--text-soft);background:transparent;font-weight:700}.segmented button.active{color:#fff;background:var(--forest-800)}.import-result{justify-items:start;padding:var(--space-6);border:1px solid var(--olive-300);border-radius:var(--radius-md);background:var(--olive-100)}.import-result>svg{width:36px;height:36px;color:var(--forest-700)}.import-result h3,.import-result p{margin:0}.dialog:has(.document-viewer){width:min(94vw,1200px)}.document-viewer-actions{display:flex;justify-content:flex-end;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border)}.document-viewer{width:100%;height:75vh;padding:0 var(--space-5) var(--space-5)}.document-viewer object{width:100%;height:100%;border:1px solid var(--border);border-radius:var(--radius-md);background:#fff}.viewer-loading{display:grid;place-items:center;min-height:320px;color:var(--text-soft)}.grading-session{display:grid;grid-template-columns:250px minmax(420px,1fr) 330px;gap:var(--space-3);min-height:calc(100vh - 250px)}.grading-progress{display:grid;grid-template-columns:auto 1fr minmax(190px,240px);align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.grading-progress>div:first-child{display:flex;flex-direction:column;gap:var(--space-1)}.question-progress{display:flex;flex-wrap:wrap;gap:var(--space-2)}.question-progress span{padding:6px 10px;border-radius:999px;background:var(--surface-subtle);color:var(--text-soft);font-size:.82rem}.question-progress b{color:var(--forest-700)}.grading-students,.paper-viewer,.grading-controls{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.grading-students{padding:var(--space-4)}.grading-students h2{margin:.25rem 0 var(--space-4)}.grading-students>button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:12px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:right}.grading-students>button.active{background:var(--olive-100);color:var(--forest-800);border-radius:var(--radius-sm)}.grading-students button span{display:flex;flex-direction:column}.grading-students small{color:var(--text-soft)}.paper-viewer{display:flex;flex-direction:column;background:#313630}.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;color:#fff;background:var(--forest-950)}.viewer-toolbar>div{display:flex;align-items:center;gap:10px}.viewer-toolbar span{color:var(--olive-300);font-size:.8rem}.viewer-toolbar .button{color:#fff}.scan-canvas{flex:1;overflow:auto;padding:var(--space-4);text-align:center}.scan-canvas img{width:100%;max-width:900px;background:#fff;box-shadow:0 8px 30px #0006}.grading-controls{padding:var(--space-5);overflow:auto}.grading-controls h2{margin:.35rem 0 var(--space-3)}.grading-controls .field{margin-top:var(--space-4)}.grading-controls>.button{width:100%;margin-top:var(--space-4)}.grading-nav-buttons{display:flex;justify-content:space-between;margin-top:var(--space-3)}.question-grading{display:flex;flex-direction:column;gap:var(--space-4)}.grading-dashboard{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.grading-dashboard>header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-4)}.grading-dashboard h2{margin:.25rem 0 0}.grading-dashboard header p{max-width:520px;margin:0;color:var(--text-soft);font-size:.82rem}.question-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-3)}.question-cards>button{display:grid;grid-template-columns:1fr auto;gap:8px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle);text-align:start}.question-cards>button:hover,.question-cards>button.active{border-color:var(--olive-500);background:var(--olive-100)}.question-cards>button.active{box-shadow:inset 0 0 0 1px var(--forest-700)}.question-cards>button>span:first-child{display:flex;flex-direction:column}.question-cards>button strong{color:var(--forest-800);font-size:1.1rem}.question-cards small{color:var(--text-soft)}.question-cards>button>small{grid-column:1/-1}.progress-track{grid-column:1/-1;height:5px;overflow:hidden;border-radius:99px;background:var(--olive-300)}.progress-track i{display:block;height:100%;background:var(--forest-700)}.queue-filters{display:flex;gap:6px;padding:5px;width:max-content;max-width:100%;overflow:auto;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.queue-filters button{min-height:44px;padding:8px 16px;white-space:nowrap;border:0;border-radius:999px;background:transparent;color:var(--text-soft);font-weight:700}.queue-filters button.active{color:#fff;background:var(--forest-800)}.queue-filters button span{display:inline-flex;align-items:center;justify-content:center;min-width:25px;min-height:25px;margin-inline-start:4px;padding-inline:5px;border-radius:99px;background:var(--olive-100);color:var(--forest-900);font-variant-numeric:tabular-nums}.queue-filters button.active span{background:#ffffff30;color:#fff}.question-grading-workspace{min-height:620px;height:min(78vh,900px);display:grid;grid-template-columns:200px minmax(0,1fr) 320px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;scroll-margin-top:76px;background:var(--surface)}.anonymous-queue{padding:var(--space-4);overflow:auto;background:var(--surface-subtle);border-inline-end:1px solid var(--border)}.anonymous-queue>strong{display:block;margin:4px 0 14px}.anonymous-queue>button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:start}.anonymous-queue>button.active{border-radius:var(--radius-sm);color:var(--forest-900);background:var(--olive-100)}.queue-progress{display:grid;gap:8px;margin-bottom:12px;color:var(--text-soft);font-size:.75rem}.queue-progress .progress-track{width:100%}.anonymous-viewer{min-width:0;display:flex;flex-direction:column;overflow:hidden;background:#26352d}.anonymous-viewer .viewer-toolbar{flex-wrap:wrap;gap:8px}.anonymous-viewer .viewer-toolbar>div:last-child{flex-wrap:wrap;justify-content:flex-end}.anonymous-viewer .viewer-toolbar .button{min-height:38px;padding:5px 9px}.anonymous-viewer .viewer-toolbar [aria-pressed=true]{background:var(--olive-100);color:var(--forest-900)}.viewer-zoom-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;padding:6px;border-bottom:1px solid #ffffff26;color:#fff}.viewer-zoom-controls .button{min-height:36px;padding:5px 9px;color:#fff}.viewer-zoom-controls span{min-width:52px;text-align:center;font-variant-numeric:tabular-nums}.viewer-zoom-controls [aria-pressed=true]{background:var(--olive-100);color:var(--forest-900)}.grading-image-scroll{flex:1;min-height:500px;max-height:78vh;overflow:auto;scroll-behavior:auto}.grading-image-scroll .scan-canvas{min-height:100%;display:flex;justify-content:center;align-items:flex-start;overflow:visible;padding:18px}.grading-image-scroll .scan-canvas img{flex:none;max-width:none;height:auto;object-fit:contain}.grading-image-scroll.fit-page .scan-canvas{min-height:100%;align-items:center}.grading-image-scroll.fit-page .scan-canvas img{max-height:calc(78vh - 36px);width:auto!important;max-width:100%}.queue-toggle{display:none!important}.scan-quality{padding:5px 12px;color:#e6f2e5;background:#34473b;font-size:.75rem}.scan-quality.quality-1{color:#fff0d4;background:#6f4c25}.scan-quality.quality-2{color:#ffedcf}.scan-quality span{font-variant-numeric:tabular-nums}.grading-image-scroll.fit-page .scan-canvas img{max-height:calc(74vh * var(--viewer-zoom));max-width:calc(100% * var(--viewer-zoom))}.question-score-panel{padding:var(--space-5);overflow:auto;border-inline-start:1px solid var(--border);background:var(--ivory)}.question-score-panel h2{margin:5px 0 var(--space-4);font-size:1rem;line-height:1.8}.question-score-panel>.field{margin-top:var(--space-4)}.question-score-panel>.button{width:100%;margin-top:10px}.score-actions{position:sticky;bottom:0;z-index:1;display:grid;gap:8px;padding:12px 0 5px;background:linear-gradient(to bottom,transparent,var(--ivory) 14px)}.score-actions .button{width:100%;min-height:44px}.score-actions .button:nth-child(2){border:1px solid var(--sage-600);background:var(--surface);color:var(--forest-800)}.score-editor{min-height:310px;display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:#fff}.vertical-score{flex:none;width:48px;height:260px;writing-mode:vertical-lr;direction:rtl;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:99px;background:linear-gradient(to top,var(--forest-700) var(--score-fill),var(--olive-100) var(--score-fill));cursor:pointer;touch-action:none}.vertical-score::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:34px;height:34px;border:4px solid white;border-radius:50%;background:var(--forest-700);box-shadow:0 2px 8px #163d2870;cursor:grab}.vertical-score::-moz-range-thumb{width:26px;height:26px;border:4px solid white;border-radius:50%;background:var(--forest-700);box-shadow:0 2px 8px #163d2870;cursor:grab}.vertical-score:focus-visible{outline:3px solid var(--olive-500);outline-offset:4px}.score-editor>div{display:flex;flex-direction:column;align-items:center;gap:4px}.score-editor b{color:var(--forest-900);font-size:2.4rem;font-variant-numeric:tabular-nums}.score-editor span{color:var(--text-soft)}.score-scale{height:260px;justify-content:space-between;padding-block:2px;font-size:.78rem}.score-scale span{position:relative;padding-inline-end:10px}.score-scale span:after{content:"";position:absolute;inset-inline-end:0;top:50%;width:7px;border-top:1px solid var(--sage-600)}.score-quick-actions{display:flex!important;flex-direction:row!important;flex-wrap:wrap;justify-content:center;gap:4px!important;margin-top:10px}.score-quick-actions .button{min-height:44px;padding:6px 9px;font-size:.78rem;border:1px solid var(--border)}.score-quick-actions [aria-pressed=true]{color:#fff;background:var(--forest-800)}.question-score-panel kbd{margin-inline-start:5px;padding:2px 5px;border-radius:4px;background:#ffffff40;font:inherit;font-size:.7rem;direction:ltr}.score-quick-actions .button:not([aria-pressed=true]) kbd{background:var(--olive-100);color:var(--forest-900)}.toast--error{border-color:var(--danger)}.toast--error>svg{color:var(--danger)}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(3,1fr)}.grading-session{grid-template-columns:210px 1fr}.grading-controls{grid-column:1/-1}}@media(max-width:1280px){.question-grading-workspace{grid-template-columns:180px minmax(0,1fr) 290px}.anonymous-queue{padding:10px}.question-score-panel{padding:var(--space-4)}}@media(max-width:1050px){.question-grading-workspace{height:auto;display:flex;flex-direction:column}.anonymous-queue{display:none;max-height:220px;border-inline-end:0;border-bottom:1px solid var(--border)}.anonymous-queue.is-open{display:block}.queue-toggle{display:inline-flex!important}.anonymous-viewer{min-height:450px}.question-score-panel{overflow:visible;border-inline-start:0;border-top:1px solid var(--border)}.score-actions{position:static}}@media(max-width:760px){.next-action{align-items:flex-start;flex-direction:column}.metric-grid,.response-summary{grid-template-columns:repeat(2,1fr)}.question-config,.paper-list article,.manual-review article,.review-page,.grading-progress,.intake-student,.student-exam-list>article{grid-template-columns:1fr!important}.document-upload-inline{align-items:stretch;flex-direction:column}.grading-session{grid-template-columns:1fr}.grading-students{max-height:260px;overflow:auto}.document-viewer{width:100%;height:66vh}.section-heading{flex-direction:column}.sticky-selection{position:static}}@media(max-width:760px){.grading-dashboard>header{align-items:flex-start;flex-direction:column}.question-grading-workspace{height:auto;display:flex;flex-direction:column}.anonymous-queue{max-height:220px;border-inline-end:0;border-bottom:1px solid var(--border)}.anonymous-viewer{min-height:420px}.grading-image-scroll{min-height:360px;max-height:60vh}.queue-filters{width:100%}.queue-filters button{flex:1}.question-score-panel{border-top:1px solid var(--border)}.score-editor{min-height:280px}.score-actions{position:static}}.check-control{display:flex;align-items:center;gap:var(--space-2);min-height:44px;cursor:pointer}.check-control input{width:19px;height:19px;accent-color:var(--forest-700)}.search{min-width:min(320px,100%);height:44px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.search:focus-within{border-color:var(--forest-600);outline:3px solid color-mix(in srgb,var(--olive-500) 35%,transparent)}.search svg{width:18px;color:var(--sage-600)}.search input{min-width:0;flex:1;border:0;outline:0;background:transparent}.search button{width:30px;height:30px;border:0;background:transparent;padding:6px;color:var(--text-soft)}.badge{width:fit-content;display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:3px 9px;border-radius:999px;background:var(--surface-muted);color:var(--text-soft);font-size:.76rem;font-weight:700;white-space:nowrap}.badge--success{color:var(--success);background:var(--success-bg)}.badge--warning{color:var(--warning);background:var(--warning-bg)}.badge--danger{color:var(--danger);background:var(--danger-bg)}.badge--info{color:var(--info);background:var(--info-bg)}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.badge-row{display:flex;gap:5px;flex-wrap:wrap}.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:var(--z-sidebar);inset-block:0;inset-inline-start:0;width:var(--sidebar);display:flex;flex-direction:column;background:var(--forest-950);color:#dce3d8;transition:width var(--motion-normal),transform var(--motion-normal)}.brand{min-height:var(--topbar);display:flex;align-items:center;gap:10px;padding:10px 18px;overflow:hidden}.brand__mark{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:11px 11px 4px;color:var(--forest-950);background:var(--olive-500);font-family:FreeSerif,serif;font-size:1.45rem;font-weight:700}.brand div{display:flex;flex-direction:column;line-height:1.25;white-space:nowrap}.brand strong{color:#fff;font-size:1.12rem}.brand small{color:#aeb9aa;font-size:.7rem}.sidebar nav{flex:1;padding:var(--space-5) var(--space-3);overflow-y:auto}.sidebar nav a,.sidebar__footer button{width:100%;min-height:44px;display:flex;align-items:center;gap:12px;padding:9px 12px;margin-bottom:4px;color:#b9c5b6;background:transparent;border:0;border-radius:var(--radius-sm);font-size:.88rem;text-align:start;white-space:nowrap;overflow:hidden}.sidebar nav a svg,.sidebar__footer svg{width:20px;flex:0 0 20px}.sidebar nav a:hover,.sidebar__footer button:hover{color:#fff;background:#ffffff12}.sidebar nav a.active{color:#fff;background:#a4ac862b;box-shadow:inset -3px 0 var(--olive-500)}.sidebar__footer{padding:var(--space-3);border-top:1px solid rgba(255,255,255,.08)}.app-main{min-height:100vh;margin-inline-start:var(--sidebar);transition:margin var(--motion-normal)}.app-shell--collapsed .sidebar{width:var(--sidebar-collapsed)}.app-shell--collapsed .sidebar .brand div,.app-shell--collapsed .sidebar nav a span,.app-shell--collapsed .sidebar__footer span{opacity:0;pointer-events:none}.app-shell--collapsed .app-main{margin-inline-start:var(--sidebar-collapsed)}.topbar{position:sticky;z-index:20;inset-block-start:0;min-height:var(--topbar);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:10px clamp(18px,3vw,36px);background:#faf9f6f0;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar__start,.topbar__end{display:flex;align-items:center;gap:var(--space-3)}.breadcrumb{display:flex;gap:9px;align-items:center;color:var(--text-soft);font-size:.8rem}.breadcrumb b{color:var(--border-strong)}.breadcrumb strong{color:var(--text)}.school-switcher{height:42px;max-width:240px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.school-switcher svg{width:17px;color:var(--sage-600)}.school-switcher select{min-width:80px;max-width:160px;border:0;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;font-weight:700}.school-switcher svg:last-child{width:14px}.user-menu{display:flex;align-items:center;gap:9px;padding-inline-start:12px;border-inline-start:1px solid var(--border)}.user-menu div{display:flex;flex-direction:column;line-height:1.3}.user-menu strong{font-size:.82rem}.user-menu small{color:var(--text-soft);font-size:.69rem}.avatar{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:50%;color:var(--forest-800);background:var(--olive-100);font-weight:800}.page-container{width:min(var(--container),calc(100% - 40px));margin:0 auto;padding:var(--space-8) 0 var(--space-12)}.page-container--wide{width:min(var(--container-wide),calc(100% - 40px))}.page-header{min-height:92px;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-8)}.page-header p{max-width:720px;margin:0;color:var(--text-soft);font-size:.92rem}.page-header__action{display:flex;align-items:center;gap:var(--space-2);padding-top:7px}.eyebrow{margin-bottom:5px;color:var(--sage-600);font-size:.72rem;font-weight:800;letter-spacing:.03em}.surface,.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.section{padding:var(--space-6)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.section-heading h2{margin:0}.section-heading>a{display:inline-flex;gap:5px;align-items:center;color:var(--forest-700);font-size:.82rem;font-weight:700}.section-heading>a svg{width:16px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--border);margin-bottom:var(--space-8)}.stat{min-height:112px;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);border-inline-end:1px solid var(--border)}.stat:last-child{border:0}.stat>span{width:40px;height:40px;display:grid;place-items:center;color:var(--forest-700);background:var(--olive-100);border-radius:var(--radius-sm)}.stat svg{width:20px}.stat div{display:flex;flex-direction:column}.stat strong{font-family:FreeSerif,serif;font-size:1.7rem;line-height:1.1}.stat small{color:var(--text-soft);font-size:.75rem}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:var(--space-6)}.activity-list{display:flex;flex-direction:column}.activity-list>a,.activity-list>.activity-row{min-height:66px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-3);padding:8px 4px;border-top:1px solid var(--border)}.activity-list>a:first-child,.activity-list>.activity-row:first-child{border-top:0}.activity-list>a:hover strong{color:var(--forest-700)}.activity-list>a>span:nth-child(2),.activity-list>.activity-row>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.activity-list small{color:var(--text-soft)}.activity-icon{width:38px;height:38px;display:grid;place-items:center;color:var(--forest-700);background:var(--surface-subtle);border-radius:var(--radius-sm)}.activity-icon svg{width:18px}.attention-panel{padding:var(--space-6);color:#ecf0e8;background:var(--forest-900);border-radius:var(--radius-md)}.attention-panel .eyebrow{color:var(--olive-300)}.attention-panel h2{font-family:FreeSerif,serif;font-size:1.35rem}.check-list{display:flex;flex-direction:column;gap:12px;margin-top:var(--space-6)}.check-list p{display:grid;grid-template-columns:19px 1fr;gap:9px;margin:0;color:#c9d2c5;font-size:.82rem}.check-list svg{width:18px;color:var(--olive-500)}.filter-bar{min-height:64px;display:flex;align-items:end;gap:var(--space-3);margin-bottom:var(--space-5);padding:10px 12px;background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md)}.filter-bar--wrap{flex-wrap:wrap}.filter-bar>.field{min-width:150px}.filter-bar .field__hint{display:none}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:.82rem}th{height:44px;padding:8px 14px;color:var(--text-soft);background:var(--surface-subtle);border-bottom:1px solid var(--border);font-weight:700;text-align:start;white-space:nowrap}td{min-height:52px;padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbf7}.table-primary{color:var(--forest-800);font-weight:800}.identity-cell{display:flex;align-items:center;gap:9px;min-width:210px}.identity-cell>span:last-child{display:flex;flex-direction:column}.identity-cell small{max-width:220px;color:var(--text-soft);font-size:.68rem;overflow:hidden;text-overflow:ellipsis}.pagination{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:10px 14px;color:var(--text-soft);font-size:.78rem;border-top:1px solid var(--border)}.table-wrap+.pagination{border:0}.pagination div{display:flex;gap:6px}.pagination button{width:38px;height:38px;display:grid;place-items:center;color:var(--forest-700);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.pagination button svg{width:17px}.empty-state{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);text-align:center;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-md)}.empty-state__icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:14px;color:var(--forest-700);background:var(--olive-100);border-radius:50%}.empty-state h2{margin-bottom:6px}.empty-state p{max-width:430px;margin-bottom:var(--space-5);color:var(--text-soft);font-size:.84rem}.alert{display:flex;align-items:flex-start;gap:10px;margin-bottom:var(--space-4);padding:12px 14px;border-radius:var(--radius-sm);font-size:.84rem}.alert>svg{width:20px;flex:0 0 20px;margin-top:2px}.alert p{margin:2px 0 0}.alert--danger{color:var(--danger);background:var(--danger-bg);border:1px solid #ecc9c4}.alert--info{color:var(--info);background:var(--info-bg);border:1px solid #c9dfe4}.skeleton-list{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md)}.skeleton-row{height:64px;display:grid;grid-template-columns:2fr 1fr .7fr;align-items:center;gap:var(--space-6);padding:14px;background:var(--surface);border-bottom:1px solid var(--border)}.skeleton-row span{height:12px;border-radius:5px;background:linear-gradient(90deg,var(--surface-muted),var(--surface-subtle),var(--surface-muted));background-size:220% 100%;animation:shimmer 1.4s infinite}.resource-grid{display:grid;gap:8px}.resource-row{min-height:76px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.resource-row__icon{width:42px;height:42px;display:grid;place-items:center;color:var(--forest-700);background:var(--olive-100);border-radius:var(--radius-sm)}.resource-row h2{margin:0 0 2px;font-size:.96rem}.resource-row p{margin:0;color:var(--text-soft);font-size:.78rem}.dialog-backdrop{position:fixed;z-index:var(--z-dialog);top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:18px;background:#121e128c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog{width:min(560px,100%);max-height:calc(100vh - 36px);overflow-y:auto;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-popover);animation:dialog-in var(--motion-normal) both}.dialog>header{min-height:76px;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border)}.dialog header h2{margin:0 0 4px}.dialog header p{margin:0;color:var(--text-soft);font-size:.8rem}.dialog-form{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.role-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:8px;padding-top:18px;border-top:1px solid var(--border)}.danger-zone strong{color:var(--danger)}.danger-zone p{margin:2px 0 0;color:var(--text-soft);font-size:.75rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.form-page{max-width:860px;margin:0 auto;padding:var(--space-8)}.form-page>.form-grid{gap:var(--space-5)}.fieldset{margin:var(--space-6) 0 0;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-sm)}.fieldset legend{padding:0 8px;font-weight:800}.fieldset>p{color:var(--text-soft);font-size:.82rem}.fieldset>.field{max-width:280px;margin-top:10px}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--border)}.wizard{display:grid;grid-template-columns:repeat(6,1fr);margin-bottom:var(--space-8);overflow-x:auto}.wizard button{position:relative;min-width:118px;display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;column-gap:8px;padding:8px;color:var(--text-soft);background:transparent;border:0;text-align:start}.wizard button:after{content:"";position:absolute;z-index:-1;inset-block-start:23px;inset-inline:0;height:1px;background:var(--border)}.wizard button>span{grid-row:1/3;width:30px;height:30px;display:grid;place-items:center;background:var(--ivory);border:1px solid var(--border);border-radius:50%}.wizard button svg{width:14px}.wizard button small{font-size:.65rem}.wizard button strong{font-size:.75rem;white-space:nowrap}.wizard button.active{color:var(--forest-800)}.wizard button.active>span{color:#fff;background:var(--forest-800);border-color:var(--forest-800)}.wizard button.done>span{color:var(--forest-700);background:var(--olive-100);border-color:var(--olive-300)}.exam-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--space-6);margin-bottom:var(--space-6)}.question-list{display:flex;flex-direction:column;gap:var(--space-3)}.question-item{display:grid;grid-template-columns:44px 1fr auto;align-items:flex-start;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.question-item__handle{align-self:stretch;display:flex;flex-direction:column;align-items:center;gap:5px;padding-top:14px;color:var(--text-soft);background:var(--surface-subtle)}.question-item__handle svg{width:17px}.question-item__body{padding:14px;min-width:0}.question-item__top{display:flex;align-items:center;justify-content:space-between;gap:10px}.question-item h3,.question-item p{margin-bottom:6px}.question-item .muted{font-size:.7rem}.rubric-block{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.rubric-block>div{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px;font-size:.78rem}.rubric-block>div span{color:var(--text-soft)}.rubric-block>p{display:flex;justify-content:space-between;gap:10px;margin:0;padding:5px 0;color:var(--text-soft);font-size:.76rem}.exam-summary{position:sticky;inset-block-start:calc(var(--topbar) + 20px);height:fit-content;padding:var(--space-5);background:var(--forest-900);color:#fff;border-radius:var(--radius-md)}.exam-summary dl{margin:var(--space-5) 0}.exam-summary dl div{display:flex;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.1)}.exam-summary dt{color:#b9c5b6;font-size:.78rem}.exam-summary dd{margin:0;font-weight:800}.summary-actions{display:flex;flex-direction:column;gap:8px}.summary-actions .button{width:100%}.class-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.class-choice-grid>button{min-height:68px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:start}.class-choice-grid>button:hover:not(:disabled){border-color:var(--olive-500);background:var(--surface-subtle)}.class-choice-grid>button>span:nth-child(2){display:flex;flex-direction:column}.class-choice-grid small{color:var(--text-soft)}.class-choice-grid svg{width:17px}.code-cell{display:flex;align-items:center;gap:7px;direction:ltr}.code-cell code{padding:4px 7px;color:var(--forest-800);background:var(--olive-100);border-radius:4px;font-size:.76rem}.code-cell button{width:30px;height:30px;display:grid;place-items:center;border:0;background:transparent;color:var(--text-soft)}.code-cell svg{width:15px}.split-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5);margin-bottom:var(--space-5)}.action-panel{padding:var(--space-6)}.action-panel__icon{width:45px;height:45px;display:grid;place-items:center;margin-bottom:var(--space-4);color:var(--forest-700);background:var(--olive-100);border-radius:var(--radius-sm)}.action-panel h2{margin-bottom:6px}.action-panel>p{min-height:48px;color:var(--text-soft);font-size:.82rem}.action-panel form{display:flex;flex-direction:column;gap:12px}.submission-overview{display:grid;grid-template-columns:2fr repeat(2,.7fr) 1fr;gap:0;margin-bottom:var(--space-6);background:var(--surface);border-block:1px solid var(--border)}.submission-overview>div{min-height:92px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:14px 18px;border-inline-end:1px solid var(--border)}.submission-overview small{color:var(--text-soft)}.submission-overview bdi{font-size:.76rem}.submission-actions{align-items:stretch}.answer-list{display:flex;flex-direction:column}.answer-list article{min-height:110px;display:grid;grid-template-columns:1fr auto;gap:var(--space-5);padding:16px 0;border-top:1px solid var(--border)}.answer-list article:first-child{border:0}.answer-list article p{max-width:760px;margin:6px 0 0}.answer-list article>div:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.grading-lookup{min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.grading-lookup>svg{width:48px;height:48px;padding:11px;color:var(--forest-700);background:var(--olive-100);border-radius:50%}.grading-lookup h2{margin:16px 0 5px}.grading-lookup>p{color:var(--text-soft)}.grading-lookup form{width:min(460px,100%);display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px;margin-top:12px;text-align:start}.grading-workspace{min-height:calc(100vh - 235px);display:grid;grid-template-columns:220px minmax(360px,1fr) 330px;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.grading-nav{display:flex;flex-direction:column;gap:8px;padding:var(--space-5);background:var(--surface-subtle);border-inline-end:1px solid var(--border)}.grading-nav>strong{direction:ltr;font-size:.75rem}.score-ring{width:112px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:var(--space-8) auto;border:8px solid var(--olive-300);border-radius:50%}.score-ring b{font-family:FreeSerif,serif;font-size:1.8rem}.score-ring small{color:var(--text-soft);font-size:.68rem}.answer-canvas{padding:var(--space-6);overflow-y:auto}.grading-panel,.peer-panel{padding:var(--space-6);background:var(--surface-subtle);border-inline-start:1px solid var(--border)}.grading-panel form,.peer-panel form{display:flex;flex-direction:column;gap:var(--space-4)}.grade-history{display:flex;flex-direction:column;gap:var(--space-3)}.grade-history article{padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm)}.grade-history article>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.grade-history article>div small{color:var(--text-soft)}.grade-history article>strong{display:block;margin:12px 0 5px;font-size:1.4rem}.grade-history article>strong small{color:var(--text-soft);font-size:.72rem}.grade-history article p{margin:0;color:var(--text-soft);font-size:.85rem}.peer-task-list{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.peer-task-list>a{min-height:72px;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:var(--space-4);padding:12px 16px;border-bottom:1px solid var(--border)}.peer-task-list>a:last-child{border:0}.peer-task-list>a:hover{background:var(--surface-subtle)}.peer-task-list>a>div{display:flex;flex-direction:column}.peer-task-list small{color:var(--text-soft)}.peer-task-list svg{width:18px;color:var(--sage-600)}.task-number{width:34px;height:34px;display:grid;place-items:center;color:var(--forest-800);background:var(--olive-100);border-radius:50%;font-weight:800}.peer-workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;min-height:570px;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.anonymous-answer{padding:clamp(22px,4vw,48px)}.anonymous-answer .scan-canvas{max-height:760px;margin-top:var(--space-4);border-radius:var(--radius-sm);background:#30372f}.peer-view-switch{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block:var(--space-4)}.anonymous-answer__meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:var(--space-8)}.anonymous-answer__meta>span{display:flex;align-items:center;gap:7px;color:var(--success);font-size:.78rem;font-weight:800}.anonymous-dot{width:9px;height:9px;display:inline-block;border-radius:50%;background:var(--success)}.answer-text{min-height:300px;padding:var(--space-6);line-height:2;white-space:pre-wrap;background:var(--ivory);border:1px solid var(--border);border-radius:var(--radius-sm)}.form-note{color:var(--text-soft);font-size:.72rem;text-align:center}.success-state{min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.success-state>svg{width:58px;height:58px;color:var(--success)}.success-state h2{margin:18px 0 5px;font-family:FreeSerif,serif;font-size:1.7rem}.success-state p{color:var(--text-soft)}.center-actions{display:flex;justify-content:center}.settings-list{overflow:hidden;margin-bottom:var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.settings-list>div{min-height:64px;display:grid;grid-template-columns:180px 1fr;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--border)}.settings-list>div:last-child{border:0}.settings-list span{color:var(--text-soft)}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.85fr) minmax(430px,1.15fr);background:var(--surface)}.auth-intro{min-height:100vh;display:flex;flex-direction:column;padding:clamp(24px,4vw,60px);color:#fff;background:var(--forest-950)}.brand--light{padding:0}.auth-intro__content{max-width:560px;margin:auto 0;padding:var(--space-12) 0}.auth-intro .eyebrow{color:var(--olive-500)}.auth-intro h1{margin:14px 0 20px;font-size:clamp(2.2rem,4vw,4.2rem);line-height:1.2}.auth-intro__content>p{max-width:500px;color:#c7d0c3}.auth-intro ul{display:flex;flex-direction:column;gap:10px;margin:var(--space-8) 0 0;padding:0;list-style:none}.auth-intro li{display:flex;gap:9px;color:#dbe2d7}.auth-intro li svg{width:19px;color:var(--olive-500)}.auth-intro__foot{display:flex;align-items:center;gap:7px;color:#9eaa9a}.auth-intro__foot svg{width:17px}.auth-form-wrap{display:grid;place-items:center;padding:clamp(24px,6vw,80px)}.auth-form{width:min(430px,100%);display:flex;flex-direction:column;gap:var(--space-5)}.auth-form__header{margin-bottom:var(--space-3)}.auth-form__header h2{margin:4px 0 8px;font-family:FreeSerif,serif;font-size:1.8rem}.auth-form__header p,.auth-switch{color:var(--text-soft);font-size:.85rem}.auth-form>.button{width:100%;margin-top:4px}.auth-switch{margin:0;text-align:center}.auth-switch a{color:var(--forest-700);font-weight:800}.onboarding{width:min(560px,calc(100% - 40px));min-height:100vh;display:flex;flex-direction:column;justify-content:center;margin:auto;text-align:center}.onboarding__mark{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 18px;color:var(--forest-800);background:var(--olive-100);border-radius:var(--radius-md)}.onboarding>p{color:var(--text-soft)}.onboarding form{display:flex;flex-direction:column;gap:14px;margin-top:var(--space-6);padding:var(--space-6);text-align:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.app-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-soft)}.app-loading .spin{width:25px;color:var(--forest-700)}.not-found{min-height:calc(100vh - var(--topbar));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.not-found>strong{color:var(--olive-500);font-family:FreeSerif,serif;font-size:5rem;line-height:1}.not-found p{color:var(--text-soft)}.toast-region{position:fixed;z-index:150;inset-block-end:20px;inset-inline-end:20px;display:flex;flex-direction:column;gap:8px}.toast{min-width:280px;max-width:420px;min-height:52px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:8px 12px;color:#fff;background:var(--forest-950);border-radius:var(--radius-sm);box-shadow:var(--shadow-popover);animation:toast-in var(--motion-normal) both}.toast>svg{width:19px;color:var(--olive-500)}.toast button{width:34px;height:34px;display:grid;place-items:center;color:#cbd3c8;background:transparent;border:0}.toast button svg{width:16px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-220% 0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px) scale(.985)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-inline-end:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--border)}.class-choice-grid{grid-template-columns:repeat(2,1fr)}.grading-workspace{grid-template-columns:180px minmax(320px,1fr) 300px}}@media(max-width:900px){.mobile-only{display:inline-grid!important}.desktop-only{display:none!important}.sidebar{width:min(290px,84vw);transform:translate(110%);box-shadow:var(--shadow-popover)}.sidebar--open{transform:translate(0)}.sidebar-scrim{position:fixed;z-index:29;top:0;right:0;bottom:0;left:0;border:0;background:#121e1273}.app-main,.app-shell--collapsed .app-main{margin-inline-start:0}.app-shell--collapsed .sidebar{width:min(290px,84vw)}.app-shell--collapsed .sidebar .brand div,.app-shell--collapsed .sidebar nav a span,.app-shell--collapsed .sidebar__footer span{opacity:1;pointer-events:auto}.brand .mobile-only{margin-inline-start:auto;color:#cbd3c8}.dashboard-grid,.exam-layout{grid-template-columns:1fr}.exam-summary{position:static}.grading-workspace{grid-template-columns:1fr 300px}.grading-nav{grid-column:1/-1;flex-direction:row;align-items:center;border-inline-end:0;border-bottom:1px solid var(--border)}.score-ring{width:auto;height:auto;flex-direction:row;gap:6px;margin:0 0 0 auto;padding:7px 12px;border:0;border-radius:var(--radius-sm);background:var(--olive-100)}.score-ring b{font-size:1rem}.auth-page{grid-template-columns:1fr}.auth-intro{display:none}.auth-form-wrap{min-height:100vh}}@media(max-width:680px){.page-container,.page-container--wide{width:min(100% - 28px,var(--container));padding:var(--space-5) 0 var(--space-8)}.topbar{padding:8px 14px}.breadcrumb,.user-menu div{display:none}.school-switcher{max-width:180px}.school-switcher select{max-width:110px}.page-header{min-height:auto;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-5)}.page-header__action{width:100%;padding:0}.page-header__action .button{width:100%}.metrics{grid-template-columns:1fr 1fr}.stat{min-height:92px;padding:12px;gap:9px}.stat>span{display:none}.stat strong{font-size:1.4rem}.section{padding:var(--space-4)}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar>.field{min-width:0}.resource-row{grid-template-columns:auto 1fr}.resource-row>.icon-button{display:none}.form-grid,.split-actions{grid-template-columns:1fr}.form-page{padding:var(--space-5)}.wizard{margin-inline:-14px;padding-inline:14px}.wizard button{min-width:100px;grid-template-columns:26px 1fr}.wizard button>span{width:26px;height:26px}.wizard button strong{font-size:.68rem}.question-item{grid-template-columns:34px 1fr}.question-item>.button{grid-column:2;justify-self:end}.class-choice-grid{grid-template-columns:1fr}.submission-overview{grid-template-columns:repeat(2,1fr)}.submission-overview>div:nth-child(2){border-inline-end:0}.submission-actions{grid-column:1/-1;border-top:1px solid var(--border)}.answer-list article{grid-template-columns:1fr}.answer-list article>div:last-child{flex-direction:row;align-items:center;justify-content:space-between}.grading-lookup form{grid-template-columns:1fr}.grading-workspace{display:flex;flex-direction:column}.grading-nav{order:1}.answer-canvas{order:2;min-height:330px}.grading-panel{order:3;border-inline-start:0;border-top:1px solid var(--border)}.peer-task-list>a{grid-template-columns:auto 1fr auto;gap:10px}.peer-task-list .badge{grid-column:2}.peer-workspace{grid-template-columns:1fr}.anonymous-answer{padding:var(--space-5)}.peer-panel{border-inline-start:0;border-top:1px solid var(--border)}.answer-text{min-height:220px;padding:var(--space-4)}.settings-list>div{grid-template-columns:1fr;gap:2px}.dialog-backdrop{align-items:end;padding:0}.dialog{width:100%;max-height:92vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.dialog-actions .button{flex:1}.toast-region{inset-inline:14px;inset-block-end:14px}.toast{min-width:0;max-width:none}}@media(max-width:390px){.metrics{grid-template-columns:1fr}.stat{border-inline-end:0;border-bottom:1px solid var(--border)}.school-switcher svg:first-of-type{display:none}.school-switcher{max-width:145px}.activity-list>a,.activity-list>.activity-row{grid-template-columns:auto 1fr}.activity-list .badge{grid-column:2}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.layout-editor{display:grid;gap:1rem;padding:1rem;border:1px solid var(--border, #dfe5e7);border-radius:1rem;background:#fff}.layout-editor__head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.layout-editor__head>div{display:grid;gap:.25rem}.layout-row-editor{display:grid;gap:.65rem;padding:.8rem;border-radius:.8rem;background:#f7f9f9}.layout-row-editor>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem}.layout-part-editor{display:grid;grid-template-columns:1fr 90px;gap:.5rem;padding:.65rem;border:1px dashed #cbd6d8;border-radius:.7rem;background:#fff}
