@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-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-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;--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}.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}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.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,)}.lowercase{text-transform:lowercase}.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)}.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,)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--blue:#0b57d0;--blue-dark:#0846a8;--blue-soft:#eaf1ff;--ink:#12161d;--muted:#667181;--line:#d9e0e9;--line-soft:#e9edf2;--soft:#f3f5f8;--surface:#fff;--surface-raised:#fff;--surface-muted:#f8fafc;--sidebar-bg:#111820;--sidebar-line:#27313d;--white:#fff;--sidebar:248px}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--blue:#79a8ff;--blue-dark:#a6c4ff;--blue-soft:#16294a;--ink:#f2f5f9;--muted:#9aa6b5;--line:#2d3744;--line-soft:#222c38;--soft:#0c1118;--surface:#131a23;--surface-raised:#18212c;--surface-muted:#101720;--sidebar-bg:#080c12;--sidebar-line:#202a36;--white:#131a23}*{box-sizing:border-box}html{background:var(--soft)}body{background:var(--soft);color:var(--ink);font-family:var(--font-golos),Arial,sans-serif;-webkit-font-smoothing:antialiased;margin:0}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-offset:2px;outline:3px solid #0754e82e}h1,h2,h3,p{margin-top:0}.spin{animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.kicker{color:var(--blue);font-family:var(--font-plex-mono),monospace;letter-spacing:.14em;margin-bottom:7px;font-size:9px;font-weight:600;display:block}.button{border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;font-size:12px;font-weight:800;display:inline-flex}.button.primary{border:1px solid var(--blue);background:var(--blue);color:#fff;box-shadow:0 3px #04328c33}.button.primary:hover{background:var(--blue-dark)}.button.secondary{border:1px solid var(--line);background:#fff}.button.secondary:hover{background:#fafafa;border-color:#a8afb9}.button.danger{color:#fff;background:#17191d;border:1px solid #17191d}.button.danger:hover{background:#000;border-color:#000}.button.compact{min-height:33px;padding:0 11px;font-size:9px}.button.wide{width:100%}.button:disabled{cursor:not-allowed;opacity:.5;transform:none}.icon-button{border:1px solid var(--line);background:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.icon-button:hover{background:var(--soft);border-color:#aab1bb}.icon-button.danger:hover{color:#fff;background:#111;border-color:#222}.text-button{color:var(--blue);background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:10px;font-weight:800;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";letter-spacing:-.1em;font-size:10px;transform:translate(-1px)}.boot-screen{min-height:100vh;color:var(--blue);background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:28px;display:flex}.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:16px;line-height:1.65}.login-intro>small{color:#bed1f8;font-size:10px}.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);margin-bottom:30px;font-size:12px;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{gap:8px;font-size:11px;font-weight:750;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:6px;outline:0;padding:0 13px;font-size: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(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.error-box,.info-box,.page-error{border-left:3px solid var(--blue);background:var(--blue-soft);color:#173b78;align-items:flex-start;gap:9px;padding:11px 12px;font-size:10px;line-height:1.4;display:flex}.security-note{color:#8a919c;justify-content:center;align-items:center;gap:7px;margin-top:25px;font-size:9px;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:17px}.sidebar .logo>span{color:#fff}.role-caption{color:#737a84;font-family:var(--font-plex-mono),monospace;letter-spacing:.13em;margin:23px 20px 10px;font-size:8px}.sidebar nav{gap:3px;padding:0 11px;display:grid}.sidebar nav button,.logout{color:#9ca2ac;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:11px;width:100%;height:43px;padding:0 11px;font-size:11px;font-weight:700;display:flex}.sidebar nav button:hover,.logout:hover{color:#fff;background:#171a1f}.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:10px}.sidebar-user small{color:#7d848e;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.avatar{background:var(--blue-soft);width:35px;height:35px;color:var(--blue);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:9px;font-weight:850;display:inline-flex}.avatar.large{width:46px;height:46px}.avatar.huge{width:70px;height:70px;font-size:16px}.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:8px}.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{letter-spacing:-.055em;margin-bottom:7px;font-size:36px;font-weight:650}.page-title p{color:var(--muted);margin:0;font-size:12px}.page-error{align-items:center;margin-bottom:16px}.page-error button{color:var(--blue);background:0 0;border:0;margin-left:auto;font-size:9px;font-weight:800}.panel{border:1px solid var(--line);background:#fff;border-radius:8px}.panel-head{border-bottom:1px solid #edf0f3;justify-content:space-between;align-items:center;gap:18px;min-height:72px;padding:14px 20px;display:flex}.panel-head h2{letter-spacing:-.03em;margin:0;font-size:15px}.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;letter-spacing:.07em;font-size:8px;font-weight:600}.metric.featured>div,.metric.featured>div span,.metric.featured p{color:#dbe7ff}.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);margin:4px 0 0;font-size:8px}.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{margin:16px 0 6px;font-size:15px}.empty p{max-width:330px;color:var(--muted);margin:0 0 18px;font-size:10px;line-height:1.6}.pill{white-space:nowrap;border-radius:99px;justify-content:center;align-items:center;min-height:24px;padding:0 9px;font-size:7px;font-weight:850;display:inline-flex}.pill.queued{color:#5f6671;background:#eef0f3}.pill.processing{color:#fff;background:#111}.pill.review{background:var(--blue);color:#fff}.pill.published{background:var(--blue-soft);color:var(--blue)}.pill.failed{color:#fff;background:#111}.lessons-panel{overflow:hidden}.lesson-list{min-width:900px}.lesson-row{border-bottom:1px solid #edf0f3;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{color:#6f7680;background:#eef0f3;border-radius:50%;justify-content:center;align-items:center;width:35px;height:35px;display:flex}.status-icon.review,.status-icon.published{background:var(--blue-soft);color:var(--blue)}.status-icon.failed{color:#fff;background:#111}.lesson-name{flex-direction:column;gap:4px;min-width:0;display:flex}.lesson-name span,.lesson-date,.lesson-status small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;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:9px}.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{margin:14px 0 3px;font-size:13px}.student-card>p{color:var(--muted);margin:0;font-size:9px}.student-stats{border-top:1px solid #edf0f3;border-bottom:1px solid #edf0f3;grid-template-columns:1fr 1fr;margin:15px 0;padding:12px 0;display:grid}.student-stats span{color:var(--muted);flex-direction:column;gap:2px;font-size:8px;display:flex}.student-stats strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:15px}.student-card-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.student-card-foot small{color:var(--muted);font-size:7px}.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:8px}.score.small{font-size:15px}.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:10px}.ai-comment p{color:#36527f;margin:6px 0 0;font-size:10px;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:8px}.teacher-comment p{margin:6px 0 0;font-size:10px;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;border:1px solid #bed0f3;border-radius:5px;padding:7px 9px;font-size:8px}.word-list p{color:var(--muted);margin:0;font-size:9px}.student-lesson-list>button{text-align:left;background:#fff;border:0;border-bottom:1px solid #edf0f3;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:#fafbfc}.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:10px}.student-lesson-list span{color:var(--muted);font-size:8px}.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{margin:15px 0 4px;font-size:17px}.profile-card p{color:var(--muted);margin:0 0 13px;font-size:10px}.password-card form{gap:14px;padding:20px;display:grid}.password-card form .button{justify-self:start}.form-message{color:var(--blue);margin:0;font-size:9px}.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{letter-spacing:-.04em;margin:0;font-size:19px}.modal-body{padding:22px}.modal-actions{border-top:1px solid #edf0f3;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:10px}.danger-zone span{color:var(--muted);font-size:8px;line-height:1.5}.danger-zone .button{flex:none}.drop-zone{min-height:150px;color:var(--muted);text-align:center;border:1px dashed #adb5c0;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);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.drop-zone span{font-size:8px}.upload-progress{gap:8px;display:grid}.upload-progress>div{justify-content:space-between;font-size:9px;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);background:#fff;border-left:0;border-radius:0 6px 6px 0;align-items:center;gap:5px;padding:0 10px;font-size:8px;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);text-align:center;margin:15px auto;font-size:10px;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);flex-direction:column;gap:7px;padding:15px;font-size:8px;display:flex}.credential-box span:last-child{border:0}.credential-box strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:11px}.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:#fafbfc;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 #edf0f3;justify-content:space-between;align-items:center;min-height:63px;padding:11px 15px;display:flex}.review-section-head h3{margin:0;font-size:13px}.finding{border-bottom:1px solid #edf0f3;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:9px}.finding strong{color:var(--blue);font-size:10px}.finding small{color:var(--muted);font-size:8px;line-height:1.5}.finding.disabled{opacity:.45}.muted{color:var(--muted);padding:15px;font-size:9px}.score-control{border:1px solid var(--line);background:#fff;border-radius:7px;padding:15px}.score-control>span{color:var(--muted);font-size:8px;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:8px}.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);background:#fff;border-radius:6px;flex-direction:column;gap:5px;padding:12px;font-size:8px;display:flex}.computed strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:17px}.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;letter-spacing:.1em;align-items:center;gap:7px;font-size:8px;font-weight:700;display:flex}.dev-live i{background:#18a05e;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);margin:0;font-size:12px;line-height:1.55}.heading-actions{gap:8px;display:flex}.dev-loading{min-height:400px;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:11px;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;letter-spacing:.07em;font-size:8px;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);margin:0;font-size:8px}.dev-overview-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.mini-provider-list>div{border-bottom:1px solid #edf0f3;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:10px}.mini-provider-list small,.compact-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.mini-provider-list em{color:var(--muted);font-size:8px;font-style:normal}.status-dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.status-dot.ok{background:#18a05e;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 #edf0f3;align-items:center;gap:10px;min-height:60px;padding:10px 18px;display:flex}.dev-empty-line{color:var(--muted);margin:0;font-size:9px}.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 #edf0f3;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{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.simple-log-list small{color:var(--muted);font-size:7px}.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:10px}.disk-panel span{color:var(--muted);font-size:8px}.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:10px}.dev-tabs{border:1px solid var(--line);background:#fff;border-radius:7px;gap:3px;width:max-content;margin-bottom:14px;padding:3px;display:flex}.dev-tabs button{min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:5px;padding:0 14px;font-size:9px;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);color:#767e89;height:40px;font-family:var(--font-plex-mono),monospace;letter-spacing:.07em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#fafbfc;padding:0 13px;font-size:7px;font-weight:650}.dev-table td{color:#4e5661;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #edf0f3;max-width:280px;height:60px;padding:9px 13px;font-size:8px;overflow:hidden}.dev-table tr:last-child td{border-bottom:0}.dev-table td>strong{color:var(--ink);font-size:9px}.table-user{align-items:center;gap:9px;display:flex}.table-user strong{color:var(--ink);font-size:9px}.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);gap:7px;font-size:9px;display:grid}.inspector-grid textarea{resize:vertical;min-height:260px;padding:12px;font-size:10px;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);border-radius:6px;flex-direction:column;gap:5px;padding:12px;font-size:8px;display:flex}.inspector-stats strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:17px}.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:10px}.routing-map span{color:var(--blue);font-family:var(--font-plex-mono),monospace;font-size:8px}.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:10px}.api-card>header small,.api-card>footer small{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:7px}.api-state{color:#5f6771;background:#eef0f3;border-radius:99px;padding:5px 8px;font-size:7px;font-weight:800}.api-numbers{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.api-numbers span{color:var(--muted);border:1px solid #edf0f3;border-radius:5px;flex-direction:column;gap:3px;padding:8px;font-size:7px;display:flex}.api-numbers strong{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:11px}.api-limits,.api-error{color:var(--muted);text-overflow:ellipsis;margin:0;font-size:7px;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;background:#f5f6f8;border-radius:6px;margin-bottom:15px;padding:14px;font-size:9px;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 #edf0f3;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:10px}.trash-list small{color:var(--muted);font-size:8px}.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{min-height:110px;color:var(--blue);border-right:1px solid #edf0f3;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:9px}.retention-panel small{color:var(--muted);font-size:8px}@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 #edf0f3}}@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-bottom:1px solid #edf0f3;border-right:0}.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{letter-spacing:-.035em;gap:12px;font-size:17px}.logo>span{background:0 0;border:1px solid;border-radius:2px 11px 11px;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;letter-spacing:-.08em;font-size:9px;font-weight:700}.kicker{letter-spacing:.17em;margin-bottom:9px;font-size:9px;font-weight:650}.page-title,.dev-heading{padding-left:17px;position:relative}.page-title:before,.dev-heading:before{background:var(--blue);content:"";width:3px;position:absolute;top:3px;bottom:3px;left:0}.page-title h1,.dev-heading h1{letter-spacing:-.055em;font-size:clamp(32px,4vw,47px);font-weight:650;line-height:1.03}.page-title p,.dev-heading p{max-width:700px;font-size:13px;line-height:1.65}.button{letter-spacing:.005em;border-radius:3px 10px 10px;min-height:44px;padding:0 17px;font-size:12px}.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:3px 9px 9px}.text-button{font-size:11px;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:3px 10px 10px;height:45px;font-size:12px;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);background:var(--surface);border-radius:3px 16px 16px;box-shadow:0 1px #10172208}.panel-head{border-color:var(--line-soft);min-height:78px;padding-inline:22px}.panel-head h2{font-size:17px}.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{background:var(--line);content:"";width:42px;height:3px;position:absolute;top:0;right:0}.metric>div span,.dev-metric>div span{font-size:9px}.metric>strong,.dev-metric>strong{font-size:29px}.metric p,.dev-metric p{font-size:10px;line-height:1.45}.metrics-row,.dev-metrics{gap:14px;margin-bottom:18px}input,select,textarea{border-color:var(--line);background:var(--surface-raised);color:var(--ink);border-radius:3px 10px 10px}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(--surface)}.login-side{background:var(--surface);position:relative}.login-intro{background:#0b4fb8}.login-intro:before,.login-intro:after{border-radius:3px 80px 80px;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:12px}.lesson-name span,.lesson-date,.lesson-status small{font-size:9px}.status-icon{background:var(--surface-muted);border-radius:3px 12px 12px}.student-toolbar,.student-stats{border-color:var(--line-soft)}.student-toolbar label{border-color:var(--line);border-radius:3px 10px 10px}.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:15px}.ai-comment{border-left:0;border-top:3px solid var(--blue);background:var(--blue-soft);border-radius:2px 12px 12px}.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{background:var(--blue-soft);border-radius:2px 8px 8px}.pill{border-radius:3px 8px 8px}.pill.queued,.api-state{background:var(--surface-muted);color:var(--muted)}.pill.processing,.pill.failed{background:var(--ink);color:var(--soft)}.modal-backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#03080fb8}.modal{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:3px 18px 18px;box-shadow:0 28px 90px #00000059}.modal>header,.modal-actions,.review-main,.review-section-head,.finding{border-color:var(--line-soft)}.review-main textarea{font-size:13px;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);grid-column:1/-1;padding:0 0 7px;font-size:9px}.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:10px}.mode-choice small{color:var(--muted);font-size:8px;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);border-radius:0 6px 6px 0;grid-column:1/-1;margin:2px 0 0;padding:10px 12px;font-size:8px;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);margin:0;font-size:10px;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-variant-numeric:tabular-nums;font-size:10px}.level-ring-label i{font-size:8px;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:9px}.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;letter-spacing:.03em;white-space:nowrap;font-size:8px;position:absolute;transform:translate(-50%)}.ladder-steps span.passed{color:var(--ink);font-weight:600}.ladder-note{color:var(--muted);margin:0;font-size:10px}.ladder-card.locked .ladder-track{opacity:.55}@media (max-width:640px){.ladder-points strong{font-size:32px}.ladder-steps span{font-size:7px}}.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{background:#18a05e17;border-color:#18a05e}.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:#18a05e}.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:8px}.level-history-list{display:grid}.level-event{border-bottom:1px solid #edf0f3}.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:#18a05e;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:10px}.level-event-body small{color:var(--muted);font-size:8px}.level-event-head b{font-family:var(--font-plex-mono),monospace;font-variant-numeric:tabular-nums;font-size:12px}.level-event-head b.up{color:#18a05e}.level-event-head b.down{color:var(--muted)}.breakdown{border-top:1px solid #edf0f3;gap:12px;padding:16px 18px;display:grid}.breakdown-note{color:var(--muted);margin:0;font-size:9px;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:10px}.breakdown-head small{color:var(--muted);font-size:8px}.breakdown-head b{font-family:var(--font-plex-mono),monospace;font-variant-numeric:tabular-nums;font-size:11px}.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;border-radius:4px;padding:2px 6px;font-size:8px}.breakdown-error-head span{color:var(--muted);flex:1;font-size:8px}.breakdown-error-head em{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:8px;font-style:normal}.breakdown-fix{align-items:center;gap:7px;margin:0;font-size:10px;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);margin:0;font-size:9px;line-height:1.55}.breakdown-structures{border-top:1px solid #edf0f3;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;border-radius:4px;padding:2px 6px;font-size:8px}.breakdown-structures span{font-size:9px}.breakdown-structures small{width:100%;color:var(--muted);font-size:8px;font-style:italic}.review-section-body{padding:15px}.coded-findings{gap:16px;display:grid}.coded-summary{color:var(--muted);margin:0;font-size:9px;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;border-radius:4px;padding:2px 6px;font-size:8px}.coded-finding-head span{color:var(--muted);flex:1;font-size:8px}.coded-finding-head em{color:var(--muted);font-family:var(--font-plex-mono),monospace;font-size:8px;font-style:normal}.coded-doubt{background:var(--warn-soft,#f6eeda);color:#8a6414;border-radius:99px;padding:2px 7px;font-size: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{color:#a8443a;background:#a8443a1a;border-color:#a8443a}.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{background:#18a05e17;border-color:#18a05e}.publish-preview.muted-preview{border-color:var(--line);background:var(--surface-muted);color:var(--muted);font-size:9px;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{margin:0;font-size:10px}.publish-preview small{color:var(--muted);font-size:8px;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,#adb5c0);background:0 0}.streak-week small{color:var(--muted);font-size:7px}.streak-week.counted small{color:var(--blue)}.streak-facts{border-top:1px solid var(--line-soft);color:var(--muted);flex-wrap:wrap;gap:8px 18px;padding:12px 18px;font-size:9px;display:flex}.streak-facts span{align-items:center;gap:6px;display:flex}.streak-stale{color:#8a6414}.streak-next{border-top:1px solid var(--line-soft);margin:0;padding:12px 18px;font-size:10px}.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{background:var(--blue-soft);border-radius:3px 12px 12px}.routing-map strong,.routing-map span{color:var(--ink)}.api-card,.api-numbers span,.inspector-stats span{border-color:var(--line);background:var(--surface);border-radius:3px 10px 10px}.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,[data-theme=dark] .pill.failed,[data-theme=dark] .pill.processing{color:#101720;background:#dbe4f1}[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);margin:0;font-size:9px}.student-card .student-stats{margin-bottom:10px}.student-open-label{color:var(--blue);justify-content:flex-end;align-items:center;gap:5px;font-size:8px;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);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin-bottom:18px;padding:0;font-size:10px;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{background:var(--blue-soft);color:var(--blue);border-radius:3px 12px 12px;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:10px}.student-attention small{color:var(--muted);font-size:8px}.upload-task-list{border-top:1px solid var(--line-soft);gap:9px;padding-top:16px;display:grid}.upload-task{border:1px solid var(--line);background:var(--surface-muted);border-radius:3px 11px 11px;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{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.upload-task-head small{color:var(--muted);font-size:8px}.upload-task-head b{color:var(--blue);font-family:var(--font-plex-mono),monospace;flex:none;font-size:9px}.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:#a43131;font-size:8px;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}}:root{--blue:#5b82e5;--blue-dark:#1e3a63;--blue-soft:#edf3ff;--ink:#1e3a63;--muted:#68778e;--line:#d7e0ee;--line-soft:#e8edf5;--soft:#f5f7fb;--surface:#fff;--surface-raised:#fff;--surface-muted:#f8faff;--sidebar-bg:#fff;--sidebar-line:#dce4ef;--sidebar:264px}[data-theme=dark]{--blue:#7fa1f3;--blue-dark:#b6c9f7;--blue-soft:#1b3155;--ink:#edf3ff;--muted:#a6b3c7;--line:#304561;--line-soft:#263a55;--soft:#0f1c2d;--surface:#14243a;--surface-raised:#192c46;--surface-muted:#102038;--sidebar-bg:#0b1727;--sidebar-line:#263a55}.sr-only{clip:rect(0,0,0,0)!important;white-space:nowrap!important;width:1px!important;height:1px!important;position:absolute!important;overflow:hidden!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(--blue);color:#fff}.kicker{color:var(--blue);letter-spacing:.16em;font-size:9px;font-weight:600}.kicker.light{color:var(--blue)}.login-shell{--login-bg:#f7f8fb;--login-card:#ffffffe0;--login-grid:#1e3a5f12;--login-glow:#6c8cf533;isolation:isolate;background:radial-gradient(circle at 19% 18%,var(--login-glow),transparent 30%), linear-gradient(var(--login-grid) 1px,transparent 1px), linear-gradient(90deg,var(--login-grid) 1px,transparent 1px), var(--login-bg);background-size:auto,54px 54px,54px 54px,auto;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{background:#fff;border-radius:10px;width:218px;height:55px;overflow:hidden;box-shadow:0 0 0 8px #fff}.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);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);margin-bottom:28px;padding:8px 13px;font-size:11px;font-weight:700}.login-message>.kicker{color:var(--blue);font-family:var(--font-plex-mono),monospace;letter-spacing:.24em;margin-bottom:13px;font-size:10px;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{color:var(--blue);font-family:var(--font-plex-mono),monospace;font-size:10px;font-weight:600}.login-features article>div{flex-direction:column;gap:3px;min-width:0;display:flex}.login-features strong{color:var(--ink);font-size:13px}.login-features small{color:var(--muted);font-size:9px;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(--blue);font-family:var(--font-plex-mono),monospace;letter-spacing:.18em;text-transform:uppercase;margin-bottom:12px;font-size: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);margin-bottom:34px;font-size:12px}.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{color:var(--blue);background:#fff}.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{color:#fff;background:#1e3a63}.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{color:#fff;background:#1e3a63;border-color:#2e4b72;margin-top:auto;padding:19px 18px 12px}.sidebar-user small{color:#b6c8e1}.sidebar-user .avatar{color:#1e3a63;background:#fff}.logout{color:#dce8f8;background:#1e3a63;border-radius:0;width:auto;margin:0;padding:0 18px 18px}.logout:hover{color:#fff;background:#1e3a63}.mobile-close{border-color:var(--line);color:#1e3a63}.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);letter-spacing:-.065em;font-size:clamp(38px,4.2vw,58px);font-weight:700}.page-title p,.dev-heading p{color:var(--muted);font-size:13px}.page-title .kicker,.dev-heading .kicker{align-items:center;gap:10px;display:flex}.page-title .kicker:before,.dev-heading .kicker:before{background:var(--blue);content:"";width:28px;height:2px}.button{border-radius:8px;min-height:44px}.button.primary{border-color:var(--blue);background:var(--blue);color:#fff;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(--blue-dark);background:var(--blue-dark)}.metric.featured:after{background:var(--blue)}.metric>strong,.dev-metric>strong{color:var(--ink);font-size:34px}.metric.featured>strong{color:#fff}.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] .login-shell{--login-bg:#081321;--login-card:#0f1f33e0;--login-grid:#7b93f017;--login-glow:#5b82e52e}[data-theme=dark] .sidebar nav button{color:#a6b3c7}[data-theme=dark] .sidebar nav button:hover{color:#edf3ff}[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:#edf3ff}[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{background:#1e3a63;border-color:#5b82e5}@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:13px}.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:radial-gradient(circle at 86% 8%,var(--blue),transparent 28%), linear-gradient(var(--line) 1px,transparent 1px), linear-gradient(90deg,var(--line) 1px,transparent 1px), var(--soft);position:relative}@supports (color:color-mix(in lab, red, red)){.user-shell .workspace{background:radial-gradient(circle at 86% 8%,color-mix(in srgb,var(--blue) 10%,transparent),transparent 28%), linear-gradient(color-mix(in srgb,var(--line) 32%,transparent) 1px,transparent 1px), linear-gradient(90deg,color-mix(in srgb,var(--line) 32%,transparent) 1px,transparent 1px), var(--soft)}}.user-shell .workspace{background-size:auto,56px 56px,56px 56px,auto}.user-shell .sidebar{border-right:1px solid var(--sidebar-line);box-shadow:8px 0 36px #1e3a6309}.user-shell .sidebar-logo{border-bottom:1px solid var(--sidebar-line);height:88px;padding:0 24px}.user-shell .sidebar-logo .brand-logo-horizontal{background:#fff;border-radius:8px;width:184px;height:46px;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:12px;font-weight:720;line-height:1.35;display:block}.user-shell .sidebar-section>small{color:var(--muted);font-size:9px;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:11px}.user-shell .topbar-context span:after{color:var(--line);content:"/";margin-left:8px}.user-shell .topbar-context strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;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);align-items:center;gap:6px;margin-right:3px;padding-right:14px;font-size:9px;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:54px 1fr;align-items:center;gap:18px;margin-bottom:30px;padding:0;display:grid}.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);letter-spacing:.08em;margin-bottom:9px;padding:5px 9px;font-size:8px;font-weight:700}.user-shell .page-title h1{color:var(--ink);letter-spacing:-.055em;margin:0 0 6px;font-size:clamp(32px,3.1vw,46px);font-weight:720;line-height:1}.user-shell .page-title p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.user-shell .panel{border:1px solid var(--line);overflow:hidden}@supports (color:color-mix(in lab, red, red)){.user-shell .panel{border:1px solid color-mix(in srgb,var(--line) 88%,transparent)}}.user-shell .panel{background:var(--surface);border-radius:16px}@supports (color:color-mix(in lab, red, red)){.user-shell .panel{background:color-mix(in srgb,var(--surface) 92%,transparent)}}.user-shell .panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 18px 46px #1e3a630e}.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);margin-bottom:6px;font-size:8px}.user-shell .panel-head h2{letter-spacing:-.025em;font-size:17px}.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);background:var(--surface);border-radius:16px;min-height:148px;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.user-shell .metric{background:color-mix(in srgb,var(--surface) 90%,transparent)}}.user-shell .metric{padding:22px;box-shadow:0 14px 36px #1e3a630a}.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{box-sizing:content-box;background:var(--blue-soft);border-radius:9px;padding:7px}.user-shell .metric>div span{color:var(--muted);letter-spacing:.08em;font-size:8px}.user-shell .metric>strong{color:var(--ink);letter-spacing:-.045em;margin:17px 0 5px;font-size:34px;font-weight:720;display:block}.user-shell .metric p{color:var(--muted);margin:0;font-size:9px}.user-shell .metric.featured{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.user-shell .metric.featured{border-color:color-mix(in srgb,var(--blue) 48%,var(--line))}}.user-shell .metric.featured{background:linear-gradient(135deg,var(--blue-soft),var(--surface))}@supports (color:color-mix(in lab, red, red)){.user-shell .metric.featured{background:linear-gradient(135deg,color-mix(in srgb,var(--blue-soft) 78%,var(--surface)),var(--surface))}}.user-shell .metric.featured{color:var(--ink)}.user-shell .metric.featured:before{background:var(--blue);content:"";width:4px;position:absolute;top:0;bottom:0;left:0}.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);margin:0 0 20px;font-size:11px;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(--blue);letter-spacing:.1em;text-transform:uppercase;font-size:8px;font-weight:700}.account-profile h2{letter-spacing:-.035em;margin:5px 0 3px;font-size:20px}.account-profile p{color:var(--muted);margin:0;font-size:10px}.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:9px}.account-profile dd{color:var(--ink);align-items:center;gap:7px;margin:0;font-size:10px;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{margin:0 0 3px;font-size:15px}.settings-section-head p{color:var(--muted);margin:0;font-size:8px}.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:13px}.access-summary p{color:var(--muted);margin:8px 0 0;font-size:10px;line-height:1.65}[data-theme=dark] .user-shell .sidebar{background:#0b1727}[data-theme=dark] .sidebar-section>span{color:#edf3ff}[data-theme=dark] .user-shell .sidebar nav button.active{color:#edf3ff;background:#5b82e52e}[data-theme=dark] .user-shell .sidebar-user{color:#edf3ff}[data-theme=dark] .user-shell .metric.featured{background:linear-gradient(135deg,#5b82e52e,#14243aeb)}[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{grid-template-columns:44px 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-bottom:1px solid var(--line);gap:6px;margin-bottom:18px;display:flex}.profile-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:10px 14px;font-size:12px;font-weight:650;display:inline-flex}.profile-tabs button:hover{color:var(--ink)}.profile-tabs button.active{border-bottom-color:var(--blue);color:var(--blue)}.insight-level,.insight-track,.insight-risks,.insight-practice{margin-bottom:16px}.insight-level .pill.queued{font-size:9px}.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:11px;font-style:normal;font-weight:600}.insight-figure small{color:var(--muted);margin-top:6px;font-size:10px;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{margin:0 0 6px;font-size:13px;line-height:1.55}.forecast-text:last-child{margin-bottom:0}.forecast-text.muted{color:var(--muted);font-size:11px}.forecast-text b{font-weight:700}.insight-note{border-top:1px solid var(--line-soft);align-items:center;gap:8px;margin:0;padding:12px 20px;font-size:11px;line-height:1.5;display:flex}.insight-note svg{color:var(--blue);flex:none}.insight-note.muted{color:var(--muted)}.insight-note.warn{color:#a8600a}.insight-note.warn svg{color:#d08a1a}[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);border-radius:8px;align-items:center;gap:8px;padding:7px 11px;font-size:10px;display:flex}.insight-projections b{color:var(--ink);font-family:var(--font-plex-mono),monospace;font-size:13px;font-weight:700}.insight-projections b i{color:var(--muted);font-size:9px;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:9px}.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);flex-wrap:wrap;gap:16px;padding:0 20px 16px;font-size:10px;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:#d08a1a;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:12px}.insight-risk small{color:var(--muted);font-size:10px;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);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 10px;font-size: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);justify-content:space-between;font-size:10px;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;border-radius:5px;padding:2px 6px;font-size:9px}.insight-error-head strong{flex:auto;font-size:12px}.insight-error-head b{font-family:var(--font-plex-mono),monospace;font-size:13px}.insight-error-head small{color:var(--muted);font-size:9px}.insight-error-example{margin:7px 0 0;font-size:11px}.insight-error-example del{color:#c3474c;text-decoration-thickness:1px}.insight-error-example ins{color:#1f8a4c;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);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:7px;padding:7px 11px;font-size: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:10px}.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;border-radius:5px;padding:2px 6px;font-size:9px}.insight-structure-list span{flex:auto;gap:2px;min-width:0;display:grid}.insight-structure-list strong{font-size:11px}.insight-structure-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.insight-structure-list b{font-family:var(--font-plex-mono),monospace;font-size:12px}.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;border-radius:7px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;font-weight:700;display:inline-flex}.student-level-mark i{color:var(--muted);font-family:var(--font-golos),Arial,sans-serif;font-size:9px;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:#1f8a4c}.student-trend.down{color:#c3474c}.student-ahead{color:var(--muted);font-size:9px}.student-attention-dot{color:#d08a1a;align-items:center;display:inline-flex}.attention-filter{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:7px;padding:6px 10px;font-size:10px;font-weight:650;display:inline-flex}.attention-filter.active{color:#a8600a;background:#d08a1a1f;border-color:#d08a1a}.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);cursor:pointer;border-radius:7px;padding:7px 11px;font-size:11px;font-weight:650}.demo-cases button.active{border-color:var(--blue);background:var(--blue);color:#fff}.demo-note{color:var(--muted);margin:0 0 22px;font-size:11px}.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);flex:none;align-self:center;margin-left:auto;font-size:10px;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:13px}.student-view-toggle small{color:var(--muted);font-size:10px}.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}.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);justify-content:center;align-items:center;gap:12px;font-size: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:10px}.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:1px solid var(--line);background:var(--surface);border-radius:11px;gap:4px;padding:4px;display:inline-flex}.board-periods button{color:var(--muted);background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:9px 14px;font-size:11px;font-weight:700;display:inline-flex}.board-periods button:hover{color:var(--ink)}.board-periods button.active{background:var(--blue);color:#fff}.board-periods button.active svg{color:#fff}[data-theme=dark] .board-periods button.active,[data-theme=dark] .board-periods button.active svg{color:#0b1727}.board-note{color:var(--muted);align-items:center;gap:8px;margin:12px 0 16px;font-size:11px;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:9px}.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(--blue-soft)}@supports (color:color-mix(in lab, red, red)){.board-row.linked:hover{background:color-mix(in srgb,var(--blue-soft) 60%,transparent)}}.board-row.linked .board-go{color:var(--blue)}.board-row.me{background:var(--blue-soft)}@supports (color:color-mix(in lab, red, red)){.board-row.me{background:color-mix(in srgb,var(--blue-soft) 78%,transparent)}}.board-row.me{box-shadow:inset 3px 0 0 var(--blue)}.board-place{background:var(--surface-muted);width:34px;height:34px;color:var(--muted);font-family:var(--font-plex-mono),monospace;border-radius:10px;justify-content:center;align-items:center;font-size:12px;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;padding:0 11px;font-size:9px}.board-who{flex-direction:column;gap:4px;min-width:0;display:flex}.board-who strong{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;font-size:12px;display:flex;overflow:hidden}.board-who strong em{background:var(--blue);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:99px;flex:none;padding:2px 7px;font-size:7px;font-style:normal;font-weight:850}[data-theme=dark] .board-who strong em{color:#0b1727}.board-who small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.board-points{font-family:var(--font-plex-mono),monospace;letter-spacing:-.03em;justify-self:end;font-size:17px;font-weight:700}.board-points.up{color:#1a7f4b}.board-points.down{color:#c0392f}.board-points.flat{color:var(--muted)}[data-theme=dark] .board-points.up{color:#5fd39a}[data-theme=dark] .board-points.down{color:#ff8f83}.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:8px}.board-level{border:1px solid var(--blue);color:var(--blue);font-family:var(--font-plex-mono),monospace;border-radius:9px;justify-self:end;padding:6px 11px;font-size:13px;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,.board-row.ranks,.board-row.calibrating{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;letter-spacing:-.02em;font-size:13px;font-weight:700}.lesson-points.up{color:#1a7f4b}.lesson-points.down{color:#c0392f}.lesson-points.flat{color:var(--muted)}[data-theme=dark] .lesson-points.up{color:#5fd39a}[data-theme=dark] .lesson-points.down{color:#ff8f83}.user-shell .page-title:has(.page-title-aside){grid-template-columns:54px minmax(0,1fr) auto}.user-shell .page-title>div:nth-child(2){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{letter-spacing:.08em;text-transform:uppercase;font-size:8px;font-weight:700}.level-line-body{flex-direction:column;flex:auto;gap:9px;min-width:0;display:flex}.level-line-top{align-items:center;gap:12px;font-size: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);flex-wrap:wrap;align-items:center;gap:14px;font-size:10px;display:flex}.level-line-foot .text-button{margin-left:auto;font-size:10px}.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:#c0392f}.standing-points.flat{color:var(--muted)}[data-theme=dark] .standing-points.up{color:#5fd39a}[data-theme=dark] .standing-points.down{color:#ff8f83}@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: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}}@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-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-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}
