.calibration-wizard{--cal-paper: oklch(100% 0 0);--cal-paper-2: oklch(97.5% .005 250);--cal-ink: oklch(22% .02 260);--cal-ink-2: oklch(45% .02 260);--cal-rule: oklch(90% .01 250);--cal-accent: oklch(55% .19 255);--cal-accent-ink: oklch(100% 0 0);--cal-focus: oklch(55% .19 255);--cal-success: oklch(52% .14 150);--cal-warn: oklch(55% .14 70);--cal-danger: oklch(50% .18 25);--cal-wave-paper: oklch(18% .02 260);--cal-wave-track: oklch(22% .02 260);--cal-ref: oklch(72% .12 230 / .55);--cal-vocal: oklch(72% .17 50 / .55);--cal-playhead: oklch(62% .2 15);--cal-music-line: oklch(96% .01 250);--cal-wave-center: oklch(65% .02 250 / .35);--cal-font: ui-sans-serif, system-ui, sans-serif;--cal-font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--cal-space-2xs: .25rem;--cal-space-xs: .5rem;--cal-space-sm: .75rem;--cal-space-md: 1rem;--cal-space-lg: 1.5rem;--cal-radius: 6px;--cal-radius-chip: 8px;--cal-ease-out: cubic-bezier(.16, 1, .3, 1);--cal-dur: .22s;--cal-edge-gutter: 12px;--cal-desktop-max: var(--student-desktop-max, 40rem);--practice-edge-inline: max( 1.25rem, calc(env(safe-area-inset-left, 0px) + var(--cal-edge-gutter)), calc(env(safe-area-inset-right, 0px) + var(--cal-edge-gutter)) );--practice-footer-pad-block: .75rem;--practice-meter-pad-block: .625rem;--practice-footer-bg: var(--cal-paper-2);font-family:var(--cal-font);color:var(--cal-ink);overflow-x:clip}.calibration-wizard .cal-flow-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;width:100%;box-sizing:border-box;padding-top:max(4px,env(safe-area-inset-top,0px))}.calibration-wizard .cal-flow-header__title{margin:0;min-width:0;font-size:15px;font-weight:600;line-height:1.35;color:var(--cal-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calibration-wizard .cal-flow-header__skip{white-space:nowrap}.calibration-wizard .cal-step-rail{display:flex;gap:var(--cal-space-2xs);padding:var(--cal-space-sm) var(--cal-space-md) var(--cal-space-xs);border-bottom:1px solid var(--cal-rule);background:var(--cal-paper)}.calibration-wizard .cal-step{flex:1 1 0;min-width:0;min-height:44px;padding:var(--cal-space-xs) var(--cal-space-sm);border:1px solid transparent;border-radius:var(--cal-radius);background:transparent;color:var(--cal-ink-2);font:inherit;font-size:.8125rem;font-weight:500;line-height:1.2;text-align:left;cursor:pointer;touch-action:manipulation;transition:background-color var(--cal-dur) var(--cal-ease-out),color var(--cal-dur) var(--cal-ease-out),border-color var(--cal-dur) var(--cal-ease-out)}.calibration-wizard .cal-step:disabled{cursor:default;opacity:.45}.calibration-wizard .cal-step:focus-visible{outline:2px solid var(--cal-focus);outline-offset:2px}.calibration-wizard .cal-step.is-current{color:var(--cal-ink);border-color:var(--cal-rule);background:var(--cal-paper-2);font-weight:600}.calibration-wizard .cal-step.is-done:not(.is-current){color:var(--cal-accent)}.calibration-wizard .cal-step__num{display:block;font-variant-numeric:tabular-nums;font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase;color:var(--cal-ink-2);margin-bottom:2px}.calibration-wizard .cal-step.is-current .cal-step__num{color:var(--cal-accent)}.calibration-wizard .cal-lede{margin:0;padding:var(--cal-space-md);font-size:.9375rem;line-height:1.45;color:var(--cal-ink-2);max-width:36rem}.calibration-wizard .cal-score-stage{display:block;width:100%;min-width:0;padding:4px 0;box-sizing:border-box;text-align:center}.calibration-wizard .cal-score-stage>*{width:100%;min-width:0}.calibration-wizard .cal-score-tip{margin:10px 14px 4px;padding:0;font-size:.8125rem;line-height:1.45;color:var(--cal-ink-2, #475569);text-align:left}@media(min-width:641px){.calibration-wizard{--cal-edge-gutter: var(--student-desktop-gutter, 28px);--cal-desktop-max: var(--student-desktop-max, 40rem);--practice-footer-pad-block: 1rem;--practice-meter-pad-block: .75rem}.calibration-wizard .cal-step-rail{max-width:var(--cal-desktop-max);margin-inline:auto;width:100%;gap:var(--cal-space-sm);padding:var(--cal-space-md) var(--cal-space-lg) var(--cal-space-sm);box-sizing:border-box}.calibration-wizard .cal-step{min-height:48px;padding:var(--cal-space-sm) var(--cal-space-md);font-size:.875rem;text-align:center}.calibration-wizard .cal-step__num{font-size:.75rem;margin-bottom:4px}.calibration-wizard .cal-lede{margin-inline:auto;max-width:var(--cal-desktop-max);padding:var(--cal-space-lg) var(--cal-space-lg) var(--cal-space-md);font-size:1.0625rem;line-height:1.5;text-align:center;box-sizing:border-box}.calibration-wizard .cal-wave-stage{max-width:min(52rem,100%);margin-inline:auto;padding:var(--cal-space-lg) var(--cal-space-lg) var(--cal-space-md);gap:var(--cal-space-md);box-sizing:border-box}.calibration-wizard .cal-wave-stage__title{font-size:1.125rem;text-align:center}.calibration-wizard .cal-surface{max-width:var(--cal-desktop-max);margin-inline:auto;gap:var(--cal-space-lg);width:100%;box-sizing:border-box;padding-inline:var(--cal-space-md)}.calibration-wizard .cal-block-title{font-size:.875rem}.calibration-wizard .cal-chip-row{gap:var(--cal-space-sm)}.calibration-wizard .cal-chip{min-height:44px;padding:.7rem 1.25rem}.calibration-wizard .cal-headline{font-size:1.125rem}.calibration-wizard .cal-rec{max-width:var(--cal-desktop-max);margin-inline:auto;padding:var(--cal-space-sm) var(--cal-space-md);box-sizing:border-box}.calibration-wizard .cal-rec__phase{font-size:.9375rem}.calibration-wizard .cal-rec__track{height:12px;border-radius:6px}.calibration-wizard .cal-actions--thumb{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:var(--cal-space-sm)}.calibration-wizard .cal-actions--thumb .cal-btn{flex:0 1 auto;width:auto;min-width:7.5rem}.calibration-wizard .cal-actions--thumb .cal-btn--primary{flex:0 1 auto;min-width:10rem}.calibration-wizard .cal-actions--row{flex-direction:row;justify-content:stretch;gap:var(--cal-space-sm)}.calibration-wizard .cal-actions--row .cal-btn{flex:1 1 0}.calibration-wizard .cal-btn--ghost{width:auto;align-self:flex-start}.calibration-wizard footer.cal-footer{justify-content:center}.calibration-wizard .practice-meter-strip{justify-content:center}}@media(min-width:1100px){.calibration-wizard{--cal-edge-gutter: var(--student-desktop-gutter, 40px);--cal-desktop-max: var(--student-desktop-max, 44rem)}.calibration-wizard .cal-wave-stage{max-width:min(56rem,100%);padding-block:var(--cal-space-lg) var(--cal-space-md)}.calibration-wizard .cal-step-rail{padding-inline:var(--cal-space-lg)}}@media(min-width:1440px){.calibration-wizard{--cal-desktop-max: var(--student-desktop-max, 46rem)}.calibration-wizard .cal-wave-stage{max-width:min(60rem,92vw)}}.calibration-wizard .cal-surface{display:flex;flex-direction:column;gap:var(--cal-space-md);width:100%;min-width:0;touch-action:manipulation}.calibration-wizard .cal-block-title{margin:0 0 var(--cal-space-xs);font-size:.8125rem;font-weight:600;letter-spacing:.02em;color:var(--cal-ink-2)}.calibration-wizard .cal-chip-row{display:flex;flex-wrap:wrap;gap:var(--cal-space-xs)}.calibration-wizard .cal-chip{min-height:44px;padding:.625rem 1rem;border:1px solid var(--cal-rule);border-radius:var(--cal-radius-chip);background:var(--cal-paper);color:var(--cal-ink);font:inherit;font-size:.9375rem;line-height:1.2;cursor:pointer;touch-action:manipulation;transition:border-color var(--cal-dur) var(--cal-ease-out),background-color var(--cal-dur) var(--cal-ease-out)}.calibration-wizard .cal-chip:hover:not(:disabled){border-color:#a5afba}.calibration-wizard .cal-chip:focus-visible{outline:2px solid var(--cal-focus);outline-offset:2px}.calibration-wizard .cal-chip.is-selected{border-color:var(--cal-accent);background:#e9f3ff;background:oklch(96% .03 255);font-weight:600}.calibration-wizard .cal-chip:active:not(:disabled){transform:translateY(1px)}.calibration-wizard .cal-headline{margin:0;font-size:1rem;font-weight:600;line-height:1.3;color:var(--cal-ink);font-style:normal}.calibration-wizard .cal-sub{margin:0;font-size:.8125rem;line-height:1.45;color:var(--cal-ink-2)}.calibration-wizard .cal-hint{margin:0;font-size:.75rem;line-height:1.4;color:var(--cal-ink-2)}.calibration-wizard .cal-meter{display:flex;flex-direction:column;gap:var(--cal-space-2xs)}.calibration-wizard .cal-meter__track{height:8px;border-radius:4px;background:var(--cal-rule);overflow:hidden}.calibration-wizard .cal-meter__fill{height:100%;border-radius:4px;background:var(--cal-accent);transition:width 80ms linear}.calibration-wizard .cal-rec{display:flex;flex-direction:column;gap:var(--cal-space-xs);width:100%;min-width:0;padding:var(--cal-space-xs) 0}.calibration-wizard .cal-rec__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--cal-space-sm);min-width:0}.calibration-wizard .cal-rec__phase{margin:0;font-size:.875rem;font-weight:600;color:var(--cal-ink);font-style:normal;min-width:0;overflow-wrap:anywhere}.calibration-wizard .cal-rec__time{margin:0;flex:0 0 auto;font-size:.8125rem;font-variant-numeric:tabular-nums;color:var(--cal-ink-2)}.calibration-wizard .cal-rec__track{position:relative;height:10px;border-radius:5px;background:var(--cal-rule);overflow:hidden}.calibration-wizard .cal-rec__fill{height:100%;width:100%;border-radius:5px;background:var(--cal-accent);transform:scaleX(0);transform-origin:left center;will-change:transform;backface-visibility:hidden}.calibration-wizard .cal-rec__mark{position:absolute;top:0;bottom:0;width:2px;background:var(--cal-ink);opacity:.35;pointer-events:none;transform:translate(-1px)}.calibration-wizard .cal-rec__mic{display:flex;flex-direction:column;gap:2px}.calibration-wizard .cal-rec__mic-label{font-size:.6875rem;letter-spacing:.02em;color:var(--cal-ink-2)}.calibration-wizard .cal-rec__mic-track{height:4px;border-radius:2px;background:var(--cal-paper-2);overflow:hidden}.calibration-wizard .cal-rec__mic-fill{height:100%;border-radius:2px;background:#5174a0;transition:none}@media(prefers-reduced-motion:reduce){.calibration-wizard .cal-rec__fill,.calibration-wizard .cal-rec__mic-fill{transition:none}}.calibration-wizard .cal-wave-stage{display:flex;flex-direction:column;gap:var(--cal-space-sm);padding:var(--cal-space-sm) var(--cal-space-md) var(--cal-space-md);min-width:0}.calibration-wizard .cal-wave-stage__title{margin:0;font-size:.9375rem;font-weight:600;color:var(--cal-ink)}.calibration-wizard .cal-align{display:flex;flex-direction:column;gap:var(--cal-space-2xs)}.calibration-wizard .cal-align__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--cal-space-sm)}.calibration-wizard .cal-align__label{font-size:.8125rem;font-weight:500;color:var(--cal-ink)}.calibration-wizard .cal-align__fine-label{font-size:.8125rem;font-weight:500;color:var(--cal-ink-muted, #64748b)}.calibration-wizard .cal-align__row{display:flex;align-items:center;gap:var(--cal-space-xs)}.calibration-wizard .cal-align__row input[type=range]{flex:1 1 auto;min-width:0;accent-color:var(--cal-accent)}.calibration-wizard .cal-nudge{min-height:44px;min-width:44px;padding:0 var(--cal-space-sm);border:1px solid var(--cal-rule);border-radius:var(--cal-radius);background:var(--cal-paper);color:var(--cal-ink);font:inherit;font-size:.875rem;cursor:pointer;touch-action:manipulation}.calibration-wizard .cal-nudge:focus-visible{outline:2px solid var(--cal-focus);outline-offset:2px}.calibration-wizard .cal-actions{display:flex;flex-wrap:wrap;gap:var(--cal-space-xs);width:100%}.calibration-wizard .cal-btn{min-height:44px;min-width:44px;flex:1 1 auto;padding:.625rem 1rem;border-radius:var(--cal-radius);font:inherit;font-size:.9375rem;font-weight:500;line-height:1.2;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--cal-dur) var(--cal-ease-out),border-color var(--cal-dur) var(--cal-ease-out),opacity var(--cal-dur) var(--cal-ease-out)}@media(max-width:640px){.calibration-wizard{--cal-edge-gutter: 16px;--practice-footer-pad-block: .875rem}.calibration-wizard .cal-surface{gap:var(--cal-space-sm);width:100%;max-width:28rem;margin-inline:auto}.calibration-wizard .cal-chip-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cal-space-sm)}.calibration-wizard .cal-chip-row:has(.cal-chip:nth-child(3):last-child){grid-template-columns:1fr}.calibration-wizard .cal-chip{min-height:52px;width:100%;justify-content:center;text-align:center}.calibration-wizard .cal-actions--thumb{flex-direction:column;flex-wrap:nowrap;gap:var(--cal-space-sm)}.calibration-wizard .cal-actions--thumb .cal-btn{flex:0 0 auto;width:100%;max-width:none}.calibration-wizard .cal-actions--thumb .cal-btn--primary{min-height:52px;font-size:1rem}.calibration-wizard .cal-actions--thumb .cal-btn--secondary,.calibration-wizard .cal-actions--thumb .cal-btn--ghost{min-height:48px}.calibration-wizard .cal-actions--row{flex-direction:row;flex-wrap:nowrap;gap:var(--cal-space-sm)}.calibration-wizard .cal-actions--row .cal-btn{flex:1 1 0;min-width:0;min-height:48px}.calibration-wizard .cal-align{padding-inline:2px}.calibration-wizard .cal-align__row{gap:var(--cal-space-sm)}.calibration-wizard .cal-nudge{min-height:48px;min-width:48px;flex:0 0 auto}.calibration-wizard .cal-btn--ghost{min-height:44px;width:100%}.calibration-wizard footer.cal-footer{box-shadow:0 -1px 0 var(--cal-rule)}}.calibration-wizard .cal-btn:disabled{opacity:.45;cursor:not-allowed}.calibration-wizard .cal-btn:focus-visible{outline:2px solid var(--cal-focus);outline-offset:2px}.calibration-wizard .cal-btn:active:not(:disabled){transform:translateY(1px)}.calibration-wizard .cal-btn--primary{border:1px solid transparent;background:var(--cal-accent);color:var(--cal-accent-ink);font-weight:600}.calibration-wizard .cal-btn--secondary{border:1px solid var(--cal-rule);background:var(--cal-paper);color:var(--cal-ink)}.calibration-wizard .cal-btn--ghost{border:1px solid transparent;background:transparent;color:var(--cal-ink-2);font-weight:500}.calibration-wizard .cal-btn--ghost[aria-expanded=true]{color:var(--cal-accent)}.calibration-wizard .cal-fine{display:flex;flex-direction:column;gap:var(--cal-space-sm);padding:var(--cal-space-sm);border:1px solid var(--cal-rule);border-radius:var(--cal-radius);background:var(--cal-paper-2)}.calibration-wizard .cal-fine label{display:flex;flex-direction:column;gap:var(--cal-space-2xs);font-size:.8125rem;color:var(--cal-ink)}.calibration-wizard .cal-fine input[type=range]{width:100%;accent-color:var(--cal-accent)}.calibration-wizard .cal-msg{margin:0;font-size:.8125rem;color:var(--cal-success)}.calibration-wizard .cal-msg--warn{color:var(--cal-warn)}.calibration-wizard .cal-msg--error{color:var(--cal-danger)}.calibration-wizard .cal-debug{margin:0;font-family:var(--cal-font-mono);font-size:.6875rem;color:var(--cal-ink-2)}@media(prefers-reduced-motion:reduce){.calibration-wizard .cal-step,.calibration-wizard .cal-chip,.calibration-wizard .cal-btn,.calibration-wizard .cal-meter__fill{transition:none}.calibration-wizard .cal-chip:active:not(:disabled),.calibration-wizard .cal-btn:active:not(:disabled){transform:none}}.calibration-wizard .cal-expect{padding:8px 14px 4px}.calibration-wizard .cal-expect__lead{margin:0 0 6px;font-size:15px;line-height:1.45;color:var(--cal-ink, #0f172a)}.calibration-wizard .cal-expect__sub{margin:0;font-size:13px;color:var(--cal-muted, #64748b)}.calibration-wizard .cal-chip-col{display:flex;flex-direction:column;gap:8px}.calibration-wizard .cal-chip--row{width:100%;justify-content:flex-start;text-align:left;padding:12px 14px}.calibration-wizard .cal-hint--route{margin-top:8px}.calibration-wizard .cal-score-tip--solo{text-align:center;margin:0 0 8px}body{margin:0}.teacher-accordion-card{border:1px solid #e8e8e8}.teacher-accordion-card-expanded{border-color:#93c5fd}.teacher-accordion-card:focus-within{outline:none;box-shadow:none}.teacher-accordion-header{outline:none;box-shadow:none;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.teacher-accordion-header:focus{outline:none;box-shadow:none}.teacher-accordion-header:focus-visible{outline:2px solid #93c5fd;outline-offset:-2px;box-shadow:none}.teacher-accordion-body select:focus,.teacher-accordion-body button:focus{outline:none;box-shadow:none}.teacher-accordion-body select:focus-visible,.teacher-accordion-body button:focus-visible{outline:2px solid #93c5fd;outline-offset:0}input[type=range].audio-transport-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;background:#e5e7eb;border-radius:3px}input[type=range].audio-transport-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 3px #0003}input[type=range].audio-transport-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 3px #0003}input[type=range].audio-transport-slider:disabled{opacity:.45;cursor:not-allowed}:root{--student-list-max: 480px;--student-desktop-max: 40rem;--student-desktop-gutter: 12px}@media(min-width:641px){:root{--student-desktop-max: 40rem;--student-desktop-gutter: 28px}}@media(min-width:1100px){:root{--student-desktop-max: 44rem;--student-desktop-gutter: 40px}}@media(min-width:1440px){:root{--student-desktop-max: 46rem}}.practice-layout{--practice-edge-inline: max( 10px, env(safe-area-inset-left), env(safe-area-inset-right) )}.practice-layout__column{width:100%;min-width:0;box-sizing:border-box;text-align:left}@media(min-width:641px){.practice-layout:not(.practice-layout--split){--practice-edge-inline: max( 1.25rem, calc(env(safe-area-inset-left, 0px) + var(--student-desktop-gutter)), calc(env(safe-area-inset-right, 0px) + var(--student-desktop-gutter)) )}.practice-layout:not(.practice-layout--split) .practice-layout__column{max-width:var(--student-desktop-max);margin-inline:auto;padding-left:var(--practice-edge-inline);padding-right:var(--practice-edge-inline)}.practice-layout:not(.practice-layout--split)>.practice-layout__chrome{padding-left:0;padding-right:0}.practice-layout:not(.practice-layout--split)>.practice-meter-strip,.practice-layout:not(.practice-layout--split)>.practice-layout__footer{padding-left:0;padding-right:0}.practice-layout:not(.practice-layout--split)>.practice-main{padding-left:0;padding-right:0}.practice-layout:not(.practice-layout--split)>.practice-main>.practice-score-pane{padding-left:0;padding-right:0}}.session-top-bar--student-list{justify-content:center}.session-top-bar--student-list .session-top-bar__column{width:100%;max-width:var(--student-list-max);margin-inline:auto;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.session-top-bar--student-list.session-top-bar--tri{display:flex!important;grid-template-columns:unset}.session-top-bar--student-list .session-top-bar__column--tri{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:var(--teacher-space-2, 8px);justify-content:unset}:root{--teacher-paper: #ffffff;--teacher-paper-2: #fafafa;--teacher-paper-3: #f5f5f5;--teacher-ink: #111111;--teacher-ink-2: #374151;--teacher-muted: #6b7280;--teacher-rule: #e5e7eb;--teacher-rule-soft: #f0f0f0;--teacher-accent: #2563eb;--teacher-accent-ink: #1d4ed8;--teacher-accent-soft: #93c5fd;--teacher-focus: #2563eb;--teacher-danger: #dc2626;--teacher-danger-soft: #fca5a5;--teacher-warn: #c2410c;--teacher-warn-soft: #fff7ed;--teacher-warn-border: #fdba74;--teacher-ok: #15803d;--teacher-radius: 8px;--teacher-radius-card: 10px;--teacher-space-1: 4px;--teacher-space-2: 8px;--teacher-space-3: 12px;--teacher-space-4: 16px;--teacher-space-5: 24px;--teacher-ease-out: cubic-bezier(.22, 1, .36, 1);--teacher-dur: .15s}.teacher-workbench{font-family:system-ui,sans-serif;color:var(--teacher-ink)}.assignment-title{margin:0;font-size:15px;font-weight:600;line-height:1.35;color:var(--teacher-ink);overflow-wrap:anywhere;font-style:normal}.teacher-context-strip{margin:0 0 var(--teacher-space-3);padding:var(--teacher-space-2) var(--teacher-space-3);background:var(--teacher-paper-3);border:1px solid var(--teacher-rule);border-radius:var(--teacher-radius);font-size:13px;line-height:1.45;color:var(--teacher-ink-2)}.teacher-context-strip strong{font-weight:600;color:var(--teacher-ink)}.teacher-sticky-context{position:sticky;top:0;z-index:2;margin:0 0 var(--teacher-space-3);padding:var(--teacher-space-2) var(--teacher-space-3);background:color-mix(in srgb,var(--teacher-paper) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--teacher-rule);border-radius:var(--teacher-radius);box-shadow:0 1px color-mix(in srgb,var(--teacher-ink) 4%,transparent)}.teacher-sticky-context__title{margin:0 0 var(--teacher-space-1);font-size:16px;font-weight:600;line-height:1.3;color:var(--teacher-ink);overflow-wrap:anywhere}.teacher-sticky-context__stats{display:flex;flex-wrap:wrap;gap:var(--teacher-space-2) var(--teacher-space-4);font-size:13px;color:var(--teacher-ink-2)}.teacher-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--teacher-space-2) var(--teacher-space-3);margin-bottom:var(--teacher-space-3);padding-bottom:var(--teacher-space-2);border-bottom:1px solid var(--teacher-rule-soft)}.teacher-toolbar__sort{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--teacher-space-2);font-size:13px;color:var(--teacher-ink-2)}.teacher-toolbar__legend{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:12px;color:var(--teacher-muted);line-height:1.4}.teacher-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.3;flex-shrink:0;border:1px solid transparent}.teacher-badge--published{color:var(--teacher-ok);background:color-mix(in srgb,var(--teacher-ok) 10%,var(--teacher-paper));border-color:color-mix(in srgb,var(--teacher-ok) 28%,var(--teacher-paper))}.teacher-badge--pending{color:var(--teacher-muted);background:var(--teacher-paper-3);border-color:var(--teacher-rule)}.teacher-badge--hidden{color:var(--teacher-muted);background:var(--teacher-paper-2);border-color:var(--teacher-rule)}.teacher-badge--bake{color:var(--teacher-accent-ink);background:color-mix(in srgb,var(--teacher-accent) 8%,var(--teacher-paper));border-color:var(--teacher-accent-soft)}.teacher-badge--bake-failed{color:var(--teacher-danger);background:color-mix(in srgb,var(--teacher-danger) 8%,var(--teacher-paper));border-color:var(--teacher-danger-soft)}.teacher-badge--grading{color:var(--teacher-warn);background:var(--teacher-warn-soft);border-color:var(--teacher-warn-border)}.teacher-badge--visible{color:var(--teacher-ok);background:color-mix(in srgb,var(--teacher-ok) 10%,var(--teacher-paper));border-color:color-mix(in srgb,var(--teacher-ok) 28%,var(--teacher-paper))}.teacher-class-actions{display:flex;flex-direction:column;gap:var(--teacher-space-2);width:100%}.teacher-class-actions__primary{display:flex;align-items:stretch;gap:var(--teacher-space-2);width:100%}.teacher-class-actions__secondary{display:flex;align-items:center;gap:var(--teacher-space-2);font-size:12px;font-weight:500;color:var(--teacher-muted)}.teacher-accordion-header:focus{outline:none}.teacher-accordion-header:focus-visible{outline:2px solid var(--teacher-focus);outline-offset:-2px;border-radius:var(--teacher-radius)}.teacher-accordion-card{transition:border-color var(--teacher-dur) var(--teacher-ease-out),background-color var(--teacher-dur) var(--teacher-ease-out)}@media(prefers-reduced-motion:reduce){.teacher-accordion-card{transition:none}.teacher-accordion-header [aria-hidden]{transition:none!important}}.session-top-bar--tri{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:var(--teacher-space-2)}.session-top-bar__start{justify-self:start;min-width:0;max-width:100%}.session-top-bar__start .session-identity{flex:0 1 auto;width:100%;max-width:100%}.session-top-bar__center{justify-self:center;font-size:15px;font-weight:600;line-height:1.25;color:var(--teacher-ink);white-space:nowrap;text-align:center;pointer-events:none}.session-top-bar__end{justify-self:end;min-width:0;display:flex;justify-content:flex-end}.session-identity{flex:1 1 auto;min-width:0;margin:0;display:flex;flex-direction:column;justify-content:center;gap:1px;font-style:normal}.session-identity--with-suffix{flex-direction:row;align-items:center;gap:var(--teacher-space-2)}.session-identity__stack{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:1px}.session-identity__primary,.session-identity__secondary{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}.session-identity__primary{font-size:15px;font-weight:600;line-height:1.25;color:var(--teacher-ink)}.session-identity__secondary{font-size:12px;font-weight:400;line-height:1.3;color:var(--teacher-muted)}.session-identity__suffix{flex:0 1 auto;min-width:0;max-width:42%;font-size:14px;font-weight:500;line-height:1.3;color:var(--teacher-ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:374px){.session-identity__primary{font-size:14px}.session-identity__suffix{font-size:13px;max-width:38%}}.tf-entry{margin-top:var(--teacher-space-3);padding-top:var(--teacher-space-3);border-top:1px solid color-mix(in srgb,var(--teacher-rule) 80%,transparent)}.tf-entry__trigger{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--teacher-space-3);width:100%;min-height:44px;margin:0;padding:var(--teacher-space-2) var(--teacher-space-3);box-sizing:border-box;border:1px solid var(--teacher-rule);border-radius:var(--teacher-radius);background:var(--teacher-paper);color:var(--teacher-ink);text-align:left;cursor:pointer;font:inherit;transition:border-color var(--teacher-dur) var(--teacher-ease-out),background-color var(--teacher-dur) var(--teacher-ease-out)}.tf-entry__trigger:hover,.tf-entry__trigger.is-hover{border-color:var(--teacher-accent-soft);background:var(--teacher-paper-2)}.tf-entry__trigger:focus{outline:none}.tf-entry__trigger:focus-visible,.tf-entry__trigger.is-focus{outline:2px solid var(--teacher-focus);outline-offset:2px}.tf-entry__trigger:active,.tf-entry__trigger.is-active{transform:translateY(1px)}.tf-entry__trigger[disabled],.tf-entry__trigger.is-disabled{opacity:.55;cursor:not-allowed}.tf-entry__copy{min-width:0;flex:1}.tf-entry__title{display:block;font-size:14px;font-weight:600;line-height:1.35;color:var(--teacher-ink);overflow-wrap:anywhere}.tf-entry__hint{display:block;margin-top:2px;font-size:12px;font-weight:400;line-height:1.4;color:var(--teacher-muted)}.tf-entry__chevron{flex:0 0 auto;margin-top:2px;font-size:12px;font-weight:600;color:var(--teacher-muted);transition:transform var(--teacher-dur) var(--teacher-ease-out)}.tf-entry__trigger[aria-expanded=true] .tf-entry__chevron{transform:rotate(180deg)}.tf-entry__trigger.is-done .tf-entry__title{color:var(--teacher-ok)}.tf-panel{margin-top:var(--teacher-space-2);padding:var(--teacher-space-3);border:1px solid var(--teacher-rule);border-radius:var(--teacher-radius-card);background:var(--teacher-paper)}.tf-panel.is-loading{font-size:13px;color:var(--teacher-muted)}.tf-note{margin:0 0 var(--teacher-space-3);font-size:12px;line-height:1.45;color:var(--teacher-ink-2)}.tf-label{display:block;margin:0 0 var(--teacher-space-2);font-size:13px;font-weight:600;color:var(--teacher-ink)}.tf-textarea{display:block;width:100%;min-height:96px;box-sizing:border-box;margin:0;padding:10px 12px;border:1px solid var(--teacher-rule);border-radius:var(--teacher-radius);background:var(--teacher-paper);color:var(--teacher-ink);font:inherit;font-size:15px;line-height:1.45;resize:vertical}.tf-textarea::placeholder{color:var(--teacher-muted)}.tf-textarea:hover:not(:disabled),.tf-textarea.is-hover{border-color:color-mix(in srgb,var(--teacher-accent-soft) 70%,var(--teacher-rule))}.tf-textarea:focus,.tf-textarea.is-focus{outline:none}.tf-textarea:focus-visible,.tf-textarea.is-focus{outline:2px solid var(--teacher-focus);outline-offset:1px;border-color:var(--teacher-accent-soft)}.tf-textarea:disabled,.tf-textarea.is-disabled{background:var(--teacher-paper-3);color:var(--teacher-ink-2);cursor:default}.tf-more{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin:var(--teacher-space-2) 0 0;padding:0;border:none;background:none;color:var(--teacher-accent-ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}.tf-more:hover,.tf-more.is-hover{text-decoration:underline}.tf-more:focus{outline:none}.tf-more:focus-visible,.tf-more.is-focus{outline:2px solid var(--teacher-focus);outline-offset:2px;border-radius:4px}.tf-more:disabled,.tf-more.is-disabled{opacity:.5;cursor:not-allowed}.tf-questions{display:flex;flex-direction:column;gap:var(--teacher-space-4);margin-top:var(--teacher-space-3);padding-top:var(--teacher-space-3);border-top:1px solid var(--teacher-rule-soft)}.tf-open-after-questions{padding-top:var(--teacher-space-2);border-top:1px solid var(--teacher-rule-soft)}.tf-rank-chips{display:flex;flex-wrap:wrap;gap:8px}.tf-rank-chip{position:relative;min-height:36px;padding:8px 12px;border:1px solid var(--teacher-rule);border-radius:var(--teacher-radius);background:var(--teacher-paper);color:var(--teacher-ink-2);font:inherit;font-size:13px;font-weight:500;cursor:pointer}.tf-rank-chip.is-on{border-color:var(--teacher-accent);background:color-mix(in srgb,var(--teacher-accent) 8%,var(--teacher-paper));color:var(--teacher-ink);font-weight:600}.tf-rank-chip.is-dim{background:var(--teacher-paper-2);color:var(--teacher-muted);opacity:.7}.tf-rank-chip:hover:not(:disabled),.tf-rank-chip.is-hover{border-color:var(--teacher-accent-soft)}.tf-rank-chip:focus{outline:none}.tf-rank-chip:focus-visible,.tf-rank-chip.is-focus{outline:2px solid var(--teacher-focus);outline-offset:1px}.tf-rank-chip:disabled,.tf-rank-chip.is-disabled{cursor:not-allowed}.tf-rank-chip__badge{position:absolute;top:-6px;left:-4px;padding:1px 5px;border-radius:6px;background:var(--teacher-accent);color:#fff;font-size:10px;font-weight:700;line-height:1.3}.tf-q__title{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--teacher-ink)}.tf-q__lede{margin:0 0 var(--teacher-space-2);font-size:12px;line-height:1.4;color:var(--teacher-muted)}.tf-choices{display:flex;flex-direction:column;gap:6px}.tf-choice{display:flex;align-items:flex-start;gap:10px;width:100%;min-height:44px;margin:0;padding:10px 12px;box-sizing:border-box;border:1px solid var(--teacher-rule);border-radius:var(--teacher-radius);background:var(--teacher-paper);text-align:left;cursor:pointer;font:inherit;color:var(--teacher-ink);transition:border-color var(--teacher-dur) var(--teacher-ease-out),background-color var(--teacher-dur) var(--teacher-ease-out)}.tf-choice:hover:not(:disabled),.tf-choice.is-hover{border-color:var(--teacher-accent-soft);background:var(--teacher-paper-2)}.tf-choice:focus{outline:none}.tf-choice:focus-visible,.tf-choice.is-focus{outline:2px solid var(--teacher-focus);outline-offset:1px}.tf-choice:active:not(:disabled),.tf-choice.is-active{transform:translateY(1px)}.tf-choice[aria-checked=true],.tf-choice.is-success{border-color:var(--teacher-accent);background:color-mix(in srgb,var(--teacher-accent) 6%,var(--teacher-paper))}.tf-choice:disabled,.tf-choice.is-disabled{cursor:default;opacity:.85}.tf-choice__letter{flex:0 0 auto;width:22px;height:22px;border-radius:6px;border:1px solid var(--teacher-rule);background:var(--teacher-paper-3);color:var(--teacher-ink-2);font-size:12px;font-weight:700;line-height:20px;text-align:center}.tf-choice[aria-checked=true] .tf-choice__letter{border-color:var(--teacher-accent);background:var(--teacher-accent);color:#fff}.tf-choice__body{min-width:0;flex:1}.tf-choice__short{display:block;font-size:14px;font-weight:600;line-height:1.3}.tf-choice__detail{display:block;margin-top:2px;font-size:12px;font-weight:400;line-height:1.4;color:var(--teacher-muted)}.tf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--teacher-space-2);margin-top:var(--teacher-space-4)}.tf-submit{min-height:44px;padding:0 16px;border:1px solid var(--teacher-accent);border-radius:var(--teacher-radius);background:var(--teacher-accent);color:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.tf-submit:hover:not(:disabled),.tf-submit.is-hover{background:var(--teacher-accent-ink);border-color:var(--teacher-accent-ink)}.tf-submit:focus{outline:none}.tf-submit:focus-visible,.tf-submit.is-focus{outline:2px solid var(--teacher-focus);outline-offset:2px}.tf-submit:active:not(:disabled),.tf-submit.is-active{transform:translateY(1px)}.tf-submit:disabled,.tf-submit.is-disabled,.tf-submit.is-loading{background:var(--teacher-paper-3);border-color:var(--teacher-rule);color:var(--teacher-muted);cursor:not-allowed}.tf-done-block{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:36em}.tf-done{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border-radius:999px;background:color-mix(in srgb,var(--teacher-ok) 12%,var(--teacher-paper));color:var(--teacher-ok);font-size:13px;font-weight:600}.tf-done__note{margin:0;font-size:13px;line-height:1.45;color:var(--teacher-ink-2)}.tf-msg{margin:var(--teacher-space-2) 0 0;font-size:13px;line-height:1.4;color:var(--teacher-ink-2)}.tf-msg.is-error{color:var(--teacher-danger)}@media(prefers-reduced-motion:reduce){.tf-entry__trigger,.tf-entry__chevron,.tf-choice,.tf-submit{transition:none}.tf-entry__trigger:active,.tf-choice:active,.tf-submit:active{transform:none}}.practice-main{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.practice-score-pane{flex:1 1 auto;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px max(10px,env(safe-area-inset-left)) 4px max(10px,env(safe-area-inset-right))}.practice-main--split .practice-review-pane{flex:0 1 auto;min-width:0;min-height:7.5rem;max-height:min(42dvh,22rem);display:flex;flex-direction:column;overflow:hidden;padding:var(--teacher-space-2) max(10px,env(safe-area-inset-left)) var(--teacher-space-2) max(10px,env(safe-area-inset-right));border-bottom:1px solid var(--teacher-rule);background:var(--teacher-paper)}.practice-main--split .practice-score-pane{flex:1 1 55%;min-height:10rem}.practice-review-pane__chrome{display:flex;flex-direction:column;gap:var(--teacher-space-2);min-width:0;min-height:0;flex:1 1 auto;height:100%;overflow:hidden}.practice-review-pane__sticky{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--teacher-space-2);min-width:0}.practice-review-pane__title-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.practice-review-pane__title{flex:1 1 auto;min-width:0}.practice-review-pane__status{flex:0 0 auto;font-size:12px;font-weight:500;color:var(--teacher-warn);white-space:nowrap;line-height:1.4}.practice-review-feedback{flex:1 1 auto;min-width:0;min-height:4.5rem;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--teacher-radius);background:color-mix(in srgb,var(--teacher-ok) 6%,var(--teacher-paper));border:1px solid color-mix(in srgb,var(--teacher-ok) 28%,var(--teacher-rule));font-size:13px}.practice-review-feedback__scroll{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--teacher-space-2) var(--teacher-space-3)}.practice-review-feedback__head{display:flex;align-items:center;justify-content:space-between;gap:var(--teacher-space-2);font-weight:600;color:var(--teacher-ok);margin-bottom:var(--teacher-space-1)}.practice-review-feedback__context{font-size:12px;color:var(--teacher-muted);margin-bottom:var(--teacher-space-2);line-height:1.4}.practice-review-feedback__stars{flex:0 0 auto;margin-left:auto;color:#f59e0b;letter-spacing:2px;font-weight:600;line-height:1}.practice-review-feedback__text{color:var(--teacher-ink);line-height:1.45;overflow-wrap:anywhere}.practice-review-feedback__warn{color:var(--teacher-warn);font-size:12px}.practice-review-feedback--pending{background:color-mix(in srgb,var(--teacher-muted) 8%,var(--teacher-paper));border-color:var(--teacher-rule)}.practice-review-feedback--pending .practice-review-feedback__head{color:var(--teacher-ink)}.practice-review-feedback__pending-hint{font-size:12px;color:var(--teacher-muted)}.practice-review-return{background:var(--teacher-warn-soft);color:var(--teacher-warn);padding:var(--teacher-space-2) var(--teacher-space-3);font-size:13px;font-weight:500;border-radius:6px;line-height:1.45;border:1px solid var(--teacher-warn-border)}.practice-review-return__title{font-weight:600;margin-bottom:var(--teacher-space-1)}@media(min-width:768px){.practice-main--split{flex-direction:row;align-items:stretch}.practice-main--split .practice-review-pane{flex:0 0 clamp(16rem,34vw,22rem);max-height:none;height:100%;border-bottom:none;border-right:1px solid var(--teacher-rule);background:var(--teacher-paper-2)}.practice-main--split .practice-score-pane{flex:1 1 auto;min-height:0}}@media(prefers-reduced-motion:reduce){.practice-review-feedback__scroll,.practice-score-pane{scroll-behavior:auto}}
