.cite-mark{border-radius:var(--radius-full);background:var(--color-accent-subtle);min-width:18px;height:18px;color:var(--color-accent-text);box-shadow:inset 0 0 0 1px var(--color-accent-muted);font:var(--font-weight-semibold) 11px/1 var(--font-sans);font-variant-numeric:tabular-nums;vertical-align:1px;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-normal) var(--ease-spring);border:0;justify-content:center;align-items:center;margin:0 2px;padding:0 5px;display:inline-flex}button.cite-mark{cursor:pointer}button.cite-mark:hover{background:var(--color-accent);color:var(--color-text-inverse)}button.cite-mark:active{transform:scale(var(--press-scale));transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out)}button.cite-mark:focus-visible{box-shadow:var(--ring-focus);outline:none}.cite-mark--missing{background:var(--color-surface-muted);height:auto;color:var(--color-text-secondary);box-shadow:none;font-weight:var(--font-weight-regular);padding:0 6px}.answer-sources.src-list{gap:var(--space-1-5);margin:var(--space-3) 0 0;font-size:var(--font-size-sm);padding:0;list-style:none;display:grid}.src-list>li{min-width:0}.src-card{align-items:center;gap:var(--space-2-5);width:100%;min-height:48px;padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-md);background:var(--gradient-surface);color:var(--color-text);box-shadow:var(--elevation-control);font:inherit;text-align:left;transition:box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-spring);border:0;display:flex}button.src-card{cursor:pointer}button.src-card:hover{box-shadow:var(--highlight-top), 0 0 0 1px var(--color-border-strong), var(--shadow-md)}button.src-card:active{transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);transform:scale(.99)}button.src-card:focus-visible{box-shadow:var(--elevation-control), var(--ring-focus);outline:none}.src-card__n{border-radius:var(--radius-full);background:var(--color-accent-subtle);width:20px;height:20px;color:var(--color-accent-text);box-shadow:inset 0 0 0 1px var(--color-accent-muted);font-size:11px;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;flex:none;justify-content:center;align-items:center;display:inline-flex}.src-card__text{flex:1;gap:1px;min-width:0;display:grid}.src-card__text small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.src-card__text strong{-webkit-line-clamp:2;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.src-card__text small{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.src-card__go{width:16px;height:16px;color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out), transform var(--duration-normal) var(--ease-out);flex:none}button.src-card:hover .src-card__go{color:var(--color-accent-text);transform:translate(1px,-1px)}.src-card__thumb{aspect-ratio:4/3;border-radius:var(--radius-sm);background:var(--color-surface-muted);width:72px;box-shadow:0 0 0 1px var(--color-border);object-fit:cover;object-position:top;flex:none}.src-card--missing{background:var(--color-surface-subtle);min-height:40px;box-shadow:inset 0 0 0 1px var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.cr{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.cr-bar{align-items:center;gap:var(--space-1-5);min-height:48px;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);flex:none;display:flex}.cr-name{min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cr-pager{flex:none;align-items:center;margin:0 auto;display:flex}.cr-name+.cr-pager{margin:0}.cr-page-field{align-items:center;gap:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:row;margin:0;display:inline-flex}.cr-page-field input{border-radius:var(--radius-sm);background:var(--color-surface);width:36px;height:28px;box-shadow:var(--elevation-inset);color:var(--color-text);font:var(--font-weight-semibold) var(--font-size-sm) / 1 var(--font-sans);text-align:center;border:0;padding:0}.cr-page-field input:focus{box-shadow:var(--ring-focus);outline:none}.cr-tools{flex:none;align-items:center;display:flex}.cr-tools a.ui-button{text-decoration:none}.cr-stage{min-height:0;padding:var(--space-4);background:var(--color-surface-muted);overscroll-behavior:contain;flex:1;position:relative;overflow:auto}.cr-stage:focus-visible{box-shadow:inset var(--ring-focus);outline:none}.cr-page{border-radius:var(--radius-sm);box-shadow:0 0 0 1px #0a0a0b0f, var(--shadow-md);background:#fff;margin:0 auto;position:relative;overflow:hidden}.cr-page canvas{display:block}.cr-image,.cr-slide{border-radius:var(--radius-sm);width:100%;height:auto;box-shadow:0 0 0 1px #0a0a0b0f, var(--shadow-md);background:#fff;display:block}.cr-slide{gap:var(--space-3);padding:var(--space-5);display:grid}.cr-slide img{max-width:100%;height:auto}.cr-slide pre{color:var(--color-text);font:var(--font-size-md) / var(--line-height-normal) var(--font-sans);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.cr-loading{top:var(--space-5);right:var(--space-5);z-index:3;display:flex;position:absolute}.cr-mark{z-index:2;mix-blend-mode:multiply;pointer-events:none;background:#38bdf847;border-radius:3px;position:absolute}.dialog-content.dialog-wide.course-reader-dialog{flex-direction:column;width:min(1280px,94vw);max-width:none;height:92dvh;max-height:92dvh;padding:0;display:flex;overflow:hidden}.dialog-content.course-reader-dialog>.dialog-heading{flex:none;min-width:0;margin:0;position:static}.course-guide{gap:var(--space-5);display:grid}.course-guide__loading{gap:var(--space-2);display:grid}.course-guide .course-guide-section{gap:var(--space-2);margin:0;display:grid}.course-guide .course-guide-section h4{font-size:var(--font-size-md);margin:0}.course-guide-section .answer-sources.src-list{margin-top:var(--space-1)}
.ws-brand{align-items:center;gap:var(--space-2-5);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);flex:none;display:flex}.ws-brand .brand-icon{place-items:center;display:grid}.ws-brand:active .brand-icon{transition-duration:var(--duration-instant);transform:scale(.92)}.ws-brand:focus-visible{box-shadow:var(--ring-focus);outline:none}.ws-nav{margin-left:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-muted);box-shadow:var(--elevation-well);gap:2px;padding:3px;display:flex}.ws-nav a{align-items:center;gap:var(--space-1-5);height:30px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-spring);display:inline-flex}.ws-nav a svg{width:15px;height:15px}.ws-nav a:hover{color:var(--color-text)}.ws-nav a:active{transform:scale(var(--press-scale));transition-duration:var(--duration-instant)}.ws-nav a[aria-current=page]{background:var(--gradient-surface);color:var(--color-text);box-shadow:var(--highlight-top), 0 0 0 1px #0a0a0b0f, var(--shadow-sm)}.ws-nav a[aria-current=page] svg{color:var(--color-accent-text)}.ws-nav a:focus-visible{box-shadow:var(--ring-focus);outline:none}@media (max-width:1200px){.ws-brand-name{display:none}}.page{width:100%;max-width:1200px;padding:var(--space-8) var(--space-8) var(--space-12);margin:0 auto}@media (min-width:1680px){.page{max-width:1320px}}.page-head{margin-bottom:var(--space-6)}.page-head__row{align-items:center;gap:var(--space-3);min-height:36px;display:flex}.page-head h1{min-width:0;font-size:var(--font-size-2xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0}.manager-app .page-head h1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-head h1:focus{outline:none}.page-back{padding-left:var(--space-2);flex:none}.page-back+h1{padding-left:var(--space-3);border-left:1px solid var(--color-border);font-size:var(--font-size-xl)}.page-head__actions{gap:var(--space-2);flex:none;margin-left:auto;display:flex}.page-head__lede{align-items:center;gap:var(--space-2-5);margin:var(--space-1-5) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm);display:flex}.page-loading{align-content:center;min-height:40vh}.search-field{min-width:0;display:block;position:relative}.search-field>svg{top:50%;left:var(--space-3);width:16px;height:16px;color:var(--color-text-muted);pointer-events:none;position:absolute;transform:translateY(-50%)}.search-field>.ui-input{padding-left:calc(var(--space-3) + 16px + var(--space-2))}.login-page{min-height:100dvh;padding:var(--space-8) var(--space-5);background:radial-gradient(60% 50% at 50% 0%, #38bdf81a, transparent 70%), var(--color-canvas);place-items:center;display:grid}.login-card{width:460px;max-width:100%;padding:var(--space-8) var(--space-10) var(--space-10);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--elevation-dialog);animation:ws-dialog-rise var(--duration-slow) var(--ease-out);border:0}@keyframes ws-dialog-rise{0%{opacity:0;transform:translateY(8px)scale(.99)}}@media (prefers-reduced-motion:reduce){.login-card{animation:none}}.login-card__head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-8);display:flex}.login-card__head .language-switcher{--ui-bg:transparent;--ui-shadow:none;color:var(--color-text-secondary)}.login-brand{align-items:center;gap:var(--space-2-5);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin:0;display:flex}.login-brand .brand-icon{border-radius:var(--radius-sm);background:var(--gradient-inverse);width:32px;height:32px;box-shadow:var(--elevation-inverse);color:var(--color-text-inverse);place-items:center;display:grid}.login-checking{align-content:center;min-height:240px;display:grid}.login-card h2,.login-card h1{font-size:var(--font-size-2xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0}.login-card h2{margin-bottom:var(--space-5)}.login-modes{width:100%;display:flex}.login-modes .ui-segmented__item{padding:0 var(--space-2);flex:1;justify-content:center}.login-card form{gap:var(--space-4);margin-top:var(--space-5);display:grid}.login-card form .error{margin:0}.login-submit{width:100%;margin-top:var(--space-1)}.login-entry{padding:0 var(--space-10);isolation:isolate;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);align-content:stretch;gap:0;position:relative;overflow:hidden}.login-entry__head,.login-layout{width:min(1240px,100%);position:relative}.login-entry__head{justify-content:space-between;align-items:center;height:72px;display:flex}.login-layout{padding:max(var(--space-10), calc(50dvh - 72px - 220px)) 0 var(--space-10);align-self:start;justify-items:end;display:grid}.login-form{width:340px;max-width:100%;animation:ws-dialog-rise var(--duration-slow) var(--ease-out)}@media (prefers-reduced-motion:reduce){.login-form{animation:none}}.login-form h1{margin:0 0 var(--space-1-5);font-size:var(--font-size-3xl);line-height:var(--line-height-tight);letter-spacing:-.02em}.login-mode-hint{margin:0 0 var(--space-6);color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:var(--line-height-normal)}.login-form form{gap:var(--space-4);margin-top:var(--space-6);display:grid}.login-form form .error{margin:0}.practice-loop{z-index:-1;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 0% 40%,#00000029 63%,#0000000d 100%);mask-image:linear-gradient(90deg,#000 0% 40%,#00000029 63%,#0000000d 100%)}.practice-loop>pre{color:var(--color-text-disabled);font:var(--font-weight-regular) var(--font-size-lg) / 1.7 var(--font-mono);white-space:pre;opacity:.7;animation:practice-drift 150s var(--ease-in-out) infinite alternate;will-change:transform;margin:0;position:absolute;top:-8%;left:-4%}@keyframes practice-drift{0%{transform:translate(0,0)}to{transform:translate(-14%,-22%)}}@media (prefers-reduced-motion:reduce){.practice-loop>pre{animation:none}}.practice-loop__row{display:block}.practice-loop [data-tone=f]{color:color-mix(in srgb, var(--color-danger) 38%, var(--color-text-disabled))}.practice-loop [data-tone=p]{color:color-mix(in srgb, var(--color-success) 38%, var(--color-text-disabled))}.practice-loop [data-tone=a]{color:color-mix(in srgb, var(--color-accent) 45%, var(--color-text-disabled))}@media (max-width:1120px){.login-entry{padding:0 var(--space-8)}}.not-found{text-align:center}.not-found .login-card__head{text-align:left}.not-found h1{margin-bottom:var(--space-6)}.not-found>.ui-button{width:100%}.learner-home{max-width:1080px}@media (min-width:1680px){.learner-home{max-width:1200px}}.learn-meter{border-radius:var(--radius-full);background:var(--color-surface-muted);width:180px;height:8px;box-shadow:var(--elevation-well);flex:none;position:relative;overflow:hidden}.learn-meter>span{border-radius:inherit;background:var(--color-success);min-width:8px;position:absolute;inset:0 auto 0 0}.resume-row{align-items:center;gap:var(--space-4);margin-top:0;margin-bottom:var(--space-8);padding:var(--space-5) var(--space-6) var(--space-5) var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--elevation-card), var(--shadow-sm);transition:box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-spring);border:0;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.resume-row:hover{box-shadow:var(--elevation-card), var(--shadow-md)}.resume-row:active{transition-duration:var(--duration-instant);transform:scale(.995)}.resume-row:focus-visible{box-shadow:var(--elevation-card), var(--ring-focus);outline:none}.resume-row__mark{border-radius:var(--radius-md);background:var(--color-accent-subtle);width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--color-accent-border);color:var(--color-accent-text);align-self:start;place-items:center;display:grid}.resume-row__mark svg{width:20px;height:20px}.resume-row small{color:var(--color-accent-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.resume-row h2{font-size:var(--font-size-xl);letter-spacing:var(--letter-spacing-tight);margin:2px 0 0}.resume-row p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.resume-row p.resume-row__guide{margin-top:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.resume-row>.ui-button{pointer-events:none}.learning-filters{align-items:center;gap:var(--space-2);margin-top:0;margin-bottom:var(--space-4);grid-template-columns:minmax(0,340px) auto 1fr;display:grid}.learning-count{color:var(--color-text-muted);font-size:var(--font-size-xs);justify-self:end}.exercise-list{gap:var(--space-3);background:0 0;border:0;border-radius:0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:visible}.exercise-row{align-items:start;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-4) var(--space-3);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--elevation-card);content-visibility:auto;contain-intrinsic-size:auto 132px;transition:box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-spring);border:0;grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.exercise-row:last-child{border:0}.exercise-row:hover{background:var(--color-surface);box-shadow:var(--elevation-card), var(--shadow-md)}.exercise-row:active{transition-duration:var(--duration-instant);transform:scale(.99)}.exercise-row:focus-visible{box-shadow:var(--elevation-card), var(--ring-focus);outline:none}.exercise-row .number{border-radius:var(--radius-xs);background:var(--color-surface-muted);min-width:30px;height:24px;color:var(--color-text-muted);font:var(--font-weight-medium) var(--font-size-xs) / 1 var(--font-mono);place-items:center;margin-top:1px;display:grid}.exercise-row h2{font-size:var(--font-size-md);line-height:var(--line-height-snug);margin:2px 0 0}.exercise-row .exercise-summary{max-width:none;margin:var(--space-1) 0 var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.exercise-row small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.exercise-row .ui-badge{white-space:nowrap;margin-top:1px}.exercise-row__go{width:16px;height:16px;color:var(--color-text-muted);transition:transform var(--duration-normal) var(--ease-out), color var(--duration-fast) var(--ease-out);margin-top:4px}.exercise-row:hover .exercise-row__go{color:var(--color-text);transform:translate(2px)}.dashboard{gap:var(--space-5);max-width:1280px;padding:var(--space-8) var(--space-8) var(--space-12);flex-direction:column;display:flex}@media (min-width:1680px){.dashboard{max-width:1440px}}.dashboard [hidden]{display:none!important}.dashboard .page-head{margin:0}.environment-strip{align-items:center;gap:var(--space-4);min-width:0;margin:0 0 0 var(--space-2);border:0;padding:0;display:flex}.environment-chip{align-items:center;gap:var(--space-1-5);height:24px;padding:0 var(--space-2-5);border-radius:var(--radius-full);background:var(--color-surface-muted);box-shadow:inset 0 0 0 1px var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-xs);display:inline-flex}.environment-chip svg{width:13px;height:13px;color:var(--color-text-muted)}.environment-switching{align-items:center;gap:var(--space-1-5);color:var(--color-text-secondary);font-size:var(--font-size-xs);white-space:nowrap;display:inline-flex}.environment-switching .ui-spinner{width:12px;height:12px}.environment-strip .ui-check{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.dashboard-stats{gap:var(--space-3);border:0;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;display:grid}.dashboard-stats>div,.dashboard-stats>button{place-content:center stretch;gap:var(--space-1);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--elevation-card);text-align:left;border:0;display:grid}.dashboard-stats small{color:var(--color-text-muted);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard-stats strong{color:var(--color-text);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;line-height:var(--line-height-tight)}.dashboard-stats>button{cursor:pointer;transition:box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-spring)}.dashboard-stats>button:hover{background:var(--color-surface);box-shadow:var(--elevation-card), var(--shadow-md)}.dashboard-stats>button:active{transition-duration:var(--duration-instant);transform:scale(.985)}.dashboard-stats>button:focus-visible{box-shadow:var(--elevation-card), var(--ring-focus);outline:none}.dashboard-stats>button.is-alert strong{color:var(--color-danger-text)}.dashboard-stats>button[aria-pressed=true]{box-shadow:var(--elevation-card), 0 0 0 2px var(--color-accent)}.dash-toolbar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.teacher-views{border:0;flex:none;gap:0}.teacher-views .ui-segmented__item svg{width:15px;height:15px}.teacher-filters{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:nowrap;flex:1;min-width:0;margin:0;display:flex}.teacher-filters .search-field{flex:1;max-width:280px}.teacher-filters .ui-select-button{min-width:0;max-width:180px}.teacher-filters .ui-select-button__label{text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}@media (max-width:1180px){.teacher-filters{flex-basis:100%;justify-content:flex-start}.teacher-filters .search-field{max-width:none}}.dash-card{border-radius:var(--radius-lg);background:var(--color-surface);min-width:0;box-shadow:var(--elevation-card)}.dash-card__head{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.dash-card__head h2{font-size:var(--font-size-lg);line-height:var(--line-height-tight);margin:0}.dash-card__head h2 small{margin-left:var(--space-1-5);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular)}.dash-card__head p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.attention-list{max-height:min(520px,60vh);padding:var(--space-2);scrollbar-width:thin;grid-template-columns:minmax(0,1fr);gap:2px;margin:0;list-style:none;display:grid;overflow:auto}.attention-list button{align-items:center;gap:var(--space-4);width:100%;min-height:60px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);text-align:left;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-normal) var(--ease-spring);background:0 0;border:0;grid-template-columns:minmax(120px,200px) minmax(0,1fr) auto auto;display:grid}.attention-list button:hover{background:var(--color-surface-hover)}.attention-list button:active{transition-duration:var(--duration-instant);transform:scale(.995)}.attention-who,.attention-what{gap:1px;min-width:0;display:grid}.attention-who strong,.attention-list button strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attention-who time,.attention-what small{color:var(--color-text-muted);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;margin:0;display:block;overflow:hidden}.attention-what>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attention-action{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;align-items:center;gap:2px;display:inline-flex}.attention-action svg{width:15px;height:15px;transition:transform var(--duration-normal) var(--ease-out)}.attention-list button:hover .attention-action{color:var(--color-text)}.attention-list button:hover .attention-action svg{transform:translate(2px)}.attention-panel>.ui-status{padding-block:var(--space-10)}.attention-panel>.teaching-suggestions{margin:0 var(--space-5) var(--space-5)}.state-passed{background:var(--color-mastery-passed);color:var(--color-mastery-passed-text)}.state-practice{background:var(--color-mastery-practice);color:var(--color-mastery-practice-text)}.state-none{background:var(--color-mastery-none);color:var(--color-mastery-none-text)}.matrix-panel .table-scroll{border-radius:inherit;scrollbar-width:thin;max-height:min(640px,68vh);overflow:auto}.mastery-matrix{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--font-size-sm);white-space:nowrap}.mastery-matrix th{z-index:1;padding:var(--space-2-5) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:left;position:sticky;top:0}.mastery-matrix th:first-child,.mastery-matrix td:first-child{padding-left:var(--space-5);background:inherit;position:sticky;left:0}.mastery-matrix th:first-child{z-index:2;background:var(--color-surface-subtle)}.mastery-matrix tbody tr{background:var(--color-surface);content-visibility:auto;contain-intrinsic-size:auto 52px}.mastery-matrix tbody tr:hover{background:var(--color-surface-subtle)}.mastery-matrix td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.mastery-matrix tbody tr:last-child td{border-bottom:0}.matrix-name{align-items:center;gap:var(--space-2-5);display:flex}.matrix-name strong{font-weight:var(--font-weight-semibold)}.mastery-cell{min-width:88px;height:26px;padding:0 var(--space-2-5);border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-weight-medium);cursor:pointer;transition:transform var(--duration-normal) var(--ease-spring), box-shadow var(--duration-fast) var(--ease-out);border:0;box-shadow:inset 0 0 0 1px #0a0a0b0f}.mastery-cell:hover{box-shadow:inset 0 0 0 1px #0a0a0b1f, var(--shadow-sm)}.mastery-cell:active{transition-duration:var(--duration-instant);transform:scale(.95)}.mastery-cell:focus-visible{box-shadow:var(--ring-focus);outline:none}.matrix-panel>.ui-status{padding-block:var(--space-10)}.mastery-panel{margin:0}.mastery-chart{gap:var(--space-1);padding:var(--space-3);display:grid}.mastery-row{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);text-align:left;transition:background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-spring);background:0 0;border:0;grid-template-columns:140px minmax(0,1fr) 110px;display:grid}.mastery-row:hover{background:var(--color-surface-hover)}.mastery-row:active{transition-duration:var(--duration-instant);transform:scale(.995)}.mastery-row.chosen{background:var(--color-surface);box-shadow:var(--elevation-selected)}.mastery-row>span{font-weight:var(--font-weight-medium)}.mastery-row>small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-align:right}.stacked-bar{border-radius:var(--radius-sm);background:var(--color-surface-muted);height:26px;box-shadow:var(--elevation-well);gap:2px;padding:2px;display:flex;overflow:hidden}.stacked-bar>span{min-width:0;font-size:11px;font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;border-radius:5px;justify-content:center;align-items:center;display:flex;overflow:hidden}.mastery-item.open{border-radius:var(--radius-md);background:var(--color-surface-subtle);box-shadow:inset 0 0 0 1px var(--color-border)}.topic-detail{gap:var(--space-4);padding:var(--space-2) var(--space-3) var(--space-4);animation:ui-menu-in var(--duration-normal) var(--ease-out);display:grid}.topic-states{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.topic-state{border-radius:var(--radius-md);background:var(--color-surface);min-width:0;box-shadow:inset 0 0 0 1px var(--color-border);flex-direction:column;display:flex}.topic-state>header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);display:flex}.topic-state>header i{border-radius:3px;flex:none;width:10px;height:10px;box-shadow:inset 0 0 0 1px #0a0a0b14}.topic-state h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);flex:1;margin:0}.topic-state>header strong{font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.topic-state>header small{min-width:3.5ch;color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-align:right}.topic-state ul{max-height:208px;padding:var(--space-1);scrollbar-width:thin;margin:0;list-style:none;overflow-y:auto}.topic-state li button{justify-content:space-between;align-items:baseline;gap:var(--space-2);width:100%;padding:var(--space-1-5) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);text-align:left;transition:background-color var(--duration-fast) var(--ease-out);background:0 0;border:0;display:flex}.topic-state li button:hover{background:var(--color-surface-hover)}.topic-state li button:focus-visible{box-shadow:var(--ring-focus);outline:none}.topic-state li button>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.topic-state li button>small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;flex:none}.topic-state__empty{padding:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0}.topic-problems{border-collapse:collapse;border-radius:var(--radius-md);background:var(--color-surface);width:100%;box-shadow:inset 0 0 0 1px var(--color-border);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.topic-problems th,.topic-problems td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);text-align:right;white-space:normal;background:0 0}.topic-problems thead th{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.topic-problems th:first-child{text-align:left}.topic-problems tbody th{font-weight:var(--font-weight-medium)}.topic-problems tbody tr:last-child>*{border-bottom:0}.topic-scope{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0}.topic-insight{gap:var(--space-3);display:grid}.topic-insight__head{align-items:center;gap:var(--space-3);display:flex}.topic-insight__head small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.topic-insight>.teaching-suggestions{margin:0}.teaching-summary{max-width:78ch;margin:var(--space-3) 0 0;font-weight:var(--font-weight-medium)}.state-legend{gap:var(--space-2) var(--space-5);padding:var(--space-3) var(--space-5) var(--space-4);border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-xs);flex-wrap:wrap;margin:0;display:flex}.state-legend>span{align-items:center;gap:var(--space-1-5);display:inline-flex}.state-legend i{border-radius:3px;width:10px;height:10px;box-shadow:inset 0 0 0 1px #0a0a0b14}.dialog-content.dialog-wide.teacher-records{flex-direction:column;width:min(1280px,94vw);height:min(880px,92vh);padding:0;display:flex;overflow:hidden}.dialog-content.teacher-records>.dialog-heading{min-height:60px;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-5);flex:none;margin:0;position:static}.teacher-records .dialog-heading h2{font-size:var(--font-size-lg);flex:none;margin:0}.teacher-records .dialog-actions,.dialog-actions__gap{flex:1}.teacher-records .record-advice{max-height:40%;margin:var(--space-3) var(--space-5) 0;flex:none;overflow:auto}.teacher-records .record-content{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:320px minmax(0,1fr);align-items:stretch;gap:0;min-height:0;display:grid}.teacher-records .submission-list{align-content:normal;gap:var(--space-2);min-height:0;max-height:none;padding:var(--space-3);overscroll-behavior:contain;border-right:1px solid var(--color-border);background:var(--color-surface-subtle);scrollbar-width:thin;flex-direction:column;display:flex;overflow:auto}.submission-list>*{flex:none}.submission-list__head{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:32px;padding-left:var(--space-2);display:flex}.submission-list__head h3{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0}.submission-list__scope{padding:0 var(--space-2);color:var(--color-accent-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin:0}.teacher-records .record-filters{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 0 0 1px var(--color-border), var(--shadow-xs);animation:ui-menu-in var(--duration-normal) var(--ease-out);margin:0;display:grid;position:static}.record-filters .ui-field__label{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.record-filters__problem.ui-select-button{justify-content:flex-start;width:100%;min-width:0}.record-filters__problem .ui-select-button__label{text-align:left;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.record-filters .ui-input{max-width:none;font-size:var(--font-size-sm)}.date-range{align-items:center;gap:var(--space-1);height:36px;padding:0 var(--space-2) 0 var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--elevation-inset);color:var(--color-text-muted);transition:box-shadow var(--duration-fast) var(--ease-out);display:flex}.date-range:focus-within{box-shadow:inset 0 1px 2px #0a0a0b0f, var(--ring-focus)}.date-range>svg{flex:none;width:15px;height:15px}.date-range input,.date-range input:focus{width:0;min-width:0;max-width:none;height:100%;padding:0 var(--space-1);box-shadow:none;color:var(--color-text);font:inherit;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;flex:1}.record-filters__actions{justify-content:flex-end;gap:var(--space-2);display:flex}.submission-list ol{gap:2px;margin:0;padding:0;list-style:none;display:grid}.submission-item{justify-content:flex-start;align-items:center;gap:var(--space-2-5);width:100%;padding:var(--space-2) var(--space-2-5);border-radius:var(--radius-md);color:var(--color-text);text-align:left;transition:background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-spring);background:0 0;border:0;flex-direction:row;margin:0;display:flex}.submission-item:hover{background:var(--color-surface-hover)}.submission-item:active{transition-duration:var(--duration-instant);transform:scale(.985)}.submission-item[aria-current=true]{background:var(--color-surface);box-shadow:var(--elevation-selected)}.submission-item:focus-visible{box-shadow:var(--ring-focus);outline:none}.submission-item .rec-sub__icon{width:28px;height:28px}.submission-item .rec-sub__icon svg{width:15px;height:15px}.submission-item__text{flex:1;gap:2px;min-width:0;display:grid}.submission-item__row{justify-content:space-between;align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.submission-item__row>:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.submission-item__row strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.submission-item__row>span{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.submission-item__row time,.submission-item__row small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;flex:none}.submission-more{align-self:center}.record-main{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:auto}.record-main>.error{margin:var(--space-4) var(--space-6) 0;flex:none}.record-main>.ui-status{flex:1;align-content:center}.teacher-records .record-evidence{gap:var(--space-4);min-width:0;max-height:none;padding:var(--space-5) var(--space-6) var(--space-6);flex-direction:column;flex:none;display:flex;overflow:visible}.teacher-records .record-evidence>*{flex:none;margin:0}.record-evidence__head{align-items:center;gap:var(--space-3);display:flex}.record-evidence__head .rec-sub__icon{width:36px;height:36px}.record-evidence__head .rec-sub__icon svg{width:18px;height:18px}.record-evidence__head h3{font-size:var(--font-size-lg);line-height:var(--line-height-tight);margin:0}.record-evidence__head p{gap:0 var(--space-2);margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.record-evidence__head p>*+:before{content:"·";margin-right:var(--space-2);color:var(--color-text-muted)}.record-evidence__head p strong{color:var(--color-text);font-weight:var(--font-weight-medium)}.record-evidence__head time{font-variant-numeric:tabular-nums}.teacher-records .record-tabs{align-self:flex-start}.record-pane{gap:var(--space-4);min-width:0;display:grid}.record-pane .focused-result{max-width:none;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.record-pane .single-case{margin-bottom:0}.record-code{gap:var(--space-2);display:grid}.record-pane h4{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin:0}.record-code .ui-code__body{max-height:480px}.record-problem p{color:var(--color-text);font-size:var(--font-size-sm);line-height:var(--line-height-normal);white-space:pre-wrap;margin:0}.record-problem h4{margin-top:var(--space-1)}.record-problem{gap:var(--space-2)}.review-history{gap:var(--space-1-5);padding:0 0 0 var(--space-5);color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0;display:grid}.focused-author{width:min(1120px,100% - 64px);padding:var(--space-8) 0 128px;font-size:var(--font-size-md);line-height:var(--line-height-normal);margin:0 auto}.focused-author .author-status{margin:0 0 var(--space-4);color:var(--color-accent-text);font-size:var(--font-size-sm)}.focused-author .author-status:empty{display:none}.author-recovery{margin:0 0 var(--space-5);padding-left:var(--space-4);border-left:2px solid var(--color-accent);font-size:var(--font-size-sm)}.author-recovery summary{cursor:pointer}.author-recovery pre{white-space:pre-wrap;max-height:180px;overflow:auto}.author-recovery>div{gap:var(--space-2);margin-top:var(--space-3);display:flex}.author-recovery p{margin:0 0 var(--space-2)}.brief-comparison{gap:var(--space-4);margin-top:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.brief-comparison section{min-width:0}.author-footer a[aria-disabled=true]{pointer-events:none;opacity:.45}.brief-composer{margin:0 0 var(--space-8)}.brief-composer>label{margin-bottom:var(--space-1);color:var(--color-text);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);display:block}.brief-composer__hint{margin:0 0 var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.brief-box{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--elevation-card);transition:box-shadow var(--duration-fast) var(--ease-out);position:relative}.brief-box:focus-within{box-shadow:var(--elevation-card), var(--ring-focus)}.brief-composer textarea,.brief-composer textarea:focus{width:100%;min-height:156px;padding:var(--space-4) var(--space-4) var(--space-2);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:none;font-size:var(--font-size-md);line-height:var(--line-height-normal);resize:vertical;background:0 0;border:0;outline:none;display:block}.composer-actions{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-3) var(--space-3) var(--space-4);margin:0;display:flex}.composer-actions small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.compact-composer{margin:0 0 var(--space-8)}.compact-composer .brief-box{align-items:center;display:flex}.compact-composer textarea,.compact-composer textarea:focus{width:auto;height:56px;min-height:56px;padding:17px var(--space-2) 17px var(--space-4);border-radius:var(--radius-lg) 0 0 var(--radius-lg);resize:none;font-size:var(--font-size-md);white-space:nowrap;text-overflow:ellipsis;flex:1;line-height:22px;overflow:hidden}.compact-composer .composer-actions{padding:0 var(--space-2-5) 0 0;flex:none}.compact-composer .composer-actions>span:empty{display:none}.preparing-status{align-items:center;gap:var(--space-2-5);margin-top:var(--space-3);padding:var(--space-2-5) var(--space-3);border-radius:var(--radius-md);background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent-border);color:var(--color-accent-text);font-size:var(--font-size-sm);display:flex}.preparing-status>span:nth-child(2){flex:1}.exercise-document,.preparation-review,.brief-summary{animation:stream-in var(--duration-slow) var(--ease-out) both}@media (prefers-reduced-motion:reduce){.exercise-document,.preparation-review,.brief-summary{animation:none}}.prep-progress{gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border);display:grid}.prep-steps{gap:var(--space-2) var(--space-5);color:var(--color-text-muted);font-size:var(--font-size-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.prep-steps li{align-items:center;gap:var(--space-2);display:inline-flex}.prep-steps__mark{border-radius:var(--radius-full);background:var(--color-surface-muted);width:20px;height:20px;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;place-items:center;display:inline-grid}.prep-steps__mark svg{width:12px;height:12px}.prep-steps li.is-active{color:var(--color-text);font-weight:var(--font-weight-medium)}.prep-steps li.is-active .prep-steps__mark{background:var(--color-accent);color:var(--color-text-inverse)}.prep-steps li.is-done{color:var(--color-text-secondary)}.prep-steps li.is-done .prep-steps__mark{background:var(--color-success-subtle);color:var(--color-success-text)}.prep-preview{gap:var(--space-4);grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;display:grid}.prep-preview__doc{gap:var(--space-2);min-width:0;display:grid}.prep-preview__doc h3{font-size:var(--font-size-lg);margin:0}.prep-preview__io{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.prep-preview__io>div{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-subtle)}.prep-preview__io dt{color:var(--color-text-muted);font-size:var(--font-size-xs)}.prep-preview__io dd{margin:var(--space-0-5) 0 0;font-size:var(--font-size-sm)}.prep-preview__tests,.prep-assertions,.prep-preview__code{gap:var(--space-1-5);min-width:0;font-size:var(--font-size-sm);display:grid}.prep-preview__tests ol,.prep-assertions ol{gap:var(--space-1);padding-left:var(--space-5);margin:0;display:grid}.prep-preview__tests li{gap:var(--space-2);min-width:0;display:flex}.prep-preview__tests code,.prep-assertions code{overflow-wrap:anywhere}.prep-preview__code pre{min-height:160px;max-height:320px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--code-bg);color:var(--code-text);font-size:var(--font-size-xs);line-height:var(--line-height-snug);font-family:var(--font-mono);white-space:pre;margin:0;overflow:auto}.prep-assertions p{color:var(--color-text-secondary);margin:0}.prep-assertions li{gap:var(--space-0-5);display:grid}.prep-assertions__why{color:var(--color-text-secondary)}.question-library{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--elevation-card);border:0;padding:0;overflow:hidden}.question-library .panel-heading{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border);margin:0;display:flex}.question-library h2{font-size:var(--font-size-lg);white-space:nowrap;margin:0}.question-library h2 small{margin-left:var(--space-1-5);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular)}.library-filters{gap:var(--space-2);display:flex}.library-filters .search-field{width:240px}.question-rows{max-height:max(160px,100dvh - 500px);padding:var(--space-2);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-gutter:stable;gap:2px;display:grid;overflow:auto}.question-rows>button{align-items:center;gap:var(--space-4);width:100%;min-height:56px;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);border-radius:var(--radius-md);text-align:left;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-normal) var(--ease-spring);background:0 0;border:0;display:flex}.question-rows>button:hover{background:var(--color-surface-hover)}.question-rows>button:active{transition-duration:var(--duration-instant);transform:scale(.995)}.question-rows>button:focus-visible{box-shadow:var(--ring-focus);outline:none}.question-rows>button>span:first-child{flex:1;min-width:0}.question-rows strong{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.question-rows small{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:1px;display:block}.question-rows>button>span:nth-child(2){align-items:center;gap:var(--space-3);flex:none;display:flex}.question-rows time{min-width:72px;color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-align:right}.question-rows>button>svg{width:16px;height:16px;color:var(--color-text-muted);transition:transform var(--duration-normal) var(--ease-out)}.question-rows>button:hover>svg{color:var(--color-text);transform:translate(2px)}.question-library .pagination{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;display:flex}.question-library .pagination .ui-button{padding:0 var(--space-2)}.brief-summary{margin:0 0 var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface-muted);box-shadow:var(--elevation-well);padding:0}.focused-author .brief-summary summary,.brief-summary summary{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-weight:var(--font-weight-regular);cursor:pointer;list-style:none;display:flex}.brief-summary summary::-webkit-details-marker{display:none}.brief-summary summary>strong{align-items:center;gap:var(--space-1-5);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);flex:none;display:inline-flex}.brief-summary summary>strong svg{width:15px;height:15px;color:var(--color-text-secondary)}.brief-summary summary>span{min-width:0;color:var(--color-text-muted);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.brief-toggle{width:16px;height:16px;color:var(--color-text-muted);transition:transform var(--duration-normal) var(--ease-out);flex:none;margin:0}.brief-summary[open] .brief-toggle{transform:rotate(180deg)}.brief-summary pre{max-height:260px;margin:0 var(--space-4) var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-sm);line-height:var(--line-height-normal);white-space:pre-wrap;overflow:auto}.brief-summary>.ui-button{margin:0 var(--space-4) var(--space-4)}.exercise-document{margin-bottom:var(--space-6);padding:var(--space-6) var(--space-8) var(--space-8);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--elevation-card)}.focused-author .exercise-document{padding-bottom:var(--space-8)}.exercise-document header{margin-bottom:var(--space-5)}.question-title{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.exercise-document h2{font-size:var(--font-size-2xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0}.exercise-meta{gap:var(--space-1-5);margin:var(--space-2) 0 0;display:flex}.rename-question{align-items:center;gap:var(--space-2);margin:0;display:flex}.rename-question .ui-input{height:44px;font-size:var(--font-size-lg);flex:1}.exercise-description,.focused-author .exercise-description{max-width:none;margin:0 0 var(--space-5);color:var(--color-text);font-size:var(--font-size-md);white-space:pre-wrap;line-height:1.8}.io-definitions,.focused-author .io-definitions{gap:var(--space-3);margin:0 0 var(--space-6);grid-template-columns:1fr 1fr;display:grid}.io-definitions section,.focused-author .io-definitions section{min-width:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-subtle);box-shadow:inset 0 0 0 1px var(--color-border);border:0}.exercise-document h3{margin:0 0 var(--space-1-5);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.io-definitions p{color:var(--color-text);font-size:var(--font-size-sm);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.readable-examples{white-space:normal;border-collapse:separate;border-spacing:0;table-layout:fixed;border-radius:var(--radius-md);background:var(--color-surface);width:100%;box-shadow:inset 0 0 0 1px var(--color-border);font-size:var(--font-size-sm);border:0;overflow:hidden}.readable-examples th{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:left}.readable-examples td,.focused-author .readable-examples td{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:top;overflow-wrap:anywhere}.readable-examples tr:last-child td{border-bottom:0}.readable-examples pre{font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:var(--line-height-normal);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.preparation-review{gap:var(--space-2);border:0;padding:0;display:grid}.preparation-review>h2{margin:var(--space-2) 0 var(--space-2);font-size:var(--font-size-lg)}.recheck-callout{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent-border);margin:0;display:flex}.recheck-callout .callout-icon{width:18px;height:18px;color:var(--color-accent-text);flex:none}.recheck-callout p{color:var(--color-text);font-size:var(--font-size-sm);line-height:var(--line-height-normal);flex:1;margin:0}.unresolved-issues{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-warning-subtle);box-shadow:inset 0 0 0 1px var(--color-warning-border);border:0;margin:0}.unresolved-issues h3{align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);color:var(--color-warning-text);font-size:var(--font-size-sm);display:flex}.unresolved-issues h3 svg{width:16px;height:16px}.unresolved-issues ul{margin:0 0 var(--space-3);padding-left:var(--space-5);color:var(--color-text);font-size:var(--font-size-sm)}.unresolved-issues li{margin:var(--space-1) 0}.review-disclosure{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--elevation-card);border:0;padding:0}.review-disclosure[open]{max-height:none;overflow:visible}.review-disclosure>summary,.review-disclosure[open]>summary{align-items:center;gap:var(--space-2-5);min-height:52px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out);background:0 0;list-style:none;display:flex;position:static}.review-disclosure>summary::-webkit-details-marker{display:none}.review-disclosure>summary:hover{background:var(--color-surface-hover)}.review-disclosure>summary:focus-visible{box-shadow:var(--ring-focus);outline:none}.review-disclosure>summary:after{content:"";width:7px;height:7px;margin:0 var(--space-1) 3px var(--space-2);border-right:1.5px solid var(--color-text-muted);border-bottom:1.5px solid var(--color-text-muted);transition:transform var(--duration-normal) var(--ease-out);flex:none;transform:rotate(45deg)}.review-disclosure[open]>summary:after{margin-bottom:-3px;transform:rotate(-135deg)}.review-disclosure>summary>span{flex:1;min-width:0}.review-disclosure summary small{float:none;max-width:50%;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-disclosure__icon{width:18px;height:18px;color:var(--color-text-secondary);flex:none}.review-disclosure__icon.is-good{color:var(--color-success-text)}.review-disclosure__icon.is-warn{color:var(--color-warning-text)}.review-disclosure[open]>:not(summary){margin-right:var(--space-4);margin-left:var(--space-4)}.review-disclosure[open]>:last-child{margin-bottom:var(--space-4)}.review-disclosure>p{margin-top:0;margin-bottom:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.review-disclosure h3{margin:var(--space-5) var(--space-4) var(--space-2);font-size:var(--font-size-sm)}.review-disclosure>table{width:calc(100% - var(--space-8));margin-top:0;margin-bottom:var(--space-2)}.review-disclosure .reference-code{max-height:400px;padding:0}.review-disclosure>.button-group{gap:var(--space-2);margin-top:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.author-footer{right:0;bottom:var(--space-4);z-index:var(--z-sticky);justify-content:space-between;align-items:center;gap:var(--space-5);width:min(1120px,100% - 64px);padding:var(--space-2-5) var(--space-3) var(--space-2-5) var(--space-5);border-radius:var(--radius-xl);box-shadow:var(--elevation-popover);-webkit-backdrop-filter:saturate(1.4)blur(12px);backdrop-filter:saturate(1.4)blur(12px);background:#ffffffe6;border:0;margin:0 auto;display:flex;position:fixed;left:0}.author-footer__state,.author-footer>span{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);display:inline-flex}.author-footer__state svg{width:16px;height:16px;color:var(--color-text-muted)}.author-footer .button-group{gap:var(--space-2);display:flex}.manager-app{height:calc(100dvh - 56px);min-height:640px;padding:var(--space-4) var(--space-5) var(--space-5);flex-direction:column;display:flex}.manager-app>.page-head{margin-bottom:var(--space-4);flex:none}.authoring-pane{border-radius:var(--radius-lg);background:var(--color-surface);min-width:0;min-height:0;box-shadow:var(--elevation-card);border:0;flex-direction:column;display:flex;overflow:hidden}.authoring-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border);flex:none;display:flex;container-type:inline-size}@container (max-width:820px){.authoring-toolbar .button-group .ui-button:has(.collapsible-label){width:36px;padding:0}.authoring-toolbar .collapsible-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.authoring-toolbar{align-items:center;gap:var(--space-3);border:0;flex-wrap:nowrap;min-height:36px;padding:0;display:flex}.save-state{white-space:nowrap;align-items:center;gap:var(--space-1-5);min-width:0;color:var(--color-text-muted);font-size:var(--font-size-xs);flex:none;display:inline-flex}.save-state:before{content:"";background:var(--color-success);border-radius:50%;flex:none;width:6px;height:6px}.save-state.is-dirty:before{background:var(--color-warning)}.save-state.is-conflict{color:var(--color-danger-text)}.save-state.is-conflict:before{background:var(--color-danger)}.authoring-toolbar .button-group{gap:var(--space-2);flex-wrap:nowrap;flex:none;margin-left:auto;display:flex}.action-notices{align-items:center;gap:var(--space-2);padding:0 var(--space-5);flex-wrap:wrap;flex:none;display:flex}.action-notices:has(>:not(small:only-child)){padding-top:var(--space-3)}.action-notices>small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.action-notices>small:only-child{display:none}.authoring-head>.local-tabs{border:0;align-self:flex-start;margin:0;padding:3px;display:inline-flex;top:0}.authoring-body{gap:var(--space-5);min-width:0;min-height:0;padding:var(--space-5) var(--space-5) var(--space-6);overscroll-behavior:contain;scrollbar-width:thin;border:0;flex-direction:column;flex:1;margin:0;display:flex;overflow:auto}.authoring-body>*{flex:none;margin:0}.authoring-body>h2,.authoring-body .panel-heading h2{font-size:var(--font-size-lg);margin:0}.authoring-body .panel-heading{justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;margin:0;display:flex}.authoring-body .panel-heading p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.authoring-body .button-group{gap:var(--space-2);flex-wrap:wrap;display:flex}.authoring-empty{place-content:center;gap:var(--space-3);padding:var(--space-8);flex:1;display:grid}.topic-choices{gap:var(--space-2);flex-wrap:wrap;display:flex}.topic-picker__bar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.topic-picker__bar .search-field{width:min(320px,100%)}.ui-disclosure .topic-choices{max-height:128px;padding:2px;overflow-y:auto}.topic-choices__empty{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.topic-form__notice{color:var(--color-warning-text);font-size:var(--font-size-sm);grid-column:1/-1;margin:0}.topic-chip{height:32px;padding:0 var(--space-3) 0 var(--space-2-5);border-radius:var(--radius-full);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border);font-size:var(--font-size-sm)}.topic-chip:has(input:checked){background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent-border)}.topic-chip:has(input:disabled){color:var(--color-text-muted)}.topic-review{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);box-shadow:inset 0 0 0 1px var(--color-border);flex-wrap:wrap;display:flex}.topic-review>svg{width:16px;height:16px;color:var(--color-text-muted)}.topic-review__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.topic-review__tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.topic-review small{min-width:12em;color:var(--color-text-muted);font-size:var(--font-size-xs);flex:1}.topic-suggest{justify-items:start;gap:var(--space-2);margin-top:var(--space-3);display:grid}.topic-suggest__list{border-radius:var(--radius-lg);width:100%;box-shadow:inset 0 0 0 1px var(--color-border);margin:0;padding:0;list-style:none;display:grid}.topic-suggest__list>li{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);grid-template-columns:8em minmax(0,1fr) auto;display:grid}.topic-suggest__list>li:last-child{border-bottom:0}.topic-suggest__list strong{font-weight:var(--font-weight-medium)}.topic-suggest__list span{color:var(--color-text-muted)}.topic-suggest__list>li.topic-suggest__missing{grid-template-columns:minmax(0,1fr) auto}.topic-manager{gap:var(--space-4);display:grid}.topic-manager__lead{max-width:68ch;color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.topic-list{border-radius:var(--radius-lg);max-height:min(52vh,520px);box-shadow:inset 0 0 0 1px var(--color-border);margin:0;padding:0;list-style:none;overflow-y:auto}.topic-list>li{align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.topic-list>li:last-child{border-bottom:0}.topic-list>li.archived .topic-list__text strong{color:var(--color-text-muted)}.topic-list>li>.ui-status,.topic-list>li>.topic-form{grid-column:1/-1}.topic-list__text{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.topic-list__text strong{font-weight:var(--font-weight-medium)}.topic-list__text p{color:var(--color-text-muted);font-size:var(--font-size-sm);flex-basis:100%;margin:0}.topic-list__uses{color:var(--color-text-muted);font-size:var(--font-size-xs);white-space:nowrap}.topic-list__actions{gap:var(--space-1);display:flex}.topic-form{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;display:grid}.topic-form h3{font-size:var(--font-size-sm);grid-column:1/-1;margin:0}.topic-form__actions,.topic-form>.ui-status{gap:var(--space-2);grid-column:1/-1;display:flex}.topic-form--new{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface-subtle);box-shadow:inset 0 0 0 1px var(--color-border)}.authoring-body .notice h3{margin:0 0 var(--space-2);font-size:var(--font-size-sm)}.authoring-body .notice .ui-check{padding:var(--space-1) 0}.form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;margin:0;display:grid}.form-grid .span-2{grid-column:1/-1}.authoring-body .table-scroll{border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--color-border);overflow:auto}.test-editor-table{white-space:normal;border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.test-editor-table th{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:left}.test-editor-table th:first-child,.test-editor-table th:nth-child(2){width:33%}.test-editor-table th:nth-child(3){width:16%}.test-editor-table th:nth-child(4){width:12%}.test-editor-table td{padding:var(--space-1-5) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.test-editor-table tr:last-child td{border-bottom:0}.test-editor-table textarea,.test-editor-table input:not([type=checkbox]){width:100%;padding:var(--space-1-5) var(--space-2);font-size:var(--font-size-sm)}.test-editor-table textarea{field-sizing:content;min-height:34px;max-height:160px;font-family:var(--font-mono);resize:none;display:block;overflow:auto}.test-editor-table input:not([type=checkbox]){height:34px}.test-editor-table td:last-child{text-align:right}.author-code-columns{gap:var(--space-3);grid-template-columns:1fr 1fr;min-width:0;display:grid}.author-code-columns>.code-surface{border-radius:var(--radius-lg);height:400px;box-shadow:0 0 0 1px var(--color-border), var(--shadow-xs);border:0;overflow:hidden}.draft-summary .code-surface{height:340px}.candidate-outputs{gap:var(--space-2);display:grid}.candidate{align-items:center;gap:var(--space-3);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.candidate pre{padding:var(--space-1-5) var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--font-size-xs);margin:0}.validation-result{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface-subtle);box-shadow:inset 0 0 0 1px var(--color-border);border:0}.validation-result.is-good{background:var(--color-success-subtle);box-shadow:inset 0 0 0 1px var(--color-success-border)}.validation-result.is-warn{background:var(--color-danger-subtle);box-shadow:inset 0 0 0 1px var(--color-danger-border)}.validation-result h3{align-items:center;gap:var(--space-2);margin:0 0 var(--space-1-5);font-size:var(--font-size-sm);display:flex}.validation-result h3 svg{width:16px;height:16px}.validation-result.is-good h3{color:var(--color-success-text)}.validation-result.is-warn h3{color:var(--color-danger-text)}.validation-result pre,.validation-result p{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:0}.publish-section{gap:var(--space-3);display:grid}.section-head{align-items:center;gap:var(--space-3);display:flex}.section-head h2{font-size:var(--font-size-lg);margin:0}.section-head small{color:var(--color-text-muted);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.checklist{margin:0 calc(var(--space-3) * -1);gap:2px;padding:0;list-style:none;display:grid}.checklist-row{align-items:center;gap:var(--space-3);width:100%;min-height:40px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-md);text-align:left;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-normal) var(--ease-spring);background:0 0;border:0;margin:0;display:flex}.checklist-row:hover{background:var(--color-surface-hover)}.checklist-row:active{transition-duration:var(--duration-instant);transform:scale(.995)}.checklist-row:focus-visible{box-shadow:var(--ring-focus);outline:none}.checklist-row>span:first-of-type{flex:1}.checklist-icon{width:18px;height:18px;color:var(--color-text-muted);flex:none}.checklist-row.complete .checklist-icon{color:var(--color-success)}.checklist-go{color:var(--color-accent-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);align-items:center;gap:2px;display:inline-flex}.checklist-go svg{width:15px;height:15px}.publish-effects{gap:var(--space-1-5) var(--space-5);color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.publish-effects li{align-items:center;gap:var(--space-1-5);display:inline-flex}.publish-effects li:not(.is-warn):before{content:"";background:var(--color-text-muted);border-radius:50%;width:4px;height:4px}.publish-effects .is-warn{color:var(--color-warning-text);font-weight:var(--font-weight-medium)}.publish-effects svg{width:14px;height:14px}.publish-actions{gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.publish-actions .publish-archive{color:var(--color-danger-text);margin-left:auto}.publish-actions .publish-archive svg{color:currentColor}.materials-page{max-width:1360px}@media (min-width:1680px){.materials-page{max-width:1480px}}.materials-page .material-layout,.material-layout{align-items:start;gap:var(--space-4);grid-template-columns:320px minmax(0,1fr);display:grid}.material-sidebar{top:var(--space-4);gap:var(--space-3);max-height:calc(100dvh - 56px - var(--space-8));padding:var(--space-4) var(--space-3) 0;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--elevation-card);flex-direction:column;display:flex;position:sticky;overflow:hidden}.material-sidebar>*{flex:none}.material-sidebar__head{justify-content:space-between;align-items:center;gap:var(--space-2);padding-left:var(--space-1);display:flex}.material-sidebar__head h2{font-size:var(--font-size-lg);margin:0}.material-sidebar__head h2 small{margin-left:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular)}.material-upload{gap:var(--space-2-5);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-subtle);display:grid}.material-upload[hidden]{display:none}.material-upload p,.material-upload small{color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:var(--line-height-normal);margin:0}.material-upload small{color:var(--color-text-muted)}.material-upload .ui-check{font-size:var(--font-size-xs)}.material-file-input{cursor:pointer;justify-self:start;position:relative;overflow:hidden}.material-file-input input{opacity:0;cursor:pointer;position:absolute;inset:0}.material-file-input:focus-within{box-shadow:var(--elevation-inverse), var(--ring-focus)}.material-status{align-items:center;gap:var(--space-2);padding:0 var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:0;display:flex}.material-status:empty{display:none}.material-files{min-height:0;max-height:none;margin:0 calc(var(--space-3) * -1);padding:var(--space-2) var(--space-3) var(--space-3);overscroll-behavior:contain;border-top:1px solid var(--color-border);background:var(--color-surface-subtle);scrollbar-width:thin;flex-direction:column;flex:auto;gap:2px;display:flex;overflow:auto}.material-files>.material-file{border-radius:var(--radius-md);border:0;flex:none;padding:0}.material-file>button{justify-content:space-between;align-items:center;gap:var(--space-2-5);width:100%;padding:var(--space-2) var(--space-2-5);border-radius:var(--radius-md);text-align:left;transition:background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-spring);background:0 0;border:0;margin:0;display:flex}.material-file>button:hover{background:var(--color-surface-hover)}.material-file>button:active{transition-duration:var(--duration-instant);transform:scale(.985)}.material-file[data-current]{background:var(--color-surface);box-shadow:var(--elevation-selected)}.material-file[data-current]>button,.material-file[data-current]>button:hover{background:0 0}.material-file__text{gap:1px;min-width:0;display:grid}.material-file__text strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);overflow-wrap:anywhere}.material-file__text small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.material-reader{top:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);min-width:0;height:calc(100dvh - 228px);min-height:420px;box-shadow:var(--elevation-card);flex-direction:column;display:flex;position:sticky;overflow:hidden}.material-reader>.ui-status{margin:auto}.authoring-body .panel-heading>div:first-child{flex:320px;min-width:0}.authoring-body .panel-heading>.button-group{flex-wrap:nowrap}.question-library .pagination>span{white-space:nowrap}.inline-warning{align-items:center;gap:var(--space-1-5);margin:var(--space-1) 0 0;color:var(--color-warning-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:flex}.inline-warning svg{flex:none;width:14px;height:14px}.requirements-editor{gap:var(--space-2);margin-top:var(--space-5);display:grid}.requirements-editor header h3{font-size:var(--font-size-sm);margin:0}.requirements-editor header p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.requirements-editor ol{gap:var(--space-2);padding-left:var(--space-5);margin:0;display:grid}.requirements-editor li>*{vertical-align:middle}.requirements-editor li{display:list-item}.requirements-editor li .ui-input{width:calc(100% - 44px)}.requirements-editor>.ui-button{justify-self:start}
.class-page,.admin-page{max-width:1280px}@media (min-width:1680px){.class-page,.admin-page{max-width:1440px}}.class-switch{max-width:260px}.class-switch .ui-select-button__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.class-layout{gap:var(--space-5);margin-top:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(320px,380px);align-items:start;display:grid}.class-layout[aria-busy=true]{opacity:.6}.class-side{gap:var(--space-5);min-width:0;display:grid}.admin-layout{gap:var(--space-5);display:grid}.class-page .ui-status--compact,.admin-page .error{margin-bottom:var(--space-4)}.dash-card>.error{margin:var(--space-3) var(--space-5) 0}.roster-card .dash-card__head{flex-wrap:wrap}.roster-tools{justify-content:flex-end;align-items:center;gap:var(--space-2);flex:440px;min-width:0;display:flex}.roster-tools .search-field{flex:1;min-width:160px;max-width:240px}.roster-card .dash-card__head h2,.admin-page .dash-card__head h2{white-space:nowrap;flex:none}.roster-scroll{border-radius:0 0 var(--radius-lg) var(--radius-lg);min-height:160px;max-height:calc(100vh - 260px);overflow:auto}.admin-layout .roster-scroll{max-height:420px}.roster-scroll>.ui-status{padding-block:var(--space-10)}.roster-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--font-size-sm);white-space:nowrap}.roster-table th{z-index:1;padding:var(--space-2-5) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:left;position:sticky;top:0}.roster-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.roster-table th:first-child,.roster-table td:first-child{padding-left:var(--space-5)}.roster-table tbody tr:last-child td{border-bottom:0}.roster-table tbody tr:hover{background:var(--color-surface-subtle)}.roster-table strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}.roster-table code,.manage-result code,.manage-choices code,.code-history code{font-family:var(--font-mono);font-size:var(--font-size-xs)}.roster-table .roster-table__actions{padding-right:var(--space-4);text-align:right}td.roster-table__actions>.ui-button+.ui-button{margin-left:var(--space-1)}.roster-table .roster-table__wrap{white-space:normal;max-width:320px}.code-card__body{gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5);display:grid}.code-card__body>.error{margin:0}.join-code{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-subtle);box-shadow:var(--elevation-inset);display:flex}.join-code output{font-family:var(--font-mono);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:.08em;-webkit-user-select:all;user-select:all}.code-card__meta{color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:var(--line-height-normal);margin:0}.code-card__row,.code-card__actions{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);display:flex}.code-card__actions{justify-content:flex-start}.code-history{gap:var(--space-1-5);color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0;padding:0;list-style:none;display:grid}.code-history li{justify-content:space-between;gap:var(--space-3);display:flex}.code-history code{text-decoration:line-through}.class-problems__list{max-height:340px;padding:var(--space-1) 0;margin:0;list-style:none;overflow:auto}.class-problems__list li{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);display:flex}.class-problems__text{min-width:0;font-size:var(--font-size-sm);flex:1;display:grid}.class-problems__text strong{font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.class-problems__text small,.class-problems__state{color:var(--color-text-muted);font-size:var(--font-size-xs)}.class-problems__state{flex:none}.class-problems__list li[data-hidden] .class-problems__text strong{color:var(--color-text-muted)}.class-problems>.ui-status{margin:var(--space-4) var(--space-5) var(--space-5)}.dialog-content.manage-dialog{width:min(520px,100vw - 48px)}.manage-form{gap:var(--space-4);display:grid}.manage-form .ui-textarea{resize:vertical;min-height:140px;max-height:40vh}.manage-form>.error{margin:0}.manage-form__actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.manage-inline{gap:var(--space-2);display:flex}.manage-inline .ui-input{flex:1;min-width:0}.manage-note{margin:0 0 var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:var(--line-height-normal)}.manage-result{border-radius:var(--radius-md);background:var(--color-surface-subtle);box-shadow:var(--elevation-inset)}.manage-result h3{padding:var(--space-2-5) var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);margin:0}.manage-result ul{max-height:180px;padding:var(--space-1) 0;margin:0;list-style:none;overflow:auto}.manage-result li{align-items:center;gap:var(--space-3);padding:var(--space-1-5) var(--space-3);font-size:var(--font-size-sm);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;display:grid}.manage-choices{gap:var(--space-2);max-height:220px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-subtle);box-shadow:var(--elevation-inset);border:0;margin:0;display:grid;overflow:auto}.manage-choices legend{float:left;width:100%;margin-bottom:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:0}.manage-choices .manage-note{font-size:var(--font-size-sm);margin:0}.join-class{gap:var(--space-4);max-width:560px;display:grid}.join-class>.error{margin:0}.join-class__form{align-items:flex-end;gap:var(--space-3);display:flex}.join-class__form .ui-field{flex:1}.learning-filters[hidden]{display:none}.rubric-card{margin-top:var(--space-5)}.rubric-card .dash-card__head .button-group{align-items:center;gap:var(--space-2);display:flex}.rubric-card__lede,.rubric-card>.notice,.rubric-card>.error,.rubric-card__conflict{margin:var(--space-3) var(--space-5) 0}.rubric-card__lede{color:var(--color-text-muted);font-size:var(--font-size-sm)}.rubric-card__conflict{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-warning-subtle);color:var(--color-warning-text);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.rubric-card__conflict p{margin:0}.rubric-scroll{max-height:min(640px,100vh - 220px);margin-top:var(--space-3);overscroll-behavior:contain;overflow:auto}.rubric-scroll:focus-visible{box-shadow:var(--ring-focus);outline:none}.rubric-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1120px;font-size:var(--font-size-sm);white-space:normal}.rubric-table th,.rubric-table td{padding:var(--space-2);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.rubric-table thead th{z-index:1;background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);position:sticky;top:0}.rubric-table th:first-child,.rubric-table td:first-child{padding-left:var(--space-5)}.rubric-table__criterion{width:180px}.rubric-table__weight{width:88px}.rubric-table__level{min-width:160px}.rubric-table tbody th{font-weight:var(--font-weight-semibold);background:0 0}.rubric-table td:nth-child(2) .ui-input{min-width:64px}.rubric-table__actions{width:48px}.rubric-table__level-meta{gap:var(--space-1);margin-top:var(--space-1);grid-template-columns:1fr 1fr;display:grid}.rubric-table .ui-input,.rubric-table .ui-textarea{width:100%;min-width:0}.rubric-table textarea{resize:vertical;field-sizing:content;min-height:0}.rubric-table tfoot td{vertical-align:middle;border-bottom:0}.rubric-card>.ui-field{margin:var(--space-3) var(--space-5) var(--space-5)}
