:root{
  --accent:#6d5cf6;--bg:#f6f5fb;--card:#fff;--ink:#17152b;--muted:#6b6880;--line:#e6e3f0;
  --ok:#16a34a;--okbg:#e8f8ee;--bad:#dc2626;--badbg:#fdecec;--shadow:0 1px 2px rgba(20,16,50,.06),0 4px 14px rgba(20,16,50,.06);
  --r:16px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);
  --cjk:"Hiragino Sans","Hiragino Kaku Gothic ProN","PingFang SC","Noto Sans CJK JP","Noto Sans CJK SC","Noto Sans CJK KR","Apple SD Gothic Neo","Malgun Gothic","Microsoft YaHei","Yu Gothic",sans-serif;
}
@media (prefers-color-scheme:dark){:root{--bg:#0f0e17;--card:#1b1a29;--ink:#efedf8;--muted:#9b98b0;--line:#2c2a40;--okbg:#10301d;--badbg:#3a1518;--shadow:0 1px 2px rgba(0,0,0,.4)}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,var(--cjk);-webkit-text-size-adjust:100%}
[lang=ja],[lang=zh-CN],[lang=ko]{font-family:var(--cjk)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.muted{color:var(--muted)}.small{font-size:.86rem}.center{text-align:center}.big{font-size:1.5rem;font-weight:700}.huge{font-size:3rem;font-weight:800;line-height:1.1}
.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.gap{gap:10px}.wrap{flex-wrap:wrap}.grow{flex:1}.row.center{justify-content:center}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;padding:calc(10px + var(--safe-t)) 16px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top h1{flex:1;margin:0;font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.logo{font-size:1.4rem}.chips{display:flex;gap:6px}.chip{background:var(--card);border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:.85rem;font-weight:600}
.icon-btn{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:1.5rem;background:var(--card);border:1px solid var(--line)}
.page{max-width:680px;margin:0 auto;padding:16px 16px calc(96px + var(--safe-b))}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:0 0 12px;box-shadow:var(--shadow);text-align:left;width:100%}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border-radius:14px;font-weight:700;background:var(--card);border:1px solid var(--line);min-height:48px;text-align:center}
.btn.wide{width:100%;margin:6px 0}.btn.primary{background:var(--accent);color:#fff;border-color:transparent;box-shadow:0 3px 0 color-mix(in srgb,var(--accent) 70%,#000)}
.btn.success{background:var(--ok);color:#fff;border:0}.btn.danger{background:var(--bad);color:#fff;border:0}.btn.ghost{background:transparent}.btn.danger-ghost{color:var(--bad)}
.btn:disabled{opacity:.45}.btn:active,.opt:active,.tok:active{transform:translateY(2px)}
.big-btn{font-size:1.02rem;margin-bottom:16px}
.link{color:var(--accent);font-weight:600;padding:6px 0}
.goal{display:flex;gap:16px;align-items:center}
.ring{--p:0;width:74px;height:74px;flex:none;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--p)*1%),var(--line) 0);font-weight:800}
.ring span{width:58px;height:58px;border-radius:50%;background:var(--card);display:grid;place-items:center}
.langs{display:grid;gap:12px;margin:4px 0 14px}
.lang-card{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--c);border-radius:var(--r);padding:14px;box-shadow:var(--shadow)}
.flag{font-size:2.3rem}.lc-body{flex:1;min-width:0}.lc-name{font-weight:800;font-size:1.1rem}.chev{font-size:1.6rem;color:var(--muted)}
.bar{height:9px;background:var(--line);border-radius:99px;overflow:hidden;margin:6px 0}.bar i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .3s}
.lang-card .bar i{background:var(--c)}
.due{color:var(--accent)}
.cta{display:flex;gap:12px;align-items:center;font-size:1.6rem}.cta div{font-size:1rem}.cta.warn{border-color:var(--accent)}
.unit{margin:18px 0}.unit-h{display:flex;gap:12px;align-items:center;margin-bottom:8px}.u-ico{font-size:1.9rem;width:52px;height:52px;display:grid;place-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px}
.u-title{font-weight:800;font-size:1.08rem}.unit.complete .u-ico{background:color-mix(in srgb,var(--accent) 18%,var(--card))}
.lesson-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.lesson{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;border-radius:14px;background:var(--card);border:2px solid var(--line);text-align:center}
.lesson .l-ico{font-size:1.4rem}.lesson b{font-size:.92rem}.lesson i{font-style:normal;font-size:.8rem;color:var(--muted)}
.lesson.done{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.lesson.done i{color:#f5a524;letter-spacing:1px}.lesson.locked{opacity:.5}
.tabs{position:fixed;bottom:0;left:0;right:0;z-index:6;display:flex;justify-content:space-around;background:var(--card);border-top:1px solid var(--line);padding:6px 4px calc(6px + var(--safe-b))}
.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;font-size:.7rem;color:var(--muted);padding:4px 0;font-weight:600}
.tabs a.on{color:var(--accent)}.ti{position:relative;font-size:1.35rem;line-height:1.2}
.badge{position:absolute;top:-4px;right:-14px;background:var(--bad);color:#fff;border-radius:99px;font-size:.62rem;padding:1px 5px}
/* player */
.player{min-height:100dvh;display:flex;flex-direction:column;max-width:680px;margin:0 auto}
.p-top{display:flex;align-items:center;gap:12px;padding:calc(12px + var(--safe-t)) 16px 8px}.p-top .bar{height:14px;margin:0}
.p-body{flex:1;padding:12px 16px;display:flex;flex-direction:column;gap:12px}
.p-foot{position:sticky;bottom:0;padding:12px 16px calc(14px + var(--safe-b));background:var(--bg)}
.tag{font-weight:800;font-size:1.15rem}
.intro,.prompt{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;text-align:center;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:6px}
.emoji{font-size:4rem;line-height:1.1}.emoji.sm{font-size:2.6rem}
.target{font-size:2.3rem;font-weight:700;line-height:1.3}.target.sent{font-size:1.6rem}
ruby rt{font-size:.42em;color:var(--muted);font-weight:500}
.rom{color:var(--accent);font-weight:600;font-size:1.05rem}.en{font-size:1.15rem;color:var(--muted)}.en.big{font-size:1.4rem;color:var(--ink);font-weight:700}
.audio{width:52px;height:52px;border-radius:50%;background:color-mix(in srgb,var(--accent) 14%,var(--card));border:2px solid color-mix(in srgb,var(--accent) 35%,transparent);font-size:1.4rem;display:inline-grid;place-items:center}
.audio.big{width:72px;height:72px;font-size:2rem}.audio.slow{width:44px;height:44px;font-size:1.1rem}
.opts{display:grid;gap:10px}.opts.grid2{grid-template-columns:1fr 1fr}
.opt{background:var(--card);border:2px solid var(--line);border-bottom-width:4px;border-radius:14px;padding:14px;font-size:1.1rem;font-weight:600;text-align:left;display:flex;flex-direction:column;gap:2px;min-height:56px;justify-content:center}
.opts.grid2 .opt{text-align:center;align-items:center}
.opt small{font-weight:500;color:var(--muted);font-size:.85rem}
.opt.right{border-color:var(--ok);background:var(--okbg)}.opt.wrong{border-color:var(--bad);background:var(--badbg)}
.inp{width:100%;font:inherit;font-size:1.2rem;padding:14px 16px;border-radius:14px;border:2px solid var(--line);background:var(--card);color:var(--ink);outline:none}
.inp:focus{border-color:var(--accent)}.center-text{text-align:center;margin:10px 0}
.search{margin-bottom:10px;position:sticky;top:64px;z-index:4}
.hint{color:var(--accent);font-weight:700;min-height:1.4em}
.accents{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.key{min-width:38px;height:38px;border-radius:10px;background:var(--card);border:1px solid var(--line);font-weight:700}
.ans{min-height:64px;border-bottom:2px dashed var(--line);display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0}
.bank{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding-top:8px}
.tok{background:var(--card);border:2px solid var(--line);border-bottom-width:4px;border-radius:12px;padding:9px 13px;font-size:1.1rem;font-weight:600}
.tok.used{opacity:.25}
.match{display:grid;grid-template-columns:1fr 1fr;gap:10px}.match>div{display:flex;flex-direction:column;gap:10px}
.mt{background:var(--card);border:2px solid var(--line);border-bottom-width:4px;border-radius:14px;padding:12px 8px;font-size:1.05rem;font-weight:600;min-height:56px}
.mt.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}.mt.ok{border-color:var(--ok);background:var(--okbg);opacity:.55}
.shake{animation:sh .35s;border-color:var(--bad)!important}@keyframes sh{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.mic{width:96px;height:96px;border-radius:50%;margin:8px auto;font-size:2.6rem;background:var(--accent);color:#fff;display:grid;place-items:center;box-shadow:0 4px 0 color-mix(in srgb,var(--accent) 65%,#000)}
.mic.live{animation:pulse 1s infinite}@keyframes pulse{50%{box-shadow:0 0 0 14px color-mix(in srgb,var(--accent) 25%,transparent)}}
.fb{border-radius:18px;padding:14px;animation:up .2s}.fb.ok{background:var(--okbg)}.fb.bad{background:var(--badbg)}
.fb-h{font-weight:800;font-size:1.15rem;margin-bottom:6px}.fb.ok .fb-h{color:var(--ok)}.fb.bad .fb-h{color:var(--bad)}
@keyframes up{from{transform:translateY(12px);opacity:0}}
.rv{margin:4px 0 8px}.rv-t{font-size:1.4rem;font-weight:700}.rv-r{color:var(--accent);font-weight:600}.rv-e{color:var(--muted)}
.note{margin:6px 0;font-size:.95rem}
/* results */
.result{text-align:center;padding-top:40px}.trophy{font-size:5rem}.stars{font-size:2.2rem;color:#f5a524;letter-spacing:4px}
.stats{display:flex;justify-content:center;gap:12px;margin:18px 0}.stats div{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 16px;min-width:90px}
.stats b{display:block;font-size:1.4rem}.stats span{font-size:.8rem;color:var(--muted)}
.watch{padding:8px 0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.grid3 b{font-size:1.5rem}
/* grammar, phrasebook, skills */
.h2{margin:4px 0}.h3{margin:16px 0 8px;font-size:1rem}
.gr summary{font-weight:800;cursor:pointer;list-style:none;display:flex;gap:10px;align-items:center}.gr summary::-webkit-details-marker{display:none}
.num{width:28px;height:28px;flex:none;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:.85rem}
.gb{margin:10px 0}.ex{display:flex;flex-direction:column;width:100%;text-align:left;padding:10px 12px;margin:6px 0;border-radius:12px;background:var(--bg);border:1px solid var(--line)}
.ex span{font-size:1.15rem;font-weight:700}.ex small{color:var(--accent)}.ex em{color:var(--muted);font-style:normal;font-size:.9rem}
.pb-h{margin:18px 0 6px;font-size:.95rem;color:var(--muted)}
.pb{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin:6px 0}
.pb-e{font-size:1.4rem}.pb-m{flex:1;display:flex;flex-direction:column;min-width:0}.pb-t{font-size:1.15rem;font-weight:700}.pb-m small{color:var(--accent)}.pb-en{color:var(--muted);font-size:.9rem;text-align:right;max-width:42%}
.seg{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}
.seg a,.seg button{flex:none;padding:8px 14px;border-radius:99px;background:var(--card);border:1px solid var(--line);font-weight:700;font-size:.9rem}
.seg .on{background:var(--accent);color:#fff;border-color:transparent}.small-seg button{padding:6px 12px;font-size:.85rem}
.kana-grid{display:flex;flex-direction:column;gap:6px}.krow{display:grid;grid-template-columns:44px repeat(5,1fr);gap:6px;align-items:center}
.klab{font-size:.75rem;color:var(--muted);text-align:center}
.kc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px 2px;display:flex;flex-direction:column;align-items:center}
.kc b{font-size:1.5rem;font-weight:600}.kc small{color:var(--muted);font-size:.75rem}.kc i{font-style:normal;font-size:.7rem;color:var(--muted)}
.hgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.wide-kc{padding:10px 4px}
.big-char{font-size:5rem;font-weight:600;line-height:1.2;text-align:center}
.quiz-q{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;margin:8px 0 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.qfb{margin-top:10px}
.pickrow{display:flex;flex-wrap:wrap;gap:6px}.pk{width:44px;height:44px;border-radius:10px;background:var(--card);border:1px solid var(--line);font-size:1.25rem}.pk.on{background:var(--accent);color:#fff}
.tone,.snd{display:flex;flex-direction:column;gap:2px}.tone em,.snd em{font-style:normal;font-size:1.15rem;color:var(--accent);font-weight:700}
.ctab{width:100%;border-collapse:collapse;margin-top:8px}.ctab td{padding:6px;border-bottom:1px solid var(--line)}
.set{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.set:last-child{border:0}.set input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}
select{font:inherit;padding:8px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);max-width:62%}
input[type=range]{accent-color:var(--accent);width:50%}
.vrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.vrow span{width:110px;flex:none;font-weight:600}.vrow select{flex:1;max-width:none}.vrow .audio{width:40px;height:40px;font-size:1rem;flex:none}
.warn{color:var(--bad);flex:1}
details summary{cursor:pointer}
.foot{margin-top:18px}
#toast{position:fixed;left:50%;bottom:calc(84px + var(--safe-b));transform:translate(-50%,30px);background:#17152b;color:#fff;padding:12px 16px;border-radius:14px;opacity:0;pointer-events:none;transition:.25s;z-index:20;max-width:90vw;font-weight:600;box-shadow:0 6px 20px rgba(0,0,0,.25)}
#toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}#toast button{color:#a99cff;font-weight:800;margin-left:8px}
@media (min-width:700px){.opts:not(.grid2){grid-template-columns:1fr 1fr}}
.card.center{text-align:center}.card.center .audio,.card.center .btn{margin-left:auto;margin-right:auto}.card.center .rom{display:block}
/* ===== v2 additions ===== */
.between{justify-content:space-between}.chips{color:inherit}.chip small{font-size:.7rem;margin-left:3px}
.week{display:flex;gap:4px;align-items:flex-end;height:30px;margin-top:6px}.week i{flex:1;height:max(3px,var(--h));background:var(--line);border-radius:3px}.week i.hit{background:var(--accent)}
.lang-card{padding:0;overflow:hidden}.lc-main{display:flex;align-items:center;gap:14px;padding:14px;flex:1;min-width:0}
.lc-go{display:grid;place-items:center;width:58px;align-self:stretch;font-size:1.5rem;background:color-mix(in srgb,var(--c) 12%,var(--card));border-left:1px solid var(--line)}
.cta.daily{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#000));color:#fff;border:0}.cta.daily .small{opacity:.85}
.opt{flex-direction:row;align-items:center;gap:12px}.okey{flex:none;width:24px;height:24px;border-radius:7px;border:1px solid var(--line);display:grid;place-items:center;font-size:.75rem;color:var(--muted)}
.otext{display:flex;flex-direction:column;gap:2px}.opts.grid2 .okey{display:none}
@media (hover:none){.okey{display:none}}
.fb .row{margin-top:6px}
.flash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-height:300px;margin:10px 0;padding:24px;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);text-align:center}
.flash hr{width:60%;border:0;border-top:1px dashed var(--line)}.flash .tap{margin-top:16px}
.grade{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.gbtn{display:flex;flex-direction:column;align-items:center;padding:12px 4px;border-radius:14px;border:2px solid var(--line);border-bottom-width:4px;background:var(--card);font-weight:700}
.gbtn small{font-weight:500;color:var(--muted)}.gbtn.bad{border-color:var(--bad);color:var(--bad)}.gbtn.warnb{border-color:#f59e0b;color:#d97706}.gbtn.okb{border-color:var(--ok);color:var(--ok)}.gbtn.easy{border-color:#3b82f6;color:#2563eb}
.forecast{display:flex;gap:6px;align-items:flex-end;height:90px;margin-top:8px}.forecast div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:.7rem}
.forecast i{width:70%;height:max(3px,calc(var(--h)*.55));background:var(--accent);border-radius:4px 4px 0 0}.forecast b{font-size:.8rem}.forecast span{color:var(--muted)}
.dl{display:flex;align-items:center;gap:12px}.dl-i{font-size:2rem}.stars-sm{color:#f5a524;font-size:1.1rem}
.ctl{margin:8px 0 12px}.chk{display:flex;align-items:center;gap:6px;font-weight:600;font-size:.9rem}
.chat{display:flex;flex-direction:column;gap:10px;margin:10px 0 16px}
.bub{max-width:86%;padding:10px 14px;border-radius:18px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;transition:.2s}
.bub.a{align-self:flex-start;border-bottom-left-radius:6px}.bub.b{align-self:flex-end;border-bottom-right-radius:6px;background:color-mix(in srgb,var(--accent) 10%,var(--card))}
.bub.on{outline:3px solid var(--accent);transform:scale(1.02)}.bub.mine{border-style:dashed}.bub.good{border-color:var(--ok)}.bub.meh{border-color:#f59e0b}
.who{font-size:.72rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.bt{font-size:1.15rem;font-weight:700}.br{color:var(--accent);font-size:.88rem}.be{color:var(--muted);font-size:.9rem}.be.blur{filter:blur(5px);user-select:none}
.fl{display:block;font-weight:700;font-size:.9rem;margin:8px 0}.fl .inp{margin-top:4px;font-size:1.05rem;padding:11px 14px}
.pb .pb-m{background:none;text-align:left;color:inherit}.del{font-size:1.1rem;padding:8px}
.btn.sm{min-height:38px;padding:6px 12px;font-size:.85rem}
.wcard{display:flex;flex-direction:column;align-items:center;gap:10px}
.padwrap{width:min(100%,340px);aspect-ratio:1;border:2px solid var(--line);border-radius:18px;background:var(--bg);overflow:hidden}
#pad{width:100%;height:100%;touch-action:none;display:block}
.heat{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;margin:10px 0 6px}
.heat i,.legend i{display:block;aspect-ratio:1;border-radius:3px;background:var(--line)}
.legend{display:flex;align-items:center;gap:3px;justify-content:flex-end}.legend i{width:11px}
.hl1{background:color-mix(in srgb,var(--accent) 30%,var(--line))!important}.hl2{background:color-mix(in srgb,var(--accent) 55%,var(--line))!important}
.hl3{background:color-mix(in srgb,var(--accent) 80%,var(--line))!important}.hl4{background:var(--accent)!important}.hlf{opacity:.25}
.spark{display:flex;gap:2px;align-items:flex-end;height:70px;margin-top:8px}.spark i{flex:1;height:max(2px,var(--h));background:var(--line);border-radius:2px}.spark i.hit{background:var(--accent)}
.lstat .bar i{background:var(--c)}.flag.sm{font-size:1.4rem}
code{font-size:.85em;background:var(--bg);padding:1px 5px;border-radius:5px}
.ctab th{text-align:left;font-size:.8rem;color:var(--muted)}
/* ===== v3: sprint, talk hub, AI chat, audio course ===== */
.sprint .sp-h{display:flex;gap:12px;align-items:center;font-size:1.8rem}.sprint .sp-h div{font-size:1rem}
.sp-dots{display:grid;grid-template-columns:repeat(15,1fr);gap:4px;margin:10px 0}.sp-dots i{aspect-ratio:1;border-radius:50%;background:var(--line)}
.sp-dots i.ok{background:var(--ok)}.sp-dots i.now{outline:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 25%,var(--line))}.sp-dots i.miss{background:color-mix(in srgb,var(--bad) 25%,var(--line))}
.sp-tasks{display:flex;flex-direction:column;gap:6px;margin:8px 0}.sp-t{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-weight:600;font-size:.92rem}
.sp-t.ok{background:var(--okbg);border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}.sp-t small{color:var(--muted)}.sp-t .chev{font-size:1.2rem}
.why{padding-left:18px;font-size:.9rem}.why li{margin:6px 0}
.hero-ai{display:flex;gap:14px;align-items:center;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#000));color:#fff;border:0}
.hero-ai .small{opacity:.9}.hai-e{font-size:3rem}.hai-c{margin-top:6px;font-weight:700;opacity:1!important}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}.tile{margin:0}.ti-e{font-size:1.8rem}
.scen{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.sc{display:flex;gap:8px;align-items:center;padding:12px;border-radius:14px;background:var(--card);border:2px solid var(--line);font-weight:600;font-size:.9rem;text-align:left}
.sc span{font-size:1.3rem}.sc.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}
textarea.inp{font-size:1rem;resize:vertical;margin-bottom:10px}
.chatpage{display:flex;flex-direction:column;height:100dvh;max-width:680px;margin:0 auto}
.chatpage .top{position:static}.ch-h{min-width:0}.ch-h b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icon-btn.on{background:var(--accent);color:#fff;border-color:transparent;animation:pulse 1.4s infinite}
#enb{font-size:.8rem;font-weight:800}
.chatlog{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.bub.mine2{align-self:flex-end;border-bottom-right-radius:6px;background:color-mix(in srgb,var(--accent) 12%,var(--card));cursor:default}
.bub.a{cursor:default}.mini{font-size:.8rem;font-weight:700;padding:5px 9px;border-radius:9px;background:var(--bg);border:1px solid var(--line);margin-top:6px}
.corr{margin-top:8px;padding:8px 10px;border-radius:12px;background:var(--okbg);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent)}
.okmark{color:var(--ok);font-weight:700;margin-top:4px}
.wchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.wchip{font-size:.82rem;padding:4px 9px;border-radius:99px;border:1px dashed var(--accent);background:var(--card)}.wchip.saved{border-style:solid;background:var(--okbg)}
.typing{display:flex;gap:4px;padding:14px 16px}.typing span{width:8px;height:8px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{50%{opacity:.25}}
.sysmsg{align-self:center;max-width:94%;font-size:.88rem;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.fbk ul{margin:4px 0;padding-left:18px}.fix{padding:6px 0;border-bottom:1px solid var(--line)}.fix s{color:var(--muted);font-size:.85rem}
.composer{border-top:1px solid var(--line);background:var(--card);padding:8px 12px calc(10px + var(--safe-b))}
.sugs{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;align-items:stretch;scrollbar-width:none}.sugs::-webkit-scrollbar{display:none}.sugs>.small{flex:none;align-self:center}
.sug{flex:none;max-width:72%;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:7px 10px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-weight:600}
.sug small{color:var(--accent);font-weight:500}.sug em{font-style:normal;color:var(--muted);font-size:.78rem;font-weight:400}
.crow{display:flex;gap:6px;align-items:center}.cinp{flex:1;padding:11px 12px;font-size:1.02rem}
.cbtn{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:1.25rem;background:var(--bg);border:1px solid var(--line)}
.cbtn.send{background:var(--accent);color:#fff;border:0}.cbtn.on{background:#f59e0b;color:#fff}.cbtn.mic-s.live{background:var(--bad);color:#fff;animation:pulse 1s infinite}
.helpc{background:var(--bg);border:1px solid var(--accent);border-radius:12px;padding:8px 10px;margin-bottom:6px}
.ac{display:flex;flex-direction:column;gap:6px;min-height:280px;justify-content:center}.ac-phase{font-weight:800;color:var(--accent);font-size:1.05rem}
.ac-en{font-size:1.45rem;font-weight:700}.ac-t{font-size:2rem;font-weight:700;min-height:1.3em}.ac .bar{margin-top:10px}
.sug{max-width:64%;font-size:.88rem;padding:6px 9px}.sug span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sug small,.sug em{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.chatlog .bt{font-size:1.08rem}

.top h1 .by{font-size:.7rem;font-weight:600;color:var(--muted);margin-left:4px}
