:root{--bg:#f6f6f3;--surface:#fff;--surface-2:#fafaf8;--line:#e3e3de;--ink:#17181c;--muted:#5b5e66;--accent:#3346d3;--accent-ink:#fff;--accent-soft:#eceefc;--knew:#17794f;--knew-bg:#e5f3eb;--partial:#8f5400;--partial-bg:#fbefd9;--partial-bar:#e9a23b;--missed:#b42318;--missed-bg:#fce9e7;--empty:#d9d9d3;--dark:#17181c;--dark-ink:#f6f6f3;--code-bg:#fbfbf9;--shadow:0 1px 2px #17181c0a,0 4px 16px #17181c0a;--radius:16px;--radius-btn:10px;--font:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,"Cascadia Code",Consolas,monospace;--buncss-light:initial;--buncss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111215;--surface:#1a1b20;--surface-2:#1f2026;--line:#2c2e35;--ink:#eceef2;--muted:#9a9ea8;--accent:#7d8cff;--accent-ink:#0f1020;--accent-soft:#23264a;--knew:#4cc38a;--knew-bg:#15301f;--partial:#f0b45a;--partial-bg:#33270f;--partial-bar:#e9a23b;--missed:#ff7a6b;--missed-bg:#3a1714;--empty:#3a3c44;--dark:#24262e;--dark-ink:#f6f6f3;--code-bg:#15161a;--shadow:none;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .5em;line-height:1.25}h2{font-size:20px}h3{font-size:16px}p{margin:0 0 .75em}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code,pre,kbd,textarea.editor-input{font-family:var(--mono);font-variant-ligatures:none}details>summary{cursor:pointer;font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.lead{color:var(--muted);max-width:720px;font-size:16px}.text-knew{color:var(--knew)}.text-missed{color:var(--missed)}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:600}.row{display:flex;flex-wrap:wrap;align-items: center;gap:8px}.plain{margin:0 0 8px;padding-left:18px}.icon{vertical-align:-3px;flex:none}.btn{display:inline-flex;border-radius:var(--radius-btn);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items: center;gap:6px;min-height:44px;padding:0 16px;transition:background .15s,border-color .15s;font-size:14px;font-weight:600;text-decoration:none!important}.btn:disabled{opacity:.55;cursor:default}.btn-sm{min-height:36px;padding:0 12px;font-size:13px}.btn-lg{min-height:52px;padding:0 24px;font-size:16px}.btn-block{width:100%;margin-top:8px}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-ghost:hover:not(:disabled){border-color:var(--muted)}.btn-light{background:var(--dark-ink);color:#17181c}.btn-recording{border-color:var(--missed);color:var(--missed)}.btn-verdict.btn-knew{color:var(--knew)}.btn-verdict.btn-partial{color:var(--partial)}.btn-verdict.btn-missed{color:var(--missed)}.btn-verdict.active.btn-knew{background:var(--knew-bg);border-color:var(--knew)}.btn-verdict.active.btn-partial{background:var(--partial-bg);border-color:var(--partial)}.btn-verdict.active.btn-missed{background:var(--missed-bg);border-color:var(--missed)}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.link-more{display:inline-flex;align-items: center;gap:4px;font-size:14px;font-weight:600}.chips{display:flex;flex-wrap:wrap;align-items: center;gap:6px;margin-bottom:12px}.chip{display:inline-flex;background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items: center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600}.chip-muted{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.chip-knew{background:var(--knew-bg);color:var(--knew)}.chip-partial{background:var(--partial-bg);color:var(--partial)}.chip-missed{background:var(--missed-bg);color:var(--missed)}.tag{color:var(--muted)}.kbd{display:inline-block;border:1px solid var(--line);color:var(--muted);background:var(--surface-2);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:500}.btn-primary .kbd{color:inherit;background:0 0;border-color:#ffffff59}.input,select,.composer textarea,.answer textarea,.follow-up textarea,.line-comment-edit textarea{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-btn);width:100%;min-height:44px;padding:10px 12px}.row .input{flex:200px;width:auto}textarea{resize:vertical;line-height:1.5}textarea:focus,input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.mark{display:inline-block;background:var(--empty);border-radius:50%;flex:none;width:10px;height:10px}.mark-knew{background:var(--knew)}.mark-partial{background:var(--partial-bar)}.mark-missed{background:var(--missed)}.attempt-dots{display:inline-flex;align-items: center;gap:4px}.segbar{display:flex;gap:3px;height:8px;margin:8px 0}.seg{background:var(--empty);display:inline-block;border-radius:3px;flex:1}.seg-knew{background:var(--knew)}.seg-partial{background:var(--partial-bar)}.seg-missed{background:var(--missed)}.segbar-dark .seg-empty{background:#ffffff2e}.legend{display:flex;color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12px}.legend span{display:inline-flex;align-items: center;gap:6px}.legend .seg{flex:none;width:14px;height:8px}.status{color:var(--muted);padding:12px 0}.status-error{display:flex;border-radius:var(--radius-btn);background:var(--missed-bg);color:var(--missed);flex-wrap:wrap;align-items: center;gap:12px;margin:8px 0;padding:10px 14px}.empty{text-align:center;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);padding:32px}.empty h3{color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card+.card,details.card{margin-top:16px}.card-dark{background:var(--dark);color:var(--dark-ink);border-color:var(--dark)}.card-dark .eyebrow{color:#f6f6f3a6}.card-accent{background:var(--accent-soft);border-color:#0000}a.card{color:inherit;text-decoration:none;display:block}a.card:hover{border-color:var(--muted)}.header{position:sticky;z-index:10;background:color-mix(in srgb,var(--bg)88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);top:0}.header-inner{display:flex;align-items: center;gap:24px;max-width:1240px;height:64px;margin:0 auto;padding:0 24px}.logo{display:flex;color:var(--ink);align-items: center;gap:10px;font-weight:700;text-decoration:none!important}.logo-mark{display:inline-grid;background:var(--accent);color:var(--accent-ink);letter-spacing:.02em;border-radius:9px;place-items: center;width:32px;height:32px;font-size:13px;font-weight:800}.logo-mark-lg{border-radius:14px;width:56px;height:56px;font-size:20px}.nav{display:flex;gap:4px}.nav a{display:inline-flex;border-radius:var(--radius-btn);color:var(--muted);text-decoration:none;align-items: center;gap:6px;height:40px;padding:0 12px;font-size:14px;font-weight:600}.nav a:hover{color:var(--ink);background:var(--surface)}.nav a.active{color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.badge{background:var(--missed);color:#fff;display:inline-grid;border-radius:10px;place-items: center;min-width:20px;height:20px;padding:0 6px;font-size:11px}.search-btn{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--surface);color:var(--muted);cursor:pointer;align-items: center;gap:8px;min-width:200px;height:40px;margin-left:auto;padding:0 10px 0 12px}.search-btn .kbd{margin-left:auto}.avatar{display:inline-grid;background:var(--accent-soft);color:var(--accent);border-radius:50%;flex:none;place-items: center;width:40px;height:40px;font-weight:700;text-decoration:none!important}.avatar.active{box-shadow:0 0 0 2px var(--accent)}.avatar-lg{width:56px;height:56px;font-size:22px}.overlay{position:fixed;z-index:50;display:flex;background:#0a0a0e73;justify-content:center;align-items: flex-start;padding:12vh 16px 16px;inset:0}.search-dialog{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);overflow:hidden;width:100%;max-width:640px;box-shadow:0 20px 60px #00000040}.search-input{display:flex;border-bottom:1px solid var(--line);align-items: center;gap:10px;padding:0 16px}.search-input input{outline:none;box-shadow:none;background:0 0;border:0;flex:1;height:56px;font-size:16px}.search-hits{list-style:none;overflow:auto;max-height:60vh;margin:0;padding:6px}.search-hits a{display:grid;grid-template-columns:70px 1fr;color:var(--ink);text-decoration:none;border-radius:10px;gap:2px 12px;padding:10px 12px}.search-hits a.sel{background:var(--accent-soft)}.hit-kind{grid-row:span 2;color:var(--muted);padding-top:2px;font-size:12px;font-weight:600}.hit-title{font-weight:600}.hit-context{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.search-empty{color:var(--muted);margin:0;padding:20px}.page{max-width:1240px;margin:0 auto;padding:32px 24px 64px}.page-title{margin-bottom:12px;font-size:30px;font-weight:750}.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items: flex-start;gap:16px;margin-bottom:16px}.page-head p{max-width:640px}.section{margin-top:40px}.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items: center;gap:12px;margin-bottom:14px}.section-head h2{margin:0}.crumbs{color:var(--muted);margin-bottom:10px;font-size:13px}.crumbs a{color:var(--muted)}.crumb-sep{opacity:.6;margin:0 6px}.splash{display:flex;text-align:center;flex-direction:column;justify-content:center;align-items: center;gap:12px;min-height:100vh;padding:24px}.splash p{max-width:460px}.today{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px;margin-top:8px}.today-card{display:flex;flex-direction:column;gap:4px;min-height:220px}.today-card h3{font-size:20px}.today-card .row,.today-card>.btn{margin-top:auto}.today-card>.btn{align-self: flex-start}.today-meta{opacity:.75;margin:0;font-size:13px}.today-next{margin:8px 0 16px}.mini-list{list-style:none;margin:4px 0 12px;padding:0}.mini-list a{display:grid;grid-template-columns:10px 1fr;color:var(--ink);text-decoration:none;align-items: center;gap:0 10px;padding:6px 0}.mini-list a:hover .mini-title{color:var(--accent)}.mini-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.mini-meta{grid-column:2;color:var(--muted);font-size:12px}.tracks{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.track-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.track-head a{color:var(--ink)}.track-desc{font-size:14px}.topic-rows{display:flex;flex-direction:column;gap:8px;margin-top:8px}.topic-rows-page{max-width:820px}.topic-row{display:block;border:1px solid var(--line);color:var(--ink);background:var(--surface);border-radius:12px;padding:12px 14px;text-decoration:none!important}.topic-row:hover{border-color:var(--accent)}.topic-row-head{display:flex;justify-content:space-between;align-items: center;gap:8px}.topic-row-head .chip{margin:0}.topic-row-title{font-weight:600}.topic-row-meta{display:flex;color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:12px}.topic-row-empty{color:var(--muted);border-style:dashed}.stepper{display:flex;list-style:none;flex-wrap:wrap;gap:8px;margin:8px 0 24px;padding:0}.stepper li{display:flex;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:12px;align-items: center;gap:10px;padding:10px 16px 10px 10px}.stepper li b{display:block;color:var(--ink);font-size:14px}.stepper li small{font-size:12px}.step-num{display:inline-grid;background:var(--surface-2);border:1px solid var(--line);border-radius:50%;place-items: center;width:28px;height:28px;font-size:13px;font-weight:700}.stepper li.current{border-color:var(--accent)}.stepper li.current .step-num{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.stepper li.done .step-num{background:var(--knew-bg);color:var(--knew);border-color:#0000}.topic-layout{display:grid;grid-template-columns:minmax(0,1fr)360px;align-items: start;gap:24px}.topic-aside{position:sticky;display:flex;flex-direction:column;gap:16px;top:80px}.topic-aside .card+.card{margin-top:0}.lesson{padding:32px 40px}.lesson-end{display:flex;border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items: center;gap:12px;margin-top:32px;padding-top:20px}.aside-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}.aside-head h3{margin:0}.filters{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}.filter{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--muted);border-radius:999px;min-height:32px;padding:0 12px;font-size:13px;font-weight:600}.filter.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.q-list,.task-list{list-style:none;margin:0;padding:0}.q-list a{display:flex;color:var(--ink);text-decoration:none;border-radius:8px;align-items: center;gap:10px;min-height:44px;margin:0 -8px;padding:6px 8px}.q-list a:hover,.task-list a:hover{background:var(--surface-2)}.q-title{flex:1;font-size:14px}.q-level{color:var(--muted);font-size:11px}.task-list a{display:grid;color:var(--ink);text-decoration:none;border-radius:8px;gap:2px;margin:0 -8px;padding:10px 8px}.task-title{font-size:14px;font-weight:600}.task-meta{color:var(--muted);font-size:12px}.task-kind{display:inline-block;text-transform:uppercase;letter-spacing:.04em;border-radius:6px;justify-self:start;padding:2px 8px;font-size:11px;font-weight:700}.task-kind-fix{background:var(--missed-bg);color:var(--missed)}.task-kind-implement{background:var(--accent-soft);color:var(--accent)}.task-kind-review{background:var(--partial-bg);color:var(--partial)}.md{overflow-wrap:anywhere}.md h1{font-size:26px}.md h2{margin-top:1.6em;font-size:21px}.md h3{margin-top:1.4em;font-size:17px}.md>:first-child{margin-top:0}.md p,.md ul,.md ol{margin:0 0 1em}.md li{margin:.25em 0}.md code{background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:0 4px;font-size:.88em}.md pre,.code-block{background:var(--code-bg);border:1px solid var(--line);overflow:auto;border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.6}.md pre code,.code-block code{font-size:inherit;background:0 0;border:0;padding:0}.md blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:0 0 1em;padding:4px 16px}.md table{border-collapse:collapse;display:block;overflow-x:auto;width:100%;margin:0 0 1em;font-size:14px}.md th,.md td{border:1px solid var(--line);text-align:left;padding:6px 10px}.md th{background:var(--surface-2)}.focus{min-height:100vh}.focus-header{position:sticky;z-index:10;display:flex;background:color-mix(in srgb,var(--bg)90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items: center;gap:16px;min-height:64px;padding:10px 24px;top:0}.focus-progress{display:flex;flex-direction:column;flex:1;gap:2px;min-width:0}.focus-progress .segbar{max-width:360px;margin:2px 0 0}.focus-progress .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.focus-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items: center;gap:8px}.timer{display:inline-flex;font-family:var(--mono);color:var(--muted);align-items: center;gap:6px;padding:0 8px;font-size:13px}.timer-over{color:var(--missed)}.focus-main{max-width:820px;margin:0 auto;padding:32px 24px 64px}.q-heading{margin:4px 0 12px;font-size:26px;font-weight:750}.answer{margin:20px 0 12px}.answer textarea{min-height:220px;padding:14px 16px;font-size:15px}.answer-foot{display:flex;justify-content:space-between;gap:8px;margin-top:6px}.reveal{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.self-grade{display:flex;flex-wrap:wrap;align-items: center;gap:10px;margin-top:16px}.self-buttons{display:flex;flex-wrap:wrap;gap:6px}.result-head{display:flex;align-items: center;gap:20px;margin-bottom:24px}.result-head .page-title{margin-bottom:6px}.verdict{margin:0 0 4px;font-size:26px}.verdict-knew{color:var(--knew)}.verdict-partial{color:var(--partial)}.verdict-missed{color:var(--missed)}.result-summary{margin-top:8px;font-size:16px}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}.result-list{border-radius:14px;padding:16px}.result-list h3{font-size:14px}.result-list ul{margin:0;padding-left:18px;font-size:14px}.result-knew{background:var(--knew-bg)}.result-knew h3{color:var(--knew)}.result-partial{background:var(--partial-bg)}.result-partial h3{color:var(--partial)}.result-missed{background:var(--missed-bg)}.result-missed h3{color:var(--missed)}.result-feedback details{margin-top:12px}.quote{white-space:pre-wrap;border-left:3px solid var(--line);background:var(--surface-2);border-radius:0 8px 8px 0;margin-top:8px;padding:12px 14px;font-size:14px}.follow-up{margin-top:16px}.follow-q{font-size:17px;font-weight:600}.follow-up textarea{min-height:120px;margin:8px 0}.follow-result{margin-top:12px}.ring{position:relative;flex:none;width:88px;height:88px}.ring svg{transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:7}.ring-track{stroke:var(--empty)}.ring-value{stroke-linecap:round;transition:stroke-dasharray .6s}.ring-knew .ring-value{stroke:var(--knew)}.ring-partial .ring-value{stroke:var(--partial-bar)}.ring-missed .ring-value{stroke:var(--missed)}.ring-label{position:absolute;display:flex;justify-content:center;align-items:baseline;padding-top:28px;inset:0}.ring-label b{font-size:26px}.ring-label span{color:var(--muted);font-size:12px}.mistakes,.mock-results,.sessions{list-style:none;display:flex;flex-direction:column;gap:12px;margin:0;padding:0}.mistakes .card+.card,.mock-results .card+.card{margin-top:0}.mistake-head{display:flex;flex-wrap:wrap;align-items: center;gap:8px 12px;margin-bottom:8px}.mistake h3{font-size:17px}.mistake-foot{display:flex;flex-wrap:wrap;align-items: center;gap:12px}.mistake-foot .btn{margin-left:auto}.mock-setup{display:flex;flex-direction:column;gap:14px;max-width:560px}.mock-setup label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}.mock-setup .btn{align-self: flex-start}.session-row{display:flex;align-items: center;gap:16px;padding:14px 20px}.session-title{flex:1;font-weight:600}.session-score{font-family:var(--mono);font-weight:600}.mock-layout{display:grid;grid-template-columns:minmax(0,1fr)320px;align-items: start;gap:24px;max-width:1240px;margin:0 auto;padding:24px}.chat{display:flex;flex-direction:column;gap:12px;min-width:0}.msg{background:var(--surface);border:1px solid var(--line);border-radius:16px;max-width:86%;padding:12px 16px}.msg-candidate{background:var(--accent-soft);border-color:#0000;align-self: flex-end}.msg-followup{border-color:var(--accent)}.msg-who{display:block;color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:600}.msg-text{white-space:pre-wrap;margin:0}.msg .md p:last-child{margin-bottom:0}.msg-typing p{margin:0}.composer{position:sticky;background:var(--bg);display:flex;flex-direction:column;gap:8px;padding:12px 0 16px;bottom:0}.composer .row{justify-content:flex-end}.mock-aside{position:sticky;display:flex;flex-direction:column;gap:16px;top:88px}.mock-aside .card+.card{margin-top:0}.mock-done{text-align:center}.plan{display:flex;flex-direction:column;gap:10px;margin:0;padding-left:20px}.plan li{color:var(--muted)}.plan li.current{color:var(--ink)}.plan li.current::marker{color:var(--accent);font-weight:700}.plan li.done .plan-title{text-decoration:line-through;text-decoration-color:var(--muted)}.plan-title{display:block;font-size:14px;font-weight:600}.transcript p{white-space:pre-wrap;font-size:14px}.mock-results+.transcript{margin:16px 0}.task-layout{display:grid;grid-template-columns:400px minmax(0,1fr);align-items: start;gap:20px;max-width:1440px;margin:0 auto;padding:24px}.task-aside{display:flex;flex-direction:column;gap:16px}.task-aside .card+.card{margin-top:0}.task-tabs{display:flex;flex-wrap:wrap;gap:6px}.task-tabs a{display:inline-flex;border:1px solid var(--line);background:var(--surface);color:var(--muted);text-decoration:none;border-radius:10px;align-items: center;gap:4px;min-height:36px;padding:0 12px;font-size:13px;font-weight:600}.task-tabs a.active{color:var(--ink);border-color:var(--ink)}.task-title-h{font-size:22px}.checks{list-style:none;margin:0;padding:0;font-size:14px}.checks li{display:flex;align-items: flex-start;gap:8px;padding:5px 0}.check-mark{border:1.5px solid var(--empty);display:grid;border-radius:50%;flex:none;place-items: center;width:18px;height:18px;margin-top:2px}.checks li.ok .check-mark{background:var(--knew);border-color:var(--knew);color:#fff}.checks li.fail .check-mark{background:var(--missed);border-color:var(--missed);color:#fff}.hint{background:var(--partial-bg);border-radius:10px;margin-bottom:8px;padding:10px 12px;font-size:14px}.hint .md p:last-child{margin:0}.attempts{list-style:none;margin:0;padding:0}.attempts li{display:flex;justify-content:space-between;gap:8px;padding:4px 0}.task-main{display:flex;flex-direction:column;gap:16px;min-width:0}.editor-card{overflow:hidden;padding:0}.editor-tabs{display:flex;border-bottom:1px solid var(--line);background:var(--surface-2);align-items: center;gap:2px;padding:6px 8px 0}.editor-tabs button[role=tab]{display:inline-flex;cursor:pointer;font-family:var(--mono);color:var(--muted);background:0 0;border:0;border-radius:8px 8px 0 0;align-items: center;gap:6px;min-height:38px;padding:0 14px;font-size:13px}.editor-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 0 var(--surface),inset 0 0 0 1px var(--line)}.editor-reset{margin-bottom:6px;margin-left:auto}.editor{display:grid;grid-template-columns:auto 1fr;background:var(--code-bg);font-family:var(--mono);height:min(68vh,640px);min-height:320px;font-size:13.5px;line-height:21px}.editor-gutter{overflow:hidden;text-align:right;color:var(--muted);opacity:.7;user-select:none;border-right:1px solid var(--line);padding:14px 10px 14px 14px}.editor-gutter span{display:block}.editor-input{outline:none;resize:none;font:inherit;line-height:inherit;tab-size:2;white-space:pre;overflow:auto;background:0 0;border:0;padding:14px 16px;box-shadow:none!important}.output{padding:16px 20px}.output-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}.output-head .ok{color:var(--knew);font-weight:600}.output-head .fail{color:var(--missed);font-weight:600}.output-list{list-style:none;margin:0 0 8px;padding:0;font-size:14px}.output-list li{padding:4px 0}.output-list li.ok{color:var(--knew)}.output-list li.fail{color:var(--missed)}.output-list pre,.output-error{background:var(--missed-bg);color:var(--missed);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:4px 0 4px 20px;padding:8px 10px;font-size:12px}.output-error{margin-left:0}.code-lines{font-family:var(--mono);background:var(--code-bg);border:1px solid var(--line);overflow-x:auto;border-radius:12px;padding:10px 0;font-size:13px;line-height:20px}.editor-card .code-lines{overflow:auto;border:0;border-radius:0;max-height:min(68vh,640px)}.code-line{position:relative;display:flex;min-height:20px;padding-right:32px}.code-line .ln{text-align:right;color:var(--muted);opacity:.7;user-select:none;flex:none;width:48px;padding-right:12px}.code-line code{white-space:pre}.commentable .code-line{cursor:pointer}.commentable .code-line:hover{background:var(--accent-soft)}.add-comment{position:absolute;display:grid;background:var(--accent);color:var(--accent-ink);opacity:0;border-radius:6px;place-items: center;width:20px;height:20px;font-weight:700;top:0;right:8px}.code-line:hover .add-comment,.code-line:focus .add-comment{opacity:1}.code-line.has-comment{background:var(--accent-soft)}.code-line.note-issue{background:var(--missed-bg)}.code-line.note-suggestion{background:var(--partial-bg)}.code-line.note-good{background:var(--knew-bg)}.code-line.diff-add{box-shadow:inset 3px 0 0 var(--knew)}.code-line.diff-add .ln{color:var(--knew);opacity:1}.line-comment,.line-note,.line-comment-edit{font-family:var(--font);white-space:normal;border-radius:10px;margin:4px 16px 8px 48px;padding:8px 12px;font-size:13px;line-height:1.5}.line-comment{display:flex;background:var(--surface);border:1px solid var(--accent);cursor:pointer;gap:8px}.line-comment-edit{background:var(--surface);border:1px solid var(--line)}.line-comment-edit textarea{font-family:var(--font);min-height:72px;margin-bottom:8px}.line-note{background:var(--surface);border-left:3px solid var(--muted)}.line-note-issue{border-left-color:var(--missed)}.line-note-suggestion{border-left-color:var(--partial-bar)}.line-note-good{border-left-color:var(--knew)}.review-layout{display:grid;grid-template-columns:minmax(0,1fr)360px;align-items: start;gap:20px;margin-bottom:16px}.review-side{display:flex;flex-direction:column;gap:16px}.review-side .card+.card{margin-top:0}.rubric{list-style:none;display:flex;flex-direction:column;gap:12px;margin:0;padding:0}.rubric-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:14px}.rubric p{margin:2px 0 0}.rating{white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}.rating-excellent{background:var(--knew-bg);color:var(--knew)}.rating-good{background:var(--accent-soft);color:var(--accent)}.rating-improve{background:var(--partial-bg);color:var(--partial)}.account-card{max-width:720px}.account-head{display:flex;align-items: center;gap:16px;margin-bottom:16px}.account-head h3,.account-head p{margin:0}.section>.card{max-width:720px}.snippet{position:relative;max-width:720px;margin:8px 0 16px}.snippet pre{background:var(--code-bg);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:10px;margin:0;padding:12px 120px 12px 14px;font-size:13px}.snippet .btn{position:absolute;top:6px;right:6px}.token-fresh{background:var(--knew-bg);border-radius:12px;margin-top:12px;padding:12px}.token-fresh .snippet{margin-bottom:0}.tokens{list-style:none;margin:12px 0 0;padding:0}.tokens li{display:flex;border-top:1px solid var(--line);justify-content:space-between;align-items: center;gap:12px;padding:8px 0}@media (max-width:1080px){.today{grid-template-columns:1fr 1fr}.today>:first-child{grid-column:1/-1}.topic-layout,.review-layout,.mock-layout{grid-template-columns:minmax(0,1fr)}.topic-aside,.mock-aside{position:static}.mock-aside{order:-1}.task-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:720px){body{font-size:15px}.header-inner{flex-wrap:wrap;gap:10px;height:auto;min-height:56px;padding:0 16px}.logo-text{display:none}.nav{overflow-x:auto;order:3;width:100%;padding-bottom:8px}.nav a{flex:none}.search-btn{min-width:0}.search-btn span,.search-btn .kbd{display:none}.page,.focus-main{padding:20px 16px 48px}.page-title{font-size:24px}.today{grid-template-columns:minmax(0,1fr)}.today-card{min-height:0}.tracks{grid-template-columns:minmax(0,1fr)}.lesson{padding:20px}.card{padding:16px}.focus-header{flex-wrap:wrap;gap:8px;padding:8px 16px}.focus-progress{flex-basis:100%;order:3}.focus-actions .kbd{display:none}.task-layout,.mock-layout{padding:16px}.msg{max-width:100%}.result-head{align-items: flex-start}.mistake-foot .btn{margin-left:0}.snippet pre{padding-bottom:48px;padding-right:14px}.snippet .btn{top:auto;bottom:6px}.editor{height:56vh}.stepper li{flex:140px}}
