:root{--bg: #f7f5f0;--surface: #ffffff;--text: #1d2521;--muted: #5d6a64;--accent: #1f6f5c;--accent-soft: #e2f0ea;--gold: #c9951f;--border: #e3dfd5;--error: #b3261e;--radius: 14px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #121714;--surface: #1b221e;--text: #e8ece9;--muted: #9aa8a1;--accent: #5cc4a4;--accent-soft: #1f3a31;--gold: #f4c95d;--border: #2c3631;--error: #ff8a80;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main{max-width:720px;margin:0 auto;padding:16px 16px 48px}h1{font-size:1.5rem;line-height:1.25;margin:0}h2{font-size:1.15rem;margin:0}h3{font-size:1rem;margin:8px 0 0}p,ul{margin:0}ul{padding-left:20px}a{color:var(--accent)}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:8px}.row input{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.hero{background:var(--accent-soft);border-color:transparent}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.error{color:var(--error)}.pill{display:inline-block;font-size:.75rem;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}label{display:flex;flex-direction:column;gap:4px;font-weight:500}input{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text)}input[type=range]{padding:0}button{font:inherit;cursor:pointer}button.primary{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:12px 16px;font-weight:600}button.primary:disabled{opacity:.6}button.link{background:none;border:0;color:var(--muted);padding:0}.topnav{display:flex;gap:16px;align-items:center;justify-content:center;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:1;flex-wrap:wrap}.topnav a{text-decoration:none;color:var(--muted);font-weight:500}.topnav a.active{color:var(--accent)}.auth{max-width:420px;padding-top:48px}.auth>*+*{margin-top:12px}.tabs{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:4px}.tabs button{flex:1;border:0;background:none;padding:8px;border-radius:8px;color:var(--muted)}.tabs button[aria-selected=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.stage-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:12px}.path{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;position:relative}.stop{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.stop:hover{border-color:var(--accent)}.stop-num{flex:none;width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700}.stop-body{display:flex;flex-direction:column;min-width:0}.mock{margin:8px 0 0 48px;font-size:.875rem;color:var(--gold);font-weight:600}.back{text-decoration:none}.cando{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.pairs{display:flex;flex-direction:column;gap:8px}.pair{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.speak{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:999px;padding:4px 12px;text-align:left}.speak:hover{border-color:var(--accent)}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.questions{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.prewrap{white-space:pre-line}.question{font-size:1.1rem;font-weight:500}.options{display:flex;flex-direction:column;gap:8px}.options.two{flex-direction:row}.options.two .option{flex:1;font-size:1.1rem}.options.compact{flex-direction:row;flex-wrap:wrap}.option{text-align:left;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text)}.option:not(:disabled):hover{border-color:var(--accent)}.option.selected{border-color:var(--accent);background:var(--accent-soft)}.option.right{border-color:#2e8b57;background:color-mix(in srgb,#2e8b57 15%,var(--bg))}.option.wrong{border-color:var(--error);background:color-mix(in srgb,var(--error) 12%,var(--bg))}.option:disabled{cursor:default}.feedback{border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:4px}.feedback.ok{background:color-mix(in srgb,#2e8b57 14%,var(--surface))}.feedback.bad{background:color-mix(in srgb,var(--error) 12%,var(--surface))}.continue{margin-top:4px}.gap{display:inline-block;width:9em;max-width:60%;margin:0 4px;padding:4px 8px}.gap.right{border-color:#2e8b57}.gap.wrong{border-color:var(--error)}.match{display:grid;grid-template-columns:1fr 1fr;gap:8px}.match .col{display:flex;flex-direction:column;gap:8px}.match .option{padding:10px;font-size:.95rem;overflow-wrap:anywhere}.speak.big{font-size:1.05rem;padding:10px 16px;align-self:flex-start}.examples{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}.dialogue{display:flex;flex-direction:column;gap:10px}.dialogue .line{display:grid;grid-template-columns:5.5em 1fr;gap:8px;align-items:start}.dialogue .speaker{font-weight:600;color:var(--accent);overflow-wrap:anywhere}.script{white-space:pre-wrap;font:inherit;font-size:.9rem;background:var(--bg);padding:12px;border-radius:10px;margin:0}.passage{background:var(--bg);border-radius:10px;padding:12px 14px;margin:0;display:flex;flex-direction:column;gap:8px}.passage h3{margin:0}.q{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:10px}.q-right{background:color-mix(in srgb,#2e8b57 10%,transparent)}.q-wrong{background:color-mix(in srgb,var(--error) 8%,transparent)}.record{align-self:flex-start;border:0;border-radius:999px;padding:12px 20px;font-weight:600;background:var(--accent);color:#fff}.record.on{background:var(--error)}.record:disabled{opacity:.6}.assessment{display:flex;flex-direction:column;gap:8px}.assessment audio,.stack audio{width:100%}.score{font-size:2rem;font-weight:800}.score.ok{color:#2e8b57}.score.mid{color:var(--gold)}.score.bad{color:var(--error)}.words{display:flex;flex-wrap:wrap;gap:6px}.w{padding:2px 6px;border-radius:6px;background:var(--accent-soft)}.w.err{background:color-mix(in srgb,var(--error) 25%,transparent)}.w.weak{background:color-mix(in srgb,var(--gold) 30%,transparent)}.cue{background:var(--bg);border-radius:10px;padding:10px 14px}.timer{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.timer.on strong{color:var(--error)}.model{background:var(--bg);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px}.tips{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.player-head{display:flex;align-items:center;gap:12px}.player-head .back{font-size:1.2rem;color:var(--muted)}.progress{flex:1;height:10px;background:var(--border);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--accent);transition:width .3s}.result{text-align:center;align-items:center;padding-top:32px}.big-emoji{font-size:3.5rem}.score-line{font-size:1.2rem;font-weight:600}.button-link{text-decoration:none;display:inline-block}a.primary{background:var(--accent);color:#fff;border-radius:10px;padding:12px 16px;font-weight:600}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.stats div{display:flex;flex-direction:column}.stats strong{font-size:1.25rem}.stats span{font-size:.8rem;color:var(--muted)}.cta{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit}.cta:hover{border-color:var(--accent)}.cta.quiet{opacity:.75}.primary-cta{background:var(--accent);color:#fff;border-color:transparent}.primary-cta .small,.primary-cta .go{color:#fff;opacity:.9}.primary-cta strong{font-size:1.15rem}.quest{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.quest li{display:flex;gap:8px;align-items:center}.quest li.done span:nth-child(2){color:var(--muted);text-decoration:line-through}.quest li .small{margin-left:auto}.flashcard{display:flex;flex-direction:column;gap:12px;align-items:flex-start;min-height:220px}.headword{font-size:1.6rem;font-weight:700}.meaning{font-size:1.2rem;font-weight:600;color:var(--accent)}.back-side{display:flex;flex-direction:column;gap:6px}.ratings{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ratings .option{text-align:center;padding:12px 4px}.rate-again{border-color:var(--error)}.rate-easy{border-color:#2e8b57}.lessons{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.lesson{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:inherit}a.lesson:hover{border-color:var(--accent)}.lesson.done{background:var(--accent-soft);border-color:transparent}.lesson.locked{color:var(--muted)}.stop.locked{opacity:.6}.stop.locked .stop-num{background:var(--border)}.stop.passed .stop-num,.record.listening{background:#2e8b57}.task{background:var(--bg);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.plan summary{cursor:pointer;font-weight:600;color:var(--accent)}.plan{background:var(--bg);border-radius:10px;padding:10px 14px}.plan[open] summary{margin-bottom:6px}textarea.essay{font:inherit;width:100%;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);resize:vertical;min-height:280px;line-height:1.6}.feedback-card{border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:var(--surface)}.feedback-card.pending{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.spinner{width:20px;height:20px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:spin .9s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.fb-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.fb-head h3{margin:0}.band{font-weight:700;color:var(--accent)}.criteria{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}.crit-head{display:flex;justify-content:space-between;gap:8px}h4{margin:4px 0;font-size:.95rem}.corrections{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}del{color:var(--error);text-decoration-thickness:2px}ins{color:#2e8b57;text-decoration:none;font-weight:600}.speech-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.speech-scores div{display:flex;flex-direction:column;background:var(--bg);border-radius:10px;padding:8px}.speech-scores strong{font-size:1.3rem}.speech-scores span{font-size:.8rem;color:var(--muted)}.links-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.work-head{display:flex;justify-content:space-between;gap:8px;background:none;border:0;padding:0;color:var(--text);text-align:left;font-weight:600}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mock-cta{border-color:var(--gold)}.big-band{font-size:3rem;font-weight:800;color:var(--accent);line-height:1}.skill-bands{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center}.skill-bands div{display:flex;flex-direction:column;background:var(--bg);border-radius:10px;padding:10px 4px}.skill-bands strong{font-size:1.4rem}.skill-bands span{font-size:.8rem;color:var(--muted)}.history{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.history li{display:grid;grid-template-columns:6.5em 1fr auto;gap:8px}
