@font-face{font-family:Figtree;src:url(/fonts/figtree-latin-ext-wght-normal.woff2) format("woff2-variations");font-style:normal;font-weight:300 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;src:url(/fonts/figtree-latin-wght-normal.woff2) format("woff2-variations");font-style:normal;font-weight:300 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:only light;--z-red-500: #e72b43;--z-red-600: #d5273f;--z-red-700: #be2038;--z-red-800: #b42318;--z-red-100: #fee4e2;--z-ink-950: #25282b;--z-ink-1000: #111315;--z-paper-50: #f3f7fa;--z-blue-700: #1f48ae;--z-white: #fff;--z-slate-600: #68727d;--z-slate-300: #dde1e4;--z-slate-500: #818c96;--z-slate-700: #4e5761;--z-teal-700: #176b68;--z-teal-800: #105b58;--z-teal-50: #e8f4f2;--z-green-800: #166534;--z-green-100: #dcfce7;--z-amber-800: #854d0e;--z-amber-100: #fef3c7;--z-amber-200: #fde68a;--color-brand: var(--z-red-500);--color-correction: var(--z-red-600);--color-correction-text: var(--z-red-700);--color-canvas: var(--z-paper-50);--color-surface: var(--z-white);--color-text: var(--z-ink-950);--color-text-muted: var(--z-slate-600);--color-student-ink: var(--z-blue-700);--color-text-secondary: var(--z-slate-700);--color-border-subtle: var(--z-slate-300);--color-border-strong: var(--z-slate-500);--color-action: var(--z-ink-950);--color-action-hover: var(--z-ink-1000);--color-on-action: var(--z-white);--color-link: var(--z-teal-700);--color-link-hover: var(--z-teal-800);--color-focus: var(--z-teal-700);--color-selected-surface: var(--z-teal-50);--color-assistant: var(--z-teal-700);--color-assistant-surface: var(--z-teal-50);--color-text-muted-on-assistant: var(--z-slate-700);--color-success: var(--z-green-800);--color-success-surface: var(--z-green-100);--color-warning: var(--z-amber-800);--color-warning-surface: var(--z-amber-100);--color-confidence-low-surface: var(--z-amber-100);--color-confidence-very-low-surface: var(--z-amber-200);--color-error: var(--z-red-800);--color-error-surface: var(--z-red-100);--color-mark-ink: var(--z-ink-950);--color-mark-teal: var(--z-teal-700);--color-mark-slate: var(--z-slate-700);--font-sans: "Figtree", Inter, "Segoe UI", Roboto, Arial, sans-serif;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--text-display-size: 2.25rem;--text-display-line-height: 2.75rem;--text-display-tracking: -.025em;--text-title-size: 2rem;--text-title-line-height: 2.5rem;--text-title-tracking: -.02em;--text-section-size: 1.5rem;--text-section-line-height: 2rem;--text-card-size: 1.125rem;--text-card-line-height: 1.5rem;--text-body-size: 1rem;--text-body-line-height: 1.5rem;--text-label-size: .875rem;--text-label-line-height: 1.25rem;--text-label-tracking: .005em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--radius-control: .5rem;--radius-card: .75rem;--radius-pill: 999px;--border-width: 1px;--choice-box: 1.15rem;--shadow-card: 0 1px 2px rgb(37 40 43 / 6%), 0 6px 20px rgb(37 40 43 / 6%);--shadow-popover: 0 0 0 1px rgb(37 40 43 / 14%), 0 2px 4px rgb(37 40 43 / 8%), 0 12px 32px rgb(37 40 43 / 16%);--duration-fast: .12s}*,*:before,*:after{box-sizing:border-box}html{min-width:20rem;background:var(--color-canvas)}body{min-height:100vh;margin:0;background:var(--color-canvas);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body-size);font-weight:var(--font-weight-regular);line-height:var(--text-body-line-height)}app-root{display:flex;min-height:100dvh;flex-direction:column}h1{margin:0;font-size:var(--text-title-size);font-weight:var(--font-weight-bold);letter-spacing:var(--text-title-tracking);line-height:var(--text-title-line-height);text-wrap:balance}.page-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:0 0 var(--space-8);gap:var(--space-4)}.page-heading-up{display:inline-block;margin:0 0 var(--space-1);font-size:var(--text-label-size);font-weight:var(--font-weight-semibold);line-height:var(--text-label-line-height)}.page-heading-meta{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-label-size);line-height:var(--text-label-line-height)}.page-identity{min-width:0}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;min-height:44px;padding:.625rem var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text)}textarea{min-height:6rem;resize:vertical}input::placeholder{color:var(--color-text-muted)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--color-error)}select{text-overflow:ellipsis}button,.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:.625rem 1rem;border:1px solid var(--color-action);border-radius:var(--radius-control);background:var(--color-action);color:var(--color-on-action);font-weight:var(--font-weight-semibold);line-height:1.25rem;text-align:center;text-decoration:none;cursor:pointer;transition:background-color var(--duration-fast),border-color var(--duration-fast)}button:hover,.button:hover{border-color:var(--color-action-hover);background:var(--color-action-hover);color:var(--color-on-action)}button:disabled,.button:disabled{border-color:var(--color-border-subtle);background:var(--color-border-subtle);color:var(--color-text-muted);cursor:not-allowed}button:disabled:hover,.button:disabled:hover{border-color:var(--color-border-subtle);background:var(--color-border-subtle);color:var(--color-text-muted)}.button-secondary{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text)}.button-secondary:hover{border-color:var(--color-text);background:var(--color-canvas);color:var(--color-text)}.button-danger,.button-danger:hover{border-color:var(--color-error);background:var(--color-error);color:var(--color-on-action)}.button-quiet,.button-link{min-width:44px;padding:.625rem 0;border-color:transparent;background:none;font-size:var(--text-label-size)}.button-quiet{color:var(--color-text-muted)}.button-quiet:hover{border-color:transparent;background:none;color:var(--color-text)}.button-link{color:var(--color-link);text-decoration-line:underline;text-decoration-thickness:.08em;text-underline-offset:.15em}.button-link:hover{border-color:transparent;background:none;color:var(--color-link-hover)}.button-quiet:disabled,.button-quiet:disabled:hover,.button-link:disabled,.button-link:disabled:hover{border-color:transparent;background:none;color:var(--color-text-muted)}.button-icon{width:44px;height:44px;padding:0;border-color:transparent;border-radius:var(--radius-pill);background:transparent;color:var(--color-text)}.button-icon:hover{border-color:transparent;background:var(--color-canvas);color:var(--color-text)}.button-icon svg{width:22px;height:22px}.delete-confirm{max-width:40rem;padding:var(--space-4);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-control);background:var(--color-surface)}.delete-confirm p{margin:0 0 var(--space-4)}.delete-confirm-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.live-region:empty{display:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}a{color:var(--color-link);text-decoration-line:underline;text-decoration-thickness:.08em;text-underline-offset:.15em}a:hover{color:var(--color-link-hover)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.field{display:grid;gap:var(--space-2)}.field label{color:var(--color-text);font-size:var(--text-label-size);font-weight:var(--font-weight-semibold);letter-spacing:var(--text-label-tracking);line-height:var(--text-label-line-height)}.role-choice{margin:0;padding:0;border:0}.role-choice legend{padding:0;margin-block-end:var(--space-2);color:var(--color-text);font-size:var(--text-label-size);font-weight:var(--font-weight-semibold);letter-spacing:var(--text-label-tracking);line-height:var(--text-label-line-height)}.choice{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:var(--space-2);min-height:44px;padding-block:var(--space-3);font-weight:var(--font-weight-regular);line-height:var(--text-label-line-height);cursor:pointer}.choice input{margin-block-start:calc((var(--text-label-line-height) - var(--choice-box)) / 2)}.field .choice:has(input[type=checkbox]){font-weight:var(--font-weight-regular);letter-spacing:normal}input[type=checkbox],input[type=radio]{flex:none;width:var(--choice-box);height:var(--choice-box);min-height:0;padding:0;margin:0;accent-color:var(--color-link);cursor:pointer}input[type=checkbox]{border-radius:calc(var(--radius-control) / 2);appearance:none;transition:background-color var(--duration-fast),border-color var(--duration-fast)}input[type=checkbox]:hover{border-color:var(--color-text)}input[type=checkbox]:checked{border-color:var(--color-link);background:var(--color-link) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.6 3.1 3.1 5.9-6.8' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat}input[type=checkbox]:checked:hover{border-color:var(--color-link-hover);background-color:var(--color-link-hover)}input[type=checkbox][aria-invalid=true]{border-color:var(--color-error);background-color:var(--color-error-surface)}.field-error{margin:0;overflow-wrap:anywhere;color:var(--color-error);font-size:var(--text-label-size);line-height:var(--text-label-line-height)}.message{margin:0;padding:var(--space-4);overflow-wrap:anywhere;border-radius:var(--radius-control)}.message-success{color:var(--color-success);background:var(--color-success-surface)}.message-error{color:var(--color-error);background:var(--color-error-surface)}.message-info{border:var(--border-width) solid var(--color-border-subtle);color:var(--color-text);background:var(--color-surface)}.help-link{align-self:center;color:var(--color-text-muted);font-size:var(--text-label-size);font-weight:var(--font-weight-semibold);white-space:nowrap}.help-link:hover,.help-link:focus-visible{color:var(--color-assistant)}code{padding:0 .25em;border-radius:var(--radius-control);background:var(--color-canvas);font-family:inherit;font-size:.9375em;font-variant-ligatures:none}.working-dots{display:inline-flex;align-items:center;gap:.1875rem}.working-dots span{width:.25rem;height:.25rem;border-radius:var(--radius-pill);background:currentColor;opacity:.4;animation:working-dot-pulse 1.2s ease-in-out infinite}.working-dots span:nth-child(2){animation-delay:.2s}.working-dots span:nth-child(3){animation-delay:.4s}@keyframes working-dot-pulse{0%,80%,to{opacity:.4;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.tabs{display:flex;gap:var(--space-2);margin:var(--space-6) 0;border-bottom:var(--border-width) solid var(--color-border-subtle)}.tabs button{min-height:44px;padding:var(--space-2) var(--space-1);border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--color-text-muted);font-weight:var(--font-weight-semibold)}.tabs button:hover{border-color:var(--color-border-strong);background:transparent;color:var(--color-text)}.tabs button.tab-active{border-color:var(--color-action);color:var(--color-text)}.switch{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-1) var(--space-3);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-label-size);font-weight:var(--font-weight-medium);transition:background-color var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast)}.switch[aria-checked=true]{border-color:var(--color-text);color:var(--color-text);background:var(--color-surface)}@media(hover:hover){.switch:hover{border-color:var(--color-text);color:var(--color-text);background:var(--color-surface)}}.switch-track{position:relative;width:2rem;height:1.125rem;border-radius:var(--radius-pill);background:var(--color-border-strong);transition:background var(--duration-fast)}.switch[aria-checked=true] .switch-track{background:var(--color-assistant)}.switch-thumb{position:absolute;top:.1875rem;left:.1875rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--color-surface);transition:transform var(--duration-fast)}.switch[aria-checked=true] .switch-thumb{transform:translate(.875rem)}::selection{background:var(--color-assistant-surface);color:var(--color-text)}input,textarea{caret-color:var(--color-link)}@media(max-width:40rem){:root{--text-display-size: 2rem;--text-display-line-height: 2.5rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}kbd{display:inline-block;min-width:1.5em;padding:0 .3em;border:var(--border-width) solid var(--color-border-subtle);border-bottom-width:2px;border-radius:4px;background:var(--color-canvas);color:var(--color-text-secondary);font:inherit;font-size:var(--text-label-size);line-height:1.4;text-align:center}@media print{app-header,app-footer,.skip-link{display:none!important}}
