:root{--bg: #f7f7fb;--card: #fff;--ink: #1c1b24;--muted: #6b6a7a;--line: #e4e3ee;--accent: #4f46e5;--accent-ink: #fff;--good: #16a34a;--bad: #dc2626;--good-bg: #e7f6ec;--bad-bg: #fdeaea}@media (prefers-color-scheme: dark){:root{--bg: #121218;--card: #1c1c25;--ink: #ececf3;--muted: #9a99ab;--line: #2c2c38;--accent: #818cf8;--accent-ink: #14131f;--good: #4ade80;--bad: #f87171;--good-bg: #12301f;--bad-bg: #3a1a1a}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}h1{font-size:1.6rem;margin:.2em 0 .6em}h2{font-size:1.05rem;margin:0 0 .6em}a{color:var(--accent)}.app{max-width:640px;margin:0 auto;min-height:100dvh;padding-bottom:calc(68px + env(safe-area-inset-bottom))}.page{padding:16px;padding-top:calc(16px + env(safe-area-inset-top))}.center{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px}.center-text{text-align:center}.muted{color:var(--muted)}.small{font-size:.85rem}.bad{color:var(--bad)}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:12px}.hero{text-align:center}.big{font-size:2.6rem;font-weight:700;line-height:1.1}button{font:inherit;color:inherit;cursor:pointer}button.primary{background:var(--accent);color:var(--accent-ink);border:0;border-radius:14px;padding:14px 22px;font-weight:600;margin-top:12px;min-height:48px}button.secondary{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;min-height:48px}button.block{display:block;width:100%}button.icon{background:none;border:0;font-size:1.3rem;padding:6px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;margin-bottom:8px}.chip{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px;white-space:nowrap;min-height:40px}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.stats{display:flex;justify-content:space-around;text-align:center}.stats b{display:block;font-size:1.4rem}.stats span{color:var(--muted);font-size:.85rem}.search{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;margin-bottom:10px}.wordlist{list-style:none;padding:0;margin:0}.word{margin-bottom:10px}.row{display:flex;justify-content:space-between;align-items:center}.hw{font-weight:700;font-size:1.15rem}.tag{margin-left:8px;font-size:.7rem;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:1px 6px}.zh{margin:6px 0 10px}.actions{display:flex;gap:8px;flex-wrap:wrap}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;max-width:640px;margin:0 auto;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;background:none;border:0;padding:14px 0;color:var(--muted);min-height:56px}.tabbar button.on{color:var(--accent);font-weight:700}.progress{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin-bottom:8px}.progress div{height:100%;background:var(--accent);transition:width .2s}.q{text-align:center;padding:28px 16px}.q .hw.big{font-size:2.2rem}.opts{display:grid;gap:10px}.opt{text-align:left;background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;min-height:56px}.opt.right{border-color:var(--good);background:var(--good-bg)}.opt.wrong{border-color:var(--bad);background:var(--bad-bg)}.opt.dim{opacity:.55}.feedback{margin-top:14px;padding:14px;border-radius:14px}.feedback.ok{background:var(--good-bg)}.feedback.no{background:var(--bad-bg)}@media (min-width: 900px){.app,.tabbar{max-width:720px}}.qtext{font-size:1.15rem;font-weight:600;margin:10px 0;line-height:1.5}.scenario{color:var(--accent);margin-bottom:6px}.expl{margin:6px 0}.script{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0}textarea.area{resize:vertical;min-height:140px;margin-top:4px}.skillrow{padding:8px 0;border-bottom:1px solid var(--line)}.skillrow:last-of-type{border-bottom:0}.up{color:var(--good)}.down{color:var(--bad)}.feedback ul{margin:4px 0 8px;padding-left:1.2em}button:disabled{opacity:.6;cursor:default}
