@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.start\!{inset-inline-start:var(--spacing)!important}.end{inset-inline-end:var(--spacing)}.end\!{inset-inline-end:var(--spacing)!important}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-base:#f3f6fc;--color-bg-elevated:#fff;--color-bg-elevated-2:#eaf0fb;--color-bg-inverted:#0d1a2b;--color-text-primary:#0d1a2b;--color-text-secondary:#47536b;--color-text-muted:#66728a;--color-text-inverted:#f3f6fc;--color-accent:#4763c9;--color-accent-strong:#33469c;--color-accent-soft:#4763c91a;--color-accent-contrast:#fff;--color-amber:#d99a1f;--color-amber-soft:#d99a1f24;--color-emerald:#087f57;--color-emerald-soft:#10b9811f;--color-danger:#d13b3b;--color-danger-soft:#d13b3b1f;--color-border:#0d1a2b1c;--color-border-strong:#0d1a2b38;--shadow-card:0 1px 2px #0d1a2b0a,0 12px 28px -16px #0d1a2b29;--shadow-pop:0 24px 60px -20px #0d1a2b52;--radius-card:16px;--radius-card-sm:12px;--radius-control:10px;--radius-pill:999px;--glass-bg:#fff9;--glass-bg-strong:#ffffffc7;--glass-border:#fffc;--glass-shadow:0 8px 32px -12px #0d1a2b47,0 1px 1px #fff6 inset;--text-xs:.71875rem;--text-sm:.8125rem;--text-base:.875rem;--text-lg:1rem;--text-xl:1.09375rem;--text-2xl:1.25rem;--text-3xl:1.5rem;--blue:var(--color-accent);--blue-dark:var(--color-accent-strong);--blue-soft:var(--color-accent-soft);--ink:var(--color-text-primary);--muted:var(--color-text-secondary);--faint:var(--color-text-muted);--line:var(--color-border);--line-soft:#0d1a2b12;--soft:var(--color-bg-base);--surface:var(--color-bg-elevated);--surface-raised:var(--color-bg-elevated);--surface-muted:var(--color-bg-elevated-2);--white:var(--color-bg-elevated);--sidebar-bg:var(--color-bg-base);--sidebar-line:var(--color-border);--sidebar:236px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-base:#0a1424;--color-bg-elevated:#101f36;--color-bg-elevated-2:#172a45;--color-bg-inverted:#f3f6fc;--color-text-primary:#edf2fc;--color-text-secondary:#a6b4d1;--color-text-muted:#8391ad;--color-text-inverted:#0a1424;--color-accent:#5b9bf7;--color-accent-strong:#8ab8fa;--color-accent-soft:#5b9bf729;--color-accent-contrast:#0a1424;--color-amber:#edb62f;--color-amber-soft:#edb62f24;--color-emerald:#34d399;--color-emerald-soft:#34d39929;--color-danger:#f87171;--color-danger-soft:#f8717129;--color-border:#a6b4d124;--color-border-strong:#a6b4d142;--shadow-card:0 1px 0 #0003,0 20px 44px -20px #0000008c;--shadow-pop:0 30px 70px -20px #0009;--glass-bg:#101f368c;--glass-bg-strong:#101f36c7;--glass-border:#a6b4d147;--glass-shadow:0 8px 32px -12px #0000008c,0 1px 1px #edf2fc14 inset;--line-soft:#a6b4d11a}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-base:#0a1424;--color-bg-elevated:#101f36;--color-bg-elevated-2:#172a45;--color-bg-inverted:#f3f6fc;--color-text-primary:#edf2fc;--color-text-secondary:#a6b4d1;--color-text-muted:#8391ad;--color-text-inverted:#0a1424;--color-accent:#5b9bf7;--color-accent-strong:#8ab8fa;--color-accent-soft:#5b9bf729;--color-accent-contrast:#0a1424;--color-amber:#edb62f;--color-amber-soft:#edb62f24;--color-emerald:#34d399;--color-emerald-soft:#34d39929;--color-danger:#f87171;--color-danger-soft:#f8717129;--color-border:#a6b4d124;--color-border-strong:#a6b4d142;--shadow-card:0 1px 0 #0003,0 20px 44px -20px #0000008c;--shadow-pop:0 30px 70px -20px #0009;--glass-bg:#101f368c;--glass-bg-strong:#101f36c7;--glass-border:#a6b4d147;--glass-shadow:0 8px 32px -12px #0000008c,0 1px 1px #edf2fc14 inset;--line-soft:#a6b4d11a}*{box-sizing:border-box}html{background:var(--soft)}body{background:var(--soft);color:var(--ink);font-family:var(--font-golos),Arial,sans-serif;font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer;transition:border-color .16s,background-color .16s,color .16s,transform .12s}input,textarea,select{transition:border-color .18s,background-color .24s,color .24s,box-shadow .18s}button:active:not(:disabled){transform:scale(.97)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}h1,h2,h3,p{margin-top:0}.spin{animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.kicker{color:var(--faint);font-size:var(--text-sm);margin-bottom:5px;font-weight:600;display:block}.button{border-radius:var(--radius-control);min-height:40px;font-size:var(--text-sm);justify-content:center;align-items:center;gap:7px;padding:0 16px;font-weight:600;display:inline-flex}.button.primary{border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.button.secondary{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.button.secondary:hover{border-color:var(--color-border-strong);background:var(--surface-muted)}.button.danger{border:1px solid var(--color-danger);background:var(--color-danger);color:#fff}.button.danger:hover{filter:brightness(.92)}.button.compact{min-height:32px;font-size:var(--text-xs);padding:0 12px}.button.wide{width:100%}.button:disabled{cursor:not-allowed;opacity:.5;transform:none}.icon-button{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);width:38px;height:38px;color:var(--muted);flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{border-color:var(--color-accent);background:var(--surface);color:var(--color-accent)}.icon-button.danger:hover{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger)}.text-button{color:var(--color-accent);font-size:var(--text-base);background:0 0;border:0;align-items:center;gap:7px;padding:0;font-weight:600;display:inline-flex}.logo{letter-spacing:-.04em;align-items:center;gap:10px;font-size:18px;display:flex}.logo>span{width:32px;height:32px;color:inherit;font-family:var(--font-plex-mono),monospace;background:currentColor;border-radius:5px;justify-content:center;align-items:center;font-size:0;display:inline-flex}.logo>span:after{color:var(--blue);content:"SW";font-size:var(--text-sm);letter-spacing:-.1em;transform:translate(-1px)}.boot-screen{background:var(--soft);min-height:100vh;color:var(--color-accent);flex-direction:column;justify-content:center;align-items:center;gap:28px;display:flex}.boot-note{color:var(--muted,#6b7280);text-align:center;margin:0;padding:0 16px;font-size:14px}.login-shell{background:#fff;grid-template-columns:minmax(440px,1.08fr) minmax(440px,.92fr);min-height:100vh;display:grid}.login-intro{background:var(--blue);color:#fff;flex-direction:column;justify-content:space-between;min-height:680px;padding:42px 50px;display:flex;position:relative;overflow:hidden}.login-intro:before,.login-intro:after{content:"";border:1px solid #ffffff2b;border-radius:50%;position:absolute}.login-intro:before{width:570px;height:570px;bottom:-210px;right:-160px}.login-intro:after{width:330px;height:330px;bottom:-90px;right:-40px}.login-intro .logo,.login-intro>div,.login-intro>small{z-index:1;position:relative}.login-intro .logo>span{color:#fff}.login-intro h1{letter-spacing:-.065em;margin:0 0 24px;font-size:clamp(48px,5.3vw,78px);font-weight:550;line-height:.99}.login-intro p{color:#dce8ff;max-width:500px;font-size:var(--text-xl);line-height:1.65}.login-intro>small{color:#bed1f8;font-size:var(--text-sm)}.login-side{justify-content:center;align-items:center;padding:50px;display:flex}.login-box{width:min(390px,100%)}.login-box h2{letter-spacing:-.045em;margin-bottom:9px;font-size:30px}.login-box>p{color:var(--muted);font-size:var(--text-base);margin-bottom:30px;line-height:1.6}.login-box form,.form-stack{gap:16px;display:grid}.login-box label,.form-stack label,.password-card label,.review-main>label,.review-side>label,.upload-form>label{font-size:var(--text-base);gap:8px;font-weight:750;display:grid}input,select,textarea{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);width:100%;color:var(--ink);font-size:var(--text-base);outline:0;padding:0 13px}.login-box input,.form-stack input,.password-card input,.upload-form select,.upload-form input:not([type=file]){height:46px}input:focus,select:focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.error-box,.info-box,.page-error{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--color-accent-soft);color:var(--color-accent-strong);font-size:var(--text-sm);align-items:flex-start;gap:9px;padding:12px 14px;line-height:1.5;display:flex}.security-note{color:var(--faint);font-size:var(--text-sm);justify-content:center;align-items:center;gap:7px;margin-top:22px;display:flex}.app-shell{min-height:100vh}.sidebar{z-index:50;width:var(--sidebar);background:var(--ink);color:#fff;border-right:1px solid #202328;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{border-bottom:1px solid #272a30;justify-content:space-between;align-items:center;height:72px;padding:0 22px;display:flex}.sidebar .logo{font-size:var(--text-xl)}.sidebar .logo>span{color:#fff}.role-caption{color:#737a84;font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);letter-spacing:.13em;margin:23px 20px 10px}.sidebar nav{gap:3px;padding:0 11px;display:grid}.sidebar nav button,.logout{color:#9ca2ac;width:100%;height:43px;font-size:var(--text-base);text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:11px;padding:0 11px;font-weight:700;display:flex}.sidebar nav button:hover,.logout:hover{color:#fff;background:#171a1f}.sidebar nav button.active{color:#fff;background:#14254a}.sidebar nav button.active svg{color:#71a4ff}.sidebar-user{border-top:1px solid #26292f;grid-template-columns:36px 1fr;align-items:center;gap:10px;margin-top:auto;padding:16px 15px 10px;display:grid}.sidebar-user>div:last-child{flex-direction:column;min-width:0;display:flex}.sidebar-user strong{font-size:var(--text-sm)}.sidebar-user small{color:#7d848e;font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar{background:var(--color-accent-soft);width:36px;height:36px;color:var(--color-accent-strong);font-size:var(--text-xs);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.avatar.large{width:46px;height:46px;font-size:var(--text-base)}.avatar.huge{width:70px;height:70px;font-size:var(--text-2xl)}.logout{width:auto;margin:0 11px 14px}.workspace{min-height:100vh;margin-left:var(--sidebar)}.topbar{z-index:30;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;align-items:center;height:72px;padding:0 clamp(20px,4vw,54px);display:flex;position:sticky;top:0}.topbar>span{color:#7a818c;font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs)}.topbar>div{margin-left:auto}.menu-button,.mobile-close{display:none}.content{width:min(1240px,100%);margin:0 auto;padding:38px clamp(20px,4vw,54px) 70px;animation:.25s ease-out page-in}@keyframes page-in{0%{opacity:0;transform:translateY(5px)}}.page-title{margin-bottom:28px}.page-title h1{font-size:var(--text-3xl);letter-spacing:-.01em;margin-bottom:6px;font-weight:700}.page-title p{color:var(--muted);font-size:var(--text-base);margin:0}.page-error{align-items:center;margin-bottom:16px}.page-error button{color:var(--color-accent);font-size:var(--text-sm);background:0 0;border:0;margin-left:auto;font-weight:600}.panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card)}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;min-height:64px;padding:16px 20px;display:flex}.panel-head h2{font-size:var(--text-xl);letter-spacing:-.01em;margin:0;font-weight:700}.metrics-row{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:0;padding:19px}.metric.featured{border-color:var(--blue);background:var(--blue);color:#fff}.metric>div{color:var(--blue);align-items:center;gap:8px;display:flex}.metric>div span{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);letter-spacing:.07em;font-weight:600}.metric.featured>div span{color:var(--ink)}.metric>strong{font-family:var(--font-plex-mono),monospace;letter-spacing:-.04em;margin-top:19px;font-size:26px;display:block}.metric p{color:var(--muted);font-size:var(--text-xs);margin:4px 0 0}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:40px;display:flex}.empty>div{background:var(--blue-soft);width:68px;height:68px;color:var(--blue);border-radius:50%;justify-content:center;align-items:center;display:flex}.empty h3{font-size:var(--text-xl);margin:16px 0 6px}.empty p{max-width:330px;color:var(--muted);font-size:var(--text-sm);margin:0 0 18px;line-height:1.6}.pill{border-radius:var(--radius-pill);min-height:24px;font-size:var(--text-xs);white-space:nowrap;justify-content:center;align-items:center;padding:0 11px;font-weight:600;display:inline-flex}.pill.queued{background:var(--surface-muted);color:var(--muted)}.pill.level{background:var(--color-accent-soft);color:var(--color-accent-strong);font-weight:700}.pill.review{background:var(--color-amber-soft);color:var(--color-amber)}.pill.published{background:var(--color-emerald-soft);color:var(--color-emerald)}.lessons-panel{overflow:hidden}.lesson-list{min-width:900px}.lesson-row{border-bottom:1px solid var(--line-soft);grid-template-columns:38px minmax(170px,1.2fr) 122px 92px minmax(140px,.72fr) auto;align-items:center;gap:13px;min-height:75px;padding:12px 18px;animation:.2s ease-out row-in;display:grid}@keyframes row-in{0%{opacity:0;transform:translateY(3px)}}.lesson-row:last-child{border:0}.status-icon{background:var(--surface-muted);color:#6f7680;border-radius:50%;justify-content:center;align-items:center;width:35px;height:35px;display:flex}.status-icon.review{background:var(--color-amber-soft);color:var(--color-amber)}.status-icon.published{background:var(--color-emerald-soft);color:var(--color-emerald)}.status-icon.failed{background:var(--color-danger-soft);color:var(--color-danger)}.lesson-name{flex-direction:column;gap:4px;min-width:0;display:flex}.lesson-name span,.lesson-date,.lesson-status small{color:var(--muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lesson-status{flex-direction:column;align-items:flex-start;gap:5px;min-width:0;display:flex}.mini-progress{background:#e4e7ec;border-radius:4px;width:100%;height:3px;overflow:hidden}.mini-progress i{border-radius:inherit;background:var(--blue);height:100%;transition:width .35s;display:block}.row-actions{justify-content:flex-end;gap:6px;display:flex}.student-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:62px;padding:12px 18px;display:flex}.student-toolbar label{border:1px solid var(--line);color:#939aa4;border-radius:6px;align-items:center;gap:8px;width:min(330px,70%);height:37px;padding:0 10px;display:flex}.student-toolbar input{height:auto;box-shadow:none;border:0;padding:0}.student-toolbar>span{color:var(--muted);font-size:var(--text-sm)}.student-grid{grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;display:grid}.student-card{border:1px solid var(--line);border-radius:7px;padding:18px;transition:transform .17s,border-color .17s,box-shadow .17s}.student-card:hover{border-color:#bcc3cd;transform:translateY(-2px);box-shadow:0 8px 24px #0e141f0f}.student-card-top{justify-content:space-between;align-items:center;display:flex}.student-card h3{font-size:var(--text-base);margin:14px 0 3px}.student-card>p{color:var(--muted);font-size:var(--text-sm);margin:0}.student-stats{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);grid-template-columns:1fr 1fr;margin:15px 0;padding:12px 0;display:grid}.student-stats span{color:var(--muted);font-size:var(--text-xs);flex-direction:column;gap:2px;display:flex}.student-stats strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xl)}.student-card-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.student-card-foot small{color:var(--muted);font-size:var(--text-xs)}.student-actions{flex:none;gap:6px;display:flex}.student-latest{grid-template-columns:1.18fr .82fr;gap:16px;display:grid}.feedback-card .text-button{margin:0 20px 18px}.score{color:var(--blue);font-family:var(--font-plex-mono),monospace;align-items:baseline;font-size:25px;font-weight:650;display:inline-flex}.score small{font-size:var(--text-xs)}.score.small{font-size:var(--text-xl)}.score-with-level{align-items:center;gap:9px;display:flex}.ai-comment{border-left:3px solid var(--blue);background:var(--blue-soft);color:var(--blue);gap:12px;margin:18px;padding:15px;display:flex}.ai-comment>svg{flex:none}.ai-comment strong{color:#17396e;font-size:var(--text-sm)}.ai-comment p{color:#36527f;font-size:var(--text-sm);margin:6px 0 0;line-height:1.7}.teacher-comment{margin:0 20px 18px}.teacher-comment span{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs)}.teacher-comment p{font-size:var(--text-sm);margin:6px 0 0;line-height:1.6}.accordion{text-align:left;background:#fff;border:0;width:100%}.accordion svg{transition:transform .18s}.accordion svg.up{transform:rotate(180deg)}.word-list{flex-wrap:wrap;gap:7px;padding:18px;display:flex}.word-list span{background:var(--blue-soft);color:var(--blue);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);border:1px solid #bed0f3;border-radius:5px;padding:7px 9px}.word-list p{color:var(--muted);font-size:var(--text-sm);margin:0}.student-lesson-list>button{border:0;border-bottom:1px solid var(--line-soft);text-align:left;background:#fff;grid-template-columns:36px 1fr 40px 20px;align-items:center;gap:13px;width:100%;min-height:70px;padding:11px 18px;display:grid}.student-lesson-list>button:hover{background:var(--surface-muted)}.student-lesson-list>button:last-child{border-bottom:0}.student-lesson-list>button>div:nth-child(2){flex-direction:column;gap:3px;display:flex}.student-lesson-list strong{font-size:var(--text-sm)}.student-lesson-list span{color:var(--muted);font-size:var(--text-xs)}.metric-button{color:var(--ink);font:inherit;text-align:left;transition:border-color .18s,background .18s,transform .18s}.metric-button:hover,.metric-button.expanded{border-color:var(--blue);background:var(--blue-soft);transform:translateY(-1px)}.metric-button:focus-visible{outline:3px solid var(--blue-soft);border-color:var(--blue)}.student-grammar{overflow:hidden}.student-finding{grid-template-columns:18px 1fr}.finding-mark{background:var(--blue-soft);width:16px;height:16px;color:var(--blue);border-radius:50%;justify-content:center;align-items:center;display:flex}.settings-grid{grid-template-columns:.75fr 1.25fr;gap:16px;display:grid}.profile-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:320px;padding:30px;display:flex}.profile-card h2{font-size:var(--text-xl);margin:15px 0 4px}.profile-card p{color:var(--muted);font-size:var(--text-sm);margin:0 0 13px}.password-card form{gap:14px;padding:20px;display:grid}.password-card form .button{justify-self:start}.form-message{color:var(--blue);font-size:var(--text-sm);margin:0}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#04080fad;place-items:start center;padding:36px 15px;animation:.16s fade;display:grid;position:fixed;inset:0;overflow:auto}@keyframes fade{0%{opacity:0}}.modal{background:#fff;border-radius:9px;width:min(580px,100%);animation:.2s ease-out modal-in;overflow:hidden;box-shadow:0 28px 90px #00000052}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.99)}}.modal.large{width:min(1050px,100%)}.modal>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:74px;padding:15px 20px;display:flex}.modal>header h2{font-size:var(--text-2xl);letter-spacing:-.01em;margin:0;font-weight:700}.modal-body{padding:22px}.modal-actions{border-top:1px solid var(--line-soft);justify-content:flex-end;gap:8px;margin:5px -22px -22px;padding:16px 22px;display:flex}.danger-zone{background:#f7f7f8;border:1px solid #d7d9dd;border-radius:7px;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex}.danger-zone>div{flex-direction:column;gap:4px;display:flex}.danger-zone strong{font-size:var(--text-sm)}.danger-zone span{color:var(--muted);font-size:var(--text-xs);line-height:1.5}.danger-zone .button{flex:none}.drop-zone{border:1px dashed var(--faint);min-height:150px;color:var(--muted);text-align:center;border-radius:7px;justify-content:center;align-items:center;display:flex!important}.drop-zone:hover,.drop-zone.selected{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.drop-zone input{display:none}.drop-zone strong{max-width:420px;color:var(--ink);font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drop-zone span{font-size:var(--text-xs)}.upload-progress{gap:8px;display:grid}.upload-progress>div{font-size:var(--text-sm);justify-content:space-between;display:flex}.upload-progress>i{background:#e8ebef;border-radius:5px;height:6px;overflow:hidden}.upload-progress em{border-radius:inherit;background:var(--blue);height:100%;transition:width .2s linear;display:block}.input-action{grid-template-columns:1fr auto;display:grid}.input-action input{border-radius:6px 0 0 6px}.input-action button{border:1px solid var(--line);color:var(--blue);font-size:var(--text-xs);background:#fff;border-left:0;border-radius:0 6px 6px 0;align-items:center;gap:5px;padding:0 10px;font-weight:800;display:flex}.success-mark{background:var(--blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;margin:0 auto;display:flex}.center-text{max-width:350px;color:var(--muted);font-size:var(--text-sm);text-align:center;margin:15px auto;line-height:1.6}.credential-box{border:1px solid var(--line);border-radius:7px;grid-template-columns:1fr 1fr;margin-bottom:18px;display:grid}.credential-box span{border-right:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);flex-direction:column;gap:7px;padding:15px;display:flex}.credential-box span:last-child{border:0}.credential-box strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:var(--text-base)}.review-layout{grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);display:grid}.review-main{border-right:1px solid var(--line);gap:18px;padding:20px;display:grid}.review-side{background:var(--surface-muted);align-content:start;gap:16px;padding:20px;display:grid}.audio-player{border:1px solid var(--line);color:var(--blue);border-radius:7px;align-items:center;gap:12px;padding:10px 13px;display:flex}.audio-player audio{width:100%;height:34px}.review-main textarea{resize:vertical;min-height:170px;padding:12px;line-height:1.6}.review-section{border:1px solid var(--line);border-radius:7px}.review-section-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;min-height:63px;padding:11px 15px;display:flex}.review-section-head h3{font-size:var(--text-base);margin:0}.finding{border-bottom:1px solid var(--line-soft);grid-template-columns:18px 1fr;align-items:start;gap:10px;padding:13px 15px;display:grid}.finding:last-child{border:0}.finding>input{width:15px;height:15px;accent-color:var(--blue)}.finding>span{gap:4px;display:grid}.finding del{color:#777e88;font-size:var(--text-sm)}.finding strong{color:var(--blue);font-size:var(--text-sm)}.finding small{color:var(--muted);font-size:var(--text-xs);line-height:1.5}.finding.disabled{opacity:.45}.muted{color:var(--muted);font-size:var(--text-sm);padding:15px}.score-control{border:1px solid var(--line);background:#fff;border-radius:7px;padding:15px}.score-control>span{color:var(--muted);font-size:var(--text-xs);display:block}.score-control>strong{color:var(--blue);font-family:var(--font-plex-mono),monospace;margin:8px 0;font-size:27px;display:block}.score-control>strong small{font-size:var(--text-xs)}.score-control input{height:auto;accent-color:var(--blue);padding:0}.review-side textarea{resize:vertical;min-height:105px;padding:10px;line-height:1.5}.computed{grid-template-columns:1fr 1fr;gap:8px;display:grid}.computed span{border:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);background:#fff;border-radius:6px;flex-direction:column;gap:5px;padding:12px;display:flex}.computed strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xl)}.student-result{gap:16px;padding:20px;display:grid}.result-metrics{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.result-comments{grid-template-columns:1fr 1fr;gap:12px;display:grid}.result-comments .ai-comment,.result-comments .teacher-comment{margin:0}.result-comments .teacher-comment{border:1px solid var(--line);border-radius:6px;padding:15px}.developer-content{width:min(1480px,100%)}.dev-live{color:#17804c;font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);letter-spacing:.1em;align-items:center;gap:7px;font-weight:700;display:flex}.dev-live i{background:var(--color-emerald);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #18a05e1a}.dev-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.dev-heading h1{letter-spacing:-.055em;margin:0 0 7px;font-size:36px;font-weight:650}.dev-heading p{max-width:680px;color:var(--muted);font-size:var(--text-base);margin:0;line-height:1.55}.heading-actions{gap:8px;display:flex}.dev-loading{min-height:400px;color:var(--muted);font-size:var(--text-base);justify-content:center;align-items:center;gap:10px;display:flex}.dev-metrics{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.dev-metric{border:1px solid var(--line);background:#fff;border-radius:8px;padding:19px}.dev-metric>div{color:var(--blue);align-items:center;gap:8px;display:flex}.dev-metric>div span{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);letter-spacing:.07em;font-weight:650}.dev-metric>strong{font-family:var(--font-plex-mono),monospace;letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap;margin:18px 0 4px;font-size:25px;display:block;overflow:hidden}.dev-metric>strong.good{color:#168450}.dev-metric p{color:var(--muted);font-size:var(--text-xs);margin:0}.dev-overview-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.mini-provider-list>div{border-bottom:1px solid var(--line-soft);grid-template-columns:10px 1fr auto;align-items:center;gap:10px;min-height:60px;padding:10px 18px;display:grid}.mini-provider-list>div:last-child{border:0}.mini-provider-list span,.compact-list span{flex-direction:column;gap:3px;min-width:0;display:flex}.mini-provider-list strong,.compact-list strong{font-size:var(--text-sm)}.mini-provider-list small,.compact-list small{color:var(--muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mini-provider-list em{color:var(--muted);font-size:var(--text-xs);font-style:normal}.status-dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.status-dot.ok{background:var(--color-emerald);box-shadow:0 0 0 3px #18a05e1c}.status-dot.bad{background:#8d949e;box-shadow:0 0 0 3px #5a626d17}.compact-list>div{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;min-height:60px;padding:10px 18px;display:flex}.dev-empty-line{color:var(--muted);font-size:var(--text-sm);margin:0}.dev-empty-line.padded,.compact-list>.dev-empty-line,.simple-log-list>.dev-empty-line{padding:22px}.simple-log-list>div{border-bottom:1px solid var(--line-soft);grid-template-columns:7px 1fr;align-items:start;gap:11px;min-height:55px;padding:12px 18px;display:grid}.simple-log-list>div:last-child{border:0}.log-mark{background:#74808e;border-radius:50%;width:7px;height:7px;margin-top:4px}.log-mark.error,.log-mark.critical{background:#111}.log-mark.warning{background:#e2a900}.simple-log-list p{flex-direction:column;gap:4px;min-width:0;margin:0;display:flex}.simple-log-list strong{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.simple-log-list small{color:var(--muted);font-size:var(--text-xs)}.disk-panel{color:var(--blue);align-items:center;gap:14px;padding:18px 20px;display:flex}.disk-panel>div{flex:1;gap:5px;display:grid}.disk-panel strong{color:var(--ink);font-size:var(--text-sm)}.disk-panel span{color:var(--muted);font-size:var(--text-xs)}.disk-panel i{background:#e7eaf0;border-radius:5px;height:5px;overflow:hidden}.disk-panel em{border-radius:inherit;background:var(--blue);height:100%;display:block}.disk-panel b{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm)}.dev-tabs{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);gap:3px;width:max-content;margin-bottom:14px;padding:3px;display:flex}.dev-tabs button{min-height:34px;color:var(--muted);font-size:var(--text-sm);background:0 0;border:0;border-radius:5px;padding:0 14px;font-weight:800}.dev-table-wrap{overflow:auto}.dev-table{border-collapse:collapse;width:100%;min-width:850px}.dev-table th{border-bottom:1px solid var(--line);background:var(--surface-muted);color:#767e89;height:40px;font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);letter-spacing:.07em;text-align:left;text-transform:uppercase;white-space:nowrap;padding:0 13px;font-weight:650}.dev-table td{border-bottom:1px solid var(--line-soft);color:#4e5661;max-width:280px;height:60px;font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;padding:9px 13px;overflow:hidden}.dev-table tr:last-child td{border-bottom:0}.dev-table td>strong{color:var(--ink);font-size:var(--text-sm)}.table-user{align-items:center;gap:9px;display:flex}.table-user strong{color:var(--ink);font-size:var(--text-sm)}.table-actions{gap:5px;display:flex}.dialog-body select{height:46px}.credential-box.single{grid-template-columns:1fr}.dev-action-row{flex-wrap:wrap;gap:8px;display:flex}.dev-action-row.end{justify-content:flex-end}.lesson-inspector{gap:16px;padding:20px;display:grid}.inspector-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.inspector-grid label{color:var(--muted);font-size:var(--text-sm);gap:7px;display:grid}.inspector-grid textarea{resize:vertical;min-height:260px;font-size:var(--text-sm);padding:12px;line-height:1.6}.inspector-stats{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.inspector-stats span{border:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);border-radius:6px;flex-direction:column;gap:5px;padding:12px;display:flex}.inspector-stats strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xl)}.routing-map{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.routing-map>div{background:var(--blue-soft);border:1px solid #b9cdf1;border-radius:7px;justify-content:space-between;align-items:center;gap:15px;padding:14px 16px;display:flex}.routing-map strong{color:#17396e;font-size:var(--text-sm)}.routing-map span{color:var(--blue);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs)}.api-group{margin-bottom:16px}.api-card-grid{grid-template-columns:repeat(3,minmax(250px,1fr));gap:12px;padding:14px;display:grid}.api-card{border:1px solid var(--line);border-radius:7px;gap:14px;padding:15px;display:grid}.api-card.disabled{opacity:.58}.api-card>header,.api-card>footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.api-card>header>div{align-items:center;gap:10px;display:flex}.api-card>header span:not(.api-state){flex-direction:column;gap:3px;display:flex}.api-card>header strong{font-size:var(--text-sm)}.api-card>header small,.api-card>footer small{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs)}.api-state{background:var(--surface-muted);color:#5f6771;font-size:var(--text-xs);border-radius:99px;padding:5px 8px;font-weight:800}.api-numbers{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.api-numbers span{border:1px solid var(--line-soft);color:var(--muted);font-size:var(--text-xs);border-radius:5px;flex-direction:column;gap:3px;padding:8px;display:flex}.api-numbers strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:var(--text-base)}.api-limits,.api-error{color:var(--muted);font-size:var(--text-xs);text-overflow:ellipsis;margin:0;line-height:1.5;overflow:hidden}.api-error{color:#30343a;background:#f4f4f5;border-left:2px solid #111;padding:7px 8px}.api-card>footer>div{gap:5px;display:flex}.secret-once{overflow-wrap:anywhere;border:1px solid var(--line);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm);background:#f5f6f8;border-radius:6px;margin-bottom:15px;padding:14px;line-height:1.6}.log-table .dev-table{min-width:1100px}.log-table td{max-width:360px}.trash-section{margin-bottom:15px}.trash-list>div{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:20px;min-height:66px;padding:12px 18px;display:flex}.trash-list>div:last-child{border:0}.trash-list>div>span{flex-direction:column;gap:4px;min-width:0;display:flex}.trash-list strong{font-size:var(--text-sm)}.trash-list small{color:var(--muted);font-size:var(--text-xs)}.trash-list>div>div{flex:none;gap:6px;display:flex}.retention-panel{margin-top:16px}.retention-panel>div{grid-template-columns:repeat(4,1fr);gap:0;display:grid}.retention-panel>div>span{border-right:1px solid var(--line-soft);min-height:110px;color:var(--blue);flex-direction:column;justify-content:center;align-items:flex-start;gap:7px;padding:18px;display:flex}.retention-panel>div>span:last-child{border:0}.retention-panel strong{color:var(--ink);font-size:var(--text-sm)}.retention-panel small{color:var(--muted);font-size:var(--text-xs)}@media (max-width:1200px){.dev-metrics,.api-card-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:1050px){.student-grid{grid-template-columns:repeat(2,1fr)}.student-latest,.review-layout{grid-template-columns:1fr}.review-main{border-right:0;border-bottom:1px solid var(--line)}.review-side{grid-template-columns:1fr 1fr}.review-side .button,.review-side .error-box{grid-column:1/-1}.dev-overview-grid{grid-template-columns:1fr}.retention-panel>div{grid-template-columns:1fr 1fr}.retention-panel>div>span:nth-child(2){border-right:0}.retention-panel>div>span:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}}@media (max-width:760px){:root{--sidebar:0px}.login-shell{display:block}.login-intro{display:none}.login-side{min-height:100vh;padding:25px}.sidebar{width:min(285px,86vw);transition:transform .2s;transform:translate(-103%)}.sidebar.open{transform:translate(0);box-shadow:15px 0 50px #0000004d}.mobile-close{color:#fff;background:0 0;border:1px solid #33373d;border-radius:5px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.workspace{margin:0}.topbar{height:64px;padding:0 15px}.menu-button{border:1px solid var(--line);background:#fff;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;margin-right:12px;display:inline-flex}.topbar>span{display:none}.content{padding:28px 15px 50px}.page-title h1{font-size:29px}.page-title p{line-height:1.5}.metrics-row,.result-metrics{grid-template-columns:1fr}.metric{grid-template-columns:1fr auto;align-items:center;display:grid}.metric>div{grid-row:1}.metric>strong{grid-area:1/2/3;margin:0}.metric p{grid-row:2}.lessons-panel{overflow-x:auto}.lessons-panel .panel-head{position:sticky;left:0}.student-grid,.settings-grid,.mode-choice{grid-template-columns:1fr}.level-card{flex-direction:column;align-items:flex-start;gap:18px}.modal-backdrop{place-items:end center;padding:0}.modal{border-radius:12px 12px 0 0;max-height:94vh;overflow-y:auto}.danger-zone{flex-direction:column;align-items:stretch}.danger-zone .button{width:100%}.review-side{grid-template-columns:1fr}.review-side .button,.review-side .error-box{grid-column:auto}.result-comments,.credential-box{grid-template-columns:1fr}.credential-box span{border-right:0;border-bottom:1px solid var(--line)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:760px){.dev-heading{flex-direction:column;align-items:stretch}.dev-heading h1{font-size:29px}.dev-heading>.button,.heading-actions,.heading-actions .button{width:100%}.dev-metrics,.api-card-grid,.routing-map,.inspector-grid,.inspector-stats{grid-template-columns:1fr}.routing-map>div{flex-direction:column;align-items:flex-start}.routing-map span{line-height:1.6}.api-card-grid{padding:10px}.retention-panel>div{grid-template-columns:1fr}.retention-panel>div>span{border-right:0;border-bottom:1px solid var(--line-soft)}.trash-list>div{flex-direction:column;align-items:stretch}.trash-list>div>div{width:100%}.trash-list .button{flex:1}.disk-panel{flex-wrap:wrap;align-items:flex-start}.disk-panel>div{min-width:75%}}html,body,.app-shell,.workspace{background:var(--soft)}body{font-size:14px}.theme-changing body,.theme-changing .login-shell,.theme-changing .login-intro,.theme-changing .login-side,.theme-changing .login-box,.theme-changing .login-badge,.theme-changing .login-features article,.theme-changing .app-shell,.theme-changing .workspace,.theme-changing .topbar,.theme-changing .content,.theme-changing .sidebar,.theme-changing .panel,.theme-changing .modal,.theme-changing .metric,.theme-changing .student-card,.theme-changing input,.theme-changing select,.theme-changing textarea{transition-property:background-color,border-color,color,box-shadow!important;transition-duration:.34s!important;transition-timing-function:cubic-bezier(.22,.61,.36,1)!important}.logo{font-size:var(--text-xl);letter-spacing:-.035em;gap:12px}.logo>span{border-radius:var(--radius-card-sm);background:0 0;border:1px solid;width:34px;height:34px;position:relative}.logo>span:before{border-top:3px solid var(--blue);border-left:3px solid var(--blue);content:"";width:10px;height:10px;position:absolute;top:-1px;left:-1px}.logo>span:after{color:currentColor;font-size:var(--text-sm);letter-spacing:-.08em;font-weight:700}.kicker{font-size:var(--text-sm);letter-spacing:normal;margin-bottom:6px;font-weight:600}.page-title,.dev-heading{padding-left:0;position:relative}.page-title h1,.dev-heading h1{font-size:var(--text-3xl);letter-spacing:-.01em;font-weight:700;line-height:1.2}.page-title p,.dev-heading p{max-width:700px;font-size:var(--text-base);line-height:1.65}.button{border-radius:var(--radius-control);min-height:40px;font-size:var(--text-sm);letter-spacing:normal;padding:0 16px}.button.primary{border-color:var(--blue);background:var(--blue);box-shadow:0 3px 0 var(--blue-dark)}@supports (color:color-mix(in lab, red, red)){.button.primary{box-shadow:0 3px 0 color-mix(in srgb,var(--blue-dark) 72%,transparent)}}.button.primary:hover{background:var(--blue-dark);transform:translateY(-1px)}.button.primary:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.button.secondary,.icon-button,.menu-button{border-color:var(--line);background:var(--surface);color:var(--ink)}.button.secondary:hover,.icon-button:hover{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.button.secondary:hover,.icon-button:hover{border-color:color-mix(in srgb,var(--blue) 55%,var(--line))}}.button.secondary:hover,.icon-button:hover{background:var(--blue-soft);color:var(--blue)}.icon-button{border-radius:var(--radius-control)}.text-button{font-size:var(--text-base);position:relative}.text-button:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:transform .22s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(.18)}.text-button:hover:after{transform:scaleX(1)}.theme-toggle{border:1px solid var(--line);background:var(--surface);border-radius:50%;place-items:center;width:40px;height:40px;min-height:40px;display:grid}@supports (color:color-mix(in lab, red, red)){.theme-toggle{background:color-mix(in srgb,var(--surface) 88%,transparent)}}.theme-toggle{color:var(--ink);padding:0;box-shadow:0 3px 12px #0e141f0d}.theme-toggle:hover{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.theme-toggle:hover{border-color:color-mix(in srgb,var(--blue) 45%,var(--line))}}.theme-toggle:hover{background:var(--blue-soft);color:var(--blue);transform:none}.theme-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.theme-icon{place-items:center;width:20px;height:20px;display:grid;position:relative}.theme-glyph{animation:.28s cubic-bezier(.22,.61,.36,1) both theme-glyph-in}@keyframes theme-glyph-in{0%{opacity:0;transform:rotate(-12deg)scale(.82)}to{opacity:1;transform:rotate(0)scale(1)}}.topbar-actions{align-items:center;gap:13px;display:flex}.login-theme{z-index:3;position:absolute;top:30px;right:34px}@supports (color:color-mix(in lab, red, red)){.topbar{background:color-mix(in srgb,var(--surface) 90%,transparent)}}.topbar{padding-inline:clamp(20px,4vw,58px)}.sidebar{width:var(--sidebar);border-color:var(--sidebar-line);background:var(--sidebar-bg)}.sidebar-logo{border-color:var(--sidebar-line);height:76px}.sidebar nav button,.logout{border-radius:var(--radius-control);height:45px;font-size:var(--text-base);position:relative}.sidebar nav button:before{content:"";background:0 0;width:3px;transition:background-color .2s,transform .2s;position:absolute;top:12px;bottom:12px;left:-13px}.sidebar nav button:hover,.logout:hover{background:#ffffff0b}.sidebar nav button.active{background:#3269d32e}.sidebar nav button.active:before{background:#79a8ff;transform:translate(5px)}.sidebar-user{border-color:var(--sidebar-line)}.workspace{margin-left:var(--sidebar)}.content{width:min(1320px,100%);padding-top:46px;animation:.34s cubic-bezier(.22,.7,.25,1) content-enter}@keyframes content-enter{0%{opacity:0;transform:translateY(8px)}}.panel{border-color:var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:0 1px #10172208}.panel-head{border-color:var(--line-soft);min-height:78px;padding-inline:22px}.panel-head h2{font-size:var(--text-xl)}.metric,.dev-metric{border-color:var(--line);background:var(--surface);border-radius:14px 3px 14px 14px;padding:21px;position:relative;overflow:hidden}.metric:after,.dev-metric:after,.metric.featured:after{display:none}.metric>div span,.dev-metric>div span{font-size:var(--text-sm)}.metric>strong,.dev-metric>strong{font-size:29px}.metric p,.dev-metric p{font-size:var(--text-sm);line-height:1.45}.metrics-row,.dev-metrics{gap:14px;margin-bottom:18px}input,select,textarea{border-color:var(--line);border-radius:var(--radius-control);background:var(--surface-raised);color:var(--ink)}label input,label select,label textarea{font-weight:400}input::placeholder,textarea::placeholder{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 75%,transparent)}}input:focus,select:focus,textarea:focus{border-color:var(--blue);background:var(--surface);box-shadow:0 0 0 3px var(--blue)}@supports (color:color-mix(in lab, red, red)){input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 15%,transparent)}}.login-shell{background:var(--soft)}.login-side{background:var(--surface);position:relative}.login-intro{background:#0b4fb8}.login-intro:before,.login-intro:after{border-radius:var(--radius-card);transform:rotate(14deg)}.login-intro h1{font-weight:620}.login-intro h1 em{font-family:Georgia,Times New Roman,serif;font-weight:400}.login-box h2{font-size:34px}.setup-box{width:min(430px,100%)}.setup-box form{grid-template-columns:1fr 1fr}.setup-box form>label:first-child,.setup-box form>.error-box,.setup-box form>.button{grid-column:1/-1}.boot-screen{background:var(--surface)}.lesson-row,.student-lesson-list>button,.mini-provider-list>div,.compact-list>div,.simple-log-list>div,.trash-list>div{border-color:var(--line-soft);background:0 0}.lesson-row{min-height:82px;padding-inline:21px}.lesson-name strong{font-size:var(--text-base)}.lesson-name span,.lesson-date,.lesson-status small{font-size:var(--text-sm)}.status-icon{border-radius:var(--radius-card-sm);background:var(--surface-muted)}.student-toolbar,.student-stats{border-color:var(--line-soft)}.student-toolbar label{border-color:var(--line);border-radius:var(--radius-control)}.student-card{border-color:var(--line);background:var(--surface);border-radius:14px 3px 14px 14px;transition:border-color .18s,transform .18s cubic-bezier(.2,.7,.2,1)}.student-card:hover{border-color:var(--blue);box-shadow:none;transform:translateY(-3px)}.student-card h3{font-size:var(--text-xl)}.ai-comment{border-left:0;border-top:3px solid var(--blue);border-radius:var(--radius-card-sm);background:var(--blue-soft)}.ai-comment strong,.ai-comment p{color:var(--ink)}.accordion,.student-lesson-list>button{background:var(--surface);color:var(--ink)}.word-list span{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.word-list span{border-color:color-mix(in srgb,var(--blue) 40%,var(--line))}}.word-list span{border-radius:var(--radius-control);background:var(--blue-soft)}.pill{border-radius:var(--radius-control)}.pill.queued,.api-state{background:var(--surface-muted);color:var(--muted)}.pill.processing{background:var(--color-accent-soft);color:var(--color-accent-strong)}.pill.failed{background:var(--color-danger-soft);color:var(--color-danger)}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a142473}.modal{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop)}.modal>header,.modal-actions,.review-main,.review-section-head,.finding{border-color:var(--line-soft)}.review-main textarea{font-size:var(--text-base);font-weight:400;line-height:1.75}.review-side{background:var(--surface-muted)}.review-section,.score-control,.computed span,.audio-player,.result-comments .teacher-comment,.credential-box,.danger-zone{border-color:var(--line);background:var(--surface)}.drop-zone{border-color:var(--line);background:var(--surface-muted)}.drop-zone:hover,.drop-zone.selected{background:var(--blue-soft)}.mode-choice{border:0;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;display:grid}.mode-choice legend{color:var(--muted);font-size:var(--text-sm);grid-column:1/-1;padding:0 0 7px}.mode-choice label{border:1px solid var(--line);background:var(--surface-muted);cursor:pointer;border-radius:7px;align-items:flex-start;gap:9px;padding:12px;display:flex}.mode-choice label.selected{border-color:var(--blue);background:var(--blue-soft)}.mode-choice label:focus-within{outline:2px solid var(--blue);outline-offset:2px}.mode-choice input{width:15px;height:15px;accent-color:var(--blue);flex:none;margin-top:2px}.mode-choice span{gap:3px;display:grid}.mode-choice strong{font-size:var(--text-sm)}.mode-choice small{color:var(--muted);font-size:var(--text-xs);line-height:1.45}.mode-choice:disabled label{opacity:.55;cursor:default}.mode-hint{border-left:2px solid var(--blue);background:var(--blue-soft);color:var(--muted);font-size:var(--text-xs);border-radius:0 6px 6px 0;grid-column:1/-1;margin:2px 0 0;padding:10px 12px;line-height:1.6}.mode-hint b{color:var(--ink);font-weight:650}.level-screen{gap:16px;display:grid}.level-loading{min-height:180px;color:var(--muted);justify-content:center;align-items:center;display:flex}.level-card{align-items:center;gap:26px;padding:26px;display:flex}.level-card-body{gap:6px;display:grid}.level-card-body h2{letter-spacing:-.05em;margin:0;font-size:34px;font-weight:650}.level-card-body p{max-width:46ch;color:var(--muted);font-size:var(--text-sm);margin:0;line-height:1.6}.level-streak{color:var(--blue)!important}.level-ring{flex:none;position:relative}.level-ring-track{stroke:var(--line-soft)}.level-ring-value{stroke:var(--blue);transition:stroke-dashoffset .35s}.level-ring-label{align-content:center;justify-items:center;gap:2px;display:grid;position:absolute;inset:0}.level-ring-label strong{letter-spacing:-.05em;font-size:29px;font-weight:650}.level-ring-label span{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.level-ring-label i{font-size:var(--text-xs);font-style:normal}.calibration-dots{flex:none;grid-template-columns:repeat(5,10px);gap:7px;display:grid}.calibration-dots i{background:var(--line);border-radius:50%;width:10px;height:10px}.calibration-dots i.done{background:var(--blue)}.ladder-card{gap:16px;padding:22px 24px 18px;display:grid}.ladder-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ladder-points{gap:2px;display:grid}.ladder-points strong{font-family:var(--font-plex-mono),monospace;font-variant-numeric:tabular-nums;letter-spacing:-.05em;color:var(--blue);font-size:40px;font-weight:650;line-height:1.05}.ladder-points strong.down{color:var(--muted)}.ladder-points small{color:var(--muted);font-size:var(--text-sm)}.ladder-now{text-align:right;justify-items:end;gap:2px;display:grid}.ladder-now strong{letter-spacing:-.04em;font-size:22px;font-weight:650}.ladder{padding:0 9px 2px;position:relative}.ladder-track{background:var(--line-soft);border-radius:999px;height:8px;position:relative}.ladder-fill{background:linear-gradient(90deg,var(--blue),var(--blue));border-radius:999px;height:100%;position:absolute;top:0;left:0}@supports (color:color-mix(in lab, red, red)){.ladder-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--blue) 55%,transparent),var(--blue))}}.ladder-fill{transition:width .9s cubic-bezier(.22,.8,.28,1)}.ladder-tick{background:var(--muted);border-radius:50%;width:3px;height:3px;margin-left:-1.5px;position:absolute;top:50%}@supports (color:color-mix(in lab, red, red)){.ladder-tick{background:color-mix(in srgb,var(--muted) 45%,transparent)}}.ladder-tick{transform:translateY(-50%)}.ladder-tick.passed{background:#ffffffb3}.ladder-marker{border:3px solid var(--surface);background:var(--blue);width:16px;height:16px;box-shadow:0 0 0 3px var(--blue);border-radius:50%;margin-left:-8px;position:absolute;top:50%}@supports (color:color-mix(in lab, red, red)){.ladder-marker{box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 22%,transparent)}}.ladder-marker{transition:left .9s cubic-bezier(.22,.8,.28,1);transform:translateY(-50%)}.ladder-steps{height:12px;margin-top:10px;position:relative}.ladder-steps span{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);letter-spacing:.03em;white-space:nowrap;position:absolute;transform:translate(-50%)}.ladder-steps span.passed{color:var(--ink);font-weight:600}.ladder-note{color:var(--muted);font-size:var(--text-sm);margin:0}.ladder-card.locked .ladder-track{opacity:.55}@media (max-width:640px){.ladder-points strong{font-size:32px}.ladder-steps span{font-size:var(--text-xs)}}.award-card{border-color:var(--blue);background:var(--blue-soft);align-items:center;gap:16px;padding:18px 22px;animation:.3s ease-out award-in;display:flex}@keyframes award-in{0%{opacity:0;transform:translateY(-6px)}}.award-card.promoted{border-color:var(--color-emerald);background:#18a05e17}.award-card.demoted{border-color:var(--muted);background:var(--surface-muted)}.award-mark{background:var(--surface);width:44px;height:44px;color:var(--blue);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.award-card.promoted .award-mark{color:var(--color-emerald)}.award-body{gap:3px;display:grid}.award-body strong{font-family:var(--font-plex-mono),monospace;font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:27px}.award-body small{color:var(--muted);font-size:var(--text-xs)}.level-history-list{display:grid}.level-event{border-bottom:1px solid var(--line-soft)}.level-event:last-child{border:0}.level-event-head{width:100%;min-height:62px;color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:12px 18px;display:flex}.level-event-head:disabled{cursor:default}.level-event-mark{background:var(--surface-muted);width:26px;height:26px;color:var(--muted);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.level-event-mark.promoted{color:var(--color-emerald);background:#18a05e1f}.level-event-mark.calibrated,.level-event-mark.teacher_override{background:var(--blue-soft);color:var(--blue)}.level-event-body{flex:1;gap:3px;display:grid}.level-event-body strong{font-size:var(--text-sm)}.level-event-body small{color:var(--muted);font-size:var(--text-xs)}.level-event-head b{font-family:var(--font-plex-mono),monospace;font-size:var(--text-base);font-variant-numeric:tabular-nums}.level-event-head b.up{color:var(--color-emerald)}.level-event-head b.down{color:var(--muted)}.breakdown{border-top:1px solid var(--line-soft);gap:12px;padding:16px 18px;display:grid}.breakdown-note{color:var(--muted);font-size:var(--text-sm);margin:0;line-height:1.6}.breakdown-category{gap:7px;display:grid}.breakdown-head{color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.breakdown-head>span{flex:1;gap:2px;display:grid}.breakdown-head strong{font-size:var(--text-sm)}.breakdown-head small{color:var(--muted);font-size:var(--text-xs)}.breakdown-head b{font-family:var(--font-plex-mono),monospace;font-size:var(--text-base);font-variant-numeric:tabular-nums}.breakdown-bar{background:var(--line-soft);border-radius:5px;height:5px;overflow:hidden}.breakdown-bar i{border-radius:inherit;background:var(--blue);height:100%;transition:width .5s;display:block}.breakdown-errors{gap:10px;padding:4px 0 8px;display:grid}.breakdown-error{border-left:2px solid var(--line);gap:5px;padding-left:12px;display:grid}.breakdown-error-head{align-items:center;gap:8px;display:flex}.breakdown-error-head code{background:var(--surface-muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);border-radius:4px;padding:2px 6px}.breakdown-error-head span{color:var(--muted);font-size:var(--text-xs);flex:1}.breakdown-error-head em{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);font-style:normal}.breakdown-fix{font-size:var(--text-sm);align-items:center;gap:7px;margin:0;display:flex}.breakdown-fix del{color:var(--muted);text-decoration-thickness:1px}.breakdown-fix ins{color:var(--blue);text-decoration:none}.breakdown-why{color:var(--muted);font-size:var(--text-sm);margin:0;line-height:1.55}.breakdown-structures{border-top:1px solid var(--line-soft);gap:8px;padding-top:12px;display:grid}.breakdown-structures>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.breakdown-structures code{background:var(--surface-muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);border-radius:4px;padding:2px 6px}.breakdown-structures span{font-size:var(--text-sm)}.breakdown-structures small{width:100%;color:var(--muted);font-size:var(--text-xs);font-style:italic}.review-section-body{padding:15px}.coded-findings{gap:16px;display:grid}.coded-summary{color:var(--muted);font-size:var(--text-sm);margin:0;line-height:1.6}.coded-summary b{color:var(--ink)}.coded-group{gap:9px;display:grid}.coded-finding{border:1px solid var(--line);border-radius:7px;align-items:flex-start;gap:12px;padding:11px 13px;display:flex}.coded-finding.rejected{opacity:.5}.coded-finding-body{flex:1;gap:5px;display:grid}.coded-finding-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.coded-finding-head code{background:var(--surface-muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);border-radius:4px;padding:2px 6px}.coded-finding-head span{color:var(--muted);font-size:var(--text-xs);flex:1}.coded-finding-head em{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-xs);font-style:normal}.coded-doubt{background:var(--warn-soft,#f6eeda);color:var(--color-amber);font-size:var(--text-xs);border-radius:99px;padding:2px 7px;font-weight:700}.coded-actions{flex:none;gap:5px;display:flex}.coded-actions .icon-button.active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.coded-actions .icon-button.danger.active{border-color:var(--color-danger);color:var(--color-danger);background:#a8443a1a}.publish-preview{border:1px solid var(--blue);background:var(--blue-soft);border-radius:7px;gap:5px;margin-bottom:16px;padding:14px 16px;display:grid}.publish-preview.promoted{border-color:var(--color-emerald);background:#18a05e17}.publish-preview.muted-preview{border-color:var(--line);background:var(--surface-muted);color:var(--muted);font-size:var(--text-sm);line-height:1.6}.publish-preview strong{font-family:var(--font-plex-mono),monospace;font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:20px}.publish-preview p{font-size:var(--text-sm);margin:0}.publish-preview small{color:var(--muted);font-size:var(--text-xs);line-height:1.6}.streak-card .panel-head h2{letter-spacing:-.04em;font-size:19px}.streak-flame{background:var(--blue-soft);width:36px;height:36px;color:var(--blue);border-radius:50%;justify-content:center;align-items:center;display:flex}.streak-weeks{flex-wrap:wrap;gap:10px;padding:16px 18px;display:flex}.streak-week{justify-items:center;gap:5px;display:grid}.streak-days{gap:3px;display:flex}.streak-days i{background:var(--line);border-radius:3px;width:9px;height:16px}.streak-days i.attended{background:var(--blue)}.streak-days i.missed{background:var(--line-strong,#c3cfcb)}.streak-days i.cancelled{background:repeating-linear-gradient(45deg,var(--line),var(--line) 2px,transparent 2px,transparent 4px)}.streak-days i.upcoming{border:1px dashed var(--line-strong,var(--faint));background:0 0}.streak-week small{color:var(--muted);font-size:var(--text-xs)}.streak-week.counted small{color:var(--blue)}.streak-facts{border-top:1px solid var(--line-soft);color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;gap:8px 18px;padding:12px 18px;display:flex}.streak-facts span{align-items:center;gap:6px;display:flex}.streak-stale{color:var(--color-amber)}.streak-next{border-top:1px solid var(--line-soft);font-size:var(--text-sm);margin:0;padding:12px 18px}.input-action button{border-color:var(--line);background:var(--surface-muted)}.upload-progress>i,.mini-progress,.disk-panel i{background:var(--line-soft)}.upload-progress em{position:relative;overflow:hidden}.upload-progress em:after{content:"";background:linear-gradient(90deg,#0000,#ffffffa6,#0000);animation:1.8s ease-in-out infinite progress-glint;position:absolute;inset:0;transform:translate(-100%)}@keyframes progress-glint{60%,to{transform:translate(100%)}}.error-box,.info-box,.page-error{background:var(--blue-soft);color:var(--ink)}.dev-table th{border-color:var(--line);background:var(--surface-muted);color:var(--muted)}.dev-table td{border-color:var(--line-soft);color:var(--muted)}.dev-table tbody tr:hover{background:var(--surface-muted)}.dev-tabs{border-color:var(--line);background:var(--surface)}.routing-map>div{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.routing-map>div{border-color:color-mix(in srgb,var(--blue) 36%,var(--line))}}.routing-map>div{border-radius:var(--radius-card-sm);background:var(--blue-soft)}.routing-map strong,.routing-map span{color:var(--ink)}.api-card,.api-numbers span,.inspector-stats span{border-color:var(--line);border-radius:var(--radius-control);background:var(--surface)}.api-error,.secret-once{background:var(--surface-muted);color:var(--ink)}.retention-panel>div>span{border-color:var(--line-soft)}[data-theme=dark] .button.primary{color:#07101f;box-shadow:0 3px #416da9}[data-theme=dark] .button.danger{color:#111820;background:#e6ebf2}[data-theme=dark] .status-icon.failed{background:var(--color-danger-soft);color:var(--color-danger)}[data-theme=dark] .login-intro{background:#0a2f68}[data-theme=dark] audio{filter:invert(.88)hue-rotate(180deg)}.student-card-open{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.student-card-open>p{color:var(--muted);font-size:var(--text-sm);margin:0}.student-card .student-stats{margin-bottom:10px}.student-open-label{color:var(--blue);font-size:var(--text-xs);justify-content:flex-end;align-items:center;gap:5px;font-weight:800;display:flex}.student-card-foot{border-top:1px solid var(--line-soft);margin-top:13px;padding-top:13px}.back-button{min-height:34px;color:var(--blue);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin-bottom:18px;padding:0;font-weight:800;display:inline-flex}.student-attention{border:1px solid var(--blue);align-items:flex-start;gap:10px;display:flex}@supports (color:color-mix(in lab, red, red)){.student-attention{border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line))}}.student-attention{border-radius:var(--radius-card-sm);background:var(--blue-soft);color:var(--blue);margin:-2px 0 18px;padding:13px 15px}.student-attention span{flex-direction:column;gap:4px;display:flex}.student-attention strong{color:var(--ink);font-size:var(--text-sm)}.student-attention small{color:var(--muted);font-size:var(--text-xs)}.upload-task-list{border-top:1px solid var(--line-soft);gap:9px;padding-top:16px;display:grid}.upload-task{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface-muted);gap:9px;padding:12px;display:grid}.upload-task.completed{border-color:#168450}@supports (color:color-mix(in lab, red, red)){.upload-task.completed{border-color:color-mix(in srgb,#168450 45%,var(--line))}}.upload-task.paused{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.upload-task.paused{border-color:color-mix(in srgb,var(--blue) 45%,var(--line))}}.upload-task-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.upload-task-head>span{flex-direction:column;gap:4px;min-width:0;display:flex}.upload-task-head strong{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-task-head small{color:var(--muted);font-size:var(--text-xs)}.upload-task-head b{color:var(--blue);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm);flex:none}.upload-task .upload-progress>i{display:block}.upload-task-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.upload-task-error{color:var(--color-danger);font-size:var(--text-xs);line-height:1.4}@media (max-width:760px){.sidebar{width:min(285px,86vw)}.topbar-actions{gap:8px}.topbar-actions>.button{width:42px;padding:0;font-size:0;overflow:hidden}.topbar-actions>.button svg{width:18px;height:18px}.login-theme{top:20px;right:20px}.login-side{padding:92px 22px 36px}.content{padding:32px 17px 58px}.page-title,.dev-heading{padding-left:13px}.page-title h1,.dev-heading h1{font-size:31px}.metrics-row{gap:10px}.metric{min-height:106px}.modal{border-radius:16px 16px 0 0}}@media (max-width:520px){.setup-box form{grid-template-columns:1fr}.setup-box form>*{grid-column:1!important}}.brand-logo{flex:none;display:block;position:relative}.brand-logo-crop{width:100%;height:100%;position:relative;overflow:hidden}.brand-logo-crop img{object-fit:contain}.brand-image-dark,[data-theme=dark] .brand-logo-horizontal .brand-image-light{display:none}[data-theme=dark] .brand-logo-horizontal .brand-image-dark{display:block}.brand-logo-horizontal{width:216px;height:54px}.brand-logo-stacked{width:min(240px,55%);height:min(240px,22vw);min-height:170px}.brand-logo-stacked .brand-logo-crop{width:100%;height:100%}.brand-logo-mark{width:54px;height:54px}.brand-logo-mark .brand-logo-crop{width:100%;height:100%}body{color:var(--ink);background:var(--soft)}::selection{background:var(--color-accent-soft);color:var(--ink)}.kicker{color:var(--faint);font-size:var(--text-sm);letter-spacing:normal;font-weight:600}.kicker.light{color:#f3f6fcb8}.login-shell{--login-bg:var(--color-bg-base);--login-card:var(--glass-bg-strong);--login-glow:var(--color-accent-soft);isolation:isolate;background:radial-gradient(circle at 18% 16%,var(--login-glow),transparent 42%),var(--login-bg);grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr);min-height:100vh;display:grid;position:relative;overflow:hidden}.login-shell:after{z-index:-1;content:"";filter:blur(2px);border:64px solid #6c8cf512;border-radius:50%;width:300px;height:300px;position:absolute;top:11%;right:34%}.login-intro{min-height:100vh;color:var(--ink);background:0 0;justify-content:flex-start;gap:clamp(38px,6vh,68px);padding:clamp(28px,4.5vw,66px) clamp(34px,5.5vw,92px);display:flex;position:relative;overflow:visible}.login-intro:before{background:var(--line);border:0;border-radius:0;width:1px;height:auto;inset:0 0 0 auto;transform:none}.login-intro:after{z-index:-1;border:1px solid var(--line);opacity:.7;background:0 0;border-radius:50%;width:180px;height:180px;top:auto;bottom:8%;right:8%;transform:none}.login-header,.login-message,.login-features{z-index:1;position:relative}.login-header{align-items:center;min-height:58px;display:flex}.login-header .brand-logo-horizontal{border-radius:var(--radius-control);background:0 0;width:218px;height:55px;overflow:hidden}.login-message{flex-direction:column;align-items:flex-start;max-width:760px;display:flex}.login-badge{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:8px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.login-badge{background:color-mix(in srgb,var(--surface) 76%,transparent)}}.login-badge{color:var(--blue-dark);font-size:var(--text-base);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);margin-bottom:28px;padding:8px 13px;font-weight:700}.login-message>.kicker{color:var(--color-accent);font-size:var(--text-base);letter-spacing:normal;margin-bottom:12px;font-weight:600}.login-intro h1{max-width:800px;color:var(--blue-dark);letter-spacing:-.07em;margin:0 0 24px;font-size:clamp(58px,6.4vw,96px);font-weight:720;line-height:.91}.login-intro h1 em{color:var(--blue);font-family:inherit;font-style:normal;font-weight:720}.login-intro p{max-width:620px;color:var(--muted);margin:0;font-size:clamp(14px,1.15vw,17px);line-height:1.65}.login-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:auto;display:grid}.login-features article{border:1px solid var(--line);background:var(--surface);border-radius:14px;align-items:end;min-height:112px;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.login-features article{background:color-mix(in srgb,var(--surface) 76%,transparent)}}.login-features article{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:auto 1fr;gap:15px;padding:18px;transition:border-color .2s,background-color .2s,transform .2s}.login-features article:hover{border-color:var(--blue);background:var(--surface);transform:translateY(-3px)}.login-features article>span{background:var(--blue-soft);width:34px;height:34px;color:var(--blue);border-radius:10px;place-items:center;display:grid;position:absolute;top:16px;right:16px}.login-features article>b{display:none}.login-features article>div{flex-direction:column;gap:3px;min-width:0;display:flex}.login-features strong{color:var(--ink);font-size:var(--text-base)}.login-features small{color:var(--muted);font-size:var(--text-sm);line-height:1.35}.login-side{background:0 0;justify-content:center;align-items:center;min-height:100vh;padding:clamp(86px,8vw,128px) clamp(34px,5vw,82px);display:flex;position:relative}.login-side:before{z-index:-1;content:"";filter:blur(12px);background:radial-gradient(circle at 50% 40%,#6c8cf53b,#6c8cf50a 62%,#0000 72%);border-radius:42% 58% 55% 45%;position:absolute;inset:8% 7%}.login-box{border:1px solid var(--line);width:min(440px,100%)}@supports (color:color-mix(in lab, red, red)){.login-box{border:1px solid color-mix(in srgb,var(--line) 82%,transparent)}}.login-box{background:var(--login-card);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-radius:22px;padding:clamp(34px,4vw,50px);box-shadow:0 28px 90px #16324a24,inset 0 1px #ffffffb8}.login-box-label{color:var(--faint);font-size:var(--text-sm);letter-spacing:normal;text-transform:none;margin-bottom:10px;font-weight:600;display:block}.login-box h2{color:var(--ink);letter-spacing:-.055em;margin:0 0 9px;font-size:clamp(34px,3vw,44px);font-weight:720;line-height:1}.login-box>p{color:var(--muted);font-size:var(--text-base);margin-bottom:34px}.login-box label{color:var(--ink)}.login-box input{background:var(--surface-raised);border-radius:10px}@supports (color:color-mix(in lab, red, red)){.login-box input{background:color-mix(in srgb,var(--surface-raised) 90%,transparent)}}.login-box input{color:var(--ink)}.login-box .button{border-radius:10px;min-height:50px;margin-top:5px}.login-theme{top:28px;right:30px}.login-theme .theme-toggle{border-color:var(--line);background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.login-theme .theme-toggle{background:color-mix(in srgb,var(--surface) 82%,transparent)}}.login-theme .theme-toggle{color:var(--ink);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.security-note{color:var(--muted)}.boot-screen{background:var(--soft);color:var(--color-accent)}.boot-screen .brand-logo{width:220px;height:47px}.sidebar{border-color:var(--sidebar-line);background:var(--sidebar-bg);color:var(--ink)}.sidebar-logo{border-color:var(--sidebar-line);height:86px;padding:0 24px}.sidebar .brand-logo-horizontal{width:auto;height:42px}.role-caption{color:#8a98ab;margin:24px 22px 12px}.sidebar nav{gap:6px;padding:0 14px}.sidebar nav button,.logout{color:#68778e;border-radius:8px;height:46px;padding:0 14px}.sidebar nav button:before{display:none}.sidebar nav button:hover{background:var(--blue-soft);color:var(--ink)}.sidebar nav button.active{background:var(--color-accent-soft);color:var(--color-accent-strong)}.sidebar nav button.active:after{content:"";background:#7fa1f3;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.sidebar-user{border-color:var(--sidebar-line);color:var(--ink);background:0 0;margin-top:auto;padding:19px 18px 12px}.sidebar-user small{color:var(--muted)}.sidebar-user .avatar{background:var(--color-accent-soft);color:var(--color-accent-strong)}.logout{border-radius:var(--radius-control);width:auto;color:var(--muted);background:0 0;margin:0 14px 14px;padding:0 12px}.logout:hover{background:var(--surface-muted);color:var(--ink)}.mobile-close{border-color:var(--line);color:var(--color-accent-strong)}.topbar{border-color:var(--line);background:var(--surface);height:86px}@supports (color:color-mix(in lab, red, red)){.topbar{background:color-mix(in srgb,var(--surface) 94%,transparent)}}.topbar>span{color:var(--muted)}.content{width:min(1380px,100%);padding-top:52px}.page-title,.dev-heading{padding-left:0}.page-title:before,.dev-heading:before{display:none}.page-title h1,.dev-heading h1{color:var(--ink);font-size:var(--text-3xl);letter-spacing:-.01em;font-weight:700}.page-title p,.dev-heading p{color:var(--muted);font-size:var(--text-base)}.page-title .kicker,.dev-heading .kicker{align-items:center;gap:10px;display:flex}.page-title .kicker:before,.dev-heading .kicker:before{display:none}.button{border-radius:8px;min-height:44px}.button.primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast);box-shadow:none}.button.primary:hover{border-color:var(--blue-dark);background:var(--blue-dark)}.button.secondary,.icon-button,.menu-button{border-color:var(--line);background:var(--surface);color:var(--ink);border-radius:8px}.button.danger{border-color:var(--blue-dark);background:var(--blue-dark);color:#fff}.theme-toggle{box-shadow:none;border-radius:8px}.panel{border-color:var(--line);border-radius:12px;box-shadow:0 10px 32px #1e3a6309}.panel-head{border-color:var(--line-soft)}.metric,.dev-metric{border-color:var(--line);border-radius:12px;min-height:142px;padding:22px}.metric:after,.dev-metric:after{background:var(--blue);border-radius:4px;width:32px;height:5px;top:auto;bottom:18px;right:18px}.metric.featured{border-color:var(--line);background:var(--surface)}.metric.featured:after{background:var(--blue)}.metric>strong,.dev-metric>strong{color:var(--ink);font-size:34px}.metric.featured>strong{color:var(--ink)}.metrics-row,.dev-metrics{gap:16px}.lesson-row{min-height:86px}.lesson-row:hover,.student-lesson-list>button:hover{background:var(--blue-soft)}.status-icon,.avatar{border-radius:8px}.student-card{border-radius:12px}.student-card:hover{border-color:var(--blue);box-shadow:0 14px 34px #1e3a6314}.word-list span,.pill,.routing-map>div,.api-card,.api-numbers span,.inspector-stats span{border-radius:8px}.ai-comment{border-top:0;border-left:4px solid var(--blue);border-radius:8px}.modal{border-radius:14px}.drop-zone,.danger-zone,.credential-box,.review-section,.score-control,.audio-player,.dev-tabs{border-radius:10px}.dev-tabs button.active{background:var(--blue-dark);color:#fff}[data-theme=dark] .sidebar nav button{color:#a6b3c7}[data-theme=dark] .sidebar nav button:hover{color:var(--ink)}[data-theme=dark] .sidebar nav button.active{color:#fff;background:#315b9f}[data-theme=dark] .sidebar-user,[data-theme=dark] .logout,[data-theme=dark] .logout:hover{background:#081321}[data-theme=dark] .mobile-close{color:var(--ink)}[data-theme=dark] .login-box{border-color:#7b93f03d;box-shadow:0 32px 100px #00000061,inset 0 1px #ffffff0f}[data-theme=dark] .login-badge,[data-theme=dark] .login-features article{background:#0f1f33b8}[data-theme=dark] .login-header .brand-logo-horizontal{box-shadow:none;background:0 0}[data-theme=dark] .button.primary{color:#fff}[data-theme=dark] .metric.featured{border-color:var(--line);background:var(--surface)}@media (max-width:900px){.login-shell{grid-template-columns:1fr}.login-intro{gap:38px;min-height:auto;padding:30px 32px 42px}.login-intro:before{width:auto;height:1px;inset:auto 0 0}.login-intro h1{font-size:clamp(52px,11vw,76px)}.login-side{min-height:auto;padding:90px 24px 64px}.login-theme{top:24px}}@media (max-width:760px){.login-intro{display:flex}.sidebar{width:min(300px,88vw)}.sidebar.open{box-shadow:22px 0 60px #122b4d38}.workspace{margin-left:0}.content{padding-top:36px}.modal{border-radius:16px 16px 0 0}}@media (max-width:520px){.login-intro{gap:30px;padding:22px 18px 30px}.login-header .brand-logo-horizontal{width:184px;height:46px}.login-badge{margin-bottom:22px}.login-intro h1{font-size:42px}.login-intro p{font-size:var(--text-base)}.login-features{grid-template-columns:1fr}.login-features article{min-height:92px}.login-side{padding:84px 18px 34px}.login-box{padding:28px 22px}.login-box h2{font-size:34px}}.user-shell{--sidebar:276px;background:var(--soft);min-height:100vh}.user-shell .workspace{background:var(--soft);margin-left:var(--sidebar);position:relative}.user-shell .sidebar{border-right:1px solid var(--sidebar-line);box-shadow:none}.user-shell .sidebar-logo{border-bottom:1px solid var(--sidebar-line);height:88px;padding:0 24px}.user-shell .sidebar-logo .brand-logo-horizontal{border-radius:var(--radius-control);background:0 0;width:170px;height:42px;overflow:hidden}[data-theme=dark] .user-shell .sidebar-logo .brand-logo-horizontal{background:var(--sidebar-bg)}.user-shell .sidebar-section{border-bottom:1px solid var(--sidebar-line);flex-direction:column;align-items:flex-start;gap:4px;margin:0 18px 18px;padding:21px 6px 17px;display:flex}.user-shell .sidebar-section>span{color:var(--ink);font-size:var(--text-base);font-weight:720;line-height:1.35;display:block}.user-shell .sidebar-section>small{color:var(--muted);font-size:var(--text-sm);line-height:1.35;display:block}.user-shell .sidebar nav{gap:7px;padding:0 14px;display:grid}.user-shell .sidebar nav button{height:48px;color:var(--muted);border-radius:10px;align-items:center;gap:12px;padding:0 14px;transition:background-color .18s,color .18s,transform .18s;display:flex;position:relative;overflow:visible}.user-shell .sidebar nav button:before{content:"";background:0 0;border-radius:0 3px 3px 0;width:3px;display:block;position:absolute;top:12px;bottom:12px;left:-14px;transform:none}.user-shell .sidebar nav button svg{color:var(--muted);flex:none}@supports (color:color-mix(in lab, red, red)){.user-shell .sidebar nav button svg{color:color-mix(in srgb,var(--muted) 84%,var(--blue))}}.user-shell .sidebar nav button svg{transition:color .18s}.user-shell .sidebar nav button:hover{background:var(--blue-soft);color:var(--ink);transform:translate(2px)}.user-shell .sidebar nav button:hover svg{color:var(--blue)}.user-shell .sidebar nav button.active{background:var(--blue)}@supports (color:color-mix(in lab, red, red)){.user-shell .sidebar nav button.active{background:color-mix(in srgb,var(--blue) 13%,var(--surface))}}.user-shell .sidebar nav button.active{color:var(--blue-dark)}.user-shell .sidebar nav button.active:before{background:var(--blue)}.user-shell .sidebar nav button.active:after{display:none}.user-shell .sidebar nav button.active svg{color:var(--blue)}.user-shell .sidebar-user{border-top:1px solid var(--sidebar-line);color:var(--ink);background:0 0;margin:20px 14px 0;padding:18px 10px 11px}.user-shell .sidebar-user small{color:var(--muted)}.user-shell .sidebar-user .avatar{background:var(--blue-soft);color:var(--blue)}.user-shell .logout,.user-shell .logout:hover{height:40px;color:var(--muted);background:0 0;margin:0 14px 14px;padding:0 10px}.user-shell .logout:hover{color:var(--ink)}.user-shell .topbar{border-bottom:1px solid var(--line);height:88px}@supports (color:color-mix(in lab, red, red)){.user-shell .topbar{border-bottom:1px solid color-mix(in srgb,var(--line) 86%,transparent)}}.user-shell .topbar{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.user-shell .topbar{background:color-mix(in srgb,var(--surface) 88%,transparent)}}.user-shell .topbar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:0 clamp(22px,4vw,58px)}.user-shell .topbar>.topbar-context{align-items:center;gap:13px;min-width:0;margin-left:0;margin-right:0;display:flex}.user-shell .topbar-context>div{align-items:center;gap:8px;min-width:0;display:flex}.user-shell .topbar-context span{color:var(--muted);font-size:var(--text-base)}.user-shell .topbar-context span:after{color:var(--line);content:"/";margin-left:8px}.user-shell .topbar-context strong{color:var(--ink);font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-shell .topbar-actions{align-items:center;gap:11px;margin-left:auto;display:flex}.timezone{border-right:1px solid var(--line);color:var(--muted);font-size:var(--text-sm);align-items:center;gap:6px;margin-right:3px;padding-right:14px;display:inline-flex}.user-shell .topbar .button.primary{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 7px 22px var(--blue)}@supports (color:color-mix(in lab, red, red)){.user-shell .topbar .button.primary{box-shadow:0 7px 22px color-mix(in srgb,var(--blue) 18%,transparent)}}.user-shell .content{width:min(1380px,100%);padding:48px clamp(22px,4vw,58px) 78px;position:relative}.user-shell .page-title{grid-template-columns:minmax(0,1fr);align-items:center;gap:18px;margin-bottom:30px;padding:0;display:grid}.user-shell .page-title:has(.page-title-icon){grid-template-columns:54px minmax(0,1fr)}.user-shell .page-title:before{display:none}.user-shell .page-title-icon{border:1px solid var(--blue);place-items:center;width:54px;height:54px;display:grid}@supports (color:color-mix(in lab, red, red)){.user-shell .page-title-icon{border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line))}}.user-shell .page-title-icon{background:var(--surface);border-radius:15px}@supports (color:color-mix(in lab, red, red)){.user-shell .page-title-icon{background:color-mix(in srgb,var(--surface) 82%,transparent)}}.user-shell .page-title-icon{color:var(--blue);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 30px #1e3a630f}.user-shell .page-title>div:last-child{min-width:0}.user-shell .page-category{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.user-shell .page-category{background:color-mix(in srgb,var(--surface) 80%,transparent)}}.user-shell .page-category{color:var(--muted);font-size:var(--text-xs);letter-spacing:.08em;margin-bottom:9px;padding:5px 9px;font-weight:700}.user-shell .page-title h1{color:var(--ink);font-size:var(--text-3xl);letter-spacing:-.01em;margin:0 0 6px;font-weight:700;line-height:1.2}.user-shell .page-title p{color:var(--muted);font-size:var(--text-base);margin:0;line-height:1.55}.user-shell .panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);overflow:hidden}.user-shell .panel-head{border-bottom:1px solid var(--line-soft);min-height:76px;padding:18px 22px}.user-shell .panel-head .kicker{color:var(--muted);font-size:var(--text-xs);margin-bottom:6px}.user-shell .panel-head h2{font-size:var(--text-xl);letter-spacing:-.025em}.user-shell .metrics-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.user-shell .metric{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);min-height:0;box-shadow:var(--shadow-card);padding:20px;position:relative}.user-shell .metric:after{display:none}.user-shell .metric>div{color:var(--blue);align-items:center;gap:9px;display:flex}.user-shell .metric>div>svg{color:var(--color-accent)}.user-shell .metric>div span{color:var(--ink);font-family:inherit;font-size:var(--text-lg);letter-spacing:normal;text-transform:none;font-weight:700}.user-shell .metric>strong{color:var(--ink);letter-spacing:-.02em;margin:14px 0 4px;font-size:32px;font-weight:800;display:block}.user-shell .metric p{color:var(--faint);font-size:var(--text-sm);margin:0}.user-shell .metric.featured{border-color:var(--line);background:var(--surface)}.user-shell .metric.featured:before{display:none}.user-shell .metric.featured>strong{color:var(--ink)}.user-shell .metric.featured>div span,.user-shell .metric.featured p{color:var(--muted)}.user-shell .lesson-row{border-color:var(--line-soft);min-height:88px;padding:13px 22px}.user-shell .lesson-row:hover,.user-shell .student-lesson-list>button:hover{background:var(--blue-soft)}@supports (color:color-mix(in lab, red, red)){.user-shell .lesson-row:hover,.user-shell .student-lesson-list>button:hover{background:color-mix(in srgb,var(--blue-soft) 60%,transparent)}}.user-shell .student-toolbar{border-color:var(--line-soft);min-height:70px;padding:14px 20px}.user-shell .student-toolbar label{background:var(--surface-muted);border-radius:11px;width:min(390px,72%);height:42px}.user-shell .student-grid{gap:16px;padding:20px}.user-shell .student-card{border-radius:16px;padding:20px;box-shadow:0 12px 30px #1e3a6309}.user-shell .student-card:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:0 20px 44px #1e3a6317}.user-shell .student-stats{border-color:var(--line-soft)}.user-shell .empty{text-align:left;grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr);justify-content:stretch;align-items:center;gap:44px;min-height:320px;padding:42px clamp(28px,6vw,78px);display:grid}.user-shell .empty>.empty-visual{width:220px;height:170px;color:var(--blue);background:0 0;border-radius:0;justify-self:center;place-items:center;display:grid;position:relative}.empty-visual:before{border:1px solid var(--line);background:linear-gradient(145deg,var(--surface),var(--surface-muted));box-shadow:18px 18px 0 var(--blue);border-radius:32px;position:absolute;inset:20px}@supports (color:color-mix(in lab, red, red)){.empty-visual:before{box-shadow:18px 18px 0 color-mix(in srgb,var(--blue) 8%,transparent)}}.empty-visual:before{content:"";transform:rotate(-4deg)}.empty-visual>span{z-index:2;border:1px solid var(--blue);place-items:center;width:68px;height:68px;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.empty-visual>span{border:1px solid color-mix(in srgb,var(--blue) 36%,var(--line))}}.empty-visual>span{background:var(--surface);color:var(--blue);border-radius:20px;box-shadow:0 16px 32px #1e3a631a}.empty-visual>i{z-index:1;border:1px solid var(--line);background:var(--blue-soft);display:block;position:absolute}.empty-visual>i:first-child{border-radius:16px;width:52px;height:52px;top:24px;left:16px;transform:rotate(-12deg)}.empty-visual>i:last-child{border-radius:13px;width:72px;height:44px;bottom:20px;right:13px;transform:rotate(10deg)}.empty-people .empty-visual>i{border-radius:50%}.empty-progress .empty-visual:before{border-radius:50% 50% 16px 16px;transform:rotate(0)}.empty-progress .empty-visual>i:first-child{border-radius:8px;width:34px;height:76px;transform:translate(22px,43px)}.empty-progress .empty-visual>i:last-child{border-radius:8px;width:34px;height:108px;transform:translate(-25px,-13px)}.empty-library .empty-visual:before{box-shadow:10px 10px 0 var(--blue-soft),20px 20px 0 var(--blue);border-radius:12px}@supports (color:color-mix(in lab, red, red)){.empty-library .empty-visual:before{box-shadow:10px 10px 0 var(--blue-soft),20px 20px 0 color-mix(in srgb,var(--blue) 8%,transparent)}}.empty-library .empty-visual:before{transform:rotate(-3deg)}.user-shell .empty>.empty-copy{width:auto;max-width:430px;height:auto;color:inherit;background:0 0;border-radius:0;display:block}.empty-copy h3{color:var(--ink);letter-spacing:-.035em;margin:0 0 10px;font-size:23px}.empty-copy p{color:var(--muted);font-size:var(--text-base);margin:0 0 20px;line-height:1.65}.user-shell .account-layout{grid-template-columns:1.2fr .8fr;gap:16px;display:grid}.user-shell .account-profile{grid-column:1/-1;padding:0}.account-profile-main{border-bottom:1px solid var(--line-soft);grid-template-columns:70px 1fr auto;align-items:center;gap:17px;padding:25px;display:grid}.account-profile-main>div:nth-child(2){min-width:0}.account-section-label{color:var(--faint);font-size:var(--text-sm);letter-spacing:normal;text-transform:none;font-weight:600}.account-profile h2{letter-spacing:-.035em;margin:5px 0 3px;font-size:20px}.account-profile p{color:var(--muted);font-size:var(--text-sm);margin:0}.account-profile dl{grid-template-columns:1fr 1fr;margin:0;display:grid}.account-profile dl>div{justify-content:space-between;align-items:center;gap:20px;min-height:66px;padding:15px 24px;display:flex}.account-profile dl>div+div{border-left:1px solid var(--line-soft)}.account-profile dt{color:var(--muted);font-size:var(--text-sm)}.account-profile dd{color:var(--ink);font-size:var(--text-sm);align-items:center;gap:7px;margin:0;font-weight:650;display:flex}.account-status-dot{background:#2fa86f;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #2fa86f1a}.settings-section-head{border-bottom:1px solid var(--line-soft);align-items:center;gap:13px;min-height:80px;padding:18px 20px;display:flex}.settings-section-head>span{background:var(--blue-soft);width:38px;height:38px;color:var(--blue);border-radius:11px;flex:none;place-items:center;display:grid}.settings-section-head h2{font-size:var(--text-xl);margin:0 0 3px}.settings-section-head p{color:var(--muted);font-size:var(--text-xs);margin:0}.user-shell .password-card form{gap:14px;padding:20px}.account-access{align-self:start}.access-summary{padding:24px 20px 28px}.access-summary strong{color:var(--ink);font-size:var(--text-base)}.access-summary p{color:var(--muted);font-size:var(--text-sm);margin:8px 0 0;line-height:1.65}[data-theme=dark] .user-shell .sidebar{background:#0b1727}[data-theme=dark] .sidebar-section>span{color:var(--muted)}[data-theme=dark] .user-shell .sidebar nav button.active{color:var(--color-accent-strong);background:#5b82e52e}[data-theme=dark] .user-shell .sidebar-user{color:var(--ink)}[data-theme=dark] .user-shell .metric.featured{border-color:var(--line);background:var(--surface)}[data-theme=dark] .empty-visual:before{box-shadow:18px 18px #5b82e514}@media (max-width:1050px){.user-shell .metrics-row{grid-template-columns:repeat(3,minmax(0,1fr))}.user-shell .student-grid{grid-template-columns:repeat(2,1fr)}.empty{gap:24px;padding-inline:26px}}@media (max-width:760px){.user-shell{--sidebar:0px}.user-shell .sidebar{width:min(304px,88vw)}.user-shell .workspace{margin-left:0}.user-shell .topbar{height:72px;padding:0 14px}.topbar-context>div,.timezone{display:none}.user-shell .topbar-actions{gap:8px}.user-shell .topbar .button{min-height:40px;padding-inline:13px}.user-shell .content{padding:34px 15px 54px}.user-shell .page-title:has(.page-title-icon){grid-template-columns:44px minmax(0,1fr);align-items:start;gap:13px}.page-title-icon{border-radius:12px;width:44px;height:44px}.user-shell .page-title h1{font-size:31px}.user-shell .metrics-row{grid-template-columns:1fr}.user-shell .metric{min-height:130px}.empty{text-align:center;grid-template-columns:1fr;gap:24px;min-height:420px;padding:34px 22px}.empty-visual{width:190px;height:150px}.empty-copy,.empty-copy .button{justify-self:center}.account-layout{grid-template-columns:1fr}.account-profile{grid-column:auto}.account-profile-main{grid-template-columns:58px 1fr;align-items:start}.account-profile-main>.pill{grid-column:2;justify-self:start}.account-profile dl{grid-template-columns:1fr}.account-profile dl>div+div{border-top:1px solid var(--line-soft);border-left:0}}@media (max-width:520px){.user-shell .topbar .button.primary{color:#0000;gap:0;width:42px;padding:0;overflow:hidden}.user-shell .topbar .button.primary svg{color:#fff}.user-shell .student-grid{grid-template-columns:1fr;padding:14px}.user-shell .student-toolbar{flex-direction:column;align-items:stretch;gap:9px}.user-shell .student-toolbar label{width:100%}.user-shell .lesson-row{padding-inline:14px}.empty-copy h3{font-size:20px}}.profile-tabs{border-radius:var(--radius-control);background:var(--surface-muted);gap:4px;margin-bottom:18px;padding:4px;display:inline-flex}.profile-tabs button{color:var(--muted);font-size:var(--text-base);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:10px 14px;font-weight:650;display:inline-flex}.profile-tabs button:hover{color:var(--ink)}.profile-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.insight-level,.insight-track,.insight-risks,.insight-practice{margin-bottom:16px}.insight-level .pill.queued{font-size:var(--text-sm)}.insight-level-grid{background:var(--line-soft);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.insight-figure{background:var(--surface);padding:18px 20px}.insight-figure>strong{font-family:var(--font-plex-mono),monospace;letter-spacing:-.04em;align-items:baseline;gap:8px;font-size:24px;display:flex}.insight-figure>strong i{color:var(--muted);font-family:var(--font-golos),Arial,sans-serif;font-size:var(--text-base);font-style:normal;font-weight:600}.insight-figure small{color:var(--muted);font-size:var(--text-sm);margin-top:6px;line-height:1.5;display:block}.insight-forecast{border-top:1px solid var(--line-soft);align-items:flex-start;gap:13px;padding:18px 20px;display:flex}.insight-forecast-mark{background:var(--blue-soft);width:34px;height:34px;color:var(--blue);border-radius:9px;flex:none;justify-content:center;align-items:center;display:inline-flex}.forecast-text{font-size:var(--text-base);margin:0 0 6px;line-height:1.55}.forecast-text:last-child{margin-bottom:0}.forecast-text.muted{color:var(--muted);font-size:var(--text-base)}.forecast-text b{font-weight:700}.insight-note{border-top:1px solid var(--line-soft);font-size:var(--text-base);align-items:center;gap:8px;margin:0;padding:12px 20px;line-height:1.5;display:flex}.insight-note svg{color:var(--blue);flex:none}.insight-note.muted{color:var(--muted)}.insight-note.warn,.insight-note.warn svg{color:var(--color-amber)}[data-theme=dark] .insight-note.warn{color:#f0b45a}.insight-projections{border-top:1px solid var(--line-soft);padding:14px 20px 16px}.insight-projections>div{flex-wrap:wrap;gap:10px;display:flex}.insight-projections span{border:1px solid var(--line);color:var(--muted);font-size:var(--text-sm);border-radius:8px;align-items:center;gap:8px;padding:7px 11px;display:flex}.insight-projections b{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:var(--text-base);font-weight:700}.insight-projections b i{color:var(--muted);font-size:var(--text-sm);font-style:normal;font-weight:500}.insight-track-plot{padding:18px 16px 6px}.insight-track-plot svg{width:100%;height:auto;display:block}.track-grid{stroke:var(--line-soft);stroke-width:1px}.track-axis{fill:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm)}.track-line{stroke:var(--blue);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.track-dot{fill:var(--surface);stroke:var(--blue);stroke-width:2.2px}.track-dot.skipped{stroke:var(--muted);stroke-dasharray:2.5 2.5}.insight-track-legend{color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;gap:16px;padding:0 20px 16px;display:flex}.insight-track-legend span{align-items:center;gap:7px;display:inline-flex}.insight-track-legend .dot{border:2px solid var(--blue);background:var(--surface);border-radius:50%;width:9px;height:9px}.insight-track-legend .dot.skipped{border-color:var(--muted)}.insight-track-legend .line{background:var(--blue);border-radius:2px;width:18px;height:3px}.insight-risk-list{background:var(--line-soft);gap:1px;display:grid}.insight-risk{background:var(--surface);align-items:flex-start;gap:11px;padding:14px 20px;display:flex}.insight-risk svg{color:var(--color-amber);flex:none;margin-top:1px}.insight-risk.demotion svg,.insight-risk.failed svg{color:#d0454a}.insight-risk span{flex:auto;gap:3px;min-width:0;display:grid}.insight-risk strong{font-size:var(--text-base)}.insight-risk small{color:var(--muted);font-size:var(--text-sm);line-height:1.5}.insight-window{border:1px solid var(--line);border-radius:7px;flex:none;gap:4px;padding:3px;display:inline-flex}.insight-window button{color:var(--muted);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 10px;font-weight:650}.insight-window button.active{background:var(--blue);color:#fff}.insight-categories{border-top:1px solid var(--line-soft);gap:10px;padding:16px 20px;display:grid}.insight-categories>div{gap:6px;display:grid}.insight-categories span{color:var(--muted);font-size:var(--text-sm);justify-content:space-between;display:flex}.insight-categories b{color:var(--ink);font-family:var(--font-plex-mono),monospace}.insight-categories i{background:var(--line-soft);border-radius:999px;height:6px;display:block;overflow:hidden}.insight-categories em{background:var(--blue);border-radius:999px;height:100%;display:block}.insight-errors{border-top:1px solid var(--line-soft);background:var(--line-soft);gap:1px;display:grid}.insight-error{background:var(--surface);padding:13px 20px}.insight-error-head{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.insight-error-head code{border:1px solid var(--line);color:var(--blue);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm);border-radius:5px;padding:2px 6px}.insight-error-head strong{font-size:var(--text-base);flex:auto}.insight-error-head b{font-family:var(--font-plex-mono),monospace;font-size:var(--text-base)}.insight-error-head small{color:var(--muted);font-size:var(--text-sm)}.insight-error-example{font-size:var(--text-base);margin:7px 0 0}.insight-error-example del{color:var(--color-danger);text-decoration-thickness:1px}.insight-error-example ins{color:var(--color-emerald);text-decoration:none}.insight-structures{border-top:1px solid var(--line-soft);padding:16px 20px 18px}.insight-structure-tabs{flex-wrap:wrap;gap:6px;display:flex}.insight-structure-tabs button{border:1px solid var(--line);color:var(--muted);font-size:var(--text-base);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:7px;padding:7px 11px;font-weight:600;display:inline-flex}.insight-structure-tabs button.active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.insight-structure-tabs b{font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm)}.insight-structure-list{border:1px solid var(--line-soft);background:var(--line-soft);border-radius:8px;gap:1px;margin-top:12px;display:grid;overflow:hidden}.insight-structure-list>div{background:var(--surface);align-items:center;gap:11px;padding:11px 13px;display:flex}.insight-structure-list code{border:1px solid var(--line);color:var(--blue);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm);border-radius:5px;padding:2px 6px}.insight-structure-list span{flex:auto;gap:2px;min-width:0;display:grid}.insight-structure-list strong{font-size:var(--text-base)}.insight-structure-list small{color:var(--muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.insight-structure-list b{font-family:var(--font-plex-mono),monospace;font-size:var(--text-base)}.teacher-level-screen{border-top:1px dashed var(--line);margin-top:22px;padding-top:18px}.teacher-level-screen>.kicker{margin-bottom:14px}.ladder-marker.ghost{background:var(--surface);border-style:dashed;border-color:var(--blue);box-shadow:none}.student-level-chip{flex-wrap:wrap;align-items:center;gap:7px;margin-top:13px;display:flex}.student-level-mark{border:1px solid var(--blue);color:var(--blue);font-family:var(--font-plex-mono),monospace;font-size:var(--text-base);border-radius:7px;align-items:center;gap:6px;padding:4px 8px;font-weight:700;display:inline-flex}.student-level-mark i{color:var(--muted);font-family:var(--font-golos),Arial,sans-serif;font-size:var(--text-sm);font-style:normal;font-weight:500}.student-level-mark.draft{border-style:dashed;border-color:var(--line);color:var(--muted)}.student-trend{color:var(--muted);align-items:center;display:inline-flex}.student-trend.up{color:var(--color-emerald)}.student-trend.down{color:var(--color-danger)}.student-ahead{color:var(--muted);font-size:var(--text-sm)}.student-attention-dot{color:var(--color-amber);align-items:center;display:inline-flex}.attention-filter{border:1px solid var(--line);color:var(--muted);font-size:var(--text-sm);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:7px;padding:6px 10px;font-weight:650;display:inline-flex}.attention-filter.active{border-color:var(--color-amber);background:var(--color-amber)}@supports (color:color-mix(in lab, red, red)){.attention-filter.active{background:color-mix(in srgb,var(--color-amber) 12%,transparent)}}.attention-filter.active{color:var(--color-amber)}.attention-filter b{font-family:var(--font-plex-mono),monospace}@media (max-width:900px){.insight-level-grid{grid-template-columns:1fr}.profile-tabs{overflow-x:auto}}.demo-bar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px;display:flex}.demo-cases{flex-wrap:wrap;gap:6px;display:flex}.demo-cases button{border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:var(--text-base);cursor:pointer;border-radius:7px;padding:7px 11px;font-weight:650}.demo-cases button.active{border-color:var(--blue);background:var(--blue);color:#fff}.demo-note{color:var(--muted);font-size:var(--text-base);margin:0 0 22px}.insight-risk.actionable{text-align:left;cursor:pointer;width:100%;font:inherit;border:0}.insight-risk.actionable:hover{background:var(--surface-muted)}.insight-risk-go{color:var(--blue);font-size:var(--text-sm);flex:none;align-self:center;margin-left:auto;font-weight:650}.insight-structure-tabs button.empty{opacity:.55}.student-view-toggle{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:15px 20px;display:flex}.student-view-toggle:hover{border-color:var(--blue)}.student-view-toggle span{gap:3px;display:grid}.student-view-toggle strong{font-size:var(--text-base)}.student-view-toggle small{color:var(--muted);font-size:var(--text-sm)}.student-view-toggle svg{color:var(--muted);flex:none;transition:transform .18s}.student-view-toggle.open svg{transform:rotate(180deg)}.student-view-toggle.open{margin-bottom:16px}.ux-demo-root{--ux-bar:62px;--ux-good:var(--color-emerald);--ux-good-soft:var(--color-emerald)}@supports (color:color-mix(in lab, red, red)){.ux-demo-root{--ux-good-soft:color-mix(in srgb,var(--color-emerald) 12%,transparent)}}.ux-demo-root{--ux-warn:#b5730c;--ux-warn-soft:var(--color-amber)}@supports (color:color-mix(in lab, red, red)){.ux-demo-root{--ux-warn-soft:color-mix(in srgb,var(--color-amber) 14%,transparent)}}.ux-demo-root{--ux-bad:var(--color-danger);--ux-bad-soft:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.ux-demo-root{--ux-bad-soft:color-mix(in srgb,var(--color-danger) 12%,transparent)}}.ux-demo-bar{z-index:80;height:var(--ux-bar);border-bottom:1px solid var(--line);background:var(--surface-muted);justify-content:space-between;align-items:center;gap:16px;padding:0 clamp(16px,3vw,26px);display:flex;position:fixed;top:0;left:0;right:0}.ux-demo-root .sidebar,.ux-demo-root .topbar{top:var(--ux-bar)}.ux-demo-root .sidebar{height:auto}.ux-demo-root .workspace{padding-top:var(--ux-bar)}.ux-demo-bar strong{font-size:var(--text-base);letter-spacing:-.02em;display:block}.ux-demo-bar span{max-width:78ch;color:var(--muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;line-height:1.5;display:block;overflow:hidden}.ux-demo-switch{flex-wrap:wrap;gap:6px;display:flex}.ux-demo-switch button{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--muted);font-size:var(--text-base);align-items:center;gap:6px;padding:8px 13px;font-weight:700;display:inline-flex}.ux-demo-switch button:hover{border-color:var(--blue);color:var(--blue)}.ux-demo-switch button.active{border-color:var(--blue);background:var(--blue);color:#fff}.ux-demo-switch .ux-demo-reset{margin-left:6px}.ux-tasks{gap:9px;margin-bottom:20px;display:grid}.ux-task{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);text-align:left;align-items:center;gap:13px;width:100%;padding:13px 15px;display:flex}.ux-task.hot{border-color:var(--blue);background:var(--blue-soft)}.ux-task.hot:hover{box-shadow:0 6px 20px -12px var(--blue)}@supports (color:color-mix(in lab, red, red)){.ux-task.hot:hover{box-shadow:0 6px 20px -12px color-mix(in srgb,var(--blue) 70%,transparent)}}.ux-task.done{border-color:var(--ux-good)}@supports (color:color-mix(in lab, red, red)){.ux-task.done{border-color:color-mix(in srgb,var(--ux-good) 45%,var(--line))}}.ux-task.done{background:var(--ux-good-soft)}.ux-task-ico{border-radius:var(--radius-control);background:var(--surface-muted);width:32px;height:32px;color:var(--muted);flex:none;place-items:center;display:grid}.ux-task.hot .ux-task-ico{background:var(--blue);color:#fff}.ux-task.done .ux-task-ico{background:var(--ux-good);color:#fff}.ux-task>div{min-width:0}.ux-task b{font-size:var(--text-base);letter-spacing:-.015em;font-weight:750;display:block}.ux-task span:not(.ux-task-ico):not(.button){color:var(--muted);font-size:var(--text-sm);display:block}.ux-task .button{flex:none;margin-left:auto}.ux-roster{flex-direction:column;display:flex}.ux-row{border-top:1px solid var(--line-soft);text-align:left;background:0 0;grid-template-columns:35px minmax(0,1.5fr) 74px minmax(0,1.3fr) 48px 18px;align-items:center;gap:15px;padding:13px 20px;display:grid}.ux-row:first-child{border-top:0}.ux-row:hover{background:var(--surface-muted)}.ux-row.flag{background:var(--ux-warn-soft)}.ux-row.flag:hover{background:var(--color-amber)}@supports (color:color-mix(in lab, red, red)){.ux-row.flag:hover{background:color-mix(in srgb,var(--color-amber) 20%,transparent)}}.ux-row-who{min-width:0}.ux-row-who b{font-size:var(--text-base);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-weight:700;display:block;overflow:hidden}.ux-row-who>span{color:var(--muted);font-size:var(--text-sm);display:block}.ux-row-level{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:var(--text-base);font-weight:650}.ux-row-level small{color:var(--muted);font-family:var(--font-golos),Arial,sans-serif;font-size:var(--text-sm);font-weight:500;display:block}.ux-row-next{min-width:0}.ux-row-next b{font-size:var(--text-base);font-weight:700;display:block}.ux-row-next>span{color:var(--muted);font-size:var(--text-sm);display:block}.ux-row-go{color:var(--muted);flex:none}.ux-row:hover .ux-row-go{color:var(--blue)}.ux-spark{align-items:flex-end;gap:3px;height:26px;display:flex}.ux-spark i{background:var(--blue);border-radius:2px 2px 0 0;width:6px}@supports (color:color-mix(in lab, red, red)){.ux-spark i{background:color-mix(in srgb,var(--blue) 26%,transparent)}}.ux-spark i.hi{background:var(--blue)}.ux-spark i.blank{background:var(--line-soft)}.ux-player{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);align-items:center;gap:14px;margin-bottom:14px;padding:12px 15px;display:flex}.ux-play{background:var(--blue);color:#fff;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;display:grid}.ux-wave{flex:1;align-items:center;gap:2px;height:30px;display:flex;overflow:hidden}.ux-wave i{background:var(--line);border-radius:2px;flex:1;min-width:2px}.ux-wave i.played{background:var(--blue)}.ux-time{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm)}.ux-desk{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);display:grid;overflow:hidden}.ux-desk-main{min-width:0;padding:18px 20px 22px}.ux-desk-side{border-left:1px solid var(--line);background:var(--surface-muted);min-width:0;padding:18px 20px 22px}.ux-transcript{max-height:320px;color:var(--muted);font-size:13.5px;line-height:1.95;overflow-y:auto}.ux-transcript p{margin:0 0 12px}.ux-transcript p:last-child{margin-bottom:0}.ux-transcript.quiet{max-height:210px;padding:18px 20px}.ux-speaker{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm);letter-spacing:.1em;vertical-align:middle;margin-right:8px;font-weight:600;display:inline-block}.ux-mark{border:0;border-bottom:2px solid var(--ux-warn);background:var(--ux-warn-soft);color:var(--ink);font-size:inherit;line-height:inherit;border-radius:3px 3px 0 0;padding:1px 3px}.ux-mark:hover{background:var(--color-amber)}@supports (color:color-mix(in lab, red, red)){.ux-mark:hover{background:color-mix(in srgb,var(--color-amber) 22%,transparent)}}.ux-mark.active{outline:2px solid var(--ux-warn);outline-offset:1px}.ux-mark.accepted{border-bottom-color:var(--ux-good);background:var(--ux-good-soft)}.ux-mark.skipped{border-bottom-color:var(--line);color:var(--muted);background:0 0}.ux-fix{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);margin-bottom:11px;padding:13px 14px}.ux-fix del{color:var(--ux-bad);font-size:var(--text-base);display:block}.ux-fix strong{letter-spacing:-.02em;margin-top:3px;font-size:14px;font-weight:700;display:block}.ux-fix small{color:var(--muted);font-size:var(--text-sm);margin-top:7px;line-height:1.6;display:block}.ux-decide{gap:7px;margin-bottom:20px;display:flex}.ux-decide .button{flex:1}.ux-verdict{border-radius:var(--radius-control);font-size:var(--text-sm);align-items:center;gap:7px;margin-bottom:20px;padding:9px 11px;font-weight:700;display:flex}.ux-verdict.accepted{background:var(--ux-good-soft);color:var(--ux-good)}.ux-verdict.skipped{background:var(--surface-muted);color:var(--muted)}.ux-verdict button{color:inherit;font-size:var(--text-sm);background:0 0;border:0;margin-left:auto;font-weight:700;text-decoration:underline}.ux-summary{border-top:1px solid var(--line);padding-top:16px}.ux-kv{border-top:1px solid var(--line-soft);font-size:var(--text-base);justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;display:flex}.ux-kv:first-of-type{border-top:0}.ux-kv span{color:var(--muted)}.ux-kv b{font-family:var(--font-plex-mono),monospace;font-size:var(--text-base);font-weight:650}.ux-more{color:var(--blue);font-size:var(--text-sm);background:0 0;border:0;align-items:center;gap:6px;margin:9px 0 0;padding:0;font-weight:750;display:flex}.ux-more svg{transition:transform .18s}.ux-more svg.up{transform:rotate(180deg)}.ux-manual{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);gap:10px;margin-top:11px;padding:13px;display:grid}.ux-manual label{color:var(--muted);font-size:var(--text-sm);gap:5px;font-weight:650;display:grid}.ux-manual input,.ux-manual select{border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:var(--text-base);border-radius:6px;padding:8px 10px}.ux-manual p{color:var(--muted);font-size:var(--text-sm);margin:0;line-height:1.6}.ux-summary>.button.wide{margin-top:16px}.ux-summary>.button.wide:disabled{border-color:var(--line);background:var(--surface-muted);box-shadow:none;color:var(--muted);cursor:not-allowed}.ux-now{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:26px;margin-bottom:14px;padding:24px 26px;display:grid}.ux-ring{flex:none;width:132px;height:132px;position:relative}.ux-ring-track{stroke:var(--surface-muted)}.ux-ring-value{stroke:var(--blue)}.ux-ring-mid{text-align:center;place-items:center;line-height:1.1;display:grid;position:absolute;inset:0}.ux-ring-mid b{letter-spacing:-.05em;font-size:31px;font-weight:650;display:block}.ux-ring-mid span{color:var(--muted);font-size:var(--text-sm);margin-top:4px;display:block}.ux-now-copy h2{letter-spacing:-.04em;margin:0 0 8px;font-size:19px;font-weight:650}.ux-now-copy p{max-width:52ch;color:var(--muted);font-size:var(--text-base);margin:0;line-height:1.7}.ux-bar{margin-top:15px}.ux-bar>i{background:var(--surface-muted);border-radius:5px;height:7px;display:block;overflow:hidden}.ux-bar em{border-radius:inherit;background:var(--blue);height:100%;display:block}.ux-bar>div{color:var(--muted);font-size:var(--text-sm);justify-content:space-between;gap:12px;margin-top:6px;display:flex}.ux-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.ux-tile{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:16px 17px}.ux-tile b{font-size:var(--text-base);letter-spacing:-.025em;font-weight:750;line-height:1.4;display:block}.ux-tile p{color:var(--muted);font-size:var(--text-sm);margin:6px 0 0;line-height:1.65}.ux-tile.accent{border-color:var(--blue);background:var(--blue-soft)}.ux-last .panel-head .button{flex:none}.ux-last-body{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.ux-last-body .ux-kv{border-top:0;border-left:1px solid var(--line-soft);align-content:start;gap:5px;padding:16px 20px;display:grid}.ux-last-body .ux-kv:first-child{border-left:0}.ux-last-body .ux-kv b{font-size:18px}.ux-story{border-radius:var(--radius-card);background:linear-gradient(168deg,var(--blue) 0%,#0a2f6f 100%);color:#fff;flex-direction:column;margin-bottom:14px;padding:26px 28px 28px;display:flex}[data-theme=dark] .ux-story{background:linear-gradient(168deg,#1d3f7e 0%,#0a1424 100%)}.ux-story-bars{gap:5px;margin-bottom:22px;display:flex}.ux-story-bars i{background:#ffffff42;border-radius:2px;flex:1;height:3px;transition:background-color .24s}.ux-story-bars i.on{background:#fff}.ux-story-page{flex-direction:column;flex:1;min-height:300px;animation:.3s content-enter;display:flex}.ux-story-kick{color:#fff9;font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm);letter-spacing:.15em;margin-bottom:14px;font-weight:600;display:block}.ux-story h2{letter-spacing:-.055em;margin:0;font-size:clamp(30px,5vw,46px);font-weight:650;line-height:1.02}.ux-story>div>p{color:#ffffffd1;max-width:38ch;font-size:var(--text-base);margin:13px 0 0;line-height:1.65}.ux-story-cmp{color:#ffffffe6;font-size:var(--text-base);align-items:center;gap:9px;margin-top:20px;display:flex}.ux-story-cmp b{font-size:var(--text-base);background:#ffffff2b;border-radius:99px;padding:4px 11px;font-weight:750}.ux-story-words{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.ux-story-words span{border-radius:var(--radius-control);font-size:var(--text-base);background:#ffffff21;border:1px solid #fff3;padding:6px 12px}.ux-story-fixes{gap:8px;margin-top:18px;display:grid}.ux-story-fixes>div{border-radius:var(--radius-card-sm);background:#ffffff1a;padding:12px 14px}.ux-story-fixes del{color:#ffffff94;font-size:var(--text-base);display:block}.ux-story-fixes strong{margin-top:2px;font-size:14px;font-weight:700;display:block}.ux-story-fixes small{color:#ffffffad;font-size:var(--text-sm);margin-top:5px;line-height:1.6;display:block}.ux-story-foot{flex-wrap:wrap;gap:9px;margin-top:auto;padding-top:24px;display:flex}.ux-story .button.primary{color:#0a2f6f;background:#fff;border-color:#fff;box-shadow:0 3px #ffffff47}.ux-story .button.primary:hover{background:#e5eeff}.ux-story .button.ghost{color:#fff;background:0 0;border:1px solid #ffffff5c}.ux-story .button.ghost:hover{background:#ffffff1a;border-color:#fff}.ux-fold .panel-head{text-align:left;background:0 0;border:0;width:100%}.ux-fold .panel-head svg{color:var(--muted);flex:none;transition:transform .18s}.ux-fold.open .panel-head svg{transform:rotate(180deg)}.ux-fold.open .panel-head{border-bottom:1px solid var(--line-soft)}.ux-fold:not(.open) .panel-head{border-bottom:0}@media (max-width:1080px){.ux-desk{grid-template-columns:1fr}.ux-desk-side{border-top:1px solid var(--line);border-left:0}}@media (max-width:900px){.ux-demo-bar span{display:none}.ux-tiles,.ux-last-body{grid-template-columns:1fr}.ux-last-body .ux-kv{border-top:1px solid var(--line-soft);border-left:0}.ux-last-body .ux-kv:first-child{border-top:0}.ux-now{grid-template-columns:1fr;justify-items:start}.ux-row{grid-template-columns:35px minmax(0,1fr) 18px}.ux-row-level,.ux-row-next,.ux-spark{display:none}}.lesson-row.clickable{cursor:pointer}.lesson-row.clickable:focus-visible{outline-offset:-3px;outline:3px solid #0754e82e}.lesson-row.clickable .row-actions,.lesson-row.clickable .lesson-name strong{cursor:auto}.board-loading{min-height:220px;color:var(--muted);font-size:var(--text-base);justify-content:center;align-items:center;gap:12px;display:flex}.board-switch{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:18px;display:grid}.board-switch button{border:1px solid var(--line);background:var(--surface);color:var(--muted);text-align:left;border-radius:14px;align-items:center;gap:13px;padding:16px 18px;display:flex}.board-switch button:hover{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.board-switch button:hover{border-color:color-mix(in srgb,var(--blue) 45%,var(--line))}}.board-switch button:hover{color:var(--ink)}.board-switch button span{flex-direction:column;gap:3px;min-width:0;display:flex}.board-switch button strong{color:var(--ink);letter-spacing:-.02em;font-size:14px}.board-switch button small{font-size:var(--text-sm)}.board-switch button svg{color:var(--muted);flex:none}.board-switch button.active{border-color:var(--blue);background:var(--blue-soft)}.board-switch button.active strong,.board-switch button.active svg{color:var(--blue)}.board-periods{border-radius:var(--radius-control);background:var(--surface-muted);border:0;gap:4px;padding:4px;display:inline-flex}.board-periods button{color:var(--muted);font-size:var(--text-base);background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:9px 14px;font-weight:700;display:inline-flex}.board-periods button:hover{color:var(--ink)}.board-periods button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.board-periods button.active svg{color:var(--color-accent)}[data-theme=dark] .board-periods button.active{color:var(--ink)}.board-note{color:var(--muted);font-size:var(--text-base);align-items:center;gap:8px;margin:12px 0 16px;line-height:1.5;display:flex}.board-note svg{flex:none}.board-count{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-sm)}.board-panel{margin-bottom:16px}.board-list{flex-direction:column;display:flex}.board-row{border:0;border-bottom:1px solid var(--line-soft);text-align:left;background:0 0;align-items:center;gap:14px;width:100%;min-height:70px;padding:12px 22px;display:grid}.board-row:last-child{border-bottom:0}.board-row.points{grid-template-columns:34px 38px minmax(0,1fr) auto auto}.board-row.ranks{grid-template-columns:34px 38px minmax(0,1fr) minmax(120px,230px) auto}.board-row.calibrating{grid-template-columns:34px 38px minmax(0,1fr) minmax(120px,230px)}.board-row.linked{cursor:pointer}.board-row.linked:hover{background:var(--surface-muted)}.board-row.linked .board-go{color:var(--blue)}.board-row.me{background:var(--color-accent-soft);box-shadow:inset 3px 0 0 var(--color-accent)}.board-place{background:var(--surface-muted);width:34px;height:34px;color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:var(--text-base);border-radius:10px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.board-place.blank{background:0 0}.board-place.medal-1{color:#4a3505;background:#f6cf5b}.board-place.medal-2{color:#3b424b;background:#d3dae3}.board-place.medal-3{color:#4d2f13;background:#e0aa78}.board-row .pill{min-height:26px;font-size:var(--text-sm);padding:0 11px}.board-who{flex-direction:column;gap:4px;min-width:0;display:flex}.board-who strong{font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;display:flex;overflow:hidden}.board-who strong em{border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent-strong);font-size:var(--text-xs);letter-spacing:normal;text-transform:none;flex:none;padding:2px 9px;font-style:normal;font-weight:600}[data-theme=dark] .board-who strong em{color:var(--color-accent-strong)}.board-who small{color:var(--muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-points{font-family:var(--font-plex-mono),monospace;font-size:var(--text-xl);letter-spacing:-.03em;justify-self:end;font-weight:700}.board-points.up{color:var(--color-emerald)}.board-points.down{color:var(--color-danger)}.board-points.flat{color:var(--muted)}[data-theme=dark] .board-points.up{color:var(--color-emerald)}[data-theme=dark] .board-points.down{color:var(--color-danger)}.board-scale{flex-direction:column;gap:6px;min-width:0;display:flex}.board-scale-bar{background:var(--line-soft);border-radius:4px;width:100%;height:4px;overflow:hidden}.board-scale-bar i{border-radius:inherit;background:var(--blue);height:100%;display:block}.board-scale small{color:var(--muted);font-size:var(--text-xs)}.board-level{border:1px solid var(--blue);color:var(--blue);font-family:var(--font-plex-mono),monospace;font-size:var(--text-base);border-radius:9px;justify-self:end;padding:6px 11px;font-weight:700}.board-gap{border-bottom:1px solid var(--line-soft);color:var(--muted);letter-spacing:.3em;justify-content:center;padding:2px 0 8px;display:flex}@media (max-width:760px){.board-switch{grid-template-columns:1fr}.board-periods{width:100%;display:flex;overflow-x:auto}.board-row{padding-inline:14px}.board-row.points{grid-template-columns:30px minmax(0,1fr) auto}.board-row.points:has(.pill){grid-template-columns:30px minmax(0,1fr) auto auto}.board-row.ranks{grid-template-columns:30px minmax(0,1fr) auto}.board-row .avatar,.board-row .board-scale{display:none}}.lesson-result{justify-content:flex-start;align-items:center;gap:8px;min-width:0;display:flex}.lesson-points{font-family:var(--font-plex-mono),monospace;font-size:var(--text-base);letter-spacing:-.02em;font-weight:700}.lesson-points.up{color:#1a7f4b}.lesson-points.down{color:var(--color-danger)}.lesson-points.flat{color:var(--muted)}[data-theme=dark] .lesson-points.up{color:#5fd39a}[data-theme=dark] .lesson-points.down{color:var(--color-danger)}.user-shell .page-title:has(.page-title-aside){grid-template-columns:minmax(0,1fr) auto}.user-shell .page-title:has(.page-title-icon):has(.page-title-aside){grid-template-columns:54px minmax(0,1fr) auto}.user-shell .page-title>div{min-width:0}.page-title-aside{place-self:center end}.page-title-aside .student-level-chip{justify-content:flex-end;margin-top:0}.level-line{align-items:center;gap:18px;margin-bottom:16px;padding:18px 22px;display:flex}.level-line-mark{border:1px solid var(--blue);background:var(--blue-soft);min-width:84px;color:var(--blue);border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:3px;padding:11px 14px;display:flex}.level-line-mark strong{font-family:var(--font-plex-mono),monospace;letter-spacing:-.04em;font-size:22px}.level-line-mark small{font-size:var(--text-sm);letter-spacing:normal;text-transform:none;font-weight:600}.level-line-body{flex-direction:column;flex:auto;gap:9px;min-width:0;display:flex}.level-line-top{font-size:var(--text-base);align-items:center;gap:12px;display:flex}.level-line-top>span:first-child{min-width:0}.level-line-bar{background:var(--line-soft);border-radius:5px;width:100%;height:5px;overflow:hidden}.level-line-bar i{border-radius:inherit;background:var(--blue);height:100%;display:block}.level-line-foot{color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:14px;display:flex}.level-line-foot .text-button{font-size:var(--text-sm);margin-left:auto}.level-line-pending{align-items:center;gap:5px;display:inline-flex}.standing-panel{margin-bottom:16px}.standing-grid{background:var(--line-soft);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.standing-grid .insight-figure{background:var(--surface)}.standing-points.up{color:#1a7f4b}.standing-points.down{color:var(--color-danger)}.standing-points.flat{color:var(--muted)}[data-theme=dark] .standing-points.up{color:#5fd39a}[data-theme=dark] .standing-points.down{color:var(--color-danger)}@media (max-width:900px){.standing-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.user-shell .page-title:has(.page-title-aside){grid-template-columns:minmax(0,1fr)}.user-shell .page-title:has(.page-title-icon):has(.page-title-aside){grid-template-columns:44px minmax(0,1fr)}.page-title-aside{grid-column:1/-1;justify-self:start}.page-title-aside .student-level-chip{justify-content:flex-start}.level-line{flex-direction:column;align-items:stretch}.level-line-foot .text-button{margin-left:0}}.action-hint{color:var(--muted);font-size:var(--text-sm);text-align:center;grid-column:1/-1;margin:0;line-height:1.5}.field-hint{color:var(--muted);font-size:var(--text-sm);font-weight:500;line-height:1.5}.modal-text{color:var(--muted);font-size:var(--text-base);margin:0;line-height:1.65}.lesson-status small.lesson-note-wrap{white-space:normal;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.lesson-status small.lesson-action-error{color:var(--color-danger)}[data-theme=dark] .lesson-status small.lesson-action-error{color:#ff9c9c}.lesson-row .row-actions{min-width:160px}.lessons-loading{min-height:220px;color:var(--muted);place-items:center;display:grid}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.top-progress{z-index:200;pointer-events:none;height:3px;position:fixed;top:0;left:0;right:0}.top-progress i{background:var(--blue);width:0;height:100%;box-shadow:0 0 10px var(--blue);border-radius:0 3px 3px 0;display:block}@supports (color:color-mix(in lab, red, red)){.top-progress i{box-shadow:0 0 10px color-mix(in srgb,var(--blue) 60%,transparent)}}.top-progress i{opacity:0}.top-progress.running i{opacity:1;width:82%;transition:width 2.4s cubic-bezier(.12,.72,.2,1),opacity .12s}.top-progress.done i{opacity:0;width:100%;transition:width .18s,opacity .32s .12s}.toaster{z-index:180;pointer-events:none;width:min(380px,100vw - 24px);display:grid;position:fixed;bottom:clamp(12px,2.4vw,26px);right:clamp(12px,2.4vw,26px)}.toaster>div{gap:9px;display:grid}.toast{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);pointer-events:auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:11px;padding:12px 12px 12px 14px;animation:.26s cubic-bezier(.2,.8,.25,1) toast-in;display:grid;box-shadow:0 18px 40px -18px #08101e73,0 2px 6px #08101e0f}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.toast-icon{border-radius:var(--radius-control);background:var(--blue-soft);width:26px;height:26px;color:var(--blue);place-items:center;display:grid}.toast.success .toast-icon{background:var(--color-emerald)}@supports (color:color-mix(in lab, red, red)){.toast.success .toast-icon{background:color-mix(in srgb,var(--color-emerald) 14%,transparent)}}.toast.success .toast-icon{color:var(--color-emerald)}.toast.error{border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.toast.error{border-color:color-mix(in srgb,var(--color-danger) 45%,var(--line))}}.toast.error .toast-icon{background:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.toast.error .toast-icon{background:color-mix(in srgb,var(--color-danger) 13%,transparent)}}.toast.error .toast-icon{color:var(--color-danger)}.toast-text{min-width:0;padding-top:3px}.toast-text strong{color:var(--ink);letter-spacing:-.015em;font-size:12.5px;font-weight:750;line-height:1.35;display:block}.toast-text small{color:var(--muted);font-size:var(--text-base);margin-top:3px;line-height:1.5;display:block}.toast-close{width:24px;height:24px;color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.toast-close:hover{background:var(--surface-muted);color:var(--ink)}[data-theme=dark] .toast.success .toast-icon{color:#4fc596}[data-theme=dark] .toast.error .toast-icon{color:#f08579}.action-button .action-labels{display:grid}.action-button .action-label{white-space:nowrap;grid-area:1/1;justify-content:center;align-items:center;gap:8px;transition:opacity .16s,transform .16s;display:inline-flex}.action-button .action-label[data-on=false]{opacity:0;pointer-events:none;transform:translateY(3px)}.action-button{position:relative;overflow:hidden}.action-button.is-pending{cursor:progress}.action-button.is-pending:disabled{opacity:1}.action-button.is-pending:after{opacity:.55;content:"";background:currentColor;border-radius:3px;width:38%;height:3px;animation:1.05s ease-in-out infinite button-work;position:absolute;bottom:0;left:0}@keyframes button-work{0%{transform:translate(-105%)}to{transform:translate(270%)}}.button.action-button.is-done{border-color:var(--color-emerald);background:var(--color-emerald);color:#fff;box-shadow:0 3px #0f5a3240}.button.secondary.action-button.is-done{border-color:var(--color-emerald);background:var(--color-emerald)}@supports (color:color-mix(in lab, red, red)){.button.secondary.action-button.is-done{background:color-mix(in srgb,var(--color-emerald) 12%,var(--surface))}}.button.secondary.action-button.is-done{box-shadow:none;color:var(--color-emerald)}form[aria-busy=true] input,form[aria-busy=true] textarea,form[aria-busy=true] select{opacity:.62;pointer-events:none}.skeleton-block{gap:11px;padding:20px;display:grid}.skeleton-block i{background:linear-gradient(90deg,var(--surface-muted) 0%,var(--line) 45%,var(--surface-muted) 90%);border-radius:6px;height:12px;display:block}@supports (color:color-mix(in lab, red, red)){.skeleton-block i{background:linear-gradient(90deg,var(--surface-muted) 0%,color-mix(in srgb,var(--line) 70%,var(--surface-muted)) 45%,var(--surface-muted) 90%)}}.skeleton-block i{background-size:220% 100%;animation:1.3s ease-in-out infinite skeleton-sweep}.skeleton-block i:first-child{height:18px}@keyframes skeleton-sweep{0%{background-position:100% 0}to{background-position:-120% 0}}.panel .skeleton-block{align-content:start;min-height:140px}.is-refreshing{position:relative}.is-refreshing:after{background:linear-gradient(90deg,transparent,var(--blue),transparent);content:"";background-repeat:no-repeat;background-size:50% 100%;border-radius:2px;height:2px;animation:1.1s ease-in-out infinite refresh-slide;position:absolute;top:0;left:18px;right:18px}@keyframes refresh-slide{0%{background-position:-50% 0}to{background-position:150% 0}}.coded-finding.saving{position:relative}.coded-finding.saving:after{color:var(--muted);font-size:var(--text-sm);content:"сохраняю…";font-weight:650;position:absolute;bottom:8px;right:14px}@media (prefers-reduced-motion:reduce){.top-progress i,.toast,.action-button .action-label,.action-button.is-pending:after{transition:none;animation:none}.skeleton-block i,.is-refreshing:after{animation:none}}.hub-shell{background:var(--soft);flex-direction:column;min-height:100vh;display:flex}.hub-header{z-index:40;padding:14px 0 6px;position:sticky;top:0}.hub-bar{border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:var(--glass-bg-strong);width:min(1152px,100%);height:64px;box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;padding:0 12px 0 20px;display:flex}.hub-bar .brand-logo-horizontal{width:152px;height:38px}.hub-who{min-width:0;color:var(--muted);font-size:var(--text-base);align-items:center;gap:10px;display:flex}.hub-who strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.hub-actions{flex:none;align-items:center;gap:10px;display:flex}.hub-icon{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.hub-icon:hover{border-color:var(--color-accent);color:var(--color-accent)}.hub-zone{border:1px solid var(--line);background:var(--surface);height:40px;color:var(--muted);font-size:var(--text-sm);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-weight:500;display:inline-flex}.hub-zone:hover{border-color:var(--color-accent);color:var(--color-accent)}@media (max-width:640px){.hub-zone{justify-content:center;width:40px;padding:0}.hub-zone span{display:none}}.keep{white-space:nowrap}.count-left{color:var(--color-accent-strong,var(--blue));white-space:nowrap;font-weight:650}.modal.tz-modal{width:min(440px,100%)}.tz-picker{gap:10px;display:grid}.tz-search{display:block;position:relative}.tz-search svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.tz-search input{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);width:100%;height:42px;color:var(--ink);font-size:var(--text-base);padding:0 12px 0 38px}.tz-search input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.tz-list{overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-control);max-height:292px;padding:4px;overflow-y:auto}.tz-group{z-index:1;border-top:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:var(--text-lg);letter-spacing:-.01em;margin:6px -4px 0;padding:12px 14px 6px;font-weight:700;position:sticky;top:-4px}.tz-list>[role=group]:first-child>.tz-group{border-top:0;margin-top:0}.tz-option{width:100%;min-height:38px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:1fr auto 16px;align-items:center;gap:10px;padding:6px 10px;display:grid}.tz-option.active{background:var(--surface-muted)}.tz-option[aria-selected=true]{color:var(--color-accent-strong);font-weight:600}.tz-option:disabled{cursor:progress;opacity:.6}.tz-city{font-size:var(--text-sm)}.tz-option small{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:400}.tz-check{color:var(--color-accent);place-items:center;display:grid}.tz-empty{color:var(--muted);font-size:var(--text-sm);margin:0;padding:14px 10px;line-height:1.5}.time-zone-body{max-width:440px;padding:20px}.user-shell .time-zone-card{grid-column:1/-1}.hub-tabs{border-radius:var(--radius-control);background:var(--surface-muted);gap:4px;width:max-content;max-width:100%;margin:6px auto 0;padding:4px;display:flex}.hub-tabs button{color:var(--muted);font-size:var(--text-base);white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:9px 18px;font-weight:600;display:flex}.hub-tabs button svg{color:currentColor}.hub-tabs button:hover{color:var(--ink)}.hub-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.user-shell.hub-shell .content{width:min(1152px,100%);margin:0 auto;padding:26px clamp(16px,3vw,32px) 70px}.user-shell.hub-shell .page-title{margin-bottom:22px}.user-shell.hub-shell .page-title h1{font-size:var(--text-3xl);letter-spacing:-.01em;margin:0 0 6px;font-weight:700}.user-shell.hub-shell .page-title p{color:var(--muted);font-size:var(--text-base)}.user-shell.hub-shell .panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card)}@media (max-width:760px){.hub-header{padding:10px 0 4px}.hub-bar{border-radius:var(--radius-card);width:auto;height:58px;margin:0 14px;padding:0 10px 0 14px}.hub-bar .brand-logo-horizontal{width:128px;height:32px}.hub-who strong{display:none}.hub-tabs{scrollbar-width:none;background:0 0;border-radius:0;justify-content:flex-start;width:auto;margin:8px 0 0;padding:2px 14px 6px;overflow-x:auto}.hub-tabs::-webkit-scrollbar{display:none}.hub-tabs button{background:var(--surface-muted);border:1px solid #0000;flex:none;padding:9px 14px}.hub-tabs button.active{border-color:var(--line);background:var(--surface)}.user-shell.hub-shell .content{padding:18px 14px 56px}}.style-check-switch{z-index:200;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-pop);align-items:center;gap:6px;padding:6px;display:flex;position:fixed;bottom:16px;right:16px}.style-check-switch button{border-radius:var(--radius-pill);color:var(--muted);font-size:var(--text-sm);background:0 0;border:0;padding:7px 13px;font-weight:600}.style-check-switch button.active{background:var(--color-accent-soft);color:var(--color-accent-strong)}.lesson-review{display:block}.lesson-review .back-button{margin-bottom:12px}.lesson-review .review-layout{grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);align-items:start;gap:16px;display:grid}.lesson-review .review-main{border:1px solid var(--line);border-right:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:16px;padding:20px;display:grid}.lesson-review .review-side{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:14px;padding:20px;display:grid;position:sticky;top:16px}.lesson-review .review-main>label>textarea{min-height:190px}.lesson-review .review-side textarea{min-height:104px}.lesson-review .audio-player{z-index:5;border-radius:var(--radius-control);background:var(--surface);position:sticky;top:0}.lesson-review .review-section{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface-muted)}.lesson-review .page-title{margin-bottom:18px}@media (max-width:1050px){.lesson-review .review-layout{grid-template-columns:1fr}.lesson-review .review-side{position:static}}@media (max-width:760px){.lesson-review{padding-bottom:78px}.lesson-review .review-main,.lesson-review .review-side{padding:16px}.lesson-review .review-main>label>textarea{min-height:150px}.lesson-review .audio-player{top:-2px;box-shadow:0 8px 20px -14px #0d1a2b80}.lesson-review .review-side .button.primary.wide{z-index:60;width:auto;box-shadow:var(--shadow-pop);position:fixed;bottom:14px;left:14px;right:14px}.lesson-review .action-hint{z-index:60;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--shadow-card);margin:0;padding:8px 12px;position:fixed;bottom:64px;left:14px;right:14px}}.lesson-result-screen .student-result{gap:16px;display:grid}.lesson-result-screen .result-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.lesson-result-screen .result-comments{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;display:grid}.lesson-result-screen .ai-comment{margin:0}.lesson-result-screen .teacher-comment{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);margin:0;padding:16px 18px}.lesson-result-screen .review-section{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card)}.lesson-result-screen .words-card{margin:0}.student-latest{align-items:start}@media (max-width:760px){.lesson-result-screen .result-metrics{grid-template-columns:1fr}}.lesson-review .review-layout,.lesson-review .review-main,.lesson-review .review-side,.lesson-review .review-main>*,.lesson-review .review-side>*,.lesson-review .review-section,.lesson-review .review-section-body,.lesson-review .finding,.lesson-review .coded-finding-body{min-width:0}.lesson-review .finding>span,.lesson-review .coded-finding-head,.lesson-review .review-main p,.lesson-review .review-main strong,.lesson-review .review-main del{overflow-wrap:anywhere}.lesson-review audio{width:100%;min-width:0}.lesson-review .audio-player{flex-wrap:wrap}.hub-tabs .tab-count{border-radius:var(--radius-pill);background:var(--color-amber-soft);color:#a6760f;min-width:20px;height:20px;font-size:var(--text-xs);place-items:center;padding:0 6px;font-weight:700;display:inline-grid}.hub-tabs button.active .tab-count{background:var(--color-amber);color:#fff}.hub-who small{color:var(--faint);font-size:var(--text-sm);display:block}.hub-actions .hub-action{min-height:38px}@media (max-width:760px){.hub-actions .hub-action{gap:0;width:40px;padding:0;font-size:0;overflow:hidden}.hub-actions .hub-action svg{width:17px;height:17px;font-size:0}.hub-who small{display:none}}.info-tip{border-radius:var(--radius-pill);width:26px;height:26px;color:var(--faint);vertical-align:middle;background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}.info-tip:hover,.info-tip.open{background:var(--color-accent-soft);color:var(--color-accent)}.info-tip-bubble{z-index:120;border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);width:max-content;max-width:min(320px,100vw - 24px);color:var(--ink);box-shadow:var(--shadow-pop);font-size:var(--text-sm);padding:12px 14px;line-height:1.55;animation:.14s ease-out info-tip-in;position:fixed}.info-tip-bubble.above{animation-name:info-tip-in-above}.info-tip-bubble p{margin:0}.info-tip-bubble p+p{margin-top:8px}.info-tip-bubble b{font-weight:650}@keyframes info-tip-in{0%{opacity:0;transform:translateY(-4px)}}@keyframes info-tip-in-above{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.info-tip-bubble{animation:none}}.board-top{align-items:center;gap:8px;margin-bottom:14px;display:flex}.user-shell .board-top .board-switch{margin-bottom:0}.board-title{min-width:0}.board-title h2{vertical-align:middle;margin:0 4px 0 0;display:inline}.board-periods{margin-bottom:14px}@media (max-width:760px){.board-top .board-switch{flex:auto;width:auto}}.scroll-box{overflow-y:auto}.scroll-box::-webkit-scrollbar{width:10px}.scroll-box::-webkit-scrollbar-track{background:var(--line-soft);background-clip:padding-box;border:3px solid #0000;border-radius:8px;margin:6px 0}.scroll-box::-webkit-scrollbar-thumb{background:var(--color-border-strong);background-clip:padding-box;border:2px solid #0000;border-radius:8px}.scroll-box::-webkit-scrollbar-thumb:hover{background-color:var(--faint)}.scroll-box:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.word-list.scroll-box{align-content:flex-start;max-height:320px}.user-shell .words-card .word-list.scroll-box{margin-right:6px}.lesson-folds{flex-direction:column;display:flex}.lesson-folds-loading{padding:20px 22px}.lesson-fold{border-bottom:1px solid var(--line-soft);scroll-margin-top:84px}.lesson-fold:last-child{border-bottom:0}.lesson-fold-head{width:100%;min-height:70px;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:36px minmax(0,1fr) auto 20px;align-items:center;gap:13px;padding:12px 20px;display:grid}.lesson-fold-head:hover{background:var(--blue-soft)}@supports (color:color-mix(in lab, red, red)){.lesson-fold-head:hover{background:color-mix(in srgb,var(--blue-soft) 60%,transparent)}}.lesson-fold-head:active:not(:disabled){transform:none}.lesson-fold:first-child .lesson-fold-head{border-radius:var(--radius-card) var(--radius-card) 0 0}.lesson-fold:last-child:not(.open) .lesson-fold-head{border-radius:0 0 var(--radius-card) var(--radius-card)}.lesson-fold-name{flex-direction:column;gap:3px;min-width:0;display:flex}.lesson-fold-name strong{font-size:var(--fs-5);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lesson-fold-name span{color:var(--muted);font-size:var(--fs-2)}.lesson-fold-chevron{color:var(--faint);transition:transform .2s}.lesson-fold.open .lesson-fold-chevron{color:var(--color-accent);transform:rotate(180deg)}.lesson-fold.open .lesson-fold-head{background:var(--color-accent-soft)}.lesson-fold-body{border-top:1px solid var(--line-soft);background:var(--color-bg-base);padding:18px 20px 20px;animation:.2s ease-out lesson-fold-in}.lesson-fold:last-child .lesson-fold-body{border-radius:0 0 var(--radius-card) var(--radius-card)}@keyframes lesson-fold-in{0%{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.lesson-fold-body{animation:none}.lesson-fold-chevron{transition:none}}.lesson-details{gap:14px;display:grid}.lesson-comments{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.lesson-comments .ai-comment,.lesson-comments .teacher-comment{margin:0}.lesson-comments .teacher-comment{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);padding:15px 16px}.lesson-parts{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.lesson-part{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);min-width:0}.lesson-part>header{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:13px 16px;display:flex}.lesson-part>header h3{font-size:var(--fs-6);letter-spacing:-.01em;margin:0}.lesson-part-count{border-radius:var(--radius-pill);background:var(--surface-muted);min-width:24px;height:22px;color:var(--muted);font-size:var(--fs-1);place-items:center;padding:0 8px;font-weight:700;display:inline-grid}.lesson-errors .lesson-part-count{background:var(--color-danger-soft);color:var(--color-danger)}.lesson-part-body{justify-items:start;gap:10px;margin:0;padding:14px 16px;display:grid}.lesson-part-body .error-box{width:100%}.lesson-part .word-list{padding:14px 16px 16px}.error-list{max-height:400px;margin:0;padding:0;list-style:none}.error-list li{border-bottom:1px solid var(--line-soft);gap:5px;padding:12px 16px;display:grid}.error-list li:last-child{border-bottom:0}.error-pair{font-size:var(--fs-4);overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;line-height:1.45;display:flex}.error-pair del{color:var(--faint);-webkit-text-decoration-color:var(--color-danger);-webkit-text-decoration-color:var(--color-danger);-webkit-text-decoration-color:var(--color-danger);text-decoration-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.error-pair del{-webkit-text-decoration-color:color-mix(in srgb,var(--color-danger) 70%,transparent);-webkit-text-decoration-color:color-mix(in srgb,var(--color-danger) 70%,transparent);-webkit-text-decoration-color:color-mix(in srgb,var(--color-danger) 70%,transparent);text-decoration-color:color-mix(in srgb,var(--color-danger) 70%,transparent)}}.error-pair svg{color:var(--faint);flex:none;align-self:center}.error-pair strong{color:var(--color-emerald);font-weight:650}.error-list small{color:var(--muted);font-size:var(--fs-2);line-height:1.5}@media (max-width:760px){.lesson-fold-head{grid-template-columns:34px minmax(0,1fr) auto 18px;gap:10px;padding:12px 14px}.lesson-fold-body{padding:14px 12px 16px}.lesson-parts,.lesson-comments{grid-template-columns:1fr}.error-list{max-height:360px}}.level-kicker{align-items:center;gap:2px;display:flex}.level-kicker .info-tip{width:24px;height:24px;margin:-4px 0}.count-link{text-underline-offset:3px;border-radius:6px;align-items:center;gap:4px;text-decoration:none;display:inline-flex}.count-link:hover{text-decoration:underline}.count-link svg{flex:none;transition:transform .16s}.count-link:hover svg{transform:translate(2px)}.user-shell .account-layout{align-items:start}.account-side{grid-template-rows:auto 1fr;align-self:stretch;gap:16px;min-width:0;display:grid}.user-shell .account-side .time-zone-card{grid-column:auto}.user-shell .password-card{align-self:stretch}.user-shell .password-card .field-hint{color:var(--muted);font-size:var(--fs-2);margin:0;line-height:1.5}.user-shell .time-zone-card{overflow:visible}.time-zone-body{max-width:none;padding:18px 20px 20px;position:relative}.tz-field{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);width:100%;min-height:46px;color:var(--ink);text-align:left;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:10px;padding:0 12px 0 14px;display:grid}.tz-field:hover{border-color:var(--color-border-strong)}.tz-field.open{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.tz-field:active:not(:disabled){transform:none}.tz-field-city{font-size:var(--fs-4);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tz-field small{color:var(--muted);font-size:var(--fs-2);font-variant-numeric:tabular-nums;white-space:nowrap}.tz-field svg{color:var(--faint);transition:transform .18s}.tz-field.open svg{color:var(--color-accent);transform:rotate(180deg)}.tz-dropdown{z-index:40;border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);box-shadow:var(--shadow-pop);padding:10px;animation:.14s ease-out info-tip-in;position:absolute;top:calc(100% - 12px);left:20px;right:20px}.tz-dropdown .tz-list{max-height:280px}.tz-dropdown.up{animation-name:info-tip-in-above;top:auto;bottom:calc(100% - 12px)}@media (prefers-reduced-motion:reduce){.tz-dropdown{animation:none}}@media (max-width:760px){.user-shell .account-layout{grid-template-columns:1fr}}@media (max-width:520px){.tz-field{grid-template-columns:minmax(0,1fr) 18px;row-gap:2px;padding-block:8px}.tz-field small{grid-area:2/1}.tz-field svg{grid-area:1/2/3}}.lesson-score-body{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:22px;padding:16px;display:grid}.lesson-score-main,.lesson-score-side{gap:14px;min-width:0;display:grid}.score-ruler{padding:28px 12px 0}.score-ruler-track{border-radius:var(--radius-pill);background:var(--surface-muted);height:10px;position:relative}.score-ruler-tick{background:var(--color-border-strong);width:1px;height:18px;position:absolute;top:-4px}.score-ruler-gap{border:1px dashed var(--color-accent);height:10px;position:absolute;top:0}@supports (color:color-mix(in lab, red, red)){.score-ruler-gap{border:1px dashed color-mix(in srgb,var(--color-accent) 55%,transparent)}}.score-ruler-gap{border-radius:var(--radius-pill);background:var(--color-accent-soft)}.score-ruler-move{border-radius:var(--radius-pill);background:var(--color-accent);height:10px;position:absolute;top:0}.score-ruler-move.down{background:var(--color-danger)}.score-ruler-pin{white-space:nowrap;position:absolute;bottom:12px;transform:translate(-50%)}.score-ruler-pin b{color:var(--ink);font-size:var(--fs-1);font-weight:700;line-height:1;display:block}.score-ruler-pin:after{content:"";background:var(--ink);border-radius:1px;width:2px;height:11px;position:absolute;top:calc(100% + 1px);left:50%;transform:translate(-50%)}.score-ruler-pin.lesson b{color:var(--color-accent)}.score-ruler-pin.lesson:after{background:var(--color-accent)}.score-ruler-labels{height:18px;margin-top:8px;position:relative}.score-ruler-labels span{color:var(--faint);font-size:var(--fs-1);font-weight:600;position:absolute;transform:translate(-50%)}.score-story{color:var(--muted);font-size:var(--fs-3);margin:0;line-height:1.55}.score-story b{color:var(--ink);font-weight:650}.score-calibrating,.score-unscored{color:var(--muted);font-size:var(--fs-3);margin:0;line-height:1.55}.score-unscored{border:1px dashed var(--line);border-radius:var(--radius-card-sm);padding:12px 16px}.receipt{border-top:1px dashed var(--color-border-strong);font-variant-numeric:tabular-nums;gap:7px;margin:0;padding-top:12px;display:grid}.receipt-line{grid-template-columns:auto minmax(12px,1fr) auto;align-items:baseline;gap:2px 8px;display:grid}.receipt-line dt{color:var(--muted);font-size:var(--fs-3);align-items:center;gap:2px;display:flex}.receipt-line dt .info-tip{width:22px;height:22px;margin:-4px 0}.receipt-line>i{border-bottom:1px dotted var(--color-border-strong);transform:translateY(-4px)}.receipt-line dd{color:var(--ink);font-size:var(--fs-3);white-space:nowrap;margin:0;font-weight:650}.receipt-line small{color:var(--faint);font-size:var(--fs-2);grid-column:1/-1;line-height:1.45}.receipt-line.total{border-top:1px solid var(--line);margin-top:3px;padding-top:9px}.receipt-line.total dt{color:var(--ink);font-weight:650}.receipt-line.total dd{font-size:var(--fs-7);letter-spacing:-.01em;font-weight:750}.score-sections{gap:2px;display:grid}.score-section-head{border-radius:var(--radius-control);text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 72px 64px 74px 16px;align-items:center;gap:10px;width:100%;min-height:40px;padding:6px 8px;display:grid}.score-section-head:hover:not(:disabled){background:var(--surface-muted)}.score-section-head:disabled{cursor:default;opacity:1}.score-section-head:active:not(:disabled){transform:none}.score-section-head svg{color:var(--faint);transition:transform .18s}.score-section-head svg.up{transform:rotate(180deg)}.score-section-name{font-size:var(--fs-3);font-weight:600}.score-section-bar{border-radius:var(--radius-pill);background:var(--surface-muted);height:6px;overflow:hidden}.score-section-bar i{border-radius:inherit;background:var(--color-accent);height:100%;display:block}.score-section-value{color:var(--muted);font-size:var(--fs-2);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.score-section-lost{color:var(--color-danger);font-size:var(--fs-3);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:650}.score-section-lost.none{color:var(--faint);font-size:var(--fs-2);white-space:nowrap;font-weight:500}.score-section-errors{border-left:2px solid var(--line);max-height:300px;margin:2px 0 8px;padding:0 0 0 12px;list-style:none;overflow:auto}.score-section-errors li{border-bottom:1px solid var(--line-soft);justify-items:start;gap:4px;padding:9px 4px;display:grid}.score-section-errors li:last-child{border-bottom:0}.score-section-errors small{color:var(--muted);font-size:var(--fs-2);line-height:1.45}.score-sections-note{color:var(--faint);font-size:var(--fs-2);margin:6px 8px 0;line-height:1.45}.play-moment,.transcript-time{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);font-size:var(--fs-1);font-variant-numeric:tabular-nums;align-items:center;gap:4px;padding:2px 9px 2px 7px;font-weight:600;display:inline-flex}.play-moment:hover,.transcript-time:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.transcript-time:disabled{opacity:.55;cursor:default}.step-notes{border-top:1px dashed var(--color-border-strong);color:var(--muted);font-size:var(--fs-2);gap:7px;margin:0;padding:12px 8px 0;line-height:1.5;list-style:none;display:grid}.step-notes b{color:var(--ink)}.lesson-parts-even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.next-steps ol{counter-reset:step;margin:0;padding:0;list-style:none;display:grid}.next-steps li{border-bottom:1px solid var(--line-soft);counter-increment:step;gap:3px;padding:12px 16px 12px 44px;display:grid;position:relative}.next-steps li:last-child{border-bottom:0}.next-steps li:before{content:counter(step);background:var(--color-accent-soft);width:20px;height:20px;color:var(--color-accent-strong);font-size:var(--fs-1);border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute;top:12px;left:16px}.next-steps strong{font-size:var(--fs-4)}.next-steps span{color:var(--muted);font-size:var(--fs-2);line-height:1.45}.next-steps q{color:var(--ink);font-size:var(--fs-3);quotes:"«" "»";margin-top:3px;font-style:italic}.word-levels-body{gap:10px;padding:14px 16px 16px;display:grid}.word-levels-body>p{color:var(--muted);font-size:var(--fs-3);margin:0}.word-levels-body>p b{color:var(--ink)}.word-levels-bar{border-radius:var(--radius-pill);gap:2px;height:10px;display:flex;overflow:hidden}.word-levels-bar i{min-width:3px;height:100%;display:block}.word-levels-legend{color:var(--muted);font-size:var(--fs-2);flex-wrap:wrap;gap:4px 12px;display:flex}.word-levels-legend span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.word-levels-legend i{border-radius:2px;width:9px;height:9px}.word-levels-legend b{color:var(--ink);font-variant-numeric:tabular-nums}.wl-a1{background:var(--color-border-strong)}.wl-a2{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.wl-a2{background:color-mix(in srgb,var(--color-accent) 32%,var(--surface-muted))}}.wl-b1{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.wl-b1{background:color-mix(in srgb,var(--color-accent) 62%,var(--surface-muted))}}.wl-b2{background:var(--color-accent)}.wl-c1{background:var(--color-accent-strong)}.wl-c2{background:var(--color-amber)}.word-levels .word-list{max-height:150px;padding:0}.word-list span sup{color:var(--faint);letter-spacing:.02em;vertical-align:super;margin-left:4px;font-size:9.5px;font-weight:700;line-height:0}.lesson-transcript>header{flex-wrap:wrap}.transcript-switch{border:1px solid var(--line);border-radius:var(--radius-pill);margin-left:auto;padding:2px;display:inline-flex}.transcript-switch button{border-radius:var(--radius-pill);color:var(--muted);font-size:var(--fs-2);background:0 0;border:0;padding:4px 11px;font-weight:600}.transcript-switch button.active{background:var(--surface-muted);color:var(--ink)}.transcript-note{border-bottom:1px solid var(--line-soft);color:var(--muted);font-size:var(--fs-2);margin:0;padding:10px 16px}.transcript-lines{max-height:440px;margin:0;padding:0;list-style:none}.transcript-lines li{border-bottom:1px solid var(--line-soft);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:10px 16px;display:grid}.transcript-lines li:last-child{border-bottom:0}.transcript-lines li.playing{background:var(--color-accent-soft)}.transcript-lines li.teacher .transcript-text p{color:var(--faint)}.transcript-text{gap:4px;min-width:0;display:grid}.transcript-text p{font-size:var(--fs-4);overflow-wrap:anywhere;margin:0;line-height:1.55}.transcript-text mark{background:var(--color-danger-soft);color:inherit;border-radius:3px;padding:0 2px}.transcript-text mark.uncharged{-webkit-text-decoration:underline dashed var(--color-border-strong);-webkit-text-decoration:underline dashed var(--color-border-strong);-webkit-text-decoration:underline dashed var(--color-border-strong);text-decoration:underline dashed var(--color-border-strong);text-underline-offset:3px;background:0 0}.transcript-text small{color:var(--muted);font-size:var(--fs-2)}.transcript-text small del{color:var(--faint)}.transcript-text small b{color:var(--color-emerald);font-weight:650}.transcript-text small.uncharged{opacity:.7}.transcript-text small em{color:var(--faint);font-style:normal}.transcript-who{color:var(--faint);font-size:var(--fs-1);font-weight:600}.breakdown-open{font-size:var(--fs-3);align-items:center;gap:5px;margin:0 0 10px;font-weight:600;text-decoration:none;display:inline-flex}@media (max-width:760px){.lesson-score-body{grid-template-columns:1fr;gap:18px;padding:14px 12px}.lesson-parts-even{grid-template-columns:1fr}.score-section-head{grid-template-columns:minmax(0,1fr) 64px 74px 16px;gap:8px;padding-inline:4px}.score-section-value{white-space:nowrap}.score-section-bar{display:none}.transcript-lines li{gap:8px;padding:10px 12px}.transcript-switch{margin-left:0}}.user-shell{--font-plex-mono:var(--font-golos);font-variant-numeric:tabular-nums}.fact-strip{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;margin:0 0 16px;display:grid}.fact{border-left:1px solid var(--line-soft);align-content:start;gap:2px;min-width:0;padding:14px 20px;display:grid}.fact:first-child{border-left:0}.fact dt{color:var(--muted);font-size:var(--fs-2);font-weight:600}.fact dd{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:26px;font-weight:750;line-height:1.15}.fact small{color:var(--faint);font-size:var(--fs-2)}.fact.alert dd{color:var(--color-amber)}.level-strip{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;margin-bottom:16px;padding:18px 22px;display:grid}.level-strip-main{gap:6px;min-width:0;display:grid}.level-strip-main .kicker{margin:0}.level-strip-main strong{color:var(--ink);letter-spacing:-.02em;align-items:baseline;gap:10px;font-size:30px;font-weight:780;line-height:1.1;display:flex}.level-strip-main strong small{color:var(--muted);font-size:var(--fs-7);letter-spacing:0;font-weight:650}.level-strip-main p{color:var(--muted);font-size:var(--fs-3);margin:0}.level-strip-bar{border-radius:var(--radius-pill);background:var(--surface-muted);height:8px;overflow:hidden}.level-strip-bar i{border-radius:inherit;background:var(--color-accent);height:100%;display:block}.level-strip-dots{gap:6px;display:flex}.level-strip-dots i{background:var(--surface-muted);width:10px;height:10px;box-shadow:inset 0 0 0 1px var(--line);border-radius:50%}.level-strip-dots i.done{background:var(--color-accent);box-shadow:none}.level-strip-facts{margin:0;display:flex}.level-strip-facts>div{border-left:1px solid var(--line-soft);gap:2px;padding:4px 22px;display:grid}.level-strip-facts dt{color:var(--muted);font-size:var(--fs-2);white-space:nowrap;font-weight:600}.level-strip-facts dd{color:var(--ink);font-size:var(--fs-7);white-space:nowrap;margin:0;font-weight:720}.latest-lesson .latest-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.latest-lesson .latest-head .kicker{margin-bottom:2px}.latest-lesson .latest-head h2{font-size:var(--fs-7);letter-spacing:-.01em;margin:0;font-weight:700}.latest-body .lesson-summary{border:0;border-top:1px solid var(--line-soft);border-radius:0;padding:14px 0 0}.latest-body{gap:14px;padding:16px 20px 18px;display:grid}.latest-words h4,.words-tab h4{font-size:var(--fs-3);align-items:center;gap:8px;margin:0 0 8px;font-weight:650;display:flex}.latest-words h4 b,.words-tab h4 b{color:var(--faint);font-weight:600}.user-shell .latest-words .word-list,.user-shell .words-tab .word-list{padding:0}.word-more{border:1px dashed var(--color-border-strong);border-radius:var(--radius-pill);color:var(--muted);font-size:var(--fs-3);background:0 0;padding:5px 12px;font-weight:600}.word-more:hover{border-color:var(--color-accent);color:var(--color-accent)}.lesson-note{border-radius:var(--radius-card-sm);background:var(--color-accent-soft);color:var(--color-accent-strong);grid-template-columns:18px minmax(0,1fr);align-items:start;gap:12px;padding:12px 16px;display:grid}.lesson-note>svg{margin-top:2px}.lesson-note p{color:var(--ink);font-size:var(--fs-4);margin:0;line-height:1.55}.lesson-note blockquote{border-left:2px solid var(--color-accent);margin:8px 0 0}@supports (color:color-mix(in lab, red, red)){.lesson-note blockquote{border-left:2px solid color-mix(in srgb,var(--color-accent) 45%,transparent)}}.lesson-note blockquote{color:var(--ink);font-size:var(--fs-4);padding-left:10px;line-height:1.55}.lesson-note blockquote span{color:var(--muted);font-size:var(--fs-2);font-weight:650;display:block}.lesson-summary{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);gap:14px;padding:16px 18px 6px;display:grid}.summary-top{grid-template-columns:auto minmax(0,1fr);align-items:end;gap:26px;display:grid}.summary-points{gap:2px;display:grid}.summary-points strong{color:var(--color-accent);letter-spacing:-.03em;font-size:36px;font-weight:800;line-height:1}.summary-points.down strong{color:var(--color-danger)}.summary-points span{color:var(--muted);font-size:var(--fs-2);white-space:nowrap;align-items:center;gap:2px;display:flex}.summary-points .info-tip{width:22px;height:22px;margin:-4px 0}.summary-ruler{gap:8px;min-width:0;display:grid}.summary-ruler .score-ruler{padding:24px 10px 0}.summary-ruler .score-ruler-labels{height:16px;margin-top:6px}.summary-ruler .score-story{font-size:var(--fs-2)}.summary-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.summary-section{border:1px solid var(--line-soft);border-radius:var(--radius-control);background:var(--surface);text-align:left;gap:7px;padding:10px 12px;display:grid}.summary-section-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.summary-section-top strong{color:var(--ink);font-size:var(--fs-4);font-variant-numeric:tabular-nums;font-weight:720}.summary-section-why{color:var(--color-accent);font-size:var(--fs-2);white-space:nowrap;align-items:center;gap:2px;font-weight:650;display:inline-flex}.summary-section-why svg{transition:transform .18s;transform:rotate(-90deg)}.summary-section.active .summary-section-why svg{transform:rotate(0)}.summary-section:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--surface-muted)}.summary-section:disabled{cursor:default}.summary-section:active:not(:disabled){transform:none}.summary-section.active{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-soft)}.summary-section-name{color:var(--ink);font-size:var(--fs-2);font-weight:650}.summary-section-bar{border-radius:var(--radius-pill);background:var(--surface-muted);height:5px;overflow:hidden}.summary-section-bar i{border-radius:inherit;background:var(--color-accent);height:100%;display:block}.summary-section-figures{color:var(--muted);font-size:var(--fs-1);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 6px;display:flex}.summary-section-figures b{color:var(--color-danger);font-size:var(--fs-2);white-space:nowrap;font-weight:700}.summary-section-figures b.none{color:var(--faint);font-size:var(--fs-1);font-weight:500}.summary-how{border-top:1px solid var(--line-soft)}.summary-how summary{width:max-content;color:var(--muted);cursor:pointer;font-size:var(--fs-2);align-items:center;gap:4px;padding:10px 0;font-weight:650;list-style:none;display:flex}.summary-how summary::-webkit-details-marker{display:none}.summary-how summary:hover{color:var(--color-accent)}.summary-how summary svg{transition:transform .18s}.summary-how[open] summary svg{transform:rotate(180deg)}.summary-how-body{gap:14px;max-width:560px;padding:2px 0 14px;display:grid}.summary-how-body .receipt{border-top:0;padding-top:0}.summary-how-body .step-notes{border-top:0;padding:0}.summary-unscored{border:1px dashed var(--line);border-radius:var(--radius-card-sm);color:var(--muted);font-size:var(--fs-3);margin:0;padding:12px 16px;line-height:1.55}.lesson-tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.lesson-tabs::-webkit-scrollbar{display:none}.lesson-tabs button{color:var(--muted);font-size:var(--fs-3);background:0 0;border:0;border-bottom:2px solid #0000;flex:none;align-items:center;gap:6px;margin-bottom:-1px;padding:9px 12px;font-weight:650;display:inline-flex}.lesson-tabs button:hover{color:var(--ink)}.lesson-tabs button.active{border-bottom-color:var(--color-accent);color:var(--ink)}.lesson-tabs button:active:not(:disabled){transform:none}.lesson-tabs b{border-radius:var(--radius-pill);background:var(--surface-muted);min-width:20px;color:var(--muted);font-size:var(--fs-1);text-align:center;padding:1px 7px}.lesson-tabs button.active b{background:var(--color-accent-soft);color:var(--color-accent-strong)}.lesson-tab-body{min-width:0}.tab-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin-bottom:6px;display:flex}.tab-toolbar-note{color:var(--faint);font-size:var(--fs-2)}.segmented{border:1px solid var(--line);border-radius:var(--radius-pill);flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.segmented button{border-radius:var(--radius-pill);color:var(--muted);font-size:var(--fs-2);background:0 0;border:0;align-items:center;gap:5px;padding:4px 11px;font-weight:600;display:inline-flex}.segmented button.active{background:var(--surface-muted);color:var(--ink)}.segmented button b{color:var(--faint);font-weight:600}.tab-empty{color:var(--muted);font-size:var(--fs-3);justify-items:start;gap:8px;margin:0;padding:14px 2px;display:grid}.tab-empty p{margin:0}.review-list{margin:0;padding:0;list-style:none}.review-list li{border-bottom:1px solid var(--line-soft);justify-items:start;gap:4px;padding:11px 2px;display:grid}.review-list li:last-child{border-bottom:0}.review-list li small{color:var(--muted);font-size:var(--fs-2);line-height:1.5}.review-list li.uncharged .error-pair{opacity:.75}.review-row{justify-content:space-between;align-items:baseline;gap:10px;width:100%;display:flex}.review-row .error-pair{min-width:0}.cost-chip{border-radius:var(--radius-pill);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--fs-2);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;align-items:center;padding:1px 8px;font-weight:700;display:inline-flex}.cost-chip.off{background:var(--surface-muted);color:var(--faint);font-weight:600}.score-why{border:1px solid var(--color-accent);gap:8px;margin:2px 0 8px;display:grid}@supports (color:color-mix(in lab, red, red)){.score-why{border:1px solid color-mix(in srgb,var(--color-accent) 30%,var(--line))}}.score-why{border-radius:var(--radius-card-sm);background:var(--color-accent-soft)}@supports (color:color-mix(in lab, red, red)){.score-why{background:color-mix(in srgb,var(--color-accent-soft) 40%,var(--surface))}}.score-why{padding:12px 14px;animation:.18s ease-out lesson-fold-in}.score-why-head{align-items:center;gap:6px;display:flex}.score-why-head strong{font-size:var(--fs-4);font-weight:720}.score-why-sum{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.score-why-sum>span,.score-why-sum>b{border-radius:var(--radius-control);background:var(--surface);min-width:52px;font-size:var(--fs-5);justify-items:center;padding:5px 10px;font-weight:720;line-height:1.15;display:inline-grid}.score-why-sum>span.minus{color:var(--color-danger)}.score-why-sum>span small{color:var(--muted);font-size:var(--fs-1);font-weight:600}.score-why-sum>b{background:var(--color-accent);color:#fff}.score-why-sum>i{color:var(--faint);font-size:var(--fs-5);font-style:normal;font-weight:600}.score-why-text{color:var(--muted);font-size:var(--fs-2);margin:0;line-height:1.5}.score-why-gain{color:var(--color-emerald);font-size:var(--fs-3);align-items:flex-start;gap:7px;margin:0;font-weight:650;line-height:1.45;display:flex}.score-why-gain svg{flex:none;margin-top:2px}.score-why-list{gap:0;margin:2px 0 0;padding:0;list-style:none;display:grid}.score-why-list li{border-top:1px solid var(--line-soft);gap:3px;padding:9px 0;display:grid}.score-why-list li small{color:var(--muted);font-size:var(--fs-2);line-height:1.5}.review-meta{color:var(--faint);font-size:var(--fs-1);flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:2px;font-weight:600;display:flex}.review-uncharged{color:var(--color-amber)}.words-tab{gap:14px;padding-top:4px;display:grid}.words-tab .word-levels{gap:8px;display:grid}.words-tab .word-levels-legend .info-tip{width:22px;height:22px;margin:-4px 0}.next-steps{counter-reset:step;margin:0;padding:0;list-style:none}.lesson-tab-body .next-steps li{padding-inline:2px 0;padding-left:34px}.lesson-tab-body .next-steps li:before{left:2px}.lesson-tab-body .lesson-transcript .transcript-lines{border:1px solid var(--line-soft);border-radius:var(--radius-card-sm)}.student-rows{display:grid}.student-rows-head,.student-row-open{grid-template-columns:minmax(0,1.6fr) minmax(0,1.5fr) 70px 110px 100px;align-items:center;gap:14px;display:grid}.student-rows-head{border-bottom:1px solid var(--line);color:var(--faint);font-size:var(--fs-1);padding:8px 102px 8px 20px;font-weight:650}.student-rows-head>span:last-child{display:none}.student-row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.student-row:last-child{border-bottom:0}.student-row:hover{background:var(--surface-muted)}.student-row-open{text-align:left;background:0 0;border:0;min-height:60px;padding:8px 0 8px 20px}.student-row-open:active:not(:disabled){transform:none}.student-row-who{align-items:center;gap:11px;min-width:0;display:flex}.student-row-who>span:last-child{min-width:0;display:grid}.student-row-who strong{font-size:var(--fs-4);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-row-who small{color:var(--faint);font-size:var(--fs-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-row-level{min-width:0}.student-row-level .student-level-chip{flex-wrap:wrap}.student-row-num,.student-row-date{color:var(--ink);font-size:var(--fs-3);font-weight:600}.student-row-login{color:var(--faint);font-size:var(--fs-2);font-weight:600}.student-row-login.on{color:var(--color-emerald)}.student-row-actions{gap:4px;padding:0 14px 0 8px;display:flex}.student-rows-empty{color:var(--muted);font-size:var(--fs-3);margin:0;padding:22px 20px}@media (max-width:900px){.level-strip{grid-template-columns:1fr;gap:14px}.level-strip-facts>div:first-child{border-left:0;padding-left:0}.summary-sections{grid-template-columns:repeat(2,minmax(0,1fr))}.student-rows-head{display:none}.student-row{align-items:start}.student-row-open{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"who who login""level level level""num date date";gap:8px 14px;padding:12px 0 12px 16px}.student-row-who{grid-area:who}.student-row-login{grid-area:login}.student-row-level{grid-area:level}.student-row-num{grid-area:num}.student-row-date{grid-area:date}.student-row-num:before,.student-row-date:before{content:attr(data-label) " · ";color:var(--faint);font-weight:500}.student-row-num,.student-row-date{font-size:var(--fs-2);white-space:nowrap}.student-row-actions{flex-direction:column;padding:10px 10px 0 4px}}@media (max-width:760px){.fact-strip{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.fact{border-left:0;border-top:1px solid var(--line-soft);padding:12px 16px}.fact:nth-child(-n+2){border-top:0}.fact:nth-child(2n){border-left:1px solid var(--line-soft)}.fact dd{font-size:22px}.level-strip{padding:16px}.level-strip-facts>div{padding:2px 14px}.latest-lesson .latest-head{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 16px}.latest-body{padding:14px 16px 16px}.lesson-summary{padding:14px 14px 4px}.summary-top{grid-template-columns:1fr;align-items:start;gap:10px}.summary-points{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.summary-points strong{font-size:32px}.summary-how-body{grid-template-columns:1fr;gap:14px}}.ladder-card{gap:14px;padding:18px 22px 16px}.ladder-fill{background:var(--color-accent)}.ladder-now strong{color:var(--ink);letter-spacing:-.02em;justify-content:flex-end;align-items:baseline;gap:8px;font-size:28px;font-weight:780;line-height:1.1;display:flex}.ladder-now strong small{color:var(--muted);font-size:var(--fs-6);letter-spacing:0;font-weight:650}.ladder-now .level-kicker{justify-content:flex-end;margin:0}.ladder-now .calibration-dots{gap:5px;margin-top:4px;display:flex}.ladder-now .calibration-dots i{width:8px;height:8px}.ladder-note .count-link{margin-left:4px;font-weight:600}details.review-section>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;list-style:none;display:flex}details.review-section>summary::-webkit-details-marker{display:none}details.review-section>summary>svg{color:var(--faint);flex:none;transition:transform .18s}details.review-section[open]>summary>svg{transform:rotate(180deg)}details.review-section:not([open])>summary{border-bottom:0}.review-count{color:var(--faint);font-size:var(--fs-3);margin-left:6px;font-weight:600}.words-fold{border:1px solid var(--line-soft);border-radius:var(--radius-card-sm)}.words-fold-head{border-radius:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:11px 14px;display:flex}.words-fold-head:hover{background:var(--surface-muted)}.words-fold-head:active:not(:disabled){transform:none}.words-fold-head>span:first-child{font-size:var(--fs-4);font-weight:650}.words-fold-head b{color:var(--faint);margin-left:6px;font-weight:600}.words-fold-action{color:var(--color-accent);font-size:var(--fs-3);align-items:center;gap:4px;font-weight:600;display:inline-flex}.words-fold-action svg{transition:transform .18s}.words-fold-action svg.up{transform:rotate(180deg)}.user-shell .words-fold .word-list{border-top:1px solid var(--line-soft);padding:12px 14px 14px}.review-list.scroll-box{max-height:520px}.words-tab .word-list.scroll-box{max-height:260px}.word-list span sup{font-size:var(--fs-1)}.learner-screen{margin-top:16px}.learner-screen-body{border:1px dashed var(--color-border-strong);border-radius:var(--radius-card);background:var(--soft);gap:12px;padding:16px;display:grid}.learner-screen-badge{border-radius:var(--radius-pill);background:var(--color-accent-soft);width:max-content;max-width:100%;color:var(--color-accent-strong);font-size:var(--fs-2);align-items:center;gap:6px;padding:4px 11px;font-weight:650;display:inline-flex}.learner-screen-body .lesson-details{background:var(--surface);border-radius:var(--radius-card-sm);padding:14px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.practice-strip{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px;padding:4px 0;display:grid}.practice-strip-cell{border-left:1px solid var(--line-soft);align-content:start;gap:3px;min-width:0;padding:12px 20px;display:grid}.practice-strip-cell:first-child{border-left:0}.practice-strip-label{color:var(--muted);font-size:var(--fs-2);align-items:center;gap:4px;font-weight:600;display:inline-flex}.practice-strip-value{color:var(--ink);font-size:var(--fs-7);letter-spacing:-.01em;align-items:center;gap:6px;font-weight:720;display:inline-flex}.practice-strip-value.muted{color:var(--muted);font-size:var(--fs-4);font-weight:600}.practice-strip-value.streak svg{color:var(--color-amber)}.practice-strip-cell>small{color:var(--faint);font-size:var(--fs-2);flex-wrap:wrap;align-items:center;gap:2px;display:inline-flex}.practice-resume{border:1px solid var(--color-accent);align-items:center;gap:12px;width:100%;display:grid}@supports (color:color-mix(in lab, red, red)){.practice-resume{border:1px solid color-mix(in srgb,var(--color-accent) 35%,var(--line))}}.practice-resume{border-radius:var(--radius-card);background:var(--color-accent-soft);color:var(--ink);text-align:left;grid-template-columns:auto 1fr auto;margin-bottom:14px;padding:12px 16px}.practice-resume>svg{color:var(--color-accent)}.practice-resume strong{font-size:var(--fs-4);display:block}.practice-resume small{color:var(--muted);font-size:var(--fs-2)}.practice-resume-go{color:var(--color-accent-strong);font-size:var(--fs-3);white-space:nowrap;align-items:center;gap:5px;font-weight:650;display:inline-flex}.practice-tabs{margin-bottom:12px}.practice-tab-count{border-radius:var(--radius-pill);background:var(--color-accent-soft);min-width:20px;height:20px;color:var(--color-accent-strong);font-size:var(--fs-1);justify-content:center;align-items:center;padding:0 6px;font-weight:700;display:inline-flex}.practice-list-panel{overflow:hidden}.practice-row{border:0;border-bottom:1px solid var(--line-soft);width:100%;min-height:66px;color:var(--ink);text-align:left;background:0 0;grid-template-columns:40px minmax(0,1fr) auto 16px;align-items:center;gap:14px;padding:11px 20px;display:grid}.practice-row:last-child{border-bottom:0}.practice-row:hover{background:var(--color-accent-soft)}@supports (color:color-mix(in lab, red, red)){.practice-row:hover{background:color-mix(in srgb,var(--color-accent-soft) 55%,transparent)}}.practice-row:active:not(:disabled){transform:none}.practice-row.off-level .practice-row-main{opacity:.7}.practice-row-main{gap:3px;min-width:0;display:grid}.practice-row-main strong{font-size:var(--fs-5);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.practice-row-main small{color:var(--muted);font-size:var(--fs-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.practice-row-side{align-items:center;gap:8px;display:inline-flex}.practice-row-go{color:var(--faint);transition:transform .18s}.practice-row-go.up{transform:rotate(180deg)}.practice-avatar{background:var(--color-accent-soft);width:40px;height:40px;color:var(--color-accent-strong);font-size:var(--fs-5);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.practice-avatar.large{width:48px;height:48px;font-size:var(--fs-6)}.practice-avatar.speaking{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.practice-avatar.speaking{box-shadow:0 0 0 3px var(--surface),0 0 0 5px color-mix(in srgb,var(--color-accent) 55%,transparent)}}.practice-avatar.speaking{animation:1.4s ease-in-out infinite practice-breathe}@keyframes practice-breathe{50%{box-shadow:0 0 0 3px var(--surface),0 0 0 8px color-mix(in srgb,var(--color-accent) 25%,transparent)}}.practice-badge{border-radius:var(--radius-pill);min-height:24px;font-size:var(--fs-1);white-space:nowrap;align-items:center;gap:4px;padding:0 10px;font-weight:650;display:inline-flex}.practice-badge.scored{background:var(--color-emerald-soft);color:var(--color-emerald)}.practice-badge.free{background:var(--surface-muted);color:var(--muted)}.practice-badge.done{background:var(--color-accent-soft);color:var(--color-accent-strong)}.practice-empty{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;padding:22px 24px;display:flex}.practice-empty p{max-width:560px;color:var(--muted);font-size:var(--fs-3);margin:0;line-height:1.6}.practice-empty p strong{color:var(--ink);font-size:var(--fs-5);margin-bottom:2px;display:block}.practice-history{margin-top:18px;overflow:hidden}.practice-history .panel-head{min-height:52px;padding:12px 20px}.practice-history .panel-head h2{font-size:var(--fs-6)}.practice-history-row{border:0;border-bottom:1px solid var(--line-soft);width:100%;min-height:58px;color:var(--ink);text-align:left;background:0 0;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:14px;padding:10px 20px;display:grid}.practice-history-row:hover{background:var(--color-accent-soft)}@supports (color:color-mix(in lab, red, red)){.practice-history-row:hover{background:color-mix(in srgb,var(--color-accent-soft) 55%,transparent)}}.practice-history-row:active:not(:disabled){transform:none}.practice-history-list>:last-child,.practice-history-list>:last-child .practice-history-row{border-bottom:0}.practice-history-item{border-bottom:1px solid var(--line-soft)}.practice-history-item .practice-history-row{border-bottom:0}.practice-history-main{gap:3px;min-width:0;display:grid}.practice-history-main strong{font-size:var(--fs-4);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.practice-history-main small{color:var(--muted);font-size:var(--fs-2)}.practice-history-score{white-space:nowrap;align-items:baseline;gap:4px;display:inline-flex}.practice-history-score b{font-size:var(--fs-6);font-weight:720}.practice-history-score small{color:var(--faint);font-size:var(--fs-1)}.practice-history-score em{font-size:var(--fs-3);margin-left:6px;font-style:normal;font-weight:700}.practice-history-score em.up{color:var(--color-emerald)}.practice-history-score.muted{color:var(--faint);font-size:var(--fs-2)}.practice-sheet-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a142473;place-items:center;padding:24px 16px;animation:.16s fade;display:grid;position:fixed;inset:0;overflow:auto}.practice-sheet{overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);width:min(600px,100%);max-height:calc(100dvh - 48px);color:var(--ink);box-shadow:var(--shadow-pop);transition:transform .18s;animation:.2s ease-out modal-in;overflow-y:auto}.practice-sheet-grabber{display:none}.practice-sheet-body{padding:22px 24px 20px}.practice-sheet-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:14px;display:grid}.practice-sheet-head h2{font-size:var(--fs-7);letter-spacing:-.01em;margin:0;font-weight:720}.practice-sheet-head p{color:var(--muted);font-size:var(--fs-3);margin:2px 0 0}.practice-scene{font-size:var(--fs-4);margin:0 0 12px;line-height:1.6}.practice-roles{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 6px;display:grid}.practice-roles>div{border-radius:var(--radius-card-sm);background:var(--surface-muted);padding:10px 12px}.practice-roles dt{color:var(--muted);font-size:var(--fs-2);font-weight:650}.practice-roles dd{font-size:var(--fs-3);margin:2px 0 0;line-height:1.5}.practice-sheet-section h3{font-size:var(--fs-4);align-items:center;gap:6px;margin:18px 0 8px;font-weight:700;display:flex}.practice-phrases{gap:6px;margin:0;padding:0;list-style:none;display:grid}.practice-phrases li{border-left:2px solid var(--color-accent-soft);gap:1px;padding:2px 0 2px 10px;display:grid}.practice-phrases span{font-size:var(--fs-4);font-weight:600}.practice-phrases small{color:var(--muted);font-size:var(--fs-2)}.practice-points-note{border-radius:var(--radius-card-sm);font-size:var(--fs-3);align-items:center;gap:8px;margin-top:18px;padding:10px 12px;display:flex}.practice-points-note.scored{background:var(--color-emerald-soft)}.practice-points-note.scored>svg{color:var(--color-emerald)}.practice-points-note.free{background:var(--color-amber-soft)}.practice-points-note.free>svg{color:var(--color-amber)}.practice-points-note strong{font-weight:650}.practice-mode{border-radius:var(--radius-control);background:var(--surface-muted);align-items:center;gap:4px;width:max-content;max-width:100%;margin-top:14px;padding:4px;display:flex}.practice-mode button{color:var(--muted);font-size:var(--fs-3);background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:8px 14px;font-weight:650;display:inline-flex}.practice-mode button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.practice-mode button.active svg{color:var(--color-accent)}.practice-mode .info-tip,.practice-mode>span{margin:0 6px 0 2px}.practice-sheet-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.practice-ai-note{color:var(--faint);font-size:var(--fs-2);text-align:center;margin:12px 0 0}.practice-levels{gap:6px;display:grid}.practice-levels button{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface);color:var(--ink);text-align:left;grid-template-columns:44px 1fr;align-items:center;gap:12px;padding:10px 12px;display:grid}.practice-levels button:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.practice-levels b{background:var(--color-accent-soft);height:28px;color:var(--color-accent-strong);font-size:var(--fs-3);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.practice-levels span{font-size:var(--fs-3)}.practice-warning{text-align:center;justify-items:center;gap:6px;padding:18px 6px 4px;display:grid}.practice-warning>svg{color:var(--color-amber)}.practice-warning h2{font-size:var(--fs-7);margin:4px 0 0;font-weight:720}.practice-warning p{max-width:460px;color:var(--muted);font-size:var(--fs-4);margin:0;line-height:1.6}.practice-warning p strong{color:var(--ink)}.practice-warning-note{font-size:var(--fs-3)!important}.practice-goals{gap:6px;margin:0;padding:0;list-style:none;display:grid}.practice-goals li{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface)}.practice-goals li.done{border-color:var(--color-emerald)}@supports (color:color-mix(in lab, red, red)){.practice-goals li.done{border-color:color-mix(in srgb,var(--color-emerald) 40%,var(--line))}}.practice-goals li>button{border-radius:inherit;width:100%;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:20px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:9px 12px;display:grid}.practice-goals li>button:active:not(:disabled){transform:none}.practice-goal-mark{border:1.5px solid var(--color-border-strong);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.practice-goals li.done .practice-goal-mark{border-color:var(--color-emerald);background:var(--color-emerald);animation:.3s ease-out practice-pop}@keyframes practice-pop{40%{transform:scale(1.25)}}.practice-goal-title{font-size:var(--fs-3);font-weight:650}.practice-goal-chevron{color:var(--faint);transition:transform .18s}.practice-goals li.open .practice-goal-chevron{transform:rotate(180deg)}.practice-goal-detail{gap:6px;padding:0 12px 12px 42px;animation:.18s ease-out lesson-fold-in;display:grid}.practice-goal-detail p{font-size:var(--fs-3);margin:0;line-height:1.55}.practice-goal-rule,.practice-goal-example span{color:var(--muted)}.practice-goal-example q{quotes:"«" "»";font-weight:600}.practice-goal-how{color:var(--color-accent-strong);gap:6px;display:flex}.practice-goal-how svg{flex:none;margin-top:3px}.practice-goal-words{flex-wrap:wrap;gap:5px;display:flex}.practice-goal-words span{border-radius:var(--radius-pill);background:var(--surface-muted);font-size:var(--fs-2);align-items:center;gap:3px;padding:3px 10px;display:inline-flex}.practice-goal-words span.used{background:var(--color-emerald-soft);color:var(--color-emerald);font-weight:650}.practice-chat-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.practice-chat-top .back-button{margin:0}.practice-room{grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);height:clamp(440px,100dvh - 232px,900px);display:grid;overflow:hidden}.practice-room-head{border-bottom:1px solid var(--line);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 18px;display:grid}.practice-room-who{gap:1px;min-width:0;display:grid}.practice-room-who strong{font-size:var(--fs-5);font-weight:700}.practice-room-who strong small{color:var(--muted);font-size:var(--fs-3);font-weight:500}.practice-room-who span{color:var(--muted);font-size:var(--fs-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.practice-room-progress{justify-items:end;gap:5px;display:grid}.practice-room-progress span{color:var(--muted);font-size:var(--fs-2);font-weight:600}.practice-room-progress i{border-radius:var(--radius-pill);background:var(--surface-muted);width:120px;height:6px;display:block;overflow:hidden}.practice-room-progress em{border-radius:inherit;background:var(--color-accent);height:100%;transition:width .35s;display:block}.practice-room-note{border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--muted);font-size:var(--fs-2);flex:none;align-items:center;gap:3px;margin-top:3px;padding:3px 6px 3px 10px;font-weight:650;display:inline-flex}.practice-room-note.scored{background:var(--color-emerald-soft);color:var(--color-emerald)}.practice-messages{overscroll-behavior:contain;background:var(--soft);flex-direction:column;gap:12px;padding:18px;display:flex;overflow-y:auto}.practice-bubble{max-width:min(580px,84%);font-size:var(--fs-6);border-radius:18px;padding:10px 14px;line-height:1.5;animation:.22s ease-out row-in;position:relative}.practice-bubble p{overflow-wrap:anywhere;margin:0}.practice-bubble.partner{border:1px solid var(--line);background:var(--surface);border-bottom-left-radius:6px;align-self:flex-start;align-items:flex-start;gap:10px;padding-left:8px;display:flex}.practice-bubble.partner.static{padding-left:14px}.practice-bubble.learner{background:var(--color-accent);color:var(--color-accent-contrast);border-bottom-right-radius:6px;align-self:flex-end}.practice-bubble.learner.again{border:1px dashed var(--color-accent);background:var(--color-accent-soft);color:var(--ink)}.practice-bubble-mark{opacity:.55;position:absolute;bottom:6px;right:8px}.practice-bubble.learner:has(.practice-bubble-mark){padding-right:26px}.practice-play{background:var(--color-accent-soft);width:30px;height:30px;color:var(--color-accent-strong);border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.practice-play.on{background:var(--color-accent);color:var(--color-accent-contrast)}.practice-bars{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.practice-bars i{background:currentColor;border-radius:2px;width:3px;animation:.9s ease-in-out infinite practice-bar}.practice-bars i:nth-child(2){animation-delay:.15s}.practice-bars i:nth-child(3){animation-delay:.3s}@keyframes practice-bar{0%,to{height:4px}50%{height:12px}}.practice-hidden-text{color:var(--muted);font-size:var(--fs-3);text-align:left;background:0 0;border:0;padding:4px 0;font-style:italic}.practice-line{flex-direction:column;align-self:flex-end;align-items:flex-end;gap:6px;max-width:min(580px,86%);display:flex}.practice-line .practice-bubble{max-width:100%}.practice-line-ok{color:var(--color-emerald);font-size:var(--fs-2);align-items:center;gap:4px;font-weight:650;display:inline-flex}.practice-retry{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.practice-better{border:1px solid var(--color-amber);width:100%}@supports (color:color-mix(in lab, red, red)){.practice-better{border:1px solid color-mix(in srgb,var(--color-amber) 45%,var(--line))}}.practice-better{border-radius:var(--radius-card-sm);background:var(--surface)}.practice-better.fixed{border-color:var(--color-emerald)}@supports (color:color-mix(in lab, red, red)){.practice-better.fixed{border-color:color-mix(in srgb,var(--color-emerald) 40%,var(--line))}}.practice-better-head{border-radius:inherit;width:100%;color:var(--ink);text-align:left;background:0 0;border:0;align-items:baseline;gap:6px;padding:8px 12px;display:flex}.practice-better-head:active:not(:disabled){transform:none}.practice-better-label{color:var(--color-amber);font-size:var(--fs-2);flex:none;font-weight:700}.practice-better.fixed .practice-better-label{color:var(--color-emerald)}.practice-better-teaser{font-size:var(--fs-4);white-space:nowrap;flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 55%,#0000);mask-image:linear-gradient(90deg,#000 55%,#0000)}.practice-better-teaser i{font-style:normal}.practice-better-full{font-size:var(--fs-4);flex:1;font-weight:650}.practice-better-chevron{color:var(--faint);flex:none;align-self:center;transition:transform .18s}.practice-better.open .practice-better-chevron{transform:rotate(180deg)}.practice-better-body{gap:8px;padding:0 12px 12px;animation:.18s ease-out lesson-fold-in;display:grid}.practice-better-body p{font-size:var(--fs-3);margin:0;line-height:1.55}.practice-better-body ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.practice-better-body li{font-size:var(--fs-3);gap:2px;display:grid}.practice-better-body del,.practice-corrections del{color:var(--color-danger);text-decoration-thickness:1px}.practice-better-body ins,.practice-corrections ins{color:var(--color-emerald);font-weight:650;text-decoration:none}.practice-better-body small{color:var(--muted);font-size:var(--fs-2)}.practice-better-body .button{justify-self:start}.practice-typing{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:18px;align-self:flex-start;align-items:center;gap:4px;padding:10px 14px;display:inline-flex}.practice-typing span{background:var(--faint);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite practice-dot}.practice-typing span:nth-child(2){animation-delay:.15s}.practice-typing span:nth-child(3){animation-delay:.3s}.practice-typing small{font-size:var(--fs-2);margin-left:6px}@keyframes practice-dot{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.practice-composer{border-top:1px solid var(--line);background:var(--surface);gap:10px;padding:12px 18px;display:grid}.practice-tools{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.practice-tools-gap{flex:1}.practice-tool{color:var(--muted);font-size:var(--fs-3);background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:7px 9px;font-weight:600;display:inline-flex}.practice-tool:hover:not(:disabled){background:var(--surface-muted);color:var(--ink)}.practice-tool:active:not(:disabled){transform:none}.practice-tool small{color:var(--faint)}.practice-hint,.practice-retry-banner{border-radius:var(--radius-card-sm);font-size:var(--fs-3);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 6px 6px 12px;display:grid}.practice-hint{background:var(--color-accent-soft)}.practice-hint>svg{color:var(--color-accent)}.practice-hint q,.practice-retry-banner q{quotes:"«" "»";font-weight:650}.practice-hint small{color:var(--muted);font-size:var(--fs-2);display:block}.practice-retry-banner{background:var(--color-amber-soft)}.practice-retry-banner>svg{color:var(--color-amber)}.practice-hint .icon-button,.practice-retry-banner .icon-button{background:0 0;border-color:#0000;width:30px;height:30px}.practice-failure{align-items:center}.practice-failure span{flex:1}.practice-confirm{border:1px solid var(--color-amber);gap:10px;display:grid}@supports (color:color-mix(in lab, red, red)){.practice-confirm{border:1px solid color-mix(in srgb,var(--color-amber) 45%,var(--line))}}.practice-confirm{border-radius:var(--radius-card-sm);background:var(--color-amber-soft);padding:12px 14px}.practice-confirm p{font-size:var(--fs-3);margin:0;line-height:1.55}.practice-confirm>div{justify-content:flex-end;gap:8px;display:flex}.practice-done-note{color:var(--color-emerald);font-size:var(--fs-4);justify-content:center;align-items:center;gap:6px;padding:14px 0;font-weight:650;display:flex}.practice-inline-note{color:var(--color-accent-strong);font-size:var(--fs-3);background:0 0;border:0;justify-self:center;align-items:center;gap:6px;font-weight:600;display:inline-flex}.practice-result{gap:20px;padding:22px 24px;display:grid}.practice-result-head{grid-template-columns:120px minmax(0,1fr);align-items:center;gap:24px;display:grid}:is(.practice-result-head:has(>div:only-child),.practice-result-head:not(:has(.practice-score))){flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.practice-result-head h2{font-size:var(--fs-7);margin:0;font-weight:720}.practice-result-head p{color:var(--muted);font-size:var(--fs-4);margin:4px 0 0}.practice-score{place-content:center;justify-items:center;width:120px;height:120px;display:grid;position:relative}.practice-score svg{position:absolute;inset:0;transform:rotate(-90deg)}.practice-score circle{fill:none;stroke-width:2.6px}.practice-score .track{stroke:var(--surface-muted)}.practice-score .value{stroke:var(--color-accent);stroke-linecap:round;animation:.9s ease-out practice-ring}@keyframes practice-ring{0%{stroke-dasharray:0 100}}.practice-score.great .value{stroke:var(--color-emerald)}.practice-score.fair .value,.practice-score.low .value{stroke:var(--color-amber)}.practice-score strong{letter-spacing:-.03em;font-size:36px;font-weight:780;line-height:1;position:relative}.practice-score small{color:var(--faint);font-size:var(--fs-2);position:relative}.practice-result-title{gap:4px;min-width:0;display:grid}.practice-result-points{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex;font-size:var(--fs-4)!important}.practice-result-points.up{color:var(--color-emerald);font-weight:700}.practice-result-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.practice-breakdown{border-top:1px solid var(--line-soft);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 20px;margin:0;padding-top:16px;display:grid}.practice-breakdown dt{color:var(--muted);font-size:var(--fs-2);align-items:center;gap:4px;font-weight:650;display:flex}.practice-breakdown dd{grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:10px;margin:5px 0 0;display:grid}.practice-breakdown dd b{font-size:var(--fs-5);text-align:right}.practice-breakdown dd.minus{color:var(--color-amber);font-size:var(--fs-5);font-weight:700;display:block}.practice-why-toggle{color:var(--color-accent);font-size:var(--fs-2);background:0 0;border:0;align-items:center;gap:3px;margin-top:4px;padding:0;font-weight:650;display:inline-flex}.practice-why-toggle:active:not(:disabled){transform:none}.practice-why-toggle svg{transition:transform .18s}.practice-why-toggle svg.up{transform:rotate(180deg)}.practice-result>.score-why{margin:14px 0 0}.practice-meter{border-radius:var(--radius-pill);background:var(--surface-muted);height:6px;display:block;overflow:hidden}.practice-meter i{border-radius:inherit;background:var(--color-accent);height:100%;display:block}.practice-summary{gap:8px;display:grid}.practice-summary p{font-size:var(--fs-4);gap:10px;margin:0;line-height:1.6;display:flex}.practice-summary-mark{flex:none;margin-top:4px;display:inline-flex}.practice-summary-mark.good{color:var(--color-emerald)}.practice-summary-mark.next{color:var(--color-accent)}.practice-result-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;display:grid}.practice-result-grid h3,.practice-corrections h3{font-size:var(--fs-4);align-items:center;gap:6px;margin:0 0 8px;font-weight:700;display:flex}.practice-result-goals{gap:6px;margin:0;padding:0;list-style:none;display:grid}.practice-result-goals li{color:var(--muted);font-size:var(--fs-3);align-items:center;gap:8px;display:flex}.practice-result-goals li svg{color:var(--faint)}.practice-result-goals li.done{color:var(--ink)}.practice-result-goals li.done svg{color:var(--color-emerald)}.user-shell .practice-words.word-list,.practice-words.word-list{padding:0}.practice-corrections ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.practice-corrections li{border-left:2px solid var(--color-amber-soft);font-size:var(--fs-4);gap:2px;padding:2px 0 2px 12px;display:grid}.practice-corrections small{color:var(--muted);font-size:var(--fs-2)}.practice-dialog-fold{margin-top:12px;overflow:hidden}.practice-dialog-toggle{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:14px 20px;display:flex}.practice-dialog-toggle span{font-size:var(--fs-5);font-weight:700}.practice-dialog-toggle small{color:var(--faint);font-size:var(--fs-2);flex:1}.practice-dialog-toggle svg{color:var(--faint);transition:transform .18s}.practice-dialog-toggle svg.up{transform:rotate(180deg)}.practice-transcript{border-top:1px solid var(--line-soft);background:var(--soft);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.practice-result .practice-transcript{border-radius:var(--radius-card-sm)}.practice-teacher-body{gap:0;padding:0 16px 16px;display:grid}.practice-teacher-body .practice-result,.practice-teacher-body .practice-dialog-fold{box-shadow:none;background:var(--soft)}.practice-empty.teacher{display:block}@media (prefers-reduced-motion:reduce){.practice-avatar.speaking,.practice-bars i,.practice-typing span,.practice-score .value,.practice-goals li.done .practice-goal-mark{animation:none}}.practice-line-pending{color:var(--faint);font-size:var(--fs-2);align-items:center;gap:3px;display:inline-flex}.practice-chat-layout{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.practice-task{display:none}@media (min-width:1024px){.practice-chat-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.practice-task{flex-direction:column;height:clamp(440px,100dvh - 232px,900px);display:flex;overflow:hidden}.practice-chips,.practice-dock{display:none!important}}.practice-room{grid-template-rows:auto auto minmax(0,1fr) auto}.practice-room>.practice-room-head{grid-row:1}.practice-room>.practice-chips{grid-row:2}.practice-room>.practice-messages{grid-row:3}.practice-room>.practice-composer{grid-row:4}.practice-task-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.practice-task-head h2{font-size:var(--fs-6);margin:0;font-weight:720}.practice-task-head small{color:var(--muted);font-size:var(--fs-2)}.practice-task-list{overscroll-behavior:contain;flex:1;align-content:start;gap:6px;margin:0;padding:10px;list-style:none;display:grid;overflow-y:auto}.practice-task-list li{border:1px solid var(--line);border-radius:var(--radius-card-sm);background:var(--surface)}.practice-task-list li.done{border-color:var(--color-emerald)}@supports (color:color-mix(in lab, red, red)){.practice-task-list li.done{border-color:color-mix(in srgb,var(--color-emerald) 40%,var(--line))}}.practice-task-list li.open{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.practice-task-list li.open{border-color:color-mix(in srgb,var(--color-accent) 45%,var(--line))}}.practice-task-list li>button{border-radius:inherit;width:100%;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:20px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:10px 12px;display:grid}.practice-task-list li>button:active:not(:disabled){transform:none}.practice-task-list li.open .practice-goal-chevron{transform:rotate(180deg)}.practice-task-title{font-size:var(--fs-3);flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-weight:650;display:flex}.practice-task-title b,.practice-chips-row b,.practice-dock-head b{color:var(--color-accent-strong);font-size:var(--fs-2);font-weight:700}.practice-task-left{color:var(--color-accent-strong);font-size:var(--fs-2);margin:0;padding:0 12px 8px 42px;line-height:1.45}.practice-task-note{border-top:1px solid var(--line-soft);color:var(--faint);font-size:var(--fs-2);margin:0;padding:10px 16px 12px;line-height:1.5}.practice-ring{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.practice-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.practice-ring circle{fill:none;stroke-width:2.4px}.practice-ring .track{stroke:var(--color-border-strong)}.practice-ring .value{stroke:var(--color-accent);stroke-linecap:round;transition:stroke-dasharray .4s}.practice-ring.done{background:var(--color-emerald);animation:.3s ease-out practice-pop}.practice-chips{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:8px 12px 8px 14px;display:flex}.practice-chips-row{scrollbar-width:none;flex:1;gap:6px;min-width:0;display:flex;overflow-x:auto}.practice-chips-row::-webkit-scrollbar{display:none}.practice-chips-row button{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);max-width:240px;color:var(--ink);font-size:var(--fs-3);flex:none;align-items:center;gap:7px;padding:5px 11px 5px 6px;font-weight:650;display:inline-flex}.practice-chips-row button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.practice-chips-row button.done{border-color:var(--color-emerald)}@supports (color:color-mix(in lab, red, red)){.practice-chips-row button.done{border-color:color-mix(in srgb,var(--color-emerald) 40%,var(--line))}}.practice-chips-row button.active{border-color:var(--color-accent);background:var(--color-accent-soft)}.practice-chips-row button:active:not(:disabled){transform:none}.practice-chips .practice-room-note{margin-top:0}.practice-dock{overscroll-behavior:contain;border:1px solid var(--color-accent);max-height:38dvh;display:grid;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.practice-dock{border:1px solid color-mix(in srgb,var(--color-accent) 35%,var(--line))}}.practice-dock{border-radius:var(--radius-card-sm);background:var(--color-accent-soft)}@supports (color:color-mix(in lab, red, red)){.practice-dock{background:color-mix(in srgb,var(--color-accent-soft) 45%,var(--surface))}}.practice-dock{padding:8px 8px 10px 12px;animation:.18s ease-out lesson-fold-in}.practice-dock-head{align-items:center;gap:8px;display:flex}.practice-dock-head strong{min-width:0;font-size:var(--fs-3);flex:1}.practice-dock-head .icon-button{background:0 0;border-color:#0000;width:30px;height:30px}.practice-dock .practice-task-left{padding:2px 0 0 28px}.practice-dock .practice-goal-detail{padding:6px 4px 0 28px}.practice-gain{font-size:var(--fs-2);text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:3px 6px;font-weight:650;display:inline-flex}.practice-gain .practice-ring{width:14px;height:14px}.practice-gain small{opacity:.85;width:100%;font-weight:500}.practice-gain.met{color:var(--color-emerald)}.practice-gain.progress{color:var(--color-accent-strong)}.practice-gain.almost{color:var(--color-amber)}.practice-input{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:minmax(0,1fr) 44px 44px;align-items:end;gap:6px;padding:5px 5px 5px 14px;transition:border-color .15s,box-shadow .15s;display:grid}.practice-input:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.practice-input.recording{border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.practice-input.recording{border-color:color-mix(in srgb,var(--color-danger) 55%,var(--line))}}.practice-input.recording{box-shadow:0 0 0 3px var(--color-danger-soft)}.practice-input textarea{resize:none;width:100%;min-height:34px;max-height:140px;color:var(--ink);font:inherit;font-size:var(--fs-6);background:0 0;border:0;margin:0 0 5px;padding:7px 0 0;line-height:1.4;display:block;overflow-y:auto}.practice-input textarea:focus{box-shadow:none;outline:none}.practice-input-live{min-height:34px;color:var(--muted);font-size:var(--fs-4);align-items:center;gap:10px;margin-bottom:5px;display:flex}.practice-input.recording .practice-input-live{color:var(--color-danger);font-weight:600}.practice-input-cancel{color:var(--muted);font-size:var(--fs-3);background:0 0;border:0;margin-left:auto;padding:4px 6px;font-weight:600}.practice-level{--level:0;align-items:center;gap:3px;height:18px;display:inline-flex}.practice-level i{width:3px;height:calc(4px + var(--level) * 14px);background:currentColor;border-radius:2px;transition:height 80ms linear}.practice-level i:nth-child(2),.practice-level i:nth-child(4){height:calc(4px + var(--level) * 10px)}.practice-level i:first-child,.practice-level i:nth-child(5){height:calc(3px + var(--level) * 6px)}.practice-mic{--level:0;background:var(--color-accent);width:44px;height:44px;color:var(--color-accent-contrast);box-shadow:0 0 0 calc(var(--level) * 10px) var(--color-accent-soft);border:0;border-radius:50%;justify-content:center;align-items:center;transition:box-shadow 80ms linear,background .2s,color .2s;display:inline-flex}.practice-mic.quiet{background:var(--color-accent-soft);color:var(--color-accent-strong)}.practice-mic.recording{background:var(--color-danger);color:#fff;box-shadow:0 0 0 calc(var(--level) * 12px) var(--color-danger-soft)}.practice-mic:focus-visible,.practice-send:focus-visible{outline:3px solid var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.practice-mic:focus-visible,.practice-send:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 60%,transparent)}}.practice-mic:focus-visible,.practice-send:focus-visible{outline-offset:2px}.practice-mic:disabled{opacity:.5}.practice-send{background:var(--color-accent);width:44px;height:44px;color:var(--color-accent-contrast);border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.practice-send:disabled{background:var(--surface-muted);color:var(--faint)}@media (prefers-reduced-motion:reduce){.practice-mic,.practice-level i,.practice-ring .value{transition:none}}.practice-link{color:var(--color-accent-strong);font-size:var(--fs-3);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);background:0 0;border:0;padding:2px 0;font-weight:650}@supports (color:color-mix(in lab, red, red)){.practice-link{-webkit-text-decoration-color:color-mix(in srgb,var(--color-accent) 35%,transparent);-webkit-text-decoration-color:color-mix(in srgb,var(--color-accent) 35%,transparent);-webkit-text-decoration-color:color-mix(in srgb,var(--color-accent) 35%,transparent);text-decoration-color:color-mix(in srgb,var(--color-accent) 35%,transparent)}}.practice-link{text-underline-offset:3px}.practice-link:hover{text-decoration-color:currentColor}.practice-link:active:not(:disabled){transform:none}.practice-level-line{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.practice-level-line.sheet{border-radius:var(--radius-card-sm);background:var(--surface-muted);font-size:var(--fs-3);justify-content:space-between;margin-top:10px;padding:9px 12px}.practice-level-line.sheet small{color:var(--muted)}.practice-levels-box{gap:8px;margin-top:8px;animation:.18s ease-out lesson-fold-in;display:grid}.practice-levels-box h3{font-size:var(--fs-4);align-items:center;gap:6px;margin:10px 0 2px;font-weight:700;display:flex}.practice-levels button{grid-template-columns:44px minmax(0,1fr) 16px}.practice-levels button.active{border-color:var(--color-accent);background:var(--color-accent-soft)}.practice-levels button.active>svg{color:var(--color-accent)}.practice-levels button:disabled{opacity:.7}.practice-levels button span{gap:2px;display:grid}.practice-levels button small{color:var(--muted);font-size:var(--fs-1);text-transform:none;font-weight:650}.practice-levels-box>.practice-link{justify-self:start}.practice-levels-note{color:var(--muted);font-size:var(--fs-2);flex-wrap:wrap;align-items:center;gap:4px;margin:0;display:flex}.practice-strip-levels{border-top:1px solid var(--line-soft);grid-column:1/-1;padding:4px 20px 16px}@media (min-width:900px){.practice-strip-levels .practice-levels{grid-template-columns:repeat(5,minmax(0,1fr))}.practice-strip-levels .practice-levels button{grid-template-columns:1fr 16px;align-content:start;align-items:start;gap:6px;padding:10px 12px}.practice-strip-levels .practice-levels button b{justify-self:start;padding:0 8px}.practice-strip-levels .practice-levels button span{grid-area:2/1/auto/-1}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
