:root{--bg:#0e0e10;--surface:#1a1a1e;--surface-alt:#202025;--ink:#f3f3f5;--muted:#9a9aa4;--line:#2c2c33;--brand:#e11d2e;--brand-ink:#fff;--silver:#c9cbd1;--accent:#e11d2e;--good:#34d399;--good-bg:#10352a;--warn:#fbbf24;--warn-bg:#3a2f10;--bad:#ff6b6b;--bad-bg:#3a1a1a;--new:#9a9aa4;--love:#4da3ff;--lee:#ff9f43;--radius:18px;--shadow:0 6px 20px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body:before{content:"";opacity:.12;pointer-events:none;z-index:-1;background:url(/logo.webp) 50%/min(100%,640px) no-repeat;position:fixed;inset:0}*{box-sizing:border-box}html{background:var(--bg)}body{min-height:100dvh;color:var(--ink);-webkit-tap-highlight-color:transparent;background:0 0;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.45}h1,h2{margin:0;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.05rem}p{margin:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:default}.page{max-width:560px;padding:max(16px, env(safe-area-inset-top)) 16px 48px;flex-direction:column;gap:16px;margin:0 auto;display:flex}.page.center{justify-content:center;min-height:100dvh}.stack{flex-direction:column;gap:12px;display:flex}.row{gap:10px;display:flex}.row>*{flex:1}.row-between{justify-content:space-between;align-items:center;display:flex}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--bad);font-size:.95rem}.brand img{mix-blend-mode:lighten;width:auto;height:60px;display:block}.brand.large{justify-content:center;margin-bottom:8px;display:flex}.brand.large img{width:min(100%,340px);height:auto}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card.empty{text-align:center;flex-direction:column;gap:4px;display:flex}.btn{border:none;border-radius:14px;min-height:48px;padding:13px 18px;font-weight:650}.btn.primary{background:var(--brand);color:var(--brand-ink)}.btn.ghost{border:1.5px solid var(--line);background:0 0}.btn.good{background:var(--good);color:#fff}.btn.bad{background:var(--bad);color:#fff}.btn.big{padding:16px;font-size:1.05rem}.link-btn{color:var(--muted);background:0 0;border:none;padding:8px 0;font-weight:600}.link-btn.back{align-self:flex-start}.icon-btn{background:0 0;border:none;border-radius:10px;padding:6px 8px;font-size:1.3rem;line-height:1}.chip{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 14px;font-weight:700}.student-chip.student-love{color:var(--love)}.student-chip.student-lee{color:var(--lee)}.input{width:100%;font:inherit;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;min-height:50px;padding:12px 14px;font-size:1.1rem}.input:focus{outline:2px solid var(--accent);outline-offset:1px}.picker-title{text-align:center;font-size:1.3rem}.picker{grid-template-columns:1fr 1fr;gap:14px;display:grid}.picker-btn{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;flex-direction:column;align-items:center;gap:6px;padding:22px 10px;display:flex}.picker-initial{color:#fff;border-radius:50%;place-items:center;width:72px;height:72px;font-size:2rem;font-weight:800;display:grid}.student-love .picker-initial{background:var(--love)}.student-lee .picker-initial{background:var(--lee)}.picker-name{font-size:1.25rem;font-weight:800}.picker-count{color:var(--muted);font-size:.9rem}.topbar{justify-content:space-between;align-items:center;display:flex}.greeting{margin-top:4px}.subject{flex-direction:column;gap:10px;display:flex}.subject-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.8rem}.exercise-card{text-align:left;flex-direction:column;gap:8px;width:100%;display:flex}.exercise-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.exercise-title{font-size:1.05rem;font-weight:700}.exercise-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:.87rem;display:flex}.due{background:var(--warn-bg);color:var(--warn);border-radius:999px;margin-left:auto;padding:2px 8px;font-size:.8rem;font-weight:700}.due.soon{background:var(--bad-bg);color:var(--bad)}.due.past{color:var(--muted);background:0 0}.status{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:800}.status-new{background:var(--line);color:var(--muted)}.status-practicing{background:var(--warn-bg);color:var(--warn)}.status-mastered{background:var(--good-bg);color:var(--good)}.progress{background:var(--line);border-radius:999px;flex:1;height:6px;overflow:hidden}.progress>div{background:var(--good);border-radius:999px;height:100%;transition:width .3s}.progress.thick{height:10px}.progress.thick>div{background:var(--accent)}.practice-top{align-items:center;gap:10px;display:flex}.prompt-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);padding:28px 16px;position:relative}.prompt-card .icon-btn{position:absolute;top:8px;right:8px}.prompt-hint{color:var(--muted);text-align:center;font-size:.95rem}.prompt-word{overflow-wrap:anywhere;margin-top:4px;font-size:2.2rem;font-weight:800}.math-question{white-space:pre-wrap;text-align:left;font-size:1.35rem;font-weight:650}.picture{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-height:220px;box-shadow:var(--shadow);place-items:center;display:grid;overflow:hidden}.picture img{object-fit:contain;max-width:100%;max-height:300px}.picture-emoji{font-size:7rem;line-height:1}.answer-row{gap:8px;display:flex}.answer-row .input{flex:1;min-width:0}.mic-area{flex-direction:column;align-items:center;gap:10px;padding:10px 0;display:flex}.mic{background:var(--brand);width:104px;height:104px;box-shadow:var(--shadow);border:none;border-radius:50%;font-size:2.6rem}.mic.listening{background:var(--bad);animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #c2503f73}50%{box-shadow:0 0 0 18px #c2503f00}}.feedback{overflow-wrap:anywhere;border-radius:var(--radius);border:1.5px solid #0000;padding:16px}.feedback.grading{text-align:center;color:var(--muted)}.feedback.selfgrade{background:var(--warn-bg)}.verdict-correct{background:var(--good-bg);border-color:var(--good)}.verdict-almost{background:var(--warn-bg);border-color:var(--warn)}.verdict-wrong{background:var(--bad-bg);border-color:var(--bad)}.feedback-head{align-items:flex-start;gap:10px;font-size:1.05rem;font-weight:650;display:flex}.feedback-icon{font-size:1.3rem;line-height:1.2}.correct-answer{flex-wrap:wrap;align-items:center;gap:6px;font-size:1.1rem;display:flex}.explanation{white-space:pre-wrap;background:var(--surface);border-radius:12px;padding:12px;font-size:.97rem}.finish{text-align:center;align-items:center}.finish h1{font-size:3rem}.finish-emoji{font-size:3.5rem}.finish .btn{align-self:stretch}.results-title{font-size:1.5rem}.actions{flex-direction:column;gap:10px;display:flex}.stat-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.stat{text-align:center}.stat-value{font-size:1.5rem;font-weight:800}.stat-label{color:var(--muted);font-size:.8rem}.tone-mastered .stat-value{color:var(--good)}.tone-practicing .stat-value{color:var(--warn)}.tone-new .stat-value{color:var(--new)}.stacked-bar{border-radius:999px;gap:2px;height:12px;display:flex;overflow:hidden}.stacked-bar .mastered{background:var(--good)}.stacked-bar .practicing{background:var(--warn)}.stacked-bar .new{background:var(--line)}.chart{width:100%;height:auto}.chart .grid{stroke:var(--line);stroke-dasharray:3 4}.chart .bar.high{fill:var(--good)}.chart .bar.mid{fill:var(--warn)}.chart .bar.low{fill:var(--bad)}.chart .bar-label,.chart .axis-label{text-anchor:middle;fill:var(--muted);font-size:10px}.chart .bar-label{fill:var(--ink);font-weight:700}.coach{white-space:pre-wrap}.item-list{margin:0;padding:0;list-style:none}.item-list li{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.item-list li:first-child{border-top:none}.item-main{flex-direction:column;min-width:0;display:flex}.item-q{white-space:pre-wrap;font-weight:650}.item-a{color:var(--muted)}.item-wrong{color:var(--bad);font-size:.85rem}.item-side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}
