:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#eef1f5;--text:#1b2330;--muted:#5d6878;--border:#dde2ea;--accent:#005b94;--accent-soft:#e2eef7;--accent-text:#fff;--yellow:#fecc00;--good:#1f7a4d;--good-soft:#e3f3ea;--bad:#b3261e;--bad-soft:#fbe7e5;--warn:#8a5a00;--radius:12px;--shadow:0 1px 2px #1018280f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f141b;--surface:#171e27;--surface-2:#202935;--text:#e6eaf0;--muted:#97a3b4;--border:#2c3644;--accent:#5aa9e6;--accent-soft:#1b3144;--accent-text:#08131d;--good:#5cc08d;--good-soft:#173326;--bad:#f08a80;--bad-soft:#3a1c1a;--warn:#e6b450;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:16px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}h1,h2,h3,h4{margin:.4em 0 .5em;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.3rem}h3{margin-top:1.4em;font-size:1.1rem}h4{margin-top:1.2em;font-size:1rem}p{margin:.5em 0}a{color:var(--accent);text-decoration:none}pre{white-space:pre-wrap;font:inherit;margin:0}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block}.grow{flex:1;min-width:0}.center{text-align:center}.good-text{color:var(--good)}.bad-text{color:var(--bad)}.warn{color:var(--warn)}.strike{color:var(--bad);text-decoration:line-through}.strike-soft{color:var(--bad)}.row{align-items:center;gap:.6rem;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.center{justify-content:center}.shell{min-height:100vh;display:flex}.nav{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:2px;width:200px;height:100vh;padding:1rem .6rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.5rem;padding:.3rem .6rem 1rem;font-weight:700;display:flex}.flag{background:linear-gradient(90deg, transparent 6px, var(--yellow) 6px, var(--yellow) 10px, transparent 10px), linear-gradient(0deg, transparent 5.5px, var(--yellow) 5.5px, var(--yellow) 9.5px, transparent 9.5px), #006aa7;border-radius:3px;width:22px;height:15px;display:inline-block}.nav-link{color:var(--text);border-radius:8px;align-items:center;gap:.6rem;padding:.5rem .7rem;display:flex}.nav-link:hover{background:var(--surface-2)}.nav-link.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-icon{text-align:center;width:1.3em}.nav-foot{margin-top:auto;padding:.5rem}.main{flex:1;min-width:0}.page{max-width:920px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.page.narrow,.narrow{max-width:720px}@media (width<=760px){.shell{flex-direction:column}.nav{width:auto;height:auto;padding:.25rem .25rem calc(.25rem + env(safe-area-inset-bottom));border-right:none;border-top:1px solid var(--border);z-index:10;flex-direction:row;justify-content:space-around;position:fixed;inset:auto 0 0}.brand,.nav-foot{display:none}.nav-link{text-align:center;flex-direction:column;flex:1;gap:0;min-width:0;padding:.3rem .1rem;font-size:.65rem}.nav-icon{width:auto;font-size:1.1rem}.nav-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.page{padding:1rem 1rem 6rem}h1{font-size:1.35rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:.75rem 0;padding:1rem 1.1rem}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:9px;align-items:center;gap:.4rem;padding:.5rem .95rem;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.btn.bad{color:var(--bad)}.btn.link{color:var(--accent);background:0 0;border:none;padding:.3rem 0}.btn.good,.choice.good{background:var(--good-soft);border-color:var(--good);color:var(--good)}.choice.bad{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}.choice.sel{border-color:var(--accent);background:var(--accent-soft)}.input{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:9px;padding:.6rem .75rem}.input:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea.input{resize:vertical}.narrow-input{max-width:280px}.tag{background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:.12rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.kbd{opacity:.6;border:1px solid;border-radius:4px;padding:0 .3rem;font-size:.7rem}.tabs{background:var(--surface-2);border-radius:10px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.tabs button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.4rem .8rem}.tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-weight:600}.bar{background:var(--surface-2);border-radius:99px;height:6px;overflow:hidden}.bar span{background:var(--accent);height:100%;transition:width .3s;display:block}.dot{background:var(--border);border-radius:50%;flex-shrink:0;width:10px;height:10px}.dot.learning{background:var(--yellow)}.dot.known{background:var(--good)}.say{color:var(--accent);cursor:pointer;vertical-align:middle;font:inherit;background:0 0;border:none;border-radius:6px;align-items:center;gap:.3rem;padding:2px 4px;font-size:.85rem;display:inline-flex}.say:hover{background:var(--accent-soft)}.say.on{color:var(--yellow)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;margin:.6rem 0;font-size:.95rem}td{border:1px solid var(--border);padding:.35rem .65rem}tr:first-child td{background:var(--surface-2)}.today-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.today-head h1 .muted{font-size:1rem;font-weight:400;display:block}.streak{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .9rem}.streak-num{color:var(--accent);font-size:1.7rem;font-weight:700;line-height:1.1;display:block}.warmup{border-left:4px solid var(--yellow)}.progress-line{align-items:center;gap:.8rem;margin:1rem 0 .3rem;display:flex}.progress-line .bar{flex:1}.steps{margin:0;padding:0;list-style:none}.step{color:var(--text);align-items:center;gap:.9rem;margin:.5rem 0;display:flex}.step:hover{border-color:var(--accent)}.step-num{background:var(--accent-soft);width:2rem;height:2rem;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.steps li.done .step-num{background:var(--good-soft);color:var(--good)}.steps li.done .step{opacity:.75}.step-body{flex-direction:column;flex:1;min-width:0;display:flex}.step-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.celebrate{background:var(--good-soft);border-color:var(--good)}.task-list,.unit-list,.wordlist,.mistake-list,.sources{margin:0;padding:0;list-style:none}.task-link,.unit-link{color:var(--text);text-align:left;width:100%;font:inherit;cursor:pointer;align-items:center;gap:.8rem;margin:.45rem 0;display:flex}.task-link:hover,.unit-link:hover,.guide-link:hover{border-color:var(--accent)}.task-link .block{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.score{color:var(--accent);white-space:nowrap;font-weight:700}.guide-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem;display:grid}.guide-link{color:var(--text);text-align:left;font:inherit;cursor:pointer;flex-direction:column;gap:.2rem;margin:0;display:flex}.filters{margin:.8rem 0}.filters .input{flex:1;min-width:160px}.wordlist li{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;padding:.45rem .2rem;display:flex}.wl-sv{flex:1;min-width:0;font-weight:600}.wl-ru{color:var(--muted);text-align:right;flex:1;min-width:0}.sources li{margin:.4rem 0}.flash{text-align:center;flex-direction:column;align-items:stretch;gap:.8rem;padding:1.5rem 1.2rem;display:flex}.flash>.btn,.flash>.input{justify-content:center;align-self:center;width:100%;max-width:360px}.flash-word{font-size:1.7rem;font-weight:700}.flash-ru{font-size:1.25rem}.word-info .forms{color:var(--muted)}.word-info .ex{margin-top:.3rem;font-style:italic}.grades{grid-template-columns:repeat(4,1fr);gap:.4rem;display:grid}.grades .btn{justify-content:center;min-width:0;padding:.6rem .3rem;font-size:.9rem}@media (width<=520px){.grades{grid-template-columns:repeat(2,1fr)}.kbd{display:none}}.markup p{margin:.7em 0}.markup ul{padding-left:1.3rem}.examples{background:var(--surface-2);border-radius:10px;margin:.7rem 0;padding:.4rem .6rem}.sayline{cursor:pointer;border-radius:6px;margin:.2rem 0;padding:.1rem .2rem}.sayline:hover{background:var(--accent-soft)}.drill-head{justify-content:space-between;display:flex}.drill-q{margin:.8rem 0;font-size:1.15rem;font-weight:600}.choices{flex-direction:column;gap:.45rem;margin:.5rem 0;display:flex}.choice{text-align:left;justify-content:flex-start}.verdict{border-radius:9px;margin:.8rem 0;padding:.6rem .8rem}.verdict.good{background:var(--good-soft);color:var(--good)}.verdict.bad{background:var(--bad-soft)}.order-answer{border:1px dashed var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.35rem;min-height:3rem;padding:.4rem;display:flex}.order-pool{flex-wrap:wrap;gap:.35rem;margin-top:.6rem;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:8px;padding:.35rem .7rem}.chip:disabled{opacity:.35;cursor:default}.chip.picked{background:var(--accent-soft);border-color:var(--accent);opacity:1}.misses{text-align:left}.task-card{border-left:4px solid var(--accent)}.prompt{font-size:1.1rem}.bullets{margin:.4rem 0;padding-left:1.2rem}.tips{color:var(--muted);padding-left:1.2rem}.clock{min-width:180px;margin:.3rem 0 .9rem}.clock-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.clock-time{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.clock.urgent .clock-time{color:var(--bad)}.clock.urgent .bar span{background:var(--bad)}.talking{border-color:var(--bad)}.live{background:var(--surface-2);border-radius:10px;min-height:4rem;margin-bottom:.8rem;padding:.6rem}.rec-dot{background:var(--bad);vertical-align:middle;border-radius:50%;width:10px;height:10px;animation:1.2s infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.3}}.audio{width:100%;margin:.4rem 0 .7rem}.script{padding-left:1.2rem}.script li{border-radius:8px;margin:.45rem 0;padding:.3rem .5rem}.script li.you{color:var(--accent)}.script li.current{background:var(--accent-soft)}.script li.past{opacity:.6}.script .said{color:var(--text);margin-top:.2rem;font-style:normal}.writing-grid{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:.8rem;display:grid}.writing-grid>.card{margin:0}@media (width<=900px){.writing-grid{grid-template-columns:1fr}}.editor{min-height:320px;line-height:1.6}.wordcount{font-weight:600}.wordcount.low{color:var(--warn)}.wordcount.high{color:var(--bad)}.wordcount.ok{color:var(--good)}.guide summary{cursor:pointer;font-weight:600}.guide-part ul{margin:.2rem 0 .7rem;padding-left:1.1rem;font-size:.92rem}.text-block{background:var(--surface-2);border-radius:10px;margin:.5rem 0;padding:.8rem}details{margin:.6rem 0}details summary{cursor:pointer;color:var(--accent)}.feedback{border-top:4px solid var(--accent)}.level{align-items:baseline;gap:.3rem;display:flex}.level-num{font-size:2rem;font-weight:800}.level.lv1 .level-num,.level.lv2 .level-num{color:var(--bad)}.level.lv3 .level-num,.level.lv4 .level-num,.level.lv5 .level-num{color:var(--good)}.criteria{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem;margin:.8rem 0;display:grid}.criterion .bar{margin:.3rem 0}.mistakes{padding-left:1.3rem}.mistakes li{margin:.55rem 0}.phrases{padding:0;list-style:none}.phrases li{margin:.3rem 0}.reading-text p{margin:.8em 0}.questions{padding-left:1.3rem}.questions li{margin-bottom:1.1rem}.stats{grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:.6rem;display:grid}.stat{flex-direction:column;margin:0;display:flex}.stat-num{color:var(--accent);font-size:1.6rem;font-weight:700}.phases{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.6rem;display:grid}.phase{margin:0}.phase.current,.weeks li.current{border-color:var(--accent);background:var(--accent-soft)}.weeks{padding:0;list-style:none}.weeks li{border:1px solid #0000;border-bottom-color:var(--border);border-radius:8px;align-items:flex-start;gap:.7rem;padding:.55rem .7rem;display:flex}.weeks li.past{opacity:.55}.wk{text-align:right;width:1.8rem;font-weight:700}.wk-date{width:3rem}.settings{gap:.9rem;display:grid}.settings label{flex-direction:column;gap:.3rem;font-size:.92rem;font-weight:600;display:flex}.settings label .small{font-weight:400}.cats{margin:.5rem 0}.login{place-items:center;min-height:100vh;padding:1rem;display:grid}.login form{flex-direction:column;gap:.8rem;width:min(360px,100%);display:flex}.login h1{align-items:center;gap:.6rem;display:flex}.clickable-text .tok{cursor:pointer;border-radius:3px}.clickable-text .tok:hover{background:var(--accent-soft)}.clickable-text .tok.on{background:var(--yellow);color:#1b2330}.lookup{border-color:var(--accent);flex-direction:column;gap:.4rem;margin:.4rem 0 .8rem;display:flex}.add-word{font:inherit;cursor:pointer;border:1px solid var(--accent);width:1.5rem;height:1.5rem;color:var(--accent);vertical-align:middle;background:0 0;border-radius:50%;place-items:center;font-weight:700;line-height:1;display:inline-grid}.add-word:hover{background:var(--accent-soft)}.add-word.done{border-color:var(--good);color:var(--good);cursor:default;font-size:.8rem}.pas{color:var(--muted);border:1px solid var(--border);border-radius:4px;margin-left:.2rem;padding:0 .25rem;font-size:.7rem}.dot.inline{vertical-align:middle;width:8px;height:8px;display:inline-block}.input.grow{min-width:180px}.tr-btn{font:inherit;letter-spacing:.03em;cursor:pointer;vertical-align:middle;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:4px;padding:.05rem .3rem;font-size:.62rem;font-weight:700}.tr-btn:hover,.tr-btn.on{border-color:var(--accent);color:var(--accent)}.sv .tr{color:var(--muted);margin:.15rem 0 .2rem;font-size:.88em;font-style:normal;font-weight:400;display:block}
