:root{--bg-base:#0b0f14;--bg-elevated:#141a21;--bg-overlay:#1c232c;--bg-subtle:#0f141a;--text-primary:#e8ecef;--text-secondary:#a7b1bd;--text-muted:#6c7684;--text-inverse:#0b0f14;--border-subtle:#1e2730;--border-default:#2a3440;--border-strong:#3d4a59;--aurora-400:#7fd4a8;--aurora-500:#5bc390;--aurora-600:#3da374;--ember-400:#e8a96b;--ember-500:#d8934f;--warning:#d4a64a;--error:#d97066;--font-display:"Space Grotesk", Inter, system-ui, sans-serif;--font-body:Inter, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--gutter:clamp(20px, 4vw, 48px);--ease:cubic-bezier(.2, .7, .2, 1);--duration:.18s;--shadow-overlay:0 12px 32px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg-base:#f5f7f9;--bg-elevated:#fff;--bg-overlay:#eceff3;--bg-subtle:#f0f3f6;--text-primary:#111820;--text-secondary:#46515e;--text-muted:#66707c;--text-inverse:#fff;--border-subtle:#e2e6eb;--border-default:#cfd5dc;--border-strong:#a3adb9;--aurora-400:#19774e;--aurora-500:#156a45;--aurora-600:#105638;--ember-400:#9c5217;--ember-500:#874612;--warning:#85650f;--error:#b03a30;--shadow-overlay:0 12px 32px #11182024;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}a{color:var(--aurora-400);text-decoration:none}a:hover{color:var(--aurora-600)}summary{cursor:pointer}:focus-visible{outline:2px solid var(--aurora-400);outline-offset:2px}.page{max-width:1280px;padding:clamp(28px, 4vw, 48px) var(--gutter);margin:0 auto}.page-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 6px;font-size:clamp(28px,4vw,36px);font-weight:600}.page-lead{color:var(--text-secondary);margin:0 0 32px;font-size:15px}.eyebrow{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px;font-size:12px;font-weight:600}.mono{font-family:var(--font-mono)}.muted{color:var(--text-muted)}.card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.card-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 18px;display:flex}.card-title{font-family:var(--font-display);font-size:14px;font-weight:600}.card--error{border-color:var(--error)}.card--warning{border-color:var(--warning)}.card--success{border-color:var(--aurora-600)}.code-block{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--text-secondary);white-space:pre-wrap;margin:0;padding:14px 16px;font-size:12.5px;line-height:1.6}.btn{border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:var(--aurora-400);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--aurora-600)}.btn-primary:disabled{background:var(--bg-overlay);color:var(--text-muted);cursor:not-allowed}.btn-secondary{border-color:var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--bg-overlay)}.btn-secondary:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.6}.btn-ghost{color:var(--text-muted);padding:8px 14px}.btn-ghost:hover:not(:disabled){color:var(--text-primary)}.btn-sm{padding:6px 12px;font-size:13px}.btn-block{width:100%}.field{flex-direction:column;gap:7px;display:flex}.field-label{color:var(--text-secondary);font-size:14px}.input{background:var(--bg-overlay);border:1px solid var(--border-default);width:100%;color:var(--text-primary);border-radius:var(--radius-md);transition:border-color var(--duration) var(--ease);padding:11px 14px;font-family:inherit;font-size:14px}.input:focus{border-color:var(--aurora-400);outline:none}.tag{border-radius:var(--radius-sm);background:var(--bg-overlay);color:var(--text-secondary);padding:2px 8px;font-size:11px;line-height:1.5;display:inline-block}.tag--muted{color:var(--text-muted)}.pill{border-radius:var(--radius-pill);background:var(--bg-overlay);color:var(--text-secondary);align-items:center;gap:8px;padding:5px 13px;font-size:12px;display:inline-flex}.pill--outline{background:var(--bg-subtle);border:1px solid var(--border-default);font-weight:500}.dot{border-radius:var(--radius-pill);background:var(--tone,var(--text-muted));flex:none;width:7px;height:7px}.dot--lg{width:9px;height:9px}.tone-success{color:var(--aurora-400);--tone:var(--aurora-400)}.tone-error{color:var(--error);--tone:var(--error)}.tone-warning{color:var(--warning);--tone:var(--warning)}.tone-neutral{color:var(--text-muted);--tone:var(--text-muted)}.status{align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}.teacher-page>a:first-child{margin-bottom:18px;display:inline-block}.teacher-page h2{font-family:var(--font-display);margin:0 0 12px;font-size:18px}.teacher-page .card-header h2{margin:0}.teacher-section{padding:22px}.teacher-section>.btn{margin-top:14px}.teacher-stack{flex-direction:column;gap:20px;min-width:0;display:flex}.teacher-editor-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;display:grid}.teacher-actions,.teacher-filters{flex-wrap:wrap;align-items:end;gap:14px;margin:22px 0;display:flex}.teacher-filters .field{flex:135px;min-width:0;font-size:12px}.teacher-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.teacher-stats>.card{padding:20px}.teacher-stats strong{font-family:var(--font-display);margin-top:12px;font-size:34px;display:block}.teacher-table-wrap{overflow-x:auto}.teacher-table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}.teacher-table th{color:var(--text-muted);font-size:12px;font-weight:500}.teacher-table th,.teacher-table td{border-bottom:1px solid var(--border-subtle);padding:16px 20px}.teacher-table tbody tr:last-child td{border-bottom:none}.teacher-table tbody tr:hover{background:var(--bg-subtle)}.teacher-table td .mono{margin-top:5px;font-size:12px}.teacher-checklist{color:var(--text-secondary);padding:0;font-size:14px;line-height:2.2;list-style:none}.teacher-test,.teacher-version{border-bottom:1px solid var(--border-subtle);gap:12px;padding:16px 0;display:grid}.teacher-test:last-child,.teacher-version:last-child{border-bottom:0}.teacher-dataset-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.teacher-page textarea{resize:vertical}.teacher-page .code-block{overflow-wrap:anywhere;margin-top:16px}@media (width<=900px){.teacher-editor-grid{grid-template-columns:1fr}.teacher-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.teacher-stats{grid-template-columns:1fr}}.teacher-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.teacher-grow{flex:200px;min-width:0}.teacher-note{margin:-8px 0 16px;font-size:13px}.teacher-inline-check{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.teacher-course-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.teacher-course-head .page-title{overflow-wrap:anywhere}.teacher-join{gap:6px;min-width:240px;padding:16px 20px;font-size:13px;display:grid}.teacher-join strong{letter-spacing:.08em;color:var(--text-primary);font-size:24px}.teacher-join p{margin:0}.teacher-tabs{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;gap:4px;margin:8px 0 22px;display:flex}.teacher-tab{color:var(--text-secondary);border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:14px;font-weight:500}.teacher-tab:hover{color:var(--text-primary)}.teacher-tab--active{color:var(--text-primary);border-bottom-color:var(--aurora-400)}.teacher-course-settings{gap:14px;max-width:640px;margin-top:20px;display:grid}.teacher-gradebook th[scope=col]{white-space:nowrap}.teacher-gradebook th[scope=col] .mono{margin-top:2px;font-size:11px}.teacher-gradebook th[scope=row]{font-weight:500}.teacher-gradebook td,.teacher-gradebook th{padding:12px 16px}.teacher-grade{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.teacher-grade .dot{background:var(--tone,var(--text-muted))}.teacher-points-row td{background:var(--bg-subtle)}.teacher-points-row form{gap:10px;max-width:560px;display:grid}.teacher-points{align-items:center;gap:10px;display:flex}.teacher-points input{width:90px}.teacher-outcome{gap:4px;margin:14px 0 0;padding-left:18px;font-size:13px;display:grid}.teacher-list{gap:6px;margin:0 0 14px;padding:0;list-style:none;display:grid}.teacher-list li{justify-content:space-between;align-items:center;gap:8px;display:flex}.teacher-grade-card{gap:12px;margin-top:18px;display:grid}.teacher-grade-card>p{margin:0;font-size:13px}.teacher-grade-head{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.teacher-grade-head h2{overflow-wrap:anywhere;flex:220px;margin:0}.teacher-grade-points{font-size:18px}.teacher-sql{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.teacher-page .teacher-grade-card .teacher-sql,.teacher-page .teacher-grade-card .teacher-sql .cm-editor{min-height:0}.teacher-test-results{gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.teacher-test-results li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.teacher-override{border-top:1px solid var(--border-subtle);flex-wrap:wrap;align-items:end;gap:10px;padding-top:12px;display:flex}.teacher-override .field{font-size:12px}.teacher-override input[type=number]{width:150px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.teacher-picker{position:relative}.teacher-picker summary{cursor:pointer;align-items:center;gap:8px;line-height:normal;list-style:none;display:flex}.teacher-picker summary span{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.teacher-picker summary::-webkit-details-marker{display:none}.teacher-picker summary:after{content:"▾";color:var(--text-muted)}.teacher-picker-menu{z-index:20;width:max-content;min-width:100%;max-width:min(320px,100vw - 32px);max-height:320px;padding:10px 14px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.teacher-picker-menu label{cursor:pointer;align-items:center;gap:8px;padding:6px 0;font-size:14px;display:flex}.teacher-picker-menu label span:first-of-type{overflow-wrap:anywhere;flex:1;min-width:0}.teacher-test-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-test-head h3{overflow-wrap:anywhere;min-width:0;margin:0;font-size:15px;font-weight:600}.teacher-test-detail summary{cursor:pointer;color:var(--text-secondary);font-size:13px}.teacher-test-detail[open] summary{margin-bottom:10px}.teacher-test-detail .code-block{white-space:pre-wrap;max-height:260px;margin:0 0 10px;overflow:auto}.theme-toggle[data-v-8f3534b2]{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-subtle);gap:2px;padding:3px;display:inline-flex}.theme-option[data-v-8f3534b2]{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);background:0 0;border:0;place-items:center;font-size:14px;line-height:1;display:grid}.theme-option[data-v-8f3534b2]:hover{color:var(--text-primary)}.theme-option--active[data-v-8f3534b2]{background:var(--bg-overlay);color:var(--text-primary)}.app-header[data-v-708bb85e]{min-height:64px;padding:8px var(--gutter);background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:16px;display:flex}.brand[data-v-708bb85e]{font-family:var(--font-display);color:var(--text-primary);align-items:center;gap:10px;font-size:17px;font-weight:600;display:flex}.brand[data-v-708bb85e]:hover{color:var(--text-primary)}.brand-dot[data-v-708bb85e]{border-radius:var(--radius-pill);background:var(--aurora-400);width:9px;height:9px}.brand-dot--teacher[data-v-708bb85e]{background:var(--ember-400)}.app-nav[data-v-708bb85e]{gap:4px;margin-left:12px;display:flex}.nav-link[data-v-708bb85e]{border-radius:var(--radius-md);color:var(--text-secondary);transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);padding:7px 12px;font-size:14px;font-weight:500}.nav-link[data-v-708bb85e]:hover,.nav-link.router-link-active[data-v-708bb85e]{color:var(--text-primary);background:var(--bg-overlay)}.app-user[data-v-708bb85e]{align-items:center;gap:12px;margin-left:auto;display:flex}.user-name[data-v-708bb85e]{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:inline-flex}.corner-toggle[data-v-708bb85e]{top:16px;right:var(--gutter);z-index:1;position:absolute}.app-nav[data-v-708bb85e]{flex-wrap:wrap}.tag--teacher[data-v-708bb85e]{color:var(--ember-400)}
