.ui-button.ui-button{--button-surface-fill:var(--color-surface);--button-surface-border:var(--color-control-border);isolation:isolate;min-width:44px;min-height:var(--button-height);border:1px solid var(--button-surface-border);border-radius:var(--radius-pill);background:var(--button-surface-fill);max-width:100%;height:auto;color:var(--color-ink);box-shadow:none;font-family:var(--font-ui);white-space:normal;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);justify-content:center;align-items:center;padding:6px 18px;font-size:14px;font-weight:500;line-height:1.4;text-decoration:none;display:inline-flex;position:relative}.ui-button__content{z-index:1;justify-content:center;align-items:center;width:100%;min-width:0;display:flex;position:relative}.ui-button__label{overflow-wrap:anywhere;justify-content:center;align-items:center;gap:8px;min-width:0;display:inline-flex}.ui-button__label>svg{flex-shrink:0}.ui-button.primary-button{--button-surface-fill:var(--color-brand);--button-surface-border:var(--color-brand);color:var(--color-on-dark);padding-inline:20px;font-weight:600}.auth-card .ui-button.primary-button{min-height:var(--button-height-entry);padding-block:8px;font-size:16px}.ui-button.ui-button:hover:not(:disabled){--button-surface-fill:var(--color-surface-subtle);--button-surface-border:var(--color-control-border)}.ui-button.primary-button:hover:not(:disabled){--button-surface-fill:var(--color-brand-hover);--button-surface-border:var(--color-brand-hover);color:var(--color-on-dark)}.ui-button.ui-button:active:not(:disabled){--button-surface-fill:var(--color-control-active);transition-duration:var(--motion-instant);transform:none}.ui-button.primary-button:active:not(:disabled){--button-surface-fill:var(--color-brand-pressed);--button-surface-border:var(--color-brand-pressed);color:var(--color-on-dark)}.ui-button.ui-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;box-shadow:0 0 0 2px var(--color-surface)}.ui-button.danger-button{--button-surface-border:var(--color-error-border);color:var(--color-error-text)}.ui-button.danger-button:hover:not(:disabled){--button-surface-fill:var(--color-danger-hover);--button-surface-border:var(--color-error-text)}.ui-button.ui-button:disabled{cursor:not-allowed;opacity:1;color:var(--color-text-disabled);background:var(--color-surface-disabled);border-color:var(--color-border);transition:none}.ui-button.ui-button:not([data-fluid-selection-value]):not(:disabled){background:0 0;border-color:#0000}.ui-button.ui-button:not([data-fluid-selection-value]):not(:disabled):before{content:"";z-index:-1;border-radius:inherit;background:var(--button-surface-fill);box-shadow:0 0 0 1px var(--button-surface-border), inset 0 0 0 0 var(--button-surface-border);pointer-events:none;transition:background-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-normal) var(--ease-spring-moderate);position:absolute;inset:0}.ui-button.ui-button:not([data-fluid-selection-value]):not(:disabled):active:before{box-shadow:0 0 0 0 var(--button-surface-border), inset 0 0 0 1px var(--button-surface-border);transition-duration:var(--motion-fast);transition-timing-function:var(--ease-spring-fast)}@media (any-pointer:coarse){.ui-button.ui-button{min-height:var(--control-height)}}@media (prefers-reduced-motion:reduce){.ui-button.ui-button,.ui-button.ui-button:before{transition:none}}.fluid-hover{isolation:isolate;position:relative}.fluid-hover [data-fluid-hover-item]{z-index:1;position:relative}.fluid-hover>.fluid-hover__highlight{z-index:0;border-radius:var(--fluid-hover-radius,var(--radius-control));background:var(--fluid-hover-fill,var(--color-surface-subtle));pointer-events:none;opacity:0;transform-origin:0 0;width:0;height:0;transition:opacity var(--motion-fast-exit) var(--ease-exit);border:0;margin:0;padding:0;position:absolute;top:0;left:0}.fluid-hover>.fluid-hover__highlight[data-visible]{opacity:1;transition:opacity var(--motion-fast) var(--ease-standard)}@media (prefers-reduced-motion:reduce){.fluid-hover>.fluid-hover__highlight{transition:none!important}}.fluid-selection{isolation:isolate;position:relative}.fluid-selection [data-fluid-selection-value]{z-index:1;position:relative}.fluid-selection>.fluid-selection__highlight{z-index:0;border-radius:var(--fluid-selection-radius,var(--radius-control));background:var(--fluid-selection-fill,var(--color-surface-subtle));opacity:0;pointer-events:none;transform-origin:0 0;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:0}.fluid-selection>.fluid-selection__highlight[data-visible]{opacity:1}.fluid-track.fluid-track{--fluid-selection-fill:var(--color-surface);--fluid-selection-radius:var(--radius-pill);--fluid-hover-fill:var(--color-nav-hover);--fluid-hover-radius:var(--radius-pill);border-radius:var(--radius-pill);background:var(--color-surface-subtle);border:0;flex-wrap:wrap;align-items:center;gap:4px;width:fit-content;max-width:100%;padding:4px;display:inline-flex}.fluid-track.fluid-track>button{min-width:44px;min-height:44px;padding:8px 16px}.fluid-track>button{justify-content:center;align-items:center;display:inline-flex}.fluid-track.fluid-track>button,.fluid-track.fluid-track>button:is(:hover,:active,:disabled,[aria-selected=true],[aria-pressed=true]){border-radius:var(--radius-pill);color:var(--color-text-muted);box-shadow:none;font-size:var(--text-ui);transition:color var(--motion-fast) var(--ease-standard);background:0 0;border:0;font-weight:500}.fluid-track.fluid-track>button:is([aria-selected=true],[aria-pressed=true],[data-fluid-hover-active]){color:var(--color-ink)}.fluid-track.fluid-track>button:disabled{color:var(--color-text-disabled)}.fluid-track>.fluid-selection__highlight{border:1px solid var(--color-border);box-shadow:var(--shadow-xs);transition:opacity var(--motion-fast) var(--ease-standard)}.fluid-track[data-fluid-hover-away]>.fluid-selection__highlight{opacity:.85}.fluid-track>.fluid-hover__highlight[data-visible]{opacity:.4}.fluid-track.fluid-track>button:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.fluid-selection>.fluid-selection__highlight{transition:none!important}}.ui-select{vertical-align:middle;width:100%;min-width:0;max-width:100%;display:inline-flex}.ui-select__trigger.ui-select__trigger{border:1px solid var(--color-control-border);border-radius:var(--radius-pill);background:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);justify-content:space-between;align-items:center;gap:12px;padding:5px 16px;font-size:14px;font-weight:500;line-height:1.5;display:flex}.ui-select__trigger>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-select__endpoint{width:20px;height:20px;color:var(--color-text-muted);transition:color var(--motion-fast) var(--ease-standard);flex:0 0 20px;place-items:center;display:grid}.ui-select__endpoint svg{transition:transform var(--motion-normal) var(--ease-spring-moderate)}.ui-select__trigger[aria-expanded=true] .ui-select__endpoint svg{transform:rotate(180deg)}.ui-select__trigger:is(:hover,[aria-expanded=true]):not(:disabled){border-color:var(--color-brand)}.ui-select__trigger:is(:hover,[aria-expanded=true],:focus-visible):not(:disabled) .ui-select__endpoint{color:var(--color-brand)}.ui-select__trigger:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;box-shadow:0 0 0 2px var(--color-surface)}.ui-select__trigger:disabled{opacity:1;color:var(--color-text-disabled);background:var(--color-surface-disabled);cursor:not-allowed;transition:none}.ui-select__trigger:disabled .ui-select__endpoint,.ui-select__trigger:disabled .ui-select__endpoint svg{transition:none}.ui-select__popover{z-index:1200;overscroll-behavior:contain;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-popover);color:var(--color-ink);font-family:var(--font-ui);animation:ui-popover-enter var(--motion-fast) var(--ease-spring-fast);margin:0;padding:6px;font-size:14px;font-weight:500;line-height:1.5;position:fixed;inset:auto;overflow-y:auto}body:has(.ui-select__trigger[aria-expanded=true]:focus-visible) .ui-select__popover{animation:none}body:has(.ui-select__trigger[aria-expanded=true]:focus-visible) :is(.ui-select__option,.ui-select__option>svg){transition:none}.ui-select__list{--fluid-selection-fill:var(--color-control-hover);--fluid-selection-radius:var(--radius-card)}.ui-select__option{border-radius:var(--radius-card);cursor:pointer;overflow-wrap:anywhere;min-height:44px;transition:background-color var(--motion-fast) var(--ease-standard);align-items:center;gap:10px;padding:10px 12px;display:flex}.ui-select__option>svg{opacity:0;transition:opacity var(--motion-fast-exit) var(--ease-exit), transform var(--motion-fast-exit) var(--ease-exit);flex:0 0 17px;transform:scale(.75)}.ui-select__option[aria-selected=true]>svg{opacity:1;transition-duration:var(--motion-fast);transition-timing-function:var(--ease-spring-fast);transform:scale(1)}.ui-select__option>span{min-width:0}.ui-select__option[aria-selected=true]{background:var(--color-brand-soft)}.ui-select__list[data-active-source=keyboard] .ui-select__option[data-active=true]:not([aria-disabled=true]){outline:1px solid var(--color-control-border);outline-offset:-1px}.ui-select__option[aria-disabled=true]{opacity:1;color:var(--color-text-disabled);background:var(--color-surface-disabled);cursor:not-allowed;transition:none}.ui-select__option[aria-disabled=true]>svg{transition:none}@media (prefers-reduced-motion:reduce){.ui-select__trigger,.ui-select__option,.ui-select__option>svg,.ui-select__endpoint,.ui-select__endpoint svg{transition:none}.ui-select__popover{animation:none}}*{box-sizing:border-box}body{background:var(--color-canvas);min-width:0;min-height:100vh;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}h1,h2,p{margin-top:0}.topbar,.brand,.system-pill,.dashboard-heading,.table-heading{align-items:center;display:flex}.topbar,.dashboard-heading,.table-heading{justify-content:space-between}.topbar{border-bottom:1px solid color-mix(in srgb, var(--color-ink) 14%, transparent);gap:24px;padding-bottom:26px}.brand-mark{border-radius:var(--radius-card);width:42px;height:42px;color:var(--color-surface-raised);background:var(--color-brand);box-shadow:0 8px 24px color-mix(in srgb, var(--color-ink) 22%, transparent);place-items:center;display:grid}.brand strong,.brand span{display:block}.brand strong{color:var(--color-ink)}.system-pill{border-radius:var(--radius-pill);color:var(--color-success-border);font-size:var(--text-caption);background:var(--color-success-bg);gap:9px;padding:9px 13px;font-weight:700}.system-pill--error{color:var(--color-error-border);background:var(--color-error-bg)}.signal-dot{border-radius:var(--radius-pill);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--color-success-border) 12%, transparent);background:currentColor}.eyebrow,.step-label{color:var(--color-text-muted);font-size:var(--text-micro);letter-spacing:.13em;text-transform:uppercase;font-weight:800}.trust-note{border:1px solid color-mix(in srgb, var(--color-ink) 13%, transparent);border-radius:var(--radius-card);max-width:580px;color:var(--color-ink);font-size:var(--text-caption);background:color-mix(in srgb, var(--color-surface-raised) 52%, transparent);align-items:flex-start;gap:12px;margin-top:34px;padding:16px 18px;line-height:1.55;display:flex}.trust-note span{color:var(--color-success-icon);font-weight:900}.auth-card{padding:12px 32px 34px}.form-heading{margin-bottom:28px}.form-heading h2,.admin-card h2{color:var(--color-ink);font-size:var(--text-heading-md);margin-bottom:8px}.form-heading p:not(.step-label),.muted{color:var(--color-text-muted);font-size:var(--text-caption);line-height:1.6}input,select{border:1px solid var(--color-border);border-radius:var(--radius-card);width:100%;color:var(--color-ink);background:var(--color-surface-raised);outline:none;margin-top:8px;padding:13px 14px;transition:border-color .16s,box-shadow .16s}input:focus,select:focus{border-color:var(--color-brand);box-shadow:var(--focus-ring)}.field-help{color:var(--color-text-muted);font-size:var(--text-micro);margin-top:7px;font-weight:500;display:block}.primary-button,.secondary-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.primary-button{width:100%}.form-error{border-radius:var(--radius-card);font-size:var(--text-caption);color:var(--color-error-border);background:var(--color-error-bg);padding:11px 13px;line-height:1.5}.dashboard-heading{gap:30px;margin-bottom:38px}.dashboard-heading h1{font-size:var(--text-display-xl);margin-bottom:14px}.dashboard-heading p:last-child{color:var(--color-text-muted);margin-bottom:0}.admin-section-tabs{border:1px solid color-mix(in srgb, var(--color-ink) 10%, transparent);border-radius:var(--radius-card);background:var(--color-surface-subtle);gap:5px;margin:-14px 0 28px;padding:6px;display:inline-flex}.admin-section-tabs button{border-radius:var(--radius-card);min-width:118px;color:var(--color-text-muted);background:0 0;border:0;padding:10px 18px}.admin-section-tabs button[aria-selected=true]{color:var(--color-success-border);background:var(--color-surface-raised);box-shadow:0 4px 14px color-mix(in srgb, var(--color-ink) 10%, transparent);font-weight:750}.admin-section-tabs button:focus-visible{outline:3px solid color-mix(in srgb, var(--color-success-border) 28%, transparent);outline-offset:2px}.admin-grid{grid-template-columns:.8fr 1.2fr;gap:20px;display:grid}.inline-form{grid-template-columns:1fr auto;align-items:end;gap:10px;display:grid}.inline-form label{margin-bottom:0}.inline-form .primary-button{width:auto}.chip-list{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.chip-list span,.account-status{border-radius:var(--radius-pill);color:var(--color-ink);font-size:var(--text-micro);background:var(--color-surface-subtle);padding:6px 9px}.file-field input{border-style:dashed;padding:9px}.edit-form{grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:12px;display:grid}.edit-form label{margin-bottom:0}.edit-form .primary-button{width:auto}.table-heading{gap:20px;margin-bottom:18px}.table-heading h2{margin-bottom:0}.table-heading .primary-button{width:auto}.error-list{border-radius:var(--radius-card);color:var(--color-error-text);font-size:var(--text-caption);background:var(--color-error-bg);margin:0;padding:16px 16px 16px 36px;line-height:1.8}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--text-caption)}th,td{border-bottom:1px solid var(--color-border-subtle);text-align:left;white-space:nowrap;padding:13px 12px}th{color:var(--color-text-muted);font-size:var(--text-micro);font-weight:750}td{color:var(--color-text-muted)}.row-actions{gap:6px;display:flex}.row-actions button:not(.ui-button){border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-ink);font-size:var(--text-micro);background:var(--color-surface);padding:6px 8px}.account-status--active{color:var(--color-success-border);background:var(--color-success-bg)}.student-home .secondary-button{margin-top:16px}@media (width<=880px){.auth-layout,.admin-grid,.edit-form{grid-template-columns:1fr}.auth-layout{gap:35px;padding:55px 0}.auth-intro h1{font-size:var(--text-display-lg)}.auth-card{width:min(100%,540px)}}@media (width<=560px){.page-shell{width:min(100% - 24px,1180px)}.topbar,.dashboard-heading,.table-heading{align-items:flex-start}.brand span,.system-pill{font-size:var(--text-micro)}.auth-intro h1{font-size:var(--text-display-lg)}.auth-card{padding-inline:20px}.admin-section-tabs{grid-template-columns:repeat(3,1fr);width:100%;display:grid}.admin-section-tabs button{min-width:0}.dashboard-heading,.table-heading{flex-direction:column}.inline-form{grid-template-columns:1fr}.inline-form .primary-button{width:100%}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.course-management textarea{border:1px solid var(--color-border);border-radius:var(--radius-card);width:100%;color:var(--color-ink);font:inherit;resize:vertical;background:var(--color-surface-raised);outline:none;margin-top:8px;padding:13px 14px;line-height:1.6;transition:border-color .16s,box-shadow .16s}.course-management textarea:focus{border-color:var(--color-success-border);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-success-border) 12%, transparent)}.course-management button:focus-visible,.course-management input:focus-visible,.course-management textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--color-focus) 28%, transparent);outline-offset:2px}.course-feedback{margin:0 0 18px}.course-heading{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:26px;display:flex}.course-heading p:last-child{max-width:720px;color:var(--color-text-muted);margin-bottom:0;line-height:1.7}.course-list-heading h3,.course-card h3,.course-section-card h3,.course-draft-card h3{color:var(--color-ink);font-size:var(--text-heading-sm);margin:0 0 8px}.course-fit-button{width:auto}.course-list-heading{justify-content:space-between;align-items:flex-end;margin:30px 0 16px;display:flex}.course-list-heading h3{margin-bottom:0}.course-list-heading>span{color:var(--color-text-muted);font-size:var(--text-caption);font-weight:750}.course-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.course-card{flex-direction:column;min-height:285px;display:flex}.course-card>p{color:var(--color-text-muted);font-size:var(--text-ui);flex:1;line-height:1.65}.course-card-topline,.course-title-line{color:var(--color-text-muted);font-size:var(--text-micro);flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:16px;display:flex}.course-status,.course-save-state{border-radius:var(--radius-pill);min-height:28px;color:var(--color-success-border);font-size:var(--text-micro);background:var(--color-success-bg);align-items:center;padding:5px 10px;font-weight:750;display:inline-flex}.course-metrics{grid-template-columns:.8fr .55fr 1.3fr;gap:10px;margin:18px 0 22px;display:grid}.course-metrics div{border-radius:var(--radius-card);background:var(--color-surface);min-width:0;padding:11px}.course-metrics dt,.course-metrics dd{overflow-wrap:anywhere}.course-metrics dt{color:var(--color-text-muted);font-size:var(--text-micro);margin-bottom:5px}.course-metrics dd{color:var(--color-ink);font-size:var(--text-caption);margin:0;font-weight:750}.course-empty{border:1px dashed var(--color-border);border-radius:var(--radius-container);min-height:140px;color:var(--color-text-muted);text-align:center;background:color-mix(in srgb, var(--color-surface-raised) 42%, transparent);place-items:center;gap:8px;padding:28px;display:grid}.course-back-button{color:var(--color-success-border);background:0 0;border:0;margin-bottom:22px;padding:8px 0;font-weight:750}.course-workspace-heading,.course-editor-heading{border-bottom:1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);padding-bottom:22px}.course-workspace-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px;display:grid}.course-section-card{min-width:0;padding:22px}.course-item-list{gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.course-item-list>li{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);gap:10px;padding:14px;display:grid}.course-item-list>li>div:first-child{min-width:0}.course-item-list strong,.course-item-list span{overflow-wrap:anywhere;display:block}.course-item-list span{color:var(--color-text-muted);font-size:var(--text-micro);margin-top:4px;line-height:1.5}.course-item-list button,.course-inline-confirm button,.course-item-actions button{min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-success-border);font-size:var(--text-micro);background:var(--color-surface-raised);padding:7px 10px;font-weight:700}.course-item-actions{flex-wrap:wrap;gap:7px;display:flex}.course-inline-confirm{border-radius:var(--radius-card);color:var(--color-error-text);font-size:var(--text-micro);background:var(--color-error-bg);flex-wrap:wrap;align-items:center;gap:7px;padding:9px;display:flex}.course-inline-confirm span{color:inherit;flex-basis:100%;margin:0}.course-list-empty{border:1px dashed var(--color-border);border-radius:var(--radius-card);color:var(--color-text-muted);font-size:var(--text-caption);text-align:center;margin:20px 0 0;padding:18px}.course-editor-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.course-save-state{white-space:nowrap}.course-validation{border:1px solid var(--color-error-bg);border-radius:var(--radius-card);color:var(--color-error-border);background:var(--color-error-bg);margin-bottom:20px;padding:16px 18px}.course-validation>div{justify-content:space-between;align-items:center;gap:14px;display:flex}.course-validation span{font-size:var(--text-micro)}.course-validation ul{font-size:var(--text-caption);margin:12px 0 0;padding-left:20px;line-height:1.7}.course-unit-heading{justify-content:space-between;align-items:flex-end;gap:18px;margin-top:26px;display:flex}.course-unit-heading h3{margin-bottom:0}.course-unit-editor{border:1px solid var(--color-border);border-radius:var(--radius-card);min-width:0;margin:22px 0 0;padding:18px}.course-unit-editor legend{color:var(--color-success-border);font-size:var(--text-caption);padding:0 8px;font-weight:800}.course-unit-meta{justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.course-unit-meta label{width:min(100%,460px);margin-bottom:16px}.course-text-danger{background:0 0;border:0;margin-bottom:20px;padding:6px 0}.course-editor-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.course-editor-grid label{min-width:0;margin:0}.course-editor-grid textarea{min-height:430px;font-family:var(--font-mono);font-size:var(--text-caption);tab-size:2}.course-plain-preview{min-width:0}.course-plain-preview>span{color:var(--color-text-muted);font-size:var(--text-caption);margin-bottom:8px;font-weight:700;display:block}.course-plain-preview pre{border:1px solid var(--color-border);border-radius:var(--radius-card);min-height:430px;max-height:620px;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-caption);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--color-surface);margin:0;padding:14px;line-height:1.65;overflow:auto}@media (width<=980px){.course-workspace-grid{grid-template-columns:1fr}.course-section-card{width:100%}}@media (width<=760px){.course-card-grid,.course-editor-grid{grid-template-columns:1fr}.course-heading,.course-unit-heading{flex-direction:column;align-items:flex-start}.course-metrics{grid-template-columns:1fr}.course-editor-grid textarea,.course-plain-preview pre{min-height:300px}}@media (width<=520px){.course-management{padding-top:24px}.course-draft-card,.course-section-card{padding:18px}.course-editor-toolbar{display:grid}.course-editor-toolbar .course-fit-button{width:100%}.course-unit-meta{flex-direction:column;align-items:stretch;gap:0}}.student-learning,.student-learning *{min-width:0}.student-learning-heading{align-items:flex-start}.student-learning-heading h1{max-width:820px;font-size:var(--text-display-xl);overflow-wrap:anywhere;margin-bottom:12px}.student-learning-heading>.secondary-button{flex:none}.student-learning .form-error{margin:0 0 20px}.student-course-list .table-heading>span{color:var(--color-text-muted);font-size:var(--text-caption);font-weight:750}.student-course-card{min-height:300px;padding:24px}.student-course-card label{color:var(--color-text-muted);font-size:var(--text-micro);gap:8px;margin:2px 0 18px;font-weight:750;display:grid}.student-learning progress{border-radius:var(--radius-pill);width:100%;height:10px;color:var(--color-brand);accent-color:var(--color-brand);background:var(--color-surface-subtle);border:0;overflow:hidden}.student-learning progress::-webkit-progress-bar{border-radius:var(--radius-pill);background:var(--color-surface-subtle)}.student-learning progress::-webkit-progress-value{border-radius:var(--radius-pill);background:var(--color-brand)}.student-learning progress::-moz-progress-bar{border-radius:var(--radius-pill);background:var(--color-brand)}.student-history ul{gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}.student-history li{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);color:var(--color-text-muted);font-size:var(--text-caption);background:var(--color-surface);flex-wrap:wrap;justify-content:space-between;gap:5px;padding:13px 15px;display:flex}.student-learning-layout{grid-template-columns:minmax(230px,300px) minmax(0,1fr);align-items:start;gap:24px}.student-outline{max-height:calc(100vh - 40px);position:sticky;top:20px;overflow-y:auto}.student-outline>progress{margin:8px 0 4px}.student-outline .course-item-list{gap:9px}.student-outline .course-item-list>li{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:12px}.student-outline .course-item-list button[aria-current=true]{border-color:var(--color-success-border);color:var(--color-success-border);background:var(--color-success-bg)}.student-learning-main{gap:20px;display:grid}.student-ai-card .table-heading{align-items:center}.student-ai-card strong[role=status]{border-radius:var(--radius-pill);min-height:32px;color:var(--color-success-border);font-size:var(--text-micro);background:var(--color-success-bg);align-items:center;padding:6px 11px;display:inline-flex}.student-ai-card form{border-top:1px solid var(--color-border-subtle);margin-top:18px;padding-top:18px}.student-ai-card form>label{margin-bottom:0}.student-ai-card .field-help{margin:8px 0 13px}.student-learning textarea{border:1px solid var(--color-border);border-radius:var(--radius-card);width:100%;color:var(--color-ink);font:inherit;resize:vertical;background:var(--color-surface-raised);outline:none;margin-top:8px;padding:13px 14px;line-height:1.65;transition:border-color .16s,box-shadow .16s}.student-learning textarea:focus{border-color:var(--color-success-border);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-success-border) 12%, transparent)}.student-learning button:focus-visible,.student-learning input:focus-visible,.student-learning textarea:focus-visible,.student-learning .cm-editor.cm-focused{outline:3px solid color-mix(in srgb, var(--color-focus) 28%, transparent);outline-offset:2px}.student-learning .row-actions{flex-wrap:wrap;gap:9px}.student-learning .row-actions button:not(.ui-button){min-height:var(--control-height);border-radius:var(--radius-pill);font-size:var(--text-micro);padding:9px 14px;font-weight:750}.student-learning .row-actions .primary-button{width:auto}.student-knowledge-card>section{border-top:1px solid var(--color-border-subtle);padding:18px 0}.student-knowledge-card>section:first-of-type{margin-top:18px}.student-knowledge-card section h3{color:var(--color-success-border);font-size:var(--text-caption);letter-spacing:.02em;margin:0 0 10px}.student-knowledge-card section>:last-child,.student-message>:last-child{margin-bottom:0}.student-knowledge-card p,.student-knowledge-card li,.student-message p,.student-message li,.student-question p,.student-question li{color:var(--color-text-muted);line-height:1.75}.student-knowledge-card ul,.student-knowledge-card ol,.student-message ul,.student-message ol,.student-question ul,.student-question ol{padding-left:22px}.student-knowledge-card a,.student-message a,.student-question a{color:var(--color-success-border);text-underline-offset:3px;text-decoration-thickness:1px}.student-knowledge-card code,.student-message code,.student-question code{border-radius:var(--radius-control);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-caption);background:var(--color-surface-subtle);padding:2px 6px}.student-knowledge-card pre,.student-message pre,.student-question pre{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);max-width:100%;padding:14px;overflow-x:auto}.student-knowledge-card pre code,.student-message pre code,.student-question pre code{background:0 0;padding:0}.student-knowledge-card blockquote,.student-message blockquote{border-left:1px solid var(--color-brand-decorative);color:var(--color-text-muted);margin-inline:0;padding:5px 0 5px 16px}.student-review-notice{border:1px solid var(--color-warning-bg);border-radius:var(--radius-card);color:var(--color-warning-text);font-size:var(--text-caption);background:var(--color-warning-bg);justify-content:space-between;align-items:center;gap:14px;margin:16px 0 4px;padding:12px 14px;line-height:1.5;display:flex}.student-review-notice button{min-height:var(--control-height);border:1px solid var(--color-warning-bg);border-radius:var(--radius-pill);color:var(--color-warning-text);background:var(--color-warning-bg);flex:none;padding:7px 10px;font-weight:750}.student-conversation .table-heading{border-bottom:1px solid var(--color-border-subtle);padding-bottom:16px}.student-message{border:1px solid var(--color-border-subtle);border-radius:var(--radius-container);background:var(--color-surface);width:min(88%,760px);margin:14px 0;padding:15px 17px}.student-message>strong{color:var(--color-success-border);font-size:var(--text-micro);margin-bottom:7px;display:block}.student-message--student{border-color:var(--color-success-bg);background:var(--color-surface-subtle);margin-left:auto}.student-message--assistant{margin-right:auto}.student-message--system{width:100%;color:var(--color-text-muted);background:var(--color-surface-subtle);border-style:dashed}.student-message small{color:var(--color-text-muted);margin-top:8px;display:block}.student-question{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);margin:22px 0 0;padding:18px}.student-question h3{color:var(--color-success-border);margin:0 0 9px}.student-answer-form{border-top:1px solid var(--color-border-subtle);margin-top:22px;padding-top:20px}.student-answer-form label,.student-code-card>label{color:var(--color-text-muted);font-size:var(--text-caption);margin-bottom:0;font-weight:700;display:block}.student-answer-form .primary-button{width:auto;margin-top:10px}.student-code-card .python-editor{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-raised);margin:14px 0 18px;overflow:hidden}.student-code-card .cm-editor{min-height:280px;max-height:520px;color:var(--color-ink);font-size:var(--text-caption)}.student-code-card .cm-scroller{font-family:var(--font-mono);overflow:auto}.student-code-card>.row-actions{margin-top:16px}.student-code-output{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);margin-top:20px;padding:17px}.student-code-output h3{color:var(--color-success-border);margin:0 0 8px}.student-code-output h4{color:var(--color-text-muted);font-size:var(--text-micro);margin:16px 0 7px}.student-code-output p{color:var(--color-text-muted);font-size:var(--text-micro)}.student-code-output pre{border-radius:var(--radius-control);max-height:260px;color:var(--color-on-dark-muted);font-family:var(--font-mono);font-size:var(--text-caption);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--color-surface-dark);margin:0;padding:13px;line-height:1.6;overflow:auto}@media (width<=980px){.student-learning-layout{grid-template-columns:1fr}.student-outline{max-height:none;position:static}.student-outline .course-item-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.student-learning{padding-top:30px}.student-learning-heading{flex-direction:column;gap:18px}.student-learning-heading>.secondary-button{width:100%}.student-course-list .course-card-grid,.student-outline .course-item-list{grid-template-columns:1fr}.student-learning-main>.admin-card,.student-outline,.student-course-list,.student-history{padding:20px}.student-ai-card .table-heading,.student-conversation .table-heading,.student-review-notice{flex-direction:column;align-items:stretch}.student-ai-card strong[role=status]{align-self:flex-start}.student-message{width:96%}.student-code-card .cm-editor{min-height:230px}}@media (width<=480px){.student-learning{padding-top:24px}.student-learning-heading h1{font-size:var(--text-heading-xl)}.student-learning-main>.admin-card,.student-outline,.student-course-list,.student-history,.student-course-card{border-radius:var(--radius-container);padding:16px}.student-learning .row-actions{grid-template-columns:1fr;display:grid}.student-learning .row-actions button,.student-review-notice button,.student-learning .row-actions .primary-button,.student-answer-form .primary-button{width:100%}.student-message{width:100%;padding:13px}.student-question,.student-code-output{padding:14px}.student-code-card .cm-editor{min-height:200px;max-height:420px}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;color:var(--color-ink);background:var(--color-canvas);--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--font-display:Georgia, "Songti SC", STSong, "Noto Serif SC", "Source Han Serif SC", SimSun, serif;--font-ui:var(--font-sans);--font-reading:var(--font-sans);--font-label:var(--font-ui);--font-button:var(--font-ui);font-size:16px;font-family:var(--font-ui);--color-canvas:#f6f6f6;--color-nav-hover:#e2e2e2;--color-nav-selected:#d6e2ff;--color-surface-header:#fafafa;--color-surface-disabled:#eee;--color-danger-hover:#f5f2f5;--canvas-texture:radial-gradient(ellipse at 12% 18%, #d9d9d914, transparent 55%), radial-gradient(ellipse at 88% 72%, #ffffff73, transparent 60%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .15 0 0 0 0 .15 0 0 0 0 .15 0 0 0 .025 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--color-canvas-glass:#fffffff0;--color-surface-material:#fefefe;--surface-material:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27240%27%20height%3D%27240%27%3E%3Cfilter%20id%3D%27n%27%20color-interpolation-filters%3D%27sRGB%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.85%27%20numOctaves%3D%271%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20values%3D%27.007843%200%200%200%20.992157%20.007843%200%200%200%20.992157%20.007843%200%200%200%20.992157%200%200%200%200%201%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%20filter%3D%27url\(%23n\)%27%2F%3E%3C%2Fsvg%3E) repeat var(--color-surface-material);--color-surface:#fff;--color-surface-raised:#fff;--color-surface-subtle:#f1f1f1;--color-surface-strong:#edf2ff;--color-surface-dark:#0e0e0e;--color-surface-dark-raised:#292927;--color-surface-dark-hover:#383835;--color-overlay:#24242466;--color-ink:#242424;--color-ink-hover:#333;--color-body:#454545;--color-text-muted:#616161;--color-text-disabled:#757575;--color-on-dark:#fff;--color-on-dark-muted:#c8c5bf;--color-border:#e2e2e2;--color-border-subtle:#e2e2e2;--color-border-strong:#ccc;--color-control-border:#858585;--color-border-on-dark:#85817a;--color-brand:#2454db;--color-brand-hover:#1944bd;--color-brand-active:#1944bd;--color-brand-pressed:#16399f;--color-control-hover:#f1f1f1;--color-control-active:#e7e7e7;--color-brand-soft:#edf2ff;--color-brand-decorative:var(--color-brand);--color-brand-glow:#2454db1f;--color-link:#2454db;--color-link-hover:#1944bd;--color-link-visited:#6b3fa0;--color-link-on-dark:#94ccff;--color-link-on-dark-hover:#cae7ff;--color-link-on-dark-visited:#dfa7ff;--color-focus:#2454db;--color-focus-on-dark:#94ccff;--lumen-focus-gap:#fff;--lumen-focus-gap-on-dark:var(--color-surface-dark);--focus-ring:0 0 0 2px var(--lumen-focus-gap), 0 0 0 4px var(--color-focus);--focus-ring-on-dark:0 0 0 2px var(--lumen-focus-gap-on-dark), 0 0 0 4px var(--color-focus-on-dark);--color-info-bg:#f1f1f1;--color-info-border:#52676d;--color-info-icon:#52676d;--color-info-text:#52676d;--color-info:#52676d;--color-success-bg:#f1f1f1;--color-success-border:#166534;--color-success-icon:#166534;--color-success-text:#166534;--color-success-dark-bg:#163b22;--color-success-dark-border:#66d680;--color-success-dark-icon:#66d680;--color-success-dark-text:#d7fddc;--color-warning-bg:#f1f1f1;--color-warning-border:#735e39;--color-warning-icon:#735e39;--color-warning-text:#735e39;--color-error-bg:#fff;--color-error-border:#70566b;--color-error-icon:#70566b;--color-error-text:#70566b;--color-error-dark-bg:#48171c;--color-error-dark-border:#ff8e97;--color-error-dark-icon:#ff8e97;--color-error-dark-text:#ffe5e7;--color-code-keyword:#94ccff;--color-code-string:#82eb8d;--color-code-number:#ffdc73;--color-code-comment:#c8c5bf;--color-code-deletion:#ffb1b3;--color-code-addition:#82eb8d;--text-micro:.75rem;--text-caption:.8125rem;--text-ui:.875rem;--text-body:1rem;--text-lead:1.3125rem;--text-title-1:clamp(2.25rem, 5vw, 3rem);--text-title-2:clamp(2rem, 1.6rem + 1vw, 2.25rem);--text-title-3:1.5rem;--text-small:14px;--text-display-xl:clamp(2.25rem, 5vw, 3rem);--text-display-lg:clamp(2rem, 4vw, 2.25rem);--text-display-hero:clamp(2.75rem, 5vw, 3.5rem);--text-display-admin:clamp(2.25rem, 3vw, 2.5rem);--text-display-course:clamp(2.25rem, 3vw, 2.5rem);--text-display-learning:clamp(2rem, 3vw, 2.25rem);--text-display-learning-wide:clamp(2.25rem, 3.2vw, 2.5rem);--text-display-learning-mobile:2rem;--text-display-learning-mobile-wide:2rem;--text-page-title:var(--text-title-2);--text-section-title:1.25rem;--text-dashboard-title:clamp(1.35rem, 2.4vw, 2rem);--text-section-display:clamp(1.75rem, 2.2vw, 2.2rem);--text-heading-lg:2rem;--text-heading-xl:2.25rem;--text-heading-compact:1.75rem;--text-heading-md:1.5rem;--text-heading-sm:1.25rem;--text-prose-h2:2rem;--text-prose-h3:1.5rem;--text-prose-h4:1.25rem;--text-prose-lead:1.3125rem;--text-prose-body:1.0625rem;--text-ui-small:.875rem;--text-ui-body:1rem;--text-code:.875rem;--text-code-small:.8125rem;--text-label:var(--text-ui);--line-tight:1.08;--line-ui:1.55;--line-reading:1.75;--line-reading-large:1.8;--reading-width:72ch;--content-width:min(var(--container-max), 100%);--reading-max:min(72ch, 760px);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--layout-gutter-mobile:16px;--layout-gutter-tablet:24px;--layout-gutter-desktop:32px;--layout-grid-gap:24px;--container-max:1248px;--layout-container-max:var(--container-max);--card-min:270px;--section-comfortable:clamp(64px, 8vw, 96px);--section-compact:clamp(32px, 5vw, 64px);--layout-card-min:var(--card-min);--grid-gap:var(--layout-grid-gap);--radius-sm:6px;--radius-md:6px;--radius-lg:12px;--radius-xl:16px;--radius-pill:9999px;--radius-card:12px;--radius-control:var(--radius-md);--radius-container:16px;--radius-dialog:20px;--shadow-xs:0 1px 2px #2424240d;--shadow-sm:0 4px 14px -8px #24242429;--shadow-md:0 10px 28px -16px #24242438;--shadow-overlay:0 16px 42px -18px #24242447;--shadow-popover:0 8px 24px -8px #24242429;--shadow-modal:var(--shadow-overlay);--app-shell-sidebar-width:272px;--control-height-sm:44px;--control-height:44px;--control-height-compact:36px;--control-height-entry:50px;--button-height:34px;--button-height-entry:44px;--motion-instant:0s;--motion-fast:80ms;--motion-normal:.16s;--motion-slow:.24s;--motion-fast-exit:60ms;--motion-normal-exit:.12s;--motion-slow-exit:.16s;--motion-moderate:var(--motion-normal);--motion-loading-cycle:1.4s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-emphasized:cubic-bezier(.2, 0, 0, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--ease-spring-fast:var(--ease-standard);--ease-spring-moderate:var(--ease-standard);--ease-spring-slow:var(--ease-standard);--color-surface-selected:var(--color-surface-subtle)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.ui-alert{gap:var(--space-3);margin:0 0 var(--space-4);padding:var(--space-4);border-radius:var(--radius-card);line-height:var(--line-ui);border:1px solid;grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.ui-alert>svg{stroke-width:1.8px;width:19px;height:19px;margin-top:2px}.ui-alert strong,.ui-alert p{margin:0;display:block}.ui-alert strong{color:inherit;font-size:var(--text-ui)}.ui-alert p{margin-top:var(--space-1);color:inherit;font-size:var(--text-caption)}.ui-alert--danger{color:var(--color-error-text);border-color:var(--color-error-border);background:var(--color-error-bg)}.ui-alert--success{color:var(--color-success-text);border-color:var(--color-success-border);background:var(--color-success-bg)}.ui-empty{justify-content:center;align-items:center;gap:var(--space-4);min-height:168px;padding:var(--space-8);border:1px dashed var(--color-border-strong);border-radius:var(--radius-card);color:var(--color-text-muted);background:var(--surface-material);text-align:left;display:flex}.ui-empty__icon{border-radius:var(--radius-card);width:42px;height:42px;color:var(--color-brand-active);background:var(--color-brand-soft);flex:none;place-items:center;display:grid}.ui-empty__icon svg{stroke-width:1.75px;width:20px;height:20px}.ui-empty strong,.ui-empty p{margin:0;display:block}.ui-empty strong{color:var(--color-ink);font-size:var(--text-body)}.ui-empty p{max-width:52ch;margin-top:var(--space-1);font-size:var(--text-ui);line-height:var(--line-ui)}.ui-empty__action{margin-left:auto}.ui-loading{gap:var(--space-3);width:min(100%,820px);padding:var(--space-6) 0;display:grid}.ui-skeleton{border-radius:var(--radius-control);background:var(--color-control-active);width:100%;height:48px;animation:none;display:block}.ui-skeleton--heading{width:min(42%,320px);height:22px;margin-bottom:var(--space-1)}.ui-skeleton:nth-of-type(3){width:86%}.ui-skeleton:nth-of-type(4){width:72%}.route-loading{text-align:left}.route-loading .ui-loading{padding:0}.ui-choice-field{border:0;min-width:0;margin:0;padding:0}.ui-choice-field legend{margin-bottom:var(--space-2);color:var(--color-body);font-size:var(--text-ui);padding:0;font-weight:700}.ui-choice-field>.field-help{margin:var(--space-2) 0 0}.admin-card,.center-card,.learning-panel,.teacher-dashboard__panel,.teacher-dashboard__export,.student-course-card,.student-outline,.student-knowledge-card{padding:clamp(16px,1.95vw,28px)}.teacher-dashboard__summary article{background:var(--color-surface);border:0;border-radius:0}.page-header,.dashboard-heading,.course-management,.student-learning{max-width:none}.page-header{align-items:flex-start;gap:clamp(16px,2vw,28px)}.page-header h1{letter-spacing:0;line-height:1.15;font-family:var(--font-display);font-size:var(--text-page-title);margin:0}.dashboard-heading h1{margin:0}.plain-section{padding-top:clamp(16px,2vw,28px);padding-bottom:clamp(16px,2vw,28px)}.student-learning .row-actions button,.teacher-dashboard__filters button{min-height:44px}.teacher-dashboard__filters,.student-filter-bar{background:var(--color-surface-subtle);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg)}.student-learning--workspace .student-workspace-header .secondary-tabs,.student-learning--workspace .student-quick-replies{align-items:center}@media (width<=520px){.admin-card,.center-card,.learning-panel,.teacher-dashboard__panel,.teacher-dashboard__export,.student-course-card,.student-outline,.student-knowledge-card{padding:16px}.plain-section{padding-inline:0}}h1,h2,h3,h4{color:var(--color-ink);margin:0}h1,h2,h3{letter-spacing:0}h1{font-family:var(--font-display);font-size:var(--text-title-3);line-height:1.2}h2,h3,h4{font-family:var(--font-ui)}h2{font-size:var(--text-heading-compact);line-height:1.3}h3,h4{line-height:1.35}:where(input,select,textarea):focus-visible{border-color:var(--color-focus)}details>summary{cursor:pointer;min-height:44px;transition:color var(--motion-fast) var(--ease-standard);align-content:center}details>summary:hover{color:var(--color-brand-hover)}details>summary:focus-visible{color:var(--color-brand-hover);transition:none}html{background:var(--color-canvas);scroll-behavior:smooth;min-width:0}*,:before,:after{box-sizing:border-box}body{min-width:0;min-height:100vh;color:var(--color-body);font-family:var(--font-ui);font-size:var(--text-body);line-height:var(--line-ui);background:var(--color-canvas);margin:0}h1,h2,h3,h4,ul,ol,p,figure,blockquote,dl,dd{margin:0}button,input,textarea,select{font:inherit}::selection{color:var(--color-ink,var(--color-ink));background:var(--color-surface-selected)}:where(a,button,input,select,textarea,summary):focus-visible{box-shadow:var(--focus-ring);outline:none}:where(input,select,textarea):focus-visible{border-color:var(--color-brand-active);border-color:var(--color-brand-active)}:where(button,a,summary){-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}h1,h2,h3,h4{color:var(--color-ink);letter-spacing:0}p{text-wrap:pretty}.skip-link{z-index:1000;box-sizing:border-box;border-radius:var(--radius-md);min-height:44px;color:var(--color-surface-raised);font-size:var(--text-ui);background:var(--color-brand);box-shadow:var(--shadow-md);transition:transform var(--motion-fast) var(--ease-standard);align-items:center;padding:10px 14px;font-weight:700;display:inline-flex;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.page-shell{width:min(var(--content-width), calc(100% - 48px));min-height:100vh;margin:0 auto;padding:0}.topbar{z-index:20;gap:var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-canvas);min-height:76px;padding:14px 0;position:relative}.brand{gap:12px}.brand-mark{border-radius:var(--radius-card);width:44px;height:44px;color:var(--color-surface-raised);background:var(--color-brand);box-shadow:none;font-size:1rem;font-weight:800}.brand strong{color:var(--color-ink);font-size:var(--text-ui);letter-spacing:0}.brand span{color:var(--color-text-muted);font-size:var(--text-caption);margin-top:2px}.topbar-actions{align-items:center;gap:10px;display:flex}.environment-badge,.system-pill{border:1px solid var(--color-border);border-radius:var(--radius-pill);min-height:34px;color:var(--color-text-muted);font-size:var(--text-caption);background:var(--color-surface);align-items:center;padding:6px 11px;font-weight:650;display:inline-flex}.system-pill{color:var(--color-success-border);border-color:var(--color-success-bg);background:var(--color-success-bg);gap:8px}.system-pill--loading{color:var(--color-info);border-color:var(--color-info-bg);background:var(--color-info-bg)}.system-pill--error{color:var(--color-error-border);border-color:var(--color-error-border);background:var(--color-error-bg)}.signal-dot{opacity:.82;width:7px;height:7px;box-shadow:0 0 0 3px}.auth-layout{grid-template-columns:minmax(0,1.08fr) minmax(390px,.82fr);align-items:center;gap:clamp(48px,7vw,96px);min-height:650px;padding:clamp(52px,8vh,88px) clamp(0px,3vw,34px);display:grid}.auth-intro{max-width:680px}.auth-intro h1,.dashboard-heading h1,.student-home h1{color:var(--color-ink);font-size:var(--text-title-1);letter-spacing:0;line-height:1.16}.auth-intro h1{max-width:11em;margin-bottom:var(--space-6)}.auth-intro>p:not(.eyebrow){max-width:38em;color:var(--color-text-muted);font-size:var(--text-lead);line-height:var(--line-reading)}.eyebrow,.step-label{color:var(--color-brand-active);font-size:var(--text-caption);letter-spacing:.06em;text-transform:none;margin-bottom:10px;font-weight:750}.trust-note{max-width:580px;margin-top:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-body);font-size:var(--text-ui);background:var(--color-surface);box-shadow:var(--shadow-xs);align-items:flex-start;gap:13px;padding:16px;line-height:1.6;display:flex}.trust-note-icon{border-radius:var(--radius-pill);width:24px;height:24px;color:var(--color-surface-raised);font-size:var(--text-micro);background:var(--color-success-border);flex:none;place-items:center;display:grid}.trust-note strong,.trust-note div>span{display:block}.trust-note strong{color:var(--color-ink);font-size:var(--text-ui);margin-bottom:2px}.trust-note div>span{color:var(--color-text-muted)}.auth-card,.admin-card,.center-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--surface-material);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:none;backdrop-filter:none}.auth-card{width:100%;max-width:460px;box-shadow:var(--shadow-md);justify-self:end;padding:28px}.admin-card h2{color:var(--color-ink);font-size:var(--text-title-3);margin-bottom:7px}.muted{color:var(--color-text-muted);font-size:var(--text-ui);line-height:1.65}.admin-card,.center-card,.learning-panel,.teacher-dashboard__panel,.teacher-dashboard__export,.student-learning .admin-card,.student-learning-main>.admin-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--surface-material);box-shadow:var(--shadow-xs)}.learning-panel,.student-learning-main{--panel-stack:clamp(12px, 1.8vw, 16px)}form label,.file-field{color:var(--color-body);font-size:var(--text-ui);margin-bottom:18px;font-weight:650;display:block}input,select,textarea{width:100%;min-height:var(--control-height);border:1px solid var(--color-control-border);border-radius:var(--radius-md);color:var(--color-ink);font-size:var(--text-body);background:var(--color-surface);transition:border-color var(--motion-fast) var(--ease-standard);outline:none;margin-top:7px;padding:10px 12px;font-weight:400;line-height:1.5}:is(input,select,textarea):disabled{transition:none}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]):not([type=hidden]),select{height:var(--control-height);border-radius:var(--radius-pill);padding-inline:18px}select{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}input[type=file]{border-radius:var(--radius-pill);padding:7px 10px}input[type=file]::file-selector-button{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);min-height:32px;color:var(--color-ink);font:inherit;cursor:pointer;margin-right:10px;padding:5px 14px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--color-error-border)}.field-help{color:var(--color-text-muted);font-size:var(--text-caption);margin-top:7px;font-weight:450;line-height:1.55;display:block}.primary-button,.secondary-button{text-align:center;justify-content:center;align-items:center;gap:8px;width:auto;text-decoration:none;display:inline-flex}.auth-card form>.primary-button,.password-change-card form>.primary-button{width:100%}.form-error{border-radius:var(--radius-md);font-size:var(--text-ui);color:var(--color-error-border);border:1px solid;border-color:var(--color-error-border);background:var(--color-error-bg);padding:12px 14px;line-height:1.55}.dashboard{padding:46px 0 26px}.dashboard-heading{gap:var(--space-8);align-items:flex-start;margin-bottom:28px}.dashboard-heading h1{max-width:18em;font-size:var(--text-title-2);letter-spacing:0;margin-bottom:10px;line-height:1.15}.dashboard-heading p:last-child{max-width:48em;color:var(--color-text-muted);font-size:var(--text-body);margin-bottom:0;line-height:1.65}.admin-section-tabs{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);max-width:100%;box-shadow:var(--shadow-xs);gap:4px;margin:0 0 24px;padding:4px;display:inline-flex;overflow-x:auto}.admin-section-tabs button{min-width:112px;min-height:var(--control-height);border-radius:var(--radius-control);color:var(--color-text-muted);font-size:var(--text-ui);white-space:nowrap;transition:color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);background:0 0;border:0;padding:8px 16px;font-weight:650}.admin-section-tabs button:hover{color:var(--color-ink);background:var(--color-surface-subtle)}.admin-section-tabs button[aria-selected=true]{color:var(--color-brand-active);background:var(--color-brand-soft);box-shadow:none}.course-management,.student-learning,.plain-section{border-radius:var(--radius-lg)}.dashboard,.course-management,.student-learning,.teacher-dashboard,.dashboard-heading,.student-learning-heading,.course-heading,.course-unit-heading,.student-learning-unit-heading,.student-learning-main{scroll-margin-top:20px}.dashboard,.course-management,.student-learning{padding-top:2px;padding-bottom:20px}.admin-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px}.admin-card{padding:24px}.inline-form{gap:10px}.chip-list{gap:7px;margin-top:16px}.chip-list span,.account-status,.course-status,.course-save-state{border-radius:var(--radius-pill);min-height:28px;color:var(--color-body);font-size:var(--text-caption);background:var(--color-surface-subtle);align-items:center;padding:5px 9px;font-weight:650;display:inline-flex}.file-field input{background:var(--color-surface-subtle);border-style:dashed;padding:9px}.selected-file{color:var(--color-text-muted);font-size:var(--text-caption)}.preview-card,.edit-card,.roster-card{margin-top:18px}.table-heading{gap:var(--space-5);align-items:center;margin-bottom:18px}.table-heading h2{color:var(--color-ink);font-size:var(--text-title-3)}.error-list{color:var(--color-error-border);font-size:var(--text-ui);background:var(--color-error-bg)}.table-scroll{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);scrollbar-width:thin;scrollbar-color:var(--color-control-border) transparent;overflow:auto}table{border-collapse:separate;border-spacing:0;width:100%;min-width:820px;color:var(--color-body);font-size:var(--text-ui);font-variant-numeric:tabular-nums;table-layout:auto}th,td{border-bottom:1px solid var(--color-border);color:var(--color-body);text-align:left;vertical-align:top;white-space:normal;padding:14px 15px;line-height:1.5}th{z-index:1;color:var(--color-text-muted);font-size:var(--text-caption);background:var(--color-surface-header);font-weight:500;position:sticky;top:0}tbody tr:last-child td{border-bottom:0}tbody tr{transition:background-color var(--motion-fast) var(--ease-standard)}tbody tr:hover{background:var(--color-surface-subtle)}.roster-card .table-scroll{max-height:min(68vh,720px)}.roster-card table{min-width:960px}.student-identity strong,.student-identity span{display:block}.student-identity strong{color:var(--color-ink)}.student-identity span{color:var(--color-text-muted);font-size:var(--text-caption);font-variant-numeric:tabular-nums;margin-top:3px;line-height:1.56}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.row-actions button:not(.ui-button){min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-body);font-size:var(--text-caption);background:var(--color-surface);padding:7px 10px;font-weight:650}.row-actions button:hover:not(:disabled){color:var(--color-ink);border-color:var(--color-border-strong);background:var(--color-surface-subtle)}.row-actions .row-action--primary{color:var(--color-brand-active);border-color:var(--color-brand-decorative);background:var(--color-brand-soft)}.row-actions .row-action--positive{color:var(--color-success-border);border-color:var(--color-success-bg);background:var(--color-success-bg)}.row-actions .row-action--warning{color:var(--color-warning-border);border-color:var(--color-warning-border);background:var(--color-warning-bg)}.row-actions .row-action--danger{color:var(--color-error-border);border-color:var(--color-error-border);background:var(--color-error-bg)}.roster-card .row-actions{align-items:center;gap:var(--space-2);flex-wrap:nowrap}.row-action-group{align-items:stretch;display:inline-flex}.roster-card .row-action-group button{white-space:nowrap;border-radius:0;min-height:36px}.roster-card .row-action-group button:first-child{border-radius:var(--radius-control) 0 0 var(--radius-control)}.roster-card .row-action-group button:last-child{border-radius:0 var(--radius-control) var(--radius-control) 0}.roster-card .row-action-group button+button{margin-inline-start:-1px}.row-action-group--secondary button{background:var(--color-surface-raised)}.account-status--active,.course-status{color:var(--color-success-border);background:var(--color-success-bg)}.account-status--disabled{color:var(--color-error-border);background:var(--color-error-bg)}.center-card{text-align:center;max-width:650px;margin:80px auto;padding:42px}.password-change-card{text-align:left;max-width:600px}.password-change-card>p:not(.eyebrow){color:var(--color-text-muted);line-height:var(--line-reading)}.password-change-card .secondary-button{width:100%;margin-top:10px}.course-management{padding:28px 0 8px}.course-management textarea,.student-learning textarea{color:var(--color-ink);font-size:var(--text-body);border-color:var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-surface);line-height:1.65}.course-management textarea:focus,.student-learning textarea:focus{border-color:var(--color-brand-active);box-shadow:var(--focus-ring)}.course-management button:focus-visible,.course-management input:focus-visible,.course-management textarea:focus-visible,.student-learning button:focus-visible,.student-learning input:focus-visible,.student-learning textarea:focus-visible,.student-learning .cm-editor.cm-focused{outline:2px solid var(--color-focus);outline-offset:3px}.course-heading{gap:24px;margin-bottom:22px}.course-heading h2{color:var(--color-ink);font-size:var(--text-title-2);letter-spacing:0;margin-bottom:8px;line-height:1.15}.course-heading p:last-child{max-width:48em;color:var(--color-text-muted);font-size:var(--text-body);line-height:1.65}.course-list-heading h3,.course-card h3,.course-section-card h3,.course-draft-card h3{color:var(--color-ink);font-size:var(--text-title-3)}.course-list-heading{margin:28px 0 14px}.course-list-heading>span{color:var(--color-text-muted);font-size:var(--text-ui)}.course-card-grid{gap:16px}.course-card{min-height:252px;box-shadow:var(--shadow-xs);padding:22px}.course-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.course-card>p{color:var(--color-text-muted);font-size:var(--text-ui);line-height:1.65}.course-card-topline,.course-title-line{color:var(--color-text-muted);font-size:var(--text-caption);margin-bottom:14px}.course-status--archived{color:var(--color-warning-border);background:var(--color-warning-bg)}.course-metrics{gap:8px;margin:16px 0 20px}.course-metrics div{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-subtle);padding:10px}.course-metrics dt{color:var(--color-text-muted);font-size:var(--text-caption)}.course-metrics dd{color:var(--color-ink);font-size:var(--text-ui)}.course-empty{border-color:var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-muted);background:var(--surface-material)}.course-empty strong{color:var(--color-ink)}.course-back-button{min-height:var(--control-height);color:var(--color-brand-active);font-size:var(--text-ui);margin-bottom:16px;padding:8px 3px}.course-back-button:hover{color:var(--color-brand-hover)}.course-workspace-heading,.course-editor-heading{border-bottom-color:var(--color-border);padding-bottom:20px}.course-workspace-grid{gap:16px}.course-section-card{padding:22px}.course-item-list{gap:8px;margin-top:18px}.course-item-list>li{border-color:var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);padding:13px}.course-item-list strong{color:var(--color-ink);font-size:var(--text-ui)}.course-item-list span{color:var(--color-text-muted);font-size:var(--text-caption)}.course-item-list button,.course-inline-confirm button,.course-item-actions button{min-height:var(--control-height-sm);border-color:var(--color-border-strong);border-radius:var(--radius-pill);color:var(--color-body);font-size:var(--text-caption);background:var(--color-surface);padding:7px 10px}.course-item-actions .course-danger-action,.course-text-danger{color:var(--color-error-border)}.course-inline-confirm{color:var(--color-error-border);font-size:var(--text-caption);background:var(--color-error-bg)}.course-list-empty{border-color:var(--color-border);color:var(--color-text-muted);font-size:var(--text-ui)}.course-editor-toolbar{z-index:8;background:var(--color-canvas);gap:8px;margin:0 0 18px;padding:10px 0;position:sticky;top:0}.course-save-state{color:var(--color-success-border);background:var(--color-success-bg)}.course-save-state--dirty{color:var(--color-warning-border);background:var(--color-warning-bg)}.course-validation{border-color:var(--color-error-border);border-radius:var(--radius-lg);color:var(--color-error-border);background:var(--color-error-bg)}.course-validation--valid{border-color:var(--color-success-bg);color:var(--color-success-border);background:var(--color-success-bg)}.course-validation span,.course-validation ul{font-size:var(--text-caption)}.course-draft-card{padding:24px}.course-unit-editor{border-color:var(--color-border);border-radius:var(--radius-lg)}.course-unit-editor legend{color:var(--color-ink);font-size:var(--text-ui)}.course-editor-grid textarea,.course-plain-preview pre{font-family:var(--font-mono);font-size:var(--text-caption)}.course-plain-preview>span{color:var(--color-body);font-size:var(--text-ui)}.course-plain-preview pre{border-color:var(--color-border);color:var(--color-body);background:var(--color-surface-subtle)}.student-learning{padding:42px 0 14px}.student-learning-heading h1{max-width:18em;font-size:var(--text-title-2);margin-bottom:10px}.student-course-list,.student-history{margin-bottom:1.125rem}.student-course-list .table-heading>span{color:var(--color-text-muted);font-size:var(--text-ui)}.student-course-list .course-card-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.student-course-card{border-color:var(--color-border);background:var(--color-surface-subtle);min-height:270px;box-shadow:none;padding:20px}.student-course-card:hover{border-color:var(--color-brand-decorative);background:var(--color-surface-subtle)}.student-course-card label{color:var(--color-body);font-size:var(--text-caption)}.student-course-card>.primary-button{width:100%}.student-learning progress{height:9px;color:var(--color-brand-active);accent-color:var(--color-brand-active);background:var(--color-surface-subtle)}.student-learning progress::-webkit-progress-bar{background:var(--color-surface-subtle)}.student-learning progress::-webkit-progress-value{background:var(--color-brand)}.student-learning progress::-moz-progress-bar{background:var(--color-brand)}.student-history li{border-color:var(--color-border);color:var(--color-text-muted);font-size:var(--text-ui);background:var(--color-surface-subtle);padding:12px 14px}.student-history strong{color:var(--color-ink)}.student-learning-layout{grid-template-columns:minmax(250px,290px) minmax(0,1fr);gap:20px}.student-outline{max-height:calc(100vh - 112px);box-shadow:var(--shadow-xs);top:88px}.student-outline .course-item-list>li{padding:11px}.student-outline .course-item-list button{min-width:72px}.student-outline .course-item-list button[aria-current=true]{color:var(--color-brand-active);border-color:var(--color-brand-decorative);background:var(--color-brand-soft)}.student-outline .course-item-list button:disabled{color:var(--color-text-disabled);background:var(--color-surface-subtle)}.student-learning-main{gap:18px}.student-learning-main>.admin-card{box-shadow:var(--shadow-xs)}.student-ai-card{border-color:var(--color-brand-decorative)}.student-ai-card strong[role=status]{min-height:30px;color:var(--color-success-border);font-size:var(--text-caption);background:var(--color-success-bg);padding:5px 10px}.student-ai-card form{border-top-color:var(--color-border);margin-top:16px;padding-top:16px}.student-learning .row-actions button:not(.ui-button){min-height:var(--control-height);border-radius:var(--radius-pill);font-size:var(--text-ui);padding:9px 14px}.student-knowledge-card>section{max-width:var(--reading-width);border-top-color:var(--color-border);padding:20px 0}.student-knowledge-card section h3{color:var(--color-ink);letter-spacing:0;margin-bottom:10px;font-size:1rem}.student-knowledge-card p,.student-knowledge-card li,.student-message p,.student-message li,.student-question p,.student-question li{color:var(--color-body);font-size:var(--text-body);line-height:var(--line-reading)}.student-knowledge-card a,.student-message a,.student-question a{color:var(--color-brand-active)}.student-knowledge-card code,.student-message code,.student-question code{color:var(--color-ink);background:var(--color-surface-subtle)}.student-knowledge-card pre,.student-message pre,.student-question pre{border-color:var(--color-border);background:var(--color-surface-subtle)}.student-knowledge-card blockquote,.student-message blockquote{border-left-color:var(--color-brand-decorative);color:var(--color-text-muted)}.student-review-notice{color:var(--color-warning-border);border-color:var(--color-warning-border);font-size:var(--text-ui);background:var(--color-warning-bg)}.student-review-notice button{min-height:var(--control-height-sm);color:var(--color-warning-border);border-color:var(--color-warning-border);background:var(--color-warning-bg)}.student-conversation{border-top:1px solid var(--color-border);flex-direction:column;min-height:min(68vh,760px);max-height:calc(100vh - 150px);scroll-padding-block:96px 180px;display:flex;overflow-y:auto}.student-conversation .table-heading{z-index:3;border-bottom-color:var(--color-border);background:var(--color-surface);padding-top:4px;position:sticky;top:0}.student-message{border-color:var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-subtle);width:min(88%,760px);padding:14px 16px}.student-message>strong{color:var(--color-ink);font-size:var(--text-caption)}.student-message--student{border-color:var(--color-brand-decorative);background:var(--color-brand-soft);align-self:flex-end}.student-message--assistant{align-self:flex-start}.student-message--system{color:var(--color-text-muted);background:var(--color-surface-subtle)}.student-message--live{border-color:var(--color-success-border);box-shadow:none}.student-message small{color:var(--color-text-muted);font-size:var(--text-caption)}.student-question{border-color:var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-brand-soft)}.student-question h3{color:var(--color-success-border)}.student-answer-form{border-top-color:var(--color-border)}.student-chat-composer{z-index:4;background:var(--color-surface);margin-top:auto;padding:16px 0 2px;position:sticky;bottom:-1px;box-shadow:0 -12px 18px #1f29370d}.student-chat-composer textarea{resize:vertical;min-height:88px}.student-quick-replies{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.student-course-key-card{margin-bottom:4px}.student-answer-form label,.student-code-card>label{color:var(--color-body);font-size:var(--text-ui)}.student-code-card .python-editor{border-color:var(--color-border-strong);border-radius:var(--radius-lg)}.student-code-card .cm-editor{color:var(--color-ink);font-size:var(--text-ui)}@media (any-pointer:coarse){.student-code-card .cm-editor{font-size:var(--text-body)}}.student-code-card .cm-scroller{font-family:var(--font-mono)}.student-code-card .cm-gutters{color:var(--color-text-muted);border-right-color:var(--color-border);background:var(--color-surface-subtle)}.student-code-output{border-color:var(--color-border);background:var(--color-surface-subtle)}.student-code-output h3{color:var(--color-ink)}.student-code-output h4,.student-code-output p{color:var(--color-text-muted);font-size:var(--text-caption)}.student-code-output pre{color:var(--color-on-dark);font-family:var(--font-mono);background:var(--color-surface-dark)}.teacher-dashboard{gap:18px}.teacher-dashboard h2,.teacher-dashboard h3,.teacher-record h2,.teacher-record h3{color:var(--color-ink)}.teacher-dashboard__toolbar,.teacher-dashboard__panel-heading,.teacher-record__heading,.teacher-dashboard__export,.teacher-dashboard__export-actions{gap:18px}.teacher-dashboard__toolbar{padding:4px 0 2px}.teacher-dashboard__live{border-color:var(--color-success-bg);min-height:36px;color:var(--color-success-border);font-size:var(--text-caption);background:var(--color-success-bg);padding:7px 11px}.teacher-dashboard__live-dot--connected{background:var(--color-success-border)}.teacher-dashboard__filters{border-color:var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs);grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:12px;padding:18px}.teacher-dashboard__filters button{min-height:var(--control-height)}.teacher-dashboard__summary{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.teacher-dashboard__summary article{border-color:var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-height:124px;box-shadow:var(--shadow-xs);padding:17px}.teacher-dashboard__summary article:last-child{border-color:var(--color-warning-bg);background:var(--color-warning-bg)}.teacher-dashboard__summary span,.teacher-dashboard__summary small{color:var(--color-text-muted);font-size:var(--text-caption)}.teacher-dashboard__summary strong{color:var(--color-ink);font-size:var(--text-section-display);font-variant-numeric:tabular-nums}.teacher-dashboard__panel,.teacher-dashboard__export{border-color:var(--color-border);border-radius:var(--radius-xl);background:var(--surface-material);box-shadow:var(--shadow-xs);padding:20px;overflow:visible}.teacher-dashboard__panel .table-scroll{max-width:100%}.teacher-dashboard__students .table-scroll{max-height:min(68vh,720px)}.teacher-dashboard__students td small{color:var(--color-text-muted);font-size:var(--text-caption)}.teacher-dashboard__students td button,.teacher-record__source-links button{min-height:var(--control-height);border-radius:var(--radius-sm);color:var(--color-brand-active);font-size:var(--text-caption);padding:6px 8px}.teacher-dashboard__students td button:hover,.teacher-record__source-links button:hover{background:var(--color-brand-soft)}.teacher-dashboard__presence{min-height:28px;font-size:var(--text-caption);padding:5px 9px}.teacher-dashboard__presence--learning{color:var(--color-success-border);background:var(--color-success-bg)}.teacher-dashboard__presence--logged-in{color:var(--color-info);background:var(--color-info-bg)}.teacher-dashboard__presence--offline{color:var(--color-text-muted);background:var(--color-surface-subtle)}.teacher-dashboard__warning{color:var(--color-warning-border);font-size:var(--text-caption)}.teacher-dashboard__issues li{border-left-color:var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg)}.teacher-dashboard__issues li span,.teacher-dashboard__issues li small{color:var(--color-warning-text);font-size:var(--text-caption)}.teacher-dashboard__empty{color:var(--color-text-muted)}.teacher-dashboard__error{color:var(--color-error-border);background:var(--color-error-bg)}.teacher-dashboard__export p{color:var(--color-text-muted);font-size:var(--text-ui)}.teacher-record{z-index:100;border-color:var(--color-border-strong);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:0 0 0 100vmax var(--color-overlay), var(--shadow-overlay);padding:24px;inset:24px}.teacher-record__heading{border-bottom-color:var(--color-border);background:var(--color-surface);-webkit-backdrop-filter:none;backdrop-filter:none;margin:-24px -24px 24px;padding:18px 24px;top:-24px}.teacher-record__heading p{color:var(--color-text-muted)}.teacher-record__content{gap:20px}.teacher-record__content>section{border-color:var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:20px}.teacher-record__state-grid article,.teacher-record__ai-list article{border:1px solid var(--color-border-subtle);background:var(--color-surface-subtle)}.teacher-record__state-grid span,.teacher-record__state-grid small,.teacher-record__ai-list span{color:var(--color-text-muted);font-size:var(--text-caption)}.teacher-record__summary,.teacher-record__question,.teacher-record__code{border-color:var(--color-border);border-radius:var(--radius-lg)}.teacher-record__attempt{border-left-color:var(--color-success-border);background:var(--color-success-bg)}.teacher-record__message{color:var(--color-body);background:var(--color-surface-subtle)}.teacher-record__message--student{background:var(--color-brand-soft)}.teacher-record__message span{color:var(--color-text-muted);font-size:var(--text-caption)}.teacher-record pre{color:var(--color-on-dark);background:var(--color-surface-dark)}.teacher-record__output pre{color:var(--color-body);background:var(--color-surface-subtle)}.teacher-record__activity span{color:var(--color-body);font-size:var(--text-caption);background:var(--color-surface-subtle)}@media (width<=1200px){.page-shell{width:min(100% - 40px, var(--content-width))}.dashboard,.course-management,.student-learning{padding-top:20px}.admin-card,.student-learning-main>.admin-card,.learning-panel,.teacher-dashboard__panel{border-radius:var(--radius-lg)}}@media (width<=1024px){.auth-layout{grid-template-columns:minmax(0,1fr) minmax(360px,.86fr);gap:42px}.course-workspace-grid,.course-editor-grid,.student-learning-layout,.teacher-dashboard__grid{grid-template-columns:1fr}.course-section-card{width:100%}.student-outline{max-height:none;position:static}.student-outline .course-item-list{scroll-snap-type:x proximity;padding-bottom:6px;display:flex;overflow-x:auto}.student-outline .course-item-list>li{scroll-snap-align:start;flex:none;min-width:min(300px,82vw)}.teacher-dashboard__filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=780px){.page-shell{width:min(100% - 32px, var(--content-width))}.auth-layout,.admin-grid,.edit-form,.course-card-grid{grid-template-columns:1fr}.auth-layout{gap:32px;min-height:auto;padding:44px 0}.auth-intro{max-width:620px}.auth-intro h1{max-width:13em;font-size:var(--text-title-2)}.auth-card{justify-self:start;max-width:35rem}.dashboard{padding-top:36px}.dashboard-heading,.course-heading,.course-unit-heading{flex-direction:column;align-items:flex-start}.dashboard-heading>.secondary-button,.student-learning-heading>.secondary-button{width:auto}.course-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.course-editor-grid textarea,.course-plain-preview pre{min-height:320px}.teacher-dashboard__filters,.teacher-dashboard__summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.admin-section-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-dashboard__summary,.teacher-dashboard__filters,.course-card-grid,.course-metrics{grid-template-columns:1fr}}@media (width<=520px){.page-shell{width:min(100% - 24px, var(--content-width))}.topbar{flex-wrap:wrap;gap:10px;min-height:68px;padding:11px 0}.brand-mark{width:40px;height:40px}.brand>div>span,.environment-badge{display:none}.system-pill{min-height:32px;font-size:var(--text-micro)}.auth-layout{padding:34px 0}.auth-intro>p:not(.eyebrow){font-size:var(--text-body)}.trust-note{margin-top:24px}.auth-card,.admin-card,.center-card{border-radius:var(--radius-lg);padding:20px}.center-card{margin:48px auto}.dashboard-heading,.table-heading,.student-learning-heading,.student-ai-card .table-heading,.student-conversation .table-heading,.student-review-notice,.teacher-dashboard__toolbar,.teacher-dashboard__export,.teacher-record__heading{flex-direction:column;align-items:flex-start}.dashboard-heading{gap:18px}.dashboard-heading h1,.student-learning-heading h1{font-size:var(--text-heading-xl)}.admin-section-tabs{grid-template-columns:repeat(3,minmax(108px,1fr));width:100%;display:grid}.admin-section-tabs button{min-width:0;padding-inline:10px}.inline-form{grid-template-columns:1fr}.inline-form .primary-button,.edit-form .primary-button{width:100%}.course-heading h2{font-size:var(--text-heading-xl)}.course-metrics{grid-template-columns:1fr}.course-editor-toolbar{grid-template-columns:1fr;display:grid}.course-editor-toolbar .course-fit-button{width:100%}.course-unit-meta{flex-direction:column;align-items:stretch;gap:0}.student-learning{padding-top:30px}.student-course-list .course-card-grid{grid-template-columns:1fr}.student-outline .course-item-list{grid-template-columns:1fr;display:grid;overflow:visible}.student-outline .course-item-list>li{min-width:0}.student-outline .course-item-list button,.course-item-list button,.course-inline-confirm button,.course-item-actions button,.course-back-button{min-height:var(--control-height)}.student-ai-card strong[role=status]{align-self:flex-start}.student-message{width:96%}.student-learning .row-actions{grid-template-columns:1fr;display:grid}.student-learning .row-actions button,.student-review-notice button,.student-learning .row-actions .primary-button,.student-answer-form .primary-button{width:100%}.teacher-dashboard__filters,.teacher-dashboard__summary{grid-template-columns:1fr}.teacher-dashboard__export-actions{flex-direction:column;align-items:stretch;width:100%}.teacher-dashboard__export-actions .primary-button,.teacher-dashboard__export-actions .secondary-button{width:100%}.teacher-record{border:0;border-radius:0;padding:18px;inset:0}.teacher-record__heading{margin:-18px -18px 20px;padding:16px 18px;top:-18px}.teacher-record__heading .secondary-button{width:100%}}@media (width<=420px){.page-shell{width:min(100% - 20px, var(--content-width))}.auth-intro h1{font-size:2rem}.auth-card,.admin-card,.center-card,.student-learning-main>.admin-card,.student-outline,.student-course-list,.student-history,.student-course-card{padding:16px}.admin-section-tabs{display:flex}.student-message{width:100%;padding:13px}}@media (prefers-reduced-motion:reduce){*,:before,:after,::backdrop{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.course-directory-row p,.student-course-card p,.directory-list span,.student-course-nav li,.student-learning-unit-heading>span,.student-learning-unit-heading>small,.student-ai-key-state,.student-workspace-heading>p,.student-workspace-progress{line-height:1.55}:where(.admin-card,.center-card,.learning-panel,.teacher-dashboard__panel,.teacher-dashboard__export,.student-course-card,.student-outline,.student-knowledge-card){border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--surface-material);box-shadow:var(--shadow-xs)}.plain-section,:where(.plain-section){padding-block:clamp(16px,2vw,30px)}button,input,select,textarea{font-family:inherit}h1,h2,h3,h4,h5{color:var(--color-ink);margin:0;line-height:1.22}h1{font-family:var(--font-display);letter-spacing:0;font-weight:400;font-size:var(--text-title-2);line-height:1.14}h2{font-family:var(--font-ui);font-size:var(--text-section-title);font-weight:600}h3{font-family:var(--font-ui);font-size:var(--text-heading-md);letter-spacing:0;line-height:1.35}h4,h5,h6{font-family:var(--font-ui)}h4{font-size:var(--text-prose-body)}p{color:var(--color-body);line-height:var(--line-reading);margin:0}.page-header h1,.dashboard-heading h1,.course-management h2,.student-learning h2{letter-spacing:0}.page-header h1{font-size:var(--text-title-2)}.skip-link{min-height:44px;padding:.625rem .875rem}.primary-button,.secondary-button{gap:8px}label{font-family:var(--font-ui);font-size:var(--text-ui);color:var(--color-body);line-height:1.35}form label,.file-field{color:var(--color-body);font-size:var(--text-ui);margin-bottom:12px;font-weight:600}.field-help{color:var(--color-text-muted);font-size:var(--text-ui-small);margin-top:6px;line-height:1.5}@keyframes ui-surface-enter{0%{opacity:0}to{opacity:1}}@keyframes ui-dialog-enter{0%{transform:scale(.97)}to{opacity:1;transform:none}}@supports (animation-timing-function:linear(0, 1)){:root{--ease-spring-fast:linear(0, .0902, .2644, .4424, .5943, .7131, .8013, .8645, .9089, .9394, .9601, .9739, .9831, .9892, .9932, .9958, .9975, .9986, .9993, .9997, 1);--ease-spring-moderate:var(--ease-spring-fast);--ease-spring-slow:linear(0, .0955, .2909, .4983, .6761, .8106, .903, .9609, .9935, 1.0093, 1.0149, 1.0149, 1.0124, 1.0093, 1.0063, 1.004, 1.0023, 1.0012, 1.0005, 1.0001, 1)}}@keyframes ui-drawer-enter{0%{transform:translate(24px)}to{opacity:1;transform:none}}@keyframes ui-popover-enter{0%{opacity:0;transform:translateY(var(--popover-enter-offset,4px))}to{opacity:1;transform:none}}.ui-dialog-layer{z-index:100;padding:var(--space-4);place-items:center;display:grid;position:fixed;inset:0}.ui-dialog-backdrop{background:var(--color-overlay);width:100%;height:100%;animation:ui-surface-enter var(--motion-slow) var(--ease-standard);border:0;border-radius:0;position:absolute;inset:0}.ui-dialog{width:min(100%,520px);max-height:min(760px,100dvh - 32px);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-dialog);color:var(--color-body);background:var(--surface-material);box-shadow:var(--shadow-overlay);position:relative;overflow:auto}.ui-dialog__heading{gap:var(--space-4);grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.ui-dialog__heading h2{margin:0;font-size:21px;font-weight:680}.ui-dialog__signal{border-radius:var(--radius-card);place-items:center;width:44px;height:44px;display:grid}.ui-dialog__signal--danger{color:var(--color-error-text);background:var(--color-error-bg)}.ui-dialog__signal--primary{color:var(--color-info-text);background:var(--color-info-bg)}.ui-dialog__content{gap:var(--space-3);margin-top:var(--space-2);display:grid}.ui-dialog__content p{color:var(--color-text-muted);line-height:var(--line-ui);margin:0}.ui-dialog__content label{margin:var(--space-1) 0 0}.ui-dialog__actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle);flex-wrap:wrap;display:flex}.ui-dialog :is(.primary-button,.secondary-button,.danger-button){justify-content:center;align-items:center;display:inline-flex}@media (width<=560px){.ui-dialog{padding:var(--space-5)}.ui-dialog__heading{gap:var(--space-3);grid-template-columns:44px minmax(0,1fr)}.ui-dialog__actions>*{flex:120px}}.danger-button{cursor:pointer;justify-content:center;align-items:center;gap:8px;display:inline-flex}.danger-button:disabled{opacity:.5;cursor:not-allowed}.ui-empty{border-style:solid;min-height:auto;padding:24px}.ui-file-picker{gap:12px;margin-block:24px;display:grid}.ui-file-picker__control{align-items:center;gap:12px;min-width:0;display:flex;position:relative}.ui-file-picker__control>span:last-of-type{overflow-wrap:anywhere;color:var(--color-text-muted);font-weight:400}.ui-file-picker input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.ui-file-picker__control:focus-within{outline:2px solid var(--color-brand);outline-offset:4px;border-radius:var(--radius-control)}.ui-file-picker:has(input:disabled){opacity:.5}.ui-toggle-group{grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:8px;display:grid}label.ui-choice.ui-choice{min-width:0;min-height:var(--button-height);border:1px solid var(--color-control-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink);text-align:left;cursor:pointer;box-shadow:none;transition:background-color var(--motion-normal) var(--ease-standard), border-color var(--motion-normal) var(--ease-standard), color var(--motion-normal) var(--ease-standard);align-items:center;gap:12px;margin:0;padding:6px 18px;font-size:14px;font-weight:500;line-height:1.4;display:flex;position:relative}label.ui-choice:has(input[type=radio]){justify-content:space-between}@media (any-pointer:coarse){label.ui-choice.ui-choice{min-height:var(--control-height)}}label.ui-choice.ui-choice input{appearance:none;opacity:1;border:1px solid var(--color-control-border);background:var(--color-surface);width:18px;height:18px;min-height:18px;color:inherit;box-shadow:none;cursor:inherit;transition:background-color var(--motion-normal) var(--ease-standard), border-color var(--motion-normal) var(--ease-standard);border-radius:4px;flex:0 0 18px;margin:0;padding:0;position:relative}label.ui-choice input[type=checkbox]:checked{background:var(--color-brand);border-color:var(--color-brand);color:var(--color-on-dark)}label.ui-choice input[type=checkbox]:after{content:"";transform-origin:50%;opacity:0;width:6px;height:11px;transition:opacity var(--motion-fast-exit) var(--ease-exit), transform var(--motion-fast-exit) var(--ease-exit);border:2px solid;border-width:0 2px 2px 0;margin:0 5px;display:block;transform:rotate(45deg)scale(.75)}label.ui-choice input[type=checkbox]:checked:after{opacity:1;transition-duration:var(--motion-fast);transition-timing-function:var(--ease-standard);transform:rotate(45deg)scale(1)}label.ui-choice input[type=radio]{border:1px solid var(--color-control-border);border-radius:50%;order:2}label.ui-choice input[type=radio]:checked{border-color:var(--color-brand)}label.ui-choice input[type=radio]:after{content:"";background:var(--color-brand);opacity:0;transition:opacity var(--motion-fast-exit) var(--ease-exit), transform var(--motion-fast-exit) var(--ease-exit);border-radius:50%;position:absolute;inset:4px;transform:scale(.55)}label.ui-choice input[type=radio]:checked:after{opacity:1;transition-duration:var(--motion-fast);transition-timing-function:var(--ease-standard);transform:scale(1)}label.ui-choice.ui-choice:has(input:checked){background:var(--color-brand-soft);color:var(--color-ink);box-shadow:none}label.ui-choice:has(input[type=radio]:checked){border-color:var(--color-brand)}label.ui-choice:has(input[type=checkbox]):is(:hover,:focus-within):not(:has(input:disabled,input:checked)){background:var(--color-control-hover);color:var(--color-ink);border-color:var(--color-control-border)}label.ui-choice:has(input[type=radio]):hover:not(:has(input:disabled)){border-color:var(--color-brand)}:is(label.ui-choice:has(input:focus-visible),label.ui-switch:has(input:focus-visible)){outline:2px solid var(--color-focus);outline-offset:3px}label.ui-choice input:focus-visible,label.ui-switch input:focus-visible{box-shadow:none;outline:none}label.ui-choice.ui-choice:has(input:disabled){opacity:1;color:var(--color-text-disabled);background:var(--color-surface-disabled);cursor:not-allowed;transition:none}label.ui-switch:has(input:disabled){opacity:1;color:var(--color-text-disabled);background:var(--color-surface-disabled);cursor:not-allowed;transition:none}label.ui-choice>span{overflow-wrap:anywhere;min-width:0}label.ui-choice strong{font-weight:500}label.ui-choice small{color:var(--color-text-muted);font-weight:400}label.ui-choice:has(input[type=checkbox]):is(:hover,:focus-within):not(:has(input:disabled,input:checked)) small{color:inherit}label.ui-switch{border-radius:var(--radius-pill);min-height:44px;color:var(--color-ink);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard);align-items:center;gap:10px;padding:4px 8px;font-size:14px;font-weight:500;display:inline-flex}label.ui-switch:hover:not(:has(input:disabled)){background:var(--color-control-hover)}label.ui-switch input{appearance:none;border-radius:var(--radius-pill);background:var(--color-control-border);width:38px;height:22px;min-height:22px;cursor:inherit;transition:background-color var(--motion-normal) var(--ease-standard);border:0;flex:0 0 38px;margin:0;padding:0;position:relative}label.ui-switch input:after{content:"";background:var(--color-surface);width:16px;height:16px;transition:transform var(--motion-normal) var(--ease-standard);border-radius:50%;position:absolute;top:3px;left:3px}label.ui-switch input:checked{background:var(--color-brand)}label.ui-switch input:checked:after{transform:translate(16px)}label.ui-choice input:disabled,label.ui-choice input:disabled:after,label.ui-switch input:disabled,label.ui-switch input:disabled:after{transition:none}@media (prefers-reduced-motion:reduce){label.ui-choice,label.ui-choice input,label.ui-choice.ui-choice input:after,label.ui-switch,label.ui-switch input,label.ui-switch input:after{transition:none}}.classroom-preparation-dialog__choices>.ui-choice+.ui-choice{margin-top:8px}.ui-workbench.ui-workbench{border-radius:var(--radius-dialog);background:var(--surface-material);padding:0;overflow:hidden}.ui-workbench:not(dialog),dialog.ui-workbench[open]{animation:ui-dialog-enter var(--motion-slow) var(--ease-spring-slow);flex-direction:column;display:flex}dialog.ui-workbench.management-dialog--drawer[open]{animation:ui-drawer-enter var(--motion-normal) var(--ease-spring-moderate)}dialog.ui-workbench[open]::backdrop{animation:ui-surface-enter var(--motion-slow) var(--ease-standard)}.ui-workbench .ui-workbench__header{background:0 0;border-bottom:0;flex:none;margin:0;padding:24px 24px 0}.ui-workbench .ui-workbench__header h2{font-size:21px;font-weight:600;line-height:1.4}.ui-workbench .ui-workbench__body{overscroll-behavior:contain;background:0 0;min-height:0;padding:20px 24px 24px;overflow-y:auto}.ui-workbench .ui-workbench__footer{border-top:1px solid var(--color-border-subtle);background:0 0;flex:none;margin:0;padding:16px 24px 20px}.ui-workbench .ui-dialog__content{margin:0}@media (width<=640px){.ui-workbench .ui-workbench__header,.ui-workbench .ui-workbench__body,.ui-workbench .ui-workbench__footer{padding-left:20px;padding-right:20px}.ui-workbench.classroom-preparation-dialog{border-radius:0}}.app-shell{background:var(--color-canvas);min-width:0;min-height:100dvh}.course-status--editing{color:var(--color-warning-text);background:var(--color-warning-bg)}.course-status--open{color:var(--color-success-text);background:var(--color-success-bg)}.course-directory-row h2{font-size:var(--text-prose-body);margin:0}.unit-identity-fields{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;margin-bottom:22px;display:grid}.unit-identity-fields h2{grid-column:1/-1}.course-unit-directory,.markdown-authoring{margin-bottom:22px}.section-heading-row,.course-header-actions,.course-open-panel,.unit-neighbor-navigation{justify-content:space-between;align-items:center;gap:14px;display:flex}.section-heading-row h2,.course-open-panel h2,.markdown-authoring h2{margin:0 0 6px}.course-unit-list{border-top:0;margin:16px 0 0;padding:0;list-style:none}.course-unit-list>li{border-bottom:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.course-unit-list__item{width:100%;color:var(--color-body);text-align:left;background:0 0;border:0;grid-template-columns:100px minmax(180px,1fr) minmax(190px,auto) auto;align-items:center;gap:16px;padding:16px 4px;display:grid}.course-unit-open-button{white-space:nowrap;margin:0 12px}.course-unit-list__item:hover{background:var(--color-surface-subtle)}.lesson-number,.lesson-input{white-space:nowrap}.lesson-input{grid-template-columns:auto minmax(80px,1fr) auto;align-items:center;gap:8px;display:grid}.lesson-input input{text-align:center}.course-editor-gate,.course-warning-panel,.course-open-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-subtle);margin:0 0 20px;padding:18px}.course-warning-panel{border-color:var(--color-error-border);background:var(--color-error-bg)}.course-confirm-layer{z-index:90;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.course-confirm-backdrop{background:var(--color-overlay);border:0;border-radius:0;width:100%;height:100%;position:absolute;inset:0}.course-warning-dialog{z-index:1;border:1px solid var(--color-border);border-radius:var(--radius-container);background:var(--surface-material);width:min(520px,100%);max-height:min(720px,100vh - 48px);box-shadow:var(--shadow-overlay);padding:24px;position:relative;overflow:auto}.course-warning-dialog h2{margin-top:0}.course-warning-dialog label{gap:7px;margin-top:18px;display:grid}.course-warning-dialog .course-header-actions{border-top:1px solid var(--color-border-subtle);justify-content:flex-end;margin-top:24px;padding-top:16px}.course-warning-panel h2{margin-top:0}.course-warning-panel label{gap:7px;margin-top:14px;display:grid}.markdown-authoring>textarea{resize:vertical;width:100%;min-height:520px;font-family:var(--font-mono);font-size:var(--text-ui);tab-size:2;margin-top:14px;padding:16px;line-height:1.65}.markdown-preview{overflow-wrap:anywhere;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--surface-material);min-height:360px;margin-top:14px;padding:22px}.structured-unit-editor{gap:8px;margin-top:18px;display:grid}.knowledge-point-editor-list{gap:16px;display:grid}.knowledge-point-editor-list>.section-heading-row{padding-bottom:4px}.knowledge-point-editor-list h3,.knowledge-point-editor-list p{margin:0}.knowledge-point-editor-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--surface-material);gap:18px;padding:20px;display:grid}.knowledge-point-editor-card>header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;display:flex}.knowledge-point-editor-card>header>div:first-child{gap:4px;display:grid}.knowledge-point-editor-card>label,.knowledge-point-exercises{gap:8px;display:grid}.knowledge-point-editor-card textarea{resize:vertical}.knowledge-point-exercises{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);padding:16px}.knowledge-point-exercises .section-heading-row small{margin-top:4px;display:block}.exercise-reference-editor{grid-template-columns:minmax(110px,.22fr) minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.exercise-reference-editor select,.exercise-reference-editor button{min-height:44px}.course-structure-guidance{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.course-structure-guidance>section{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-subtle);padding:16px}.course-structure-guidance h3{margin:0 0 8px}.course-structure-guidance code{white-space:pre-wrap;border-radius:var(--radius-md);background:var(--color-surface);margin-top:12px;padding:10px;display:block}.checkbox-line{align-items:center;gap:8px;display:flex!important}.checkbox-line input{width:auto}.unit-neighbor-navigation{margin-top:20px}.unit-neighbor-navigation>div{gap:10px;display:flex}@media (width<=840px){.unit-identity-fields,.course-structure-guidance{grid-template-columns:1fr}.course-unit-list__item{grid-template-columns:1fr;gap:6px}.course-unit-list>li{grid-template-columns:1fr}.course-unit-open-button{justify-self:start;margin:0 4px 14px}.section-heading-row,.course-open-panel,.unit-neighbor-navigation,.knowledge-point-editor-card>header,.knowledge-point-editor-card .section-heading-row{flex-direction:column;align-items:stretch}.exercise-reference-editor{grid-template-columns:1fr}}.app-sidebar{z-index:30;border-right:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;width:264px;padding:20px 16px 16px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.app-shell__body{min-width:0;min-height:100dvh;margin-left:264px}.app-content{width:min(100% - 64px,1440px);margin:0 auto;padding:36px 0 64px}.app-shell-brand{align-items:center;gap:11px;min-height:48px;margin:0 6px 28px;display:flex}.app-shell-brand .brand-mark{flex:none;width:38px;height:38px}.app-shell-brand>div{min-width:0;display:grid}.app-shell-brand strong{color:var(--color-ink);font-size:var(--text-ui);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-shell-brand span:last-child{color:var(--color-text-muted);font-size:var(--text-micro)}.sidebar-nav{gap:12px;display:grid}.sidebar-nav__group,.sidebar-nav__group ul,.student-course-nav ol{margin:0;padding:0;list-style:none}.sidebar-nav__label,.sidebar-nav__parent{color:var(--color-text-muted);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;margin:0 10px 7px;font-weight:750;line-height:1.4}.sidebar-nav__parent{min-height:36px;color:var(--color-body);font-size:var(--text-ui);letter-spacing:0;text-transform:none;align-items:center;gap:10px;margin:0;padding:6px 12px 4px;display:flex}.sidebar-nav__group--nested ul{border-left:1px solid var(--color-border);margin-left:20px;padding-left:12px}.sidebar-nav__icon{flex:none;display:inline-flex}.sidebar-nav__link{border-radius:var(--radius-md);min-height:44px;color:var(--color-body);font-size:var(--text-ui);transition:color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);align-items:center;gap:10px;margin:2px 0;padding:9px 12px;font-weight:620;text-decoration:none;display:flex}.sidebar-nav__link-label{min-width:0}.sidebar-nav__link--secondary{font-size:var(--text-caption);font-weight:580}.sidebar-nav__group .fluid-hover{--fluid-hover-fill:var(--color-nav-hover);--fluid-hover-radius:var(--radius-card)}.sidebar-nav__link:hover{color:var(--color-ink)}.sidebar-nav__link.is-active{color:var(--color-brand-active);background:var(--color-nav-selected)}.app-sidebar__footer{gap:12px;margin-top:auto;padding-top:16px;display:grid}.app-sidebar__status,.app-sidebar__user{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:12px}.app-sidebar__status{border:0;padding:0 12px;display:grid}.app-sidebar__status>span,.app-sidebar__user span{color:var(--color-text-muted);font-size:var(--text-caption)}.app-sidebar__status .system-pill{background:0 0;justify-content:flex-start;min-height:32px;padding:0}.app-sidebar__user{gap:10px;display:grid}.app-sidebar__user>div{min-width:0;display:grid}.app-sidebar__user strong,.app-sidebar__user span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-sidebar__user .secondary-button{width:100%}.app-mobile-header,.mobile-nav-layer{display:none}.page-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:28px;padding-bottom:22px;display:flex}.page-header>div:first-child{min-width:0}.page-header .eyebrow{margin-bottom:7px}.page-header h1{font-size:var(--text-title-2);margin:0;line-height:1.12}.page-header>div:first-child>p:last-child{max-width:64ch;color:var(--color-text-muted);margin:9px 0 0}.page-header__actions{flex:none;align-items:center;gap:10px;display:flex}.student-management-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.breadcrumbs ol{color:var(--color-text-muted);font-size:var(--text-caption);flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.breadcrumbs li+li:before{color:var(--color-border-strong);content:"/";margin-right:6px}.breadcrumbs a{color:var(--color-link);text-decoration:none}.dashboard,.course-management,.student-learning{padding:0}.plain-section{border-top:1px solid var(--color-border);padding:24px 0}.page-header+.plain-section,.form-error+.plain-section{border-top:0}.section-heading-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.section-heading-row h2{font-size:var(--text-title-3);margin:0}.section-heading-row>span{color:var(--color-text-muted);font-size:var(--text-ui)}.student-filter-bar,.teacher-dashboard__filters{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-subtle);box-shadow:none;grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(150px,.8fr)) auto;align-items:end;gap:12px;margin-bottom:22px;padding:14px;display:grid}.student-filter-bar>span{color:var(--color-text-muted);font-size:var(--text-ui);white-space:nowrap;align-self:center}.roster-card,.class-create-section,.import-file-section,.preview-card,.course-section-card,.course-draft-card{box-shadow:none;background:0 0;padding-inline:0}.inline-edit-panel{border:1px solid var(--color-brand-decorative);border-radius:var(--radius-lg);background:var(--color-brand-soft);margin-bottom:20px;padding:18px}.directory-list,.course-directory-list,.student-course-rows{border-top:1px solid var(--color-border);margin:0;padding:0;list-style:none}.directory-list>li,.course-directory-row,.student-course-card{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:24px;padding:18px 4px;display:flex}.directory-list>li>div,.course-directory-row__content,.student-course-card__main{align-items:start;gap:4px;min-width:0;display:grid}.course-directory-row__content .course-status{justify-self:start;width:max-content}.directory-list span,.course-directory-row p,.student-course-card p{color:var(--color-text-muted);font-size:var(--text-ui);margin:0}.course-directory-row h3,.student-course-card h3{font-size:var(--text-prose-body);margin:0}.course-directory-row .course-metrics{min-width:min(430px,38vw);margin:0}.course-directory-row .course-metrics>div{border:0;border-left:1px solid var(--color-border);background:0 0;border-radius:0;padding:4px 16px}.student-course-card__action{flex:none;gap:10px;width:min(290px,34vw);display:grid}.student-next-step{font-weight:650;color:var(--color-brand)!important}.student-course-unit-outline{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);gap:8px;margin-top:14px;padding:12px;display:grid}.student-course-unit-outline__heading,.student-course-unit-outline li{justify-content:space-between;align-items:center;gap:12px;display:flex}.student-course-unit-outline__heading{color:var(--color-text-muted);font-size:var(--text-caption)}.student-course-unit-outline ol{gap:8px;margin:0;padding:0;list-style:none;display:grid}.student-course-unit-outline li+li{border-top:1px solid var(--color-border);padding-top:8px}.student-course-unit-outline li>div{min-width:0;display:grid}.student-course-unit-outline li span,.student-course-unit-outline li small{color:var(--color-text-muted);font-size:var(--text-caption)}.student-course-unit-outline li small{flex:none}.student-course-unit-outline__action{flex:none;align-items:center;gap:10px;display:flex}.empty-state{color:var(--color-text-muted);padding:28px 0}.import-steps{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:repeat(3,1fr);margin:0 0 24px;padding:0;list-style:none;display:grid}.import-steps li{min-height:58px;color:var(--color-text-muted);font-size:var(--text-ui);justify-content:center;align-items:center;gap:9px;font-weight:650;display:flex}.import-steps li+li{border-left:1px solid var(--color-border)}.import-steps li span{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);width:25px;height:25px;font-size:var(--text-caption);place-items:center;display:grid}.import-steps li.is-active{color:var(--color-brand-active)}.import-steps li.is-active span{color:var(--color-surface-raised);border-color:var(--color-brand-active);background:var(--color-brand)}.secondary-tabs{width:fit-content;max-width:100%;margin:-8px 0 18px;overflow-x:auto}.secondary-tabs>button{font-size:var(--text-ui);white-space:nowrap}.course-tab-panel{min-height:300px}.course-item-list>li{background:0 0;border-radius:0}.course-editor-toolbar{z-index:12;background:var(--color-canvas-glass);margin-inline:-8px;padding:12px 8px;top:0}.student-course-nav{border-top:1px solid var(--color-border);margin-top:24px;padding-top:20px}.student-course-nav>strong{font-size:var(--text-ui);margin:0 10px 10px;display:block}.student-course-nav .secondary-tabs,.student-outline>.secondary-tabs{grid-template-columns:1fr;width:100%;margin:16px 0 4px;display:grid}.student-course-nav .secondary-tabs button,.student-outline>.secondary-tabs button{text-align:left;justify-content:flex-start}.student-course-nav ol{gap:3px;display:grid}.student-course-nav__units>li{border-top:1px solid var(--color-border);margin-top:10px;padding-top:10px}.student-course-nav__unit-heading{gap:2px;padding:0 10px 5px;display:grid}.student-course-nav__unit-heading>span,.student-course-nav__unit-heading>small{color:var(--color-text-muted);font-size:var(--text-caption)}.student-course-nav__unit-heading>strong{color:var(--color-ink);font-size:var(--text-ui)}.student-course-nav__knowledge-points{border-left:1px solid var(--color-border);gap:2px!important;margin:3px 0 0 12px!important;padding-left:10px!important}.student-course-nav__knowledge-points>li{position:relative}.student-course-nav__knowledge-points>li:before{border-top:1px solid var(--color-border);content:"";width:8px;position:absolute;top:50%;left:-10px}.student-course-nav__knowledge-points button{min-height:var(--control-height);padding:7px 8px}.student-course-nav__knowledge-points button>span{color:var(--color-text-muted);font-size:var(--text-caption);font-weight:600}.student-course-nav__knowledge-points button[aria-current=page]>span{color:inherit}.student-course-nav button{border-radius:var(--radius-md);width:100%;min-height:48px;color:var(--color-body);text-align:left;transition:color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);background:0 0;border:0;padding:8px 10px;display:grid}.student-course-nav button:is(:focus-visible,:disabled,:active){transition:none}.student-course-nav button[aria-current=page]{color:var(--color-brand-active);background:var(--color-brand-soft)}.student-course-nav button small{color:var(--color-text-muted)}.student-learning-unit-list{gap:18px;margin:20px 0 0;padding:0;list-style:none;display:grid}.student-learning-unit-heading{border-bottom:1px solid var(--color-border);gap:2px;padding-bottom:9px;display:grid}.student-learning-unit-heading>span,.student-learning-unit-heading>small{color:var(--color-text-muted);font-size:var(--text-caption)}.student-learning-unit-heading>strong{color:var(--color-ink);font-size:var(--text-ui)}.student-outline .student-learning-unit-list .course-item-list{grid-template-columns:1fr;margin-top:8px;display:grid}.student-learning-layout{display:block}.student-learning-layout.has-local-outline{grid-template-columns:minmax(240px,280px) minmax(0,1fr);gap:24px;display:grid}.student-learning-main{gap:0;max-width:1040px;display:grid}.student-learning-main>.secondary-tabs{margin-bottom:0}.learning-panel{min-width:0;padding:30px 0}.student-ai-settings{background:0 0;border:0;border-radius:0}.student-ai-settings .table-heading{border-bottom:1px solid var(--color-border);min-height:44px;padding-bottom:18px}.student-ai-settings h2{font-size:var(--text-title-2);margin:0}.student-ai-key-state{color:var(--color-text-muted);font-size:var(--text-caption);margin:2px 0 0}.student-ai-settings form{max-width:720px}.student-ai-configuration-field{gap:8px;min-width:0;display:grid}.student-ai-configuration-field>select,.student-ai-configuration-field>.field-help{min-width:0}.student-ai-configuration-field>.field-help{margin:0}.student-ai-settings-card{width:min(760px,100%)}.student-ai-provider-note{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.student-ai-provider-note span{color:var(--color-text-muted);font-size:var(--text-caption)}.student-ai-status{color:var(--color-text-muted);font-size:var(--text-caption);font-weight:650}.student-knowledge-card>section{padding:18px 0}.teacher-dashboard__toolbar{justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:0;display:flex}.teacher-dashboard__toolbar>div:first-child{align-items:baseline;gap:10px;display:flex}.teacher-dashboard__summary{border-block:1px solid var(--color-border);background:0 0;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;display:grid}.teacher-dashboard__grid{grid-template-columns:minmax(0,3fr) minmax(260px,1fr)}.teacher-dashboard__panel,.teacher-dashboard__export{border-radius:var(--radius-lg);box-shadow:none}.mobile-nav-layer{transition:display var(--motion-normal-exit) allow-discrete}.mobile-nav-layer[hidden]{pointer-events:none;display:none}.mobile-nav-backdrop{z-index:60;background:var(--color-overlay);opacity:1;width:100%;height:100%;transition:opacity var(--motion-normal) var(--ease-standard);border:0;border-radius:0;position:fixed;inset:0}.mobile-nav-drawer{z-index:61;background:var(--color-surface-subtle);width:min(340px,100vw - 40px);box-shadow:var(--shadow-overlay);opacity:1;transition:opacity var(--motion-normal) var(--ease-standard), transform var(--motion-normal) var(--ease-spring-moderate);flex-direction:column;padding:16px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:none}.mobile-nav-layer[hidden] .mobile-nav-backdrop,.mobile-nav-layer[hidden] .mobile-nav-drawer{opacity:0;transition-duration:var(--motion-normal-exit);transition-timing-function:var(--ease-exit)}.mobile-nav-layer[hidden] .mobile-nav-drawer{transform:translate(-24px)}@starting-style{.mobile-nav-layer:not([hidden]) .mobile-nav-backdrop,.mobile-nav-layer:not([hidden]) .mobile-nav-drawer{opacity:0}.mobile-nav-layer:not([hidden]) .mobile-nav-drawer{transform:translate(-24px)}}.mobile-nav-drawer:has(:focus-visible){opacity:1;transition:none;transform:none}.mobile-nav-drawer__heading{justify-content:space-between;align-items:center;min-height:48px;margin-bottom:12px;display:flex}.mobile-nav-drawer__heading button,.app-mobile-header>button{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);min-height:44px;color:var(--color-ink);background:var(--color-surface);padding:8px 12px}@media (width<=1200px){.teacher-dashboard__summary{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-dashboard__summary article:nth-child(3){border-right:0}.teacher-dashboard__summary article:nth-child(n+4){border-top:1px solid var(--color-border)}.course-directory-row .course-metrics{min-width:340px}}@media (width<=1024px){.app-sidebar{display:none}.app-shell__body{margin-left:0}.app-mobile-header{z-index:20;border-bottom:1px solid var(--color-border);background:var(--color-canvas-glass);justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding:8px 24px;display:flex;position:sticky;top:0}.app-mobile-header .app-shell-brand{margin:0}.app-mobile-header .brand-mark,.app-mobile-header .app-shell-brand span:last-child{display:none}.mobile-nav-layer{display:block}.mobile-nav-drawer .app-shell-brand{display:none}.app-content{width:min(100% - 48px,1440px);padding-top:30px}.teacher-dashboard__grid{grid-template-columns:1fr}}@media (width<=780px){.app-content{width:min(100% - 32px,1440px);padding-top:24px}.page-header{flex-direction:column;align-items:flex-start;margin-bottom:22px}.page-header__actions,.page-header__actions>:only-child{width:100%}.student-management-actions>*{flex:140px}.student-filter-bar,.teacher-dashboard__filters{grid-template-columns:repeat(2,minmax(0,1fr))}.student-filter-bar>span{grid-column:1/-1}.course-directory-row,.student-course-card{flex-direction:column;align-items:stretch}.course-directory-row .course-metrics,.student-course-card__action{width:100%;min-width:0}.student-learning-layout.has-local-outline{display:block}.teacher-dashboard__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-dashboard__summary article,.teacher-dashboard__summary article:nth-child(3){border-right:1px solid var(--color-border)}.teacher-dashboard__summary article:nth-child(2n){border-right:0}.teacher-dashboard__summary article:nth-child(n+3){border-top:1px solid var(--color-border)}}@media (width<=520px){.app-mobile-header{padding-inline:14px}.app-content{width:min(100% - 24px,1440px)}.page-header h1{font-size:2rem}.breadcrumbs li{align-items:center;min-height:44px;display:flex}.breadcrumbs a{align-items:center;min-height:44px;display:inline-flex}.student-management-actions>*{flex-basis:100%}.student-filter-bar,.teacher-dashboard__filters,.teacher-dashboard__summary{grid-template-columns:1fr}.teacher-dashboard__summary article,.teacher-dashboard__summary article:nth-child(3),.teacher-dashboard__summary article:nth-child(2n){border-right:0}.teacher-dashboard__summary article:nth-child(n+2){border-top:1px solid var(--color-border)}.import-steps li{text-align:center;flex-direction:column;gap:3px}.student-course-card__action .primary-button,.course-directory-row>.secondary-button{width:100%}.course-directory-row .course-metrics>div{border-left:0;border-top:1px solid var(--color-border);padding:10px 0}.course-directory-row .course-metrics>div:first-child{border-top:0}.learning-panel{padding-block:24px}}.app-content--learning-workspace{width:100%;height:100dvh;padding:0;overflow:hidden}.student-learning--workspace,.student-learning--workspace .student-learning-layout{height:100%;min-height:0}.student-courses-page{width:min(1120px,100%);margin-inline:auto}.student-course-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:0;list-style:none;display:grid}.student-course-summary-card{text-align:left;width:100%;min-height:260px;color:var(--color-ink);background:var(--surface-material);border:1px solid var(--color-border);border-radius:var(--radius-container);box-shadow:var(--shadow-xs);padding:1.5rem;display:grid}.student-course-summary-card:hover{border-color:var(--color-brand-decorative);background:var(--surface-material)}.student-course-summary-card h3{font-family:var(--font-display);font-size:var(--text-heading-compact);margin:1rem 0 .45rem}.student-course-summary-card p{color:var(--color-text-muted);margin:0;line-height:1.7}.course-state-badge{color:var(--color-text-muted);background:var(--color-surface-subtle);border-radius:var(--radius-pill);font-size:var(--text-caption);justify-self:start;padding:.28rem .65rem;font-weight:700}.course-state-badge--in_progress{color:var(--color-brand-active);background:var(--color-brand-soft)}.course-state-badge--completed{color:var(--color-success-text);background:var(--color-success-bg)}.student-course-summary-meta{color:var(--color-text-muted);justify-content:space-between;align-items:end;margin-top:1.25rem;display:flex}.student-course-summary-card progress,.student-course-progress-card progress,.student-unit-progress progress{width:100%;height:7px;accent-color:var(--color-brand-active);background:var(--color-surface-strong);border-radius:var(--radius-pill);border:0;overflow:hidden}.student-course-summary-link{color:var(--color-brand-active);align-self:end;margin-top:1rem;font-weight:700}.student-course-progress-card{background:var(--surface-material);border:1px solid var(--color-border);border-radius:var(--radius-card);gap:.7rem;margin:1.25rem 0 2.5rem;padding:1.3rem 1.5rem;display:grid}.student-course-progress-card>div{justify-content:space-between;display:flex}.student-course-progress-card small{color:var(--color-text-muted)}@media (width<=700px){.student-course-summary-grid{grid-template-columns:1fr}}.student-learning--workspace .student-learning-layout.has-local-outline{grid-template-columns:minmax(240px,280px) minmax(0,1fr);gap:0}.student-learning--workspace .student-outline{border-right:1px solid var(--color-border);height:100%;max-height:none;box-shadow:none;border-radius:0;padding:22px 18px;top:0;overflow-y:auto}.student-learning--workspace .student-learning-main{background:var(--color-canvas);flex-direction:column;gap:0;width:100%;max-width:none;height:100%;min-height:0;display:flex;overflow:hidden}.app-shell .app-sidebar{border-right-color:var(--color-border);background:var(--color-surface-subtle)}.app-shell .app-shell__body{background:var(--color-canvas);background-image:var(--canvas-texture);background-repeat:no-repeat,no-repeat,repeat;background-size:100% 100%,100% 100%,240px 240px}.app-shell .sidebar-nav__link{border-radius:var(--radius-card);position:relative}.app-shell .sidebar-nav__link:hover{color:var(--color-ink)}.app-shell .sidebar-nav__link.is-active{color:var(--color-brand-active);background:var(--color-nav-selected);box-shadow:none}.app-shell .app-sidebar__status,.app-shell .app-sidebar__user{border-color:var(--color-border);background:0 0}.student-unit-progress progress{appearance:none;background:var(--color-surface-strong)}.student-unit-progress progress::-webkit-progress-bar{background:var(--color-surface-strong);border-radius:var(--radius-pill)}.student-unit-progress progress::-webkit-progress-value{background:var(--color-brand);border-radius:var(--radius-pill)}.student-unit-progress progress::-moz-progress-bar{background:var(--color-brand);border-radius:var(--radius-pill)}.ai-mock-notice{gap:var(--space-2);padding:var(--space-3) var(--space-4);color:var(--color-warning-text);background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0;font-size:14px;line-height:1.5;display:flex}.page-shell .topbar:has(>.ai-mock-notice){flex-wrap:wrap}.page-shell .topbar>.ai-mock-notice{flex-basis:100%}.app-shell--learning-workspace .app-shell__body:has(>.ai-mock-notice){flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.app-shell--learning-workspace .app-shell__body:has(>.ai-mock-notice)>.app-content{flex:1;height:auto;min-height:0}.page-shell{isolation:isolate;width:min(100%,1586px);min-height:100dvh;padding-inline:clamp(24px,3.1vw,49px);position:relative}.page-shell:before{z-index:-1;pointer-events:none;background:var(--color-canvas);content:"";position:fixed;inset:0}.topbar{background:0 0;border:0;justify-content:flex-end;min-height:0;padding-block:20px;position:absolute;inset:0 0 auto}.topbar:after{display:none}.topbar-actions{margin-left:auto}.environment-badge,.system-pill{background:0 0;min-height:42px;padding-inline:16px}.system-pill{border-color:#0000}.auth-layout{grid-template-columns:minmax(0,1fr);align-items:start;width:min(100%,520px);min-height:100dvh;margin-inline:auto;padding:clamp(88px,18vh,180px) 0 40px}.auth-card{border-color:var(--color-border-strong);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-surface) 96%, transparent);width:100%;max-width:520px;box-shadow:none;justify-self:center;padding:clamp(26px,2.5vw,32px)}.auth-card form label{margin-bottom:16px}.auth-card input{border-color:var(--color-control-border);min-height:50px}.auth-panel form{flex-direction:column;display:flex}.auth-card form>.primary-button{margin-top:var(--space-2)}.app-shell{background:var(--color-canvas)}.app-sidebar{border-right-color:var(--color-border-subtle);background:var(--color-surface);width:264px;box-shadow:none;padding:22px 20px 18px}.app-sidebar:before,.app-sidebar:after{display:none}.app-shell__body{margin-left:264px}.app-shell:not(.app-shell--student) .app-content{width:min(100% - 58px,1320px);padding-top:20px}.app-content{width:min(100% - 72px,1320px);padding:28px 0 64px}.app-content.app-content--learning-workspace{width:100%;max-width:none;height:100dvh;margin:0;padding:0;overflow:hidden}.app-shell-brand{border-bottom:1px solid var(--color-border-subtle);margin:0 8px 20px;padding-bottom:16px}.app-shell-brand:after{display:none}.sidebar-nav__group{gap:7px}.sidebar-nav__label,.sidebar-nav__parent{color:var(--color-text-muted);letter-spacing:.015em;margin-top:6px}.sidebar-nav__parent{color:var(--color-body);letter-spacing:0;margin:0}.sidebar-nav__link{border-radius:var(--radius-control);min-height:44px;transition:color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);border:0;padding-inline:14px;position:relative}.sidebar-nav__link--secondary{min-height:44px;padding-inline:12px}.sidebar-nav__link:hover,.sidebar-nav__link:focus-visible{transform:none}.sidebar-nav__link.is-active{color:var(--color-brand-active);background:var(--color-nav-selected);box-shadow:none;border:0}.sidebar-nav__link.is-active:before{border-radius:var(--radius-control);background:var(--color-brand);content:"";width:2px;position:absolute;inset:8px auto 8px 0}.app-sidebar__footer,.app-sidebar__status,.app-sidebar__user{border-radius:var(--radius-control);box-shadow:none;background:0 0}.app-sidebar__footer{border:0}.app-sidebar__user{border-color:var(--color-border-subtle);background:var(--color-surface)}.app-sidebar__status .system-pill{color:var(--color-success-text);background:0 0;border-color:#0000}.page-header{border:0;border-bottom:1px solid var(--color-border);min-height:156px;box-shadow:none;background:0 0;border-radius:0;margin:0;padding:6px 0 19px}.page-header h1{font-size:var(--text-display-admin);margin-top:8px;font-weight:500;line-height:1.06}.page-header>div:first-child>p:last-child{margin-top:12px;font-size:1rem}.page-header+.teacher-dashboard{margin-top:0}.page-header:has(+.teacher-dashboard){min-height:auto;padding:0 0 12px}.page-header:has(+.teacher-dashboard) h1{font-size:var(--text-display-course);margin-top:4px}.teacher-dashboard{gap:18px;min-width:0}.teacher-dashboard__toolbar,.teacher-dashboard__filters,.teacher-dashboard__summary,.teacher-dashboard__grid,.teacher-dashboard__panel,.teacher-dashboard__export{min-width:0;max-width:100%}.teacher-dashboard__toolbar{justify-content:flex-end;min-height:32px;padding:0}.teacher-dashboard__filters-shell{min-width:0}.teacher-dashboard__filters-shell>summary{display:none}.teacher-dashboard__live{width:fit-content;min-height:32px;color:var(--color-text-muted);background:0 0;border:0;padding:0}.teacher-dashboard__live--connected{color:var(--color-success-text)}.teacher-dashboard__live--reconnecting{color:var(--color-warning-text)}.teacher-dashboard__filters{border:1px solid var(--color-border);border-radius:var(--radius-container);background:color-mix(in srgb, var(--color-surface) 88%, var(--color-canvas));box-shadow:none;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px 18px;margin-bottom:0;padding:16px 18px 18px}.teacher-dashboard__filters label{min-width:0;color:var(--color-ink);font-size:var(--text-caption);gap:7px;font-weight:650;display:grid}.teacher-dashboard__filters select,.teacher-dashboard__filters input,.teacher-dashboard__filters button{border-radius:var(--radius-pill);background:var(--color-surface);width:100%;min-width:0;min-height:44px}.teacher-dashboard__filters select,.teacher-dashboard__filters input{border-color:var(--color-border)}.teacher-dashboard__summary{border:1px solid var(--color-border);border-radius:var(--radius-container);background:var(--color-surface);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;overflow:hidden}.teacher-dashboard__summary article,.teacher-dashboard__summary article:last-child{border:0;border-right:1px solid var(--color-border);min-height:134px;box-shadow:none;background:0 0;border-radius:0;padding:16px 20px}.teacher-dashboard__summary article:last-child{border-right:0}.teacher-dashboard__metric{font-variant-numeric:tabular-nums;align-content:start}.teacher-dashboard__summary span,.teacher-dashboard__summary small{color:var(--color-text-muted);font-size:var(--text-micro);line-height:1.45}.teacher-dashboard__summary strong{color:var(--color-ink);font-size:var(--text-section-display);letter-spacing:0;margin-block:4px 1px;font-weight:560;line-height:1.12}.teacher-dashboard__grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px}.teacher-dashboard__panel,.teacher-dashboard__export{border:1px solid var(--color-border);border-radius:var(--radius-container);background:var(--surface-material);box-shadow:none;padding:16px}.teacher-dashboard__panel:hover,.teacher-dashboard__export:hover,.teacher-dashboard__summary article:hover,.teacher-dashboard__presence:hover{box-shadow:none;transform:none}.teacher-dashboard__panel-heading{min-height:34px;margin-bottom:10px}.teacher-dashboard__panel-heading h3{color:var(--color-ink);font-family:var(--font-ui);font-size:var(--text-prose-body);letter-spacing:0;margin:0;font-weight:680}.teacher-dashboard__students .table-scroll{border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);max-height:none;overflow:auto hidden}.teacher-dashboard__students table{min-width:760px;font-size:var(--text-caption)}.teacher-dashboard__students th,.teacher-dashboard__students td{vertical-align:middle;padding:11px 9px}.teacher-dashboard__students th{z-index:1;color:var(--color-text-muted);font-size:var(--text-micro);background:var(--color-surface);font-weight:680;position:sticky;top:0}.teacher-dashboard__students tbody tr{transition:background-color var(--motion-fast) var(--ease-standard)}.teacher-dashboard__students td>strong{color:var(--color-ink);font-weight:650}.teacher-dashboard__students td button{color:var(--color-brand-active);font-weight:680;text-decoration:none}.teacher-dashboard__students td button:hover{text-decoration:underline}.teacher-dashboard__progress{min-width:76px;color:var(--color-ink);font-variant-numeric:tabular-nums;gap:7px;display:grid}.teacher-dashboard__progress progress{border-radius:var(--radius-pill);appearance:none;background:var(--color-surface-strong);border:0;width:100%;height:5px;overflow:hidden}.teacher-dashboard__progress progress::-webkit-progress-bar{border-radius:inherit;background:var(--color-surface-strong)}.teacher-dashboard__progress progress::-webkit-progress-value{border-radius:inherit;background:var(--color-brand)}.teacher-dashboard__progress progress::-moz-progress-bar{border-radius:inherit;background:var(--color-brand)}.teacher-dashboard__presence{font-variant-numeric:tabular-nums;gap:6px}.teacher-dashboard__presence:before{border-radius:var(--radius-pill);content:"";background:currentColor;flex:none;width:6px;height:6px}.teacher-dashboard__issues{align-self:start}.teacher-dashboard__issues .teacher-dashboard__panel-heading h3{color:var(--color-brand-active)}.teacher-dashboard__issues .teacher-dashboard__panel-heading p{color:var(--color-text-muted);font-size:var(--text-micro);margin:4px 0 0;line-height:1.5}.teacher-dashboard__issues ol{max-height:none;overflow:visible}.teacher-dashboard__issues li{border-left-color:var(--color-warning-border);background:var(--color-warning-bg);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 24px;padding:14px 16px}.teacher-dashboard__issues li.teacher-dashboard__issue--urgent{border-color:var(--color-error-border);background:var(--color-error-bg)}.teacher-dashboard__issue-main{gap:4px;min-width:0;display:grid}.teacher-dashboard__issue-main p{max-width:72ch;color:var(--color-error-text);font-size:var(--text-micro);margin:2px 0;line-height:1.5}.teacher-dashboard__issue-actions,.teacher-dashboard__issue-confirm{justify-content:flex-end;align-items:center;gap:8px;display:flex}.teacher-dashboard__issue-confirm>span{color:var(--color-ink);white-space:nowrap;margin-right:4px;font-weight:650}.teacher-dashboard__issue-confirm .teacher-dashboard__issue-cancel{color:var(--color-body)}.teacher-dashboard__empty{min-height:136px;color:var(--color-text-muted);place-items:center;line-height:1.6;display:grid}.teacher-dashboard__issues-empty{text-align:left;place-items:start;min-height:64px;padding:8px 0 2px}.teacher-dashboard__issues-toggle{width:100%;min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-brand-active);font-size:var(--text-caption);background:var(--color-surface);margin-top:12px;font-weight:680}.teacher-dashboard__knowledge .teacher-dashboard__panel-heading{align-items:flex-start}.teacher-dashboard__knowledge .teacher-dashboard__panel-heading p,.teacher-dashboard__export-note,.teacher-dashboard__export-meta{color:var(--color-text-muted);font-size:var(--text-micro);margin:5px 0 0;line-height:1.5}.teacher-dashboard__knowledge .table-scroll{border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);margin-top:16px;overflow:auto hidden}.teacher-dashboard__knowledge table{min-width:760px;font-size:var(--text-caption)}.teacher-dashboard__knowledge th{color:var(--color-text-muted);font-size:var(--text-micro);background:var(--color-surface);font-weight:680}.teacher-dashboard__export-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px}.teacher-dashboard__export-button{color:var(--color-brand-active);border-color:color-mix(in srgb, var(--color-brand) 45%, transparent)}.teacher-dashboard__pagination{min-height:48px;color:var(--color-text-muted);font-size:var(--text-micro);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}.teacher-dashboard__pagination>div{gap:8px;display:flex}.teacher-dashboard>.teacher-dashboard__panel{padding:18px}.teacher-dashboard__export{padding:16px 18px}.teacher-dashboard__export h3{color:var(--color-ink);font-family:var(--font-ui);margin:0 0 4px;font-size:1rem;font-weight:680}.teacher-dashboard>.teacher-dashboard__panel,.teacher-dashboard__export{margin-top:2px}@media (width<=1500px){.teacher-dashboard__grid{grid-template-columns:minmax(0,1fr)}}@media (width<=1100px){.teacher-dashboard__filters{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-dashboard__grid{grid-template-columns:minmax(0,1fr)}}@media (width<=1024px){.app-shell__body,.app-shell:not(.app-shell--student) .app-shell__body{margin-left:0}.app-content,.app-shell:not(.app-shell--student) .app-content{width:min(100% - 48px,1320px);padding-top:24px}.page-header{min-height:auto}}@media (width<=880px){.page-shell{padding-inline:24px}.auth-layout{grid-template-columns:1fr;min-height:100dvh;padding:72px 0 40px}.auth-card{justify-self:stretch;max-width:520px}.teacher-dashboard__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-dashboard__summary article,.teacher-dashboard__summary article:last-child{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.teacher-dashboard__summary article:nth-child(2n){border-right:0}.teacher-dashboard__summary article:nth-last-child(-n+2){border-bottom:0}}@media (width<=560px){.page-shell{padding-inline:16px}.topbar{min-height:0;padding-block:16px}.topbar-actions .environment-badge{display:none}.auth-layout{padding:68px 0 28px}.auth-card{padding:20px}.app-content{width:min(100% - 32px,1320px)}.page-header h1{font-size:var(--text-heading-xl)}.teacher-dashboard__filters{grid-template-columns:1fr}.teacher-dashboard__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-dashboard__filters-shell>summary{border:1px solid var(--color-border);border-radius:var(--radius-container);min-height:48px;color:var(--color-ink);background:var(--color-surface);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.teacher-dashboard__filters-shell>summary::marker{color:var(--color-brand-active)}.teacher-dashboard__filters-shell>summary strong,.teacher-dashboard__filters-shell>summary span{display:block}.teacher-dashboard__filters-shell>summary strong{font-size:var(--text-ui)}.teacher-dashboard__filters-shell>summary span{color:var(--color-text-muted);font-size:var(--text-micro);text-align:right}.teacher-dashboard__filters-shell[open]>summary{border-radius:var(--radius-container) var(--radius-container) 0 0;border-bottom-color:#0000}.teacher-dashboard__filters-shell[open]>.teacher-dashboard__filters{border-radius:0 0 var(--radius-container) var(--radius-container)}.teacher-dashboard__toolbar{justify-content:flex-start}.teacher-dashboard__summary article,.teacher-dashboard__summary article:last-child,.teacher-dashboard__summary article:nth-child(2n){border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);min-height:88px;padding:12px 14px}.teacher-dashboard__summary article:nth-child(2n){border-right:0}.teacher-dashboard__summary article:nth-last-child(-n+2){border-bottom:0}.teacher-dashboard__summary span,.teacher-dashboard__summary small{font-size:var(--text-micro);line-height:1.35}.teacher-dashboard__summary strong{font-size:var(--text-heading-compact);margin-block:2px 0}.teacher-dashboard__filters,.teacher-dashboard__panel,.teacher-dashboard__export,.teacher-dashboard>.teacher-dashboard__panel{padding:14px}.teacher-dashboard__issues-empty{min-height:56px}.teacher-dashboard__issues li{grid-template-columns:minmax(0,1fr)}.teacher-dashboard__issue-actions,.teacher-dashboard__issue-confirm{flex-wrap:wrap;justify-content:flex-start}.teacher-dashboard__issue-confirm>span{width:100%}.teacher-dashboard__knowledge .teacher-dashboard__panel-heading,.teacher-dashboard__pagination{flex-direction:column;align-items:stretch}.teacher-dashboard__export-actions{justify-content:flex-start;width:100%}.teacher-dashboard__export-actions>*,.teacher-dashboard__pagination>div,.teacher-dashboard__pagination button{width:100%}.teacher-dashboard__students td button,.teacher-dashboard__issues-toggle{min-height:44px}}@media (prefers-reduced-motion:reduce){.sidebar-nav__link,.teacher-dashboard__panel,.teacher-dashboard__export,.teacher-dashboard__summary article{transition:none}}.auth-card{border-color:var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-surface-raised)}.app-shell:not(.app-shell--student) .app-sidebar{width:288px}.app-shell:not(.app-shell--student) .app-shell__body{margin-left:288px}.app-shell:not(.app-shell--student) .app-content{width:min(100% - 64px,1248px)}.app-sidebar{background:var(--color-surface-subtle)}.sidebar-nav__link,.app-shell .sidebar-nav__link{border-radius:var(--radius-card)}.sidebar-nav__link:hover,.sidebar-nav__link:focus-visible,.app-shell .sidebar-nav__link:hover{color:var(--color-ink)}.sidebar-nav__link:focus-visible{background:var(--color-nav-hover)}.sidebar-nav__link.is-active,.app-shell .sidebar-nav__link.is-active{color:var(--color-brand-active);background:var(--color-nav-selected)}.sidebar-nav__link.is-active:before,.app-shell .sidebar-nav__link.is-active:before{content:none}.sidebar-nav__parent{color:var(--color-ink);font-weight:600}.page-header{min-height:auto;margin-bottom:32px;padding:20px 0 24px}:is(.page-header h1,.page-header:has(+.teacher-dashboard) h1){margin-top:6px;font-size:clamp(32px,3vw,36px);font-weight:400;line-height:1.12}.page-header>div:first-child>p:last-child{max-width:72ch;color:var(--color-body);margin-top:10px;line-height:1.65}.app-shell :is(input,select,textarea){background:var(--color-surface-raised)}.app-shell :where(.admin-card,.center-card,.learning-panel,.student-course-card,.student-outline,.student-knowledge-card,.teacher-dashboard__panel,.teacher-dashboard__export){border-color:var(--color-border);box-shadow:none}.app-shell :is(th,thead){background:var(--color-surface-raised)}@media (width<=1024px){.app-shell:not(.app-shell--student) .app-shell__body{margin-left:0}.app-shell:not(.app-shell--student) .app-content{width:min(100% - 48px,1248px)}}@media (width<=640px){.app-content,.app-shell:not(.app-shell--student) .app-content{width:min(100% - 32px,1248px)}.page-header{margin-bottom:24px;padding-top:12px}:is(.page-header h1,.page-header:has(+.teacher-dashboard) h1){font-size:32px}}.visually-hidden{clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.app-shell--student .app-sidebar{background:var(--color-surface-subtle);padding:18px 16px 14px;overflow:hidden}.student-shell-identity{border-bottom:1px solid var(--color-border);flex:none;gap:3px;min-height:64px;margin:0 4px 16px;padding:7px 8px 16px;display:grid}.student-shell-identity__account{justify-content:space-between;align-items:center;gap:11px;min-width:0;display:flex}.student-shell-identity__copy{flex:auto;gap:2px;min-width:0;display:grid}.student-shell-identity strong,.student-shell-identity__copy>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-shell-identity .system-pill,.student-shell-identity .signal-dot{overflow:visible}.student-shell-identity .signal-dot{flex:0 0 7px}.student-shell-identity strong{color:var(--color-ink);font-size:var(--text-prose-body)}.student-shell-identity__copy>span{color:var(--color-text-muted);font-size:var(--text-ui)}.student-shell-logout{width:var(--control-height);min-width:var(--control-height);height:var(--control-height);flex:0 0 var(--control-height);color:var(--color-text-muted);background:0 0;border-color:#0000;place-items:center;padding:0;display:inline-grid}.student-shell-logout:hover{color:var(--color-ink);background:var(--color-surface-subtle)}.app-shell--student .sidebar-nav{flex:none;gap:4px}.app-shell--student .sidebar-nav__link{min-height:44px}.app-sidebar__scroll-region{overscroll-behavior:contain;scrollbar-color:var(--color-border-strong) transparent;scrollbar-width:thin;flex:auto;min-height:0;overflow-y:auto}.app-shell--student .app-sidebar__footer{border-top:1px solid var(--color-border);flex:none;gap:0;margin-top:10px;padding-top:10px}.app-shell--student .app-sidebar__status{background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;min-height:32px;padding:2px 10px;display:flex}.app-shell--student .student-shell-identity .app-sidebar__status{justify-content:flex-start;min-height:24px;padding:2px 0 0}.app-shell--student .app-sidebar__status>span,.app-shell--student .app-sidebar__status .system-pill{font-size:var(--text-caption)}.app-shell--student .student-course-nav{border-top:1px solid var(--color-border);margin-top:14px;padding:15px 2px 18px}.app-shell--student .student-course-nav .secondary-tabs{margin:12px 0 6px}.app-shell--student .student-course-nav__knowledge-points button{border-radius:var(--radius-control);min-height:44px}.app-shell--student .student-course-nav__knowledge-point{min-height:var(--control-height);border-radius:var(--radius-control)}.app-shell--student .student-course-nav__units>li{margin-top:8px;padding-top:8px}.app-mobile-header__menu{justify-content:center;align-items:center;gap:7px;display:inline-flex}.app-mobile-header__context{flex:1;justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.app-mobile-header__context>strong{color:var(--color-ink);font-size:var(--text-ui);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-mobile-header__context>span{color:var(--color-text-muted);font-size:var(--text-caption);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:7px;display:flex}.app-mobile-header__context progress{width:54px;height:5px;accent-color:var(--color-brand-active)}.mobile-nav-drawer__heading button{place-items:center;width:44px;padding:0;display:inline-grid}.app-shell--student .mobile-nav-drawer{overflow:hidden}.app-shell--student .mobile-nav-drawer .student-shell-identity{margin-top:2px}.app-shell--student .mobile-nav-drawer .app-sidebar__scroll-region{margin-right:-6px;padding-right:6px}.app-shell--student:not(.app-shell--learning-workspace) .app-content{width:min(100% - 72px,1160px)}.app-shell--student .page-header{align-items:end;min-height:0;padding:14px 0 24px}.app-shell--student .page-header h1{font-size:var(--text-display-learning);margin-top:6px}.student-courses-page{flex-direction:column;justify-content:flex-start;gap:16px;width:min(100%,880px);min-height:calc(100dvh - 160px);margin-inline:auto;display:flex}.student-course-summary-list{margin:0;padding:0;list-style:none}.student-courses-heading h1,.student-collection-heading h1{color:var(--color-ink);font-size:30px;font-family:var(--font-ui);margin:0 0 8px;font-weight:700;line-height:1.3}.student-course-summary-row>article{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:clamp(22px,4vw,52px);min-height:132px;padding:20px 4px;display:grid}.student-course-summary-row+.student-course-summary-row{border-top:1px solid var(--color-border)}.student-course-summary-copy{min-width:0}.student-course-summary-eyeline{color:var(--color-text-muted);font-size:var(--text-caption);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-course-summary-copy h2{color:var(--color-ink);font-family:var(--font-ui);font-size:var(--text-section-title);margin:0 0 8px;font-weight:600;line-height:1.25}.student-course-summary-copy p{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;line-height:1.65;overflow:hidden}.student-course-summary-copy small{color:var(--color-brand-active);font-size:var(--text-caption);text-overflow:ellipsis;white-space:nowrap;margin-top:13px;font-weight:650;display:block;overflow:hidden}.student-course-summary-action{white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-width:136px;display:inline-flex}.student-ai-settings-form{gap:var(--space-3);min-width:0;display:grid}.student-ai-dialog .ai-mock-notice{margin-bottom:var(--space-5)}.student-ai-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.student-ai-section-heading h3,.student-ai-balance__heading h3{color:var(--color-ink);margin:0;font-size:15px;font-weight:600;line-height:1.5}.student-ai-key-status{color:var(--color-text-muted);font-size:var(--text-caption);white-space:nowrap;font-weight:500}.student-ai-balance{gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border);display:grid}.student-ai-balance__footer{margin-top:var(--space-3);font-size:var(--text-caption);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;line-height:1.5;display:flex}.student-ai-balance__updated{color:var(--color-text-muted);margin:0}.student-ai-balance__footer>a{color:var(--color-link)}.student-ai-balance__heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.student-ai-balance__amount{color:var(--color-ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-size:28px;font-weight:600;line-height:1.3}.student-ai-balance__amount+.student-ai-balance__amount{margin-top:var(--space-2)}.student-ai-balance__amount span{color:var(--color-text-muted);font-size:14px;font-weight:400}.student-ai-balance__error{margin:var(--space-2) 0 0;color:var(--color-danger);font-size:var(--text-ui);line-height:1.5}.student-ai-key-summary__actions{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;display:flex}.student-ai-settings-form .student-ai-key-editor{gap:var(--space-3);padding:var(--space-2) 0 0;margin:0;display:grid}.student-ai-settings-form .student-ai-key-editor input{min-height:48px}.student-ai-settings-save{margin-top:4px}.student-ai-settings-save .primary-button:disabled{opacity:1}.student-ai-settings-danger{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:24px;margin-top:20px;padding:22px 0;display:flex}.student-ai-settings-danger p{color:var(--color-text-muted);font-size:var(--text-caption);margin:5px 0 0}@media (width<=1024px){.app-shell--student .app-mobile-header{min-height:56px;padding:6px 18px}.app-shell--student .app-mobile-header__menu{width:44px;padding:0}.app-shell--student .app-mobile-header__menu>span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.app-content.app-content--learning-workspace{height:calc(100dvh - 56px)}.app-shell--student:not(.app-shell--learning-workspace) .app-content{width:min(100% - 40px,1080px)}}@media (width<=760px){.student-courses-heading h1,.student-collection-heading h1{font-size:26px}.app-shell--student:not(.app-shell--learning-workspace) .app-content{width:min(100% - 32px,1080px);padding-top:18px}.app-shell--student .page-header{padding-top:6px}.app-shell--student .page-header h1{font-size:var(--text-display-learning-mobile)}.student-course-summary-row>article{grid-template-columns:1fr;gap:16px;padding-block:22px}.student-course-summary-copy p{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.student-course-summary-action{width:100%}.student-ai-settings-danger{flex-direction:column;align-items:stretch}.student-ai-settings-danger .secondary-button{width:100%}}@media (width<=380px){.app-shell--student .app-mobile-header{padding-inline:10px}.app-mobile-header__context progress{display:none}}.student-classroom-target{padding-block:var(--space-5);margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.student-classroom-target h2{margin-top:0}.student-classroom-target p{overflow-wrap:anywhere}.secondary-button.student-ai-trigger{justify-content:flex-start;gap:var(--space-2)}.app-sidebar>.student-ai-trigger{gap:10px;margin:0;padding-inline:12px}.app-sidebar>.student-ai-trigger svg{width:20px;height:20px}.app-sidebar>.student-ai-trigger+.sidebar-nav{border-top:1px solid var(--color-border);margin-top:16px;padding-top:16px}.app-mobile-header>.student-ai-trigger{flex-shrink:0}.student-ai-dialog{border-radius:var(--radius-dialog);box-sizing:border-box;width:min(480px,100% - 32px);max-width:calc(100% - 32px);height:fit-content;max-height:calc(100dvh - 32px);padding:var(--space-6);color:var(--color-body);background:var(--surface-material);box-shadow:var(--shadow-overlay);border:0;margin:auto;position:fixed;inset:0;overflow:auto}.student-ai-dialog::backdrop{background:var(--color-overlay)}.student-ai-dialog[open]{animation:ui-dialog-enter var(--motion-slow) var(--ease-spring-slow)}.student-ai-dialog[open]:has(:focus-visible){animation:none}.student-ai-dialog__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:0;display:flex}.student-ai-dialog__header h2{font-family:var(--font-ui);margin:0;font-size:20px}.student-ai-dialog input{box-sizing:border-box;width:100%;min-width:0}@media (width<=640px){.student-ai-dialog{padding:var(--space-4)}.app-shell--student:not(.app-shell--learning-workspace) .app-mobile-header__context{display:none}.app-shell--learning-workspace .app-mobile-header__context{min-width:0;display:flex}}.student-course-summary-copy small{color:var(--color-text-muted);font-weight:500}.student-ai-key-help{color:var(--color-text-muted);font-size:var(--text-caption);margin:0;line-height:1.6}@media (width<=760px){.student-course-summary-copy small{-webkit-line-clamp:unset;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:visible}}.student-ai-dialog .student-ai-key-summary{padding-bottom:var(--space-3);flex-flow:wrap;align-items:center;margin-bottom:0}.student-ai-dialog .student-ai-key-summary__actions>strong{width:auto}.student-ai-dialog .student-ai-key-editor{gap:var(--space-2)}.student-ai-dialog .student-ai-key-editor>:is(label,input){margin:0}@media (width<=640px){.student-ai-dialog .student-ai-key-editor .primary-button{width:100%}.app-shell--student .app-mobile-header{flex-wrap:wrap}.app-shell--student .app-mobile-header__context{flex-basis:100%;order:3;padding:0 4px 6px}.app-mobile-header__context>strong{white-space:normal;overflow-wrap:anywhere;font-size:.875rem}}.student-course-summary-copy .student-classroom-target{border:0;margin:16px 0 0;padding:0}.student-classroom-target h3{font-family:var(--font-ui);color:var(--color-text-muted);margin:0 0 6px;font-size:.875rem}.student-classroom-target ul{color:var(--color-text-muted);margin:0;padding:0;line-height:1.65;list-style:none}.student-classroom-target li+li{margin-top:4px}.student-course-summary-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.student-course-nav__knowledge-point{text-align:left;width:100%;font:inherit;border:0;min-height:44px}.student-course-nav__knowledge-point:not(:disabled){cursor:pointer}.student-course-nav__knowledge-point:disabled{opacity:1;cursor:default}.app-shell--teacher{--font-display:var(--font-ui)}.app-shell.app-shell--teacher .app-sidebar{border-right-color:var(--color-border);background:var(--color-surface-subtle);width:196px;padding:20px 12px 16px;overflow:hidden}.app-shell.app-shell--teacher .app-shell__body{margin-left:196px}.app-shell.app-shell--teacher .app-content{width:min(100% - 72px,1360px);padding-top:28px}.app-shell.app-shell--teacher .app-shell-brand{border:0;flex-shrink:0;gap:12px;min-height:34px;margin:0 8px 18px;padding:0}.app-shell.app-shell--teacher .app-shell-brand strong{font-size:16px;font-weight:700}.app-shell.app-shell--teacher .app-shell-brand>div>span{display:none}.app-shell.app-shell--teacher .sidebar-nav{gap:12px;min-height:0;overflow-y:auto}.app-shell.app-shell--teacher .sidebar-nav__parent{min-height:32px;padding:6px 12px;font-size:14px;font-weight:650}.app-shell.app-shell--teacher .sidebar-nav__group--nested ul{margin:6px 0 0 22px;padding-left:10px}.app-shell.app-shell--teacher .sidebar-nav__link{border-radius:var(--radius-card);min-height:44px;margin:2px 0;padding:6px 12px;font-size:15px;font-weight:500;line-height:1.35}.app-shell.app-shell--teacher .sidebar-nav__link--secondary{min-height:44px;font-size:14px}.app-shell.app-shell--teacher .sidebar-nav__link.is-active{color:var(--color-brand-active);background:var(--color-nav-selected);font-weight:650}.app-shell.app-shell--teacher .app-sidebar__footer{border-top:1px solid var(--color-border);flex-shrink:0;gap:4px;margin-top:auto;padding-top:16px}.app-shell.app-shell--teacher .app-sidebar__user{border:0;padding:8px 12px}.app-shell.app-shell--teacher .app-sidebar__user .secondary-button{justify-content:flex-start}.app-shell.app-shell--teacher .page-header h1{font-family:var(--font-ui);font-size:1.625rem;font-weight:650;line-height:1.25}@media (width<=1024px){.app-shell.app-shell--teacher .app-shell__body{margin-left:0}.app-shell.app-shell--teacher .app-content{width:calc(100% - 48px)}.app-shell.app-shell--teacher .app-mobile-header .app-shell-brand{margin:0}}@media (width<=640px){.app-shell.app-shell--teacher .app-content{width:calc(100% - 32px);padding-top:20px}.app-shell.app-shell--teacher .page-header h1{font-size:1.5rem}.app-shell.app-shell--teacher .app-mobile-header .app-shell-brand strong{font-size:14px}}.app-shell.app-shell--teacher .app-mobile-header{background:var(--color-surface)}@media (width<=1024px){.app-shell.app-shell--teacher .mobile-nav-drawer .sidebar-nav__link{min-height:44px}}.app-shell--teacher .app-sidebar__user--top{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:8px;margin:0 4px 16px;padding:8px 4px 16px;display:flex}.app-sidebar__user--top>div{min-width:0}.app-sidebar__user--top strong{overflow-wrap:anywhere}.app-shell--teacher .app-sidebar__user--top .student-shell-logout{border:0;width:44px;min-width:44px;height:44px;padding:0}.teacher-workspace:has(.classroom-preparation){gap:16px}.teacher-workspace:has(.classroom-preparation)>.page-header{margin:0;padding:0}.teacher-workspace>.classroom-preparation{width:min(100%,780px);margin:clamp(16px,5vh,56px) auto}.classroom-preparation{--prep-blue:var(--color-brand);--prep-muted:var(--color-text-muted);color:var(--color-ink)}.classroom-preparation__summary{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--surface-material);min-width:0;box-shadow:none;padding:30px 32px 24px}.classroom-preparation__heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.teacher-workspace .classroom-preparation__heading h2{color:var(--color-ink);margin:0 0 4px;font-size:22px;font-weight:700;line-height:1.4}.classroom-preparation__description{color:var(--prep-muted);margin:0;font-size:14px;line-height:1.6}.classroom-preparation__count{color:var(--prep-muted);white-space:nowrap;flex:none;padding-top:6px;font-size:14px}.classroom-preparation__count strong{color:var(--color-brand);font-variant-numeric:tabular-nums;font-size:16px}.classroom-preparation__group+.classroom-preparation__group{margin-top:24px}.classroom-preparation__group h3{color:var(--color-body);align-items:center;gap:12px;margin:0 0 12px;font-size:14px;font-weight:650;line-height:1.4;display:flex}.classroom-preparation__group h3:after{background:var(--color-border);content:"";flex:1;height:1px}.classroom-preparation__group ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.classroom-preparation__item{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);min-width:0;overflow:visible}.classroom-preparation__item[data-active=true]{border-color:var(--color-border-strong);background:var(--color-surface-subtle)}.classroom-preparation__item-trigger{border-radius:inherit;width:100%;min-height:78px;color:var(--color-ink);text-align:left;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard);background:0 0;border:0;grid-template-columns:28px minmax(0,1fr) auto auto 18px;align-items:center;gap:16px;padding:14px 18px;display:grid}.classroom-preparation__item-trigger:hover:not(:active){background:var(--color-control-hover)}.classroom-preparation__item-trigger:active{background:var(--color-brand-soft)}.classroom-preparation__item-trigger:focus-visible,.classroom-preparation :is(button,input):focus-visible{outline:2px solid var(--prep-blue);outline-offset:2px}.classroom-preparation__icon{stroke-width:1.8px;width:24px;height:24px}.classroom-preparation__item-copy{gap:3px;min-width:0;display:grid}.classroom-preparation__summary-label,.classroom-preparation__summary-detail{color:var(--prep-muted);font-size:14px;font-weight:400;line-height:1.45}.classroom-preparation__item-copy strong{color:var(--color-ink);overflow-wrap:anywhere;font-size:16px;font-weight:650;line-height:1.45}.classroom-preparation__summary-detail{overflow-wrap:anywhere;gap:3px;display:grid}.classroom-preparation__unit-count{display:block}.classroom-preparation__status{border-radius:var(--radius-pill);background:var(--color-surface-subtle);color:var(--color-text-muted);white-space:nowrap;padding:4px 9px;font-size:12px;font-weight:600}.classroom-preparation__status[data-complete=true]{background:color-mix(in srgb, var(--color-success-border) 10%, white);color:var(--color-success-text)}.classroom-preparation__item-action{color:var(--color-brand);white-space:nowrap;font-size:14px;font-weight:600}.classroom-preparation__chevron{width:18px;height:18px;color:var(--color-brand);transition:transform var(--motion-normal) var(--ease-standard)}.classroom-preparation__item[data-active=true] .classroom-preparation__chevron{transform:rotate(90deg)}.teacher-workspace .classroom-preparation__submit{width:100%;margin-top:16px}@media (width>=1025px){.app-shell.app-shell--teacher .app-content:has(.classroom-preparation){width:calc(100% - 40px);padding:16px 0}}@media (width<=640px){.classroom-preparation__summary{padding:20px 16px}.classroom-preparation__heading{flex-wrap:wrap;gap:4px 12px}.classroom-preparation__count{padding-top:0}.classroom-preparation__item-trigger{grid-template-columns:24px minmax(0,1fr) 16px;gap:10px;padding:12px}.classroom-preparation__icon{width:20px;height:20px}.classroom-preparation__status,.classroom-preparation__item-action{display:none}.classroom-preparation__status{grid-area:2/2;justify-self:start;margin-top:-2px;display:inline-block}.classroom-preparation__item-copy{grid-area:1/2}.classroom-preparation__chevron{grid-area:1/3}}@media (prefers-reduced-motion:reduce){.classroom-preparation__chevron{transition:none}}.page-shell:has(.auth-layout){width:100%;max-width:none;padding:0 clamp(24px,5.5vw,88px);overflow:clip}.page-shell:has(.auth-layout):before{background:var(--color-canvas)}.page-shell:has(.auth-layout) .topbar{z-index:2;align-items:center;padding:28px clamp(24px,5.5vw,88px)}.auth-brand{color:var(--color-ink);white-space:nowrap;font-size:22px;font-weight:600;line-height:1.4}.auth-layout{grid-template-columns:minmax(0,1.35fr) minmax(360px,1fr);align-items:center;gap:clamp(32px,4vw,64px);width:min(100%,1360px);min-height:100dvh;margin-inline:auto;padding:100px 0 80px;position:relative}.auth-welcome{pointer-events:none;width:100vw;position:absolute;inset:0 auto 0 50%;overflow:hidden;transform:translate(-50%)}.auth-scene{aspect-ratio:1586/992;width:100%;position:absolute;top:50%;transform:translateY(-50%);-webkit-mask-image:linear-gradient(90deg,#000 0% 55%,#000c 75%,#0006 90%,#0000 100%);mask-image:linear-gradient(90deg,#000 0% 55%,#000c 75%,#0006 90%,#0000 100%)}.auth-threads{stroke:#6a98df;stroke-width:.8px}.auth-thread{opacity:.14}.auth-thread:nth-child(-n+30){opacity:.11}.auth-thread:nth-child(7n+3){stroke-width:1px;opacity:.28}.auth-thread:nth-child(-n+30):nth-child(7n+3){opacity:.22}.auth-links{stroke:#94abc7;stroke-width:.8px;opacity:.16}.auth-node{fill:var(--color-brand);fill-opacity:.62}.auth-node--accent{fill-opacity:.72}.auth-layout .auth-card{width:100%;max-width:460px;box-shadow:none;background:0 0;border:0;border-radius:0;grid-column:2;padding:32px;position:relative}.auth-layout .auth-tabs.fluid-track{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin-bottom:32px;display:grid}.auth-layout .auth-card form label{margin-bottom:0}.auth-field{margin-bottom:4px}.auth-field__error{min-height:20px;color:var(--color-error-text);font-size:var(--text-caption);margin:4px 0 0;line-height:1.45}.auth-form__error{margin:0 0 20px}.auth-layout .auth-card input{min-height:var(--control-height-entry);background:var(--color-surface)}.auth-layout .auth-card input:focus{background:var(--color-surface)}@media (width<=880px){.auth-layout{grid-template-columns:minmax(0,1fr);align-content:start;gap:0;width:min(100%,480px);padding:76px 0 64px}.auth-welcome{width:calc(100% + 48px);height:clamp(88px,14dvh,140px);margin-inline:-24px;position:relative;inset:auto;transform:none;-webkit-mask-image:linear-gradient(#0000,#000 12% 70%,#0000);mask-image:linear-gradient(#0000,#000 12% 70%,#0000)}.auth-scene{width:160%;top:-42px;transform:none}.auth-layout .auth-card{grid-column:1;max-width:none;padding:20px 24px}.auth-layout .auth-tabs.fluid-track{margin-bottom:24px}}@media (width<=560px){.page-shell:has(.auth-layout){padding-inline:20px}.page-shell:has(.auth-layout) .topbar{gap:8px;padding:16px 20px}.auth-brand{font-size:19px}.page-shell:has(.auth-layout) .system-pill{padding-inline:0;font-size:12px}.auth-layout .auth-card{padding:16px 0}.auth-layout .auth-card form label{margin-bottom:0}}.page-shell--account{padding-block:0}.page-shell--account .topbar{justify-content:space-between;gap:12px;padding-block:20px;position:static}.page-shell--account>main{align-items:center;min-height:calc(100dvh - 82px);padding-block:24px;display:grid}.page-shell--account .password-change-card{width:min(100%,520px);margin:0 auto}.password-change-card h1{font-family:var(--font-ui);font-size:26px;font-weight:700;line-height:1.3}.password-change-card form{margin-top:24px}.password-change-card .password-change-identity{margin-top:12px}
