:root{--bg:#f5f6f8;--card:#fff;--text:#1c1f23;--muted:#6b7280;--border:#e1e4e9;--accent:#2563eb;--accent-text:#fff;--correct:#15803d;--correct-bg:#e9f7ee;--wrong:#dc2626;--wrong-bg:#fdecec;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#101317;--card:#1a1f25;--text:#e8ebef;--muted:#98a1ab;--border:#2b323a;--accent:#4c8dff;--correct:#4ade80;--correct-bg:#14301e;--wrong:#f87171;--wrong-bg:#3a1a1a}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,PingFang TC,Noto Sans TC,sans-serif}button{font:inherit;color:inherit;cursor:pointer}.page{max-width:560px;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));margin:0 auto}.home-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.header-button{border:1px solid var(--border);background:var(--card);min-height:40px;color:var(--text);white-space:nowrap;border-radius:10px;padding:9px 12px;font-size:.9rem}.header-button:active{border-color:var(--accent)}.home-header h1{margin:8px 0;font-size:1.4rem}.level-badge{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:2px 12px;font-size:.85rem}.stats-line{color:var(--muted);margin:4px 0 8px}.streak-strip{margin:0 0 16px;font-weight:600}.at-risk-hint{color:var(--wrong);margin:-8px 0 16px;font-size:.85rem}.makeup-box{border:1px solid var(--accent);text-align:left;border-radius:12px;margin:12px 0;padding:14px}.makeup-box p{margin:0 0 10px}.makeup-box .primary{margin-top:0;margin-bottom:10px}.ghost-button{background:var(--card);width:100%;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:13px;font-size:1rem}.tile-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=600px){.tile-grid{grid-template-columns:repeat(4,1fr)}}.tile{background:var(--card);border:1px solid var(--border);text-align:left;border-radius:14px;flex-direction:column;align-items:flex-start;gap:8px;min-height:92px;padding:14px;display:flex}.tile:active{transform:scale(.98)}.onboarding-level.is-picked{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-2px}.primary-button{background:var(--accent);width:100%;color:var(--accent-text);border:none;border-radius:12px;margin:20px 0 8px;padding:14px;font-size:1.05rem;display:block}.primary-button:disabled{opacity:.45}.tile-slot{display:flex;position:relative}.tile-slot .tile{flex:1}.tile-badge{color:var(--accent);border:1px solid var(--accent);pointer-events:none;border-radius:999px;padding:0 6px;font-size:.7rem;position:absolute;top:6px;right:8px}.tile-delete{padding:6px 10px;position:absolute;bottom:8px;right:8px}.create-tile{color:var(--muted);border-style:dashed}.tile-name{font-weight:600;line-height:1.35}.tile-stock{color:var(--muted);font-size:.85rem}.tile-stock.has-stock{color:var(--accent);font-weight:600}.practice-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.practice-title{font-weight:600}.practice-progress{color:var(--muted);text-align:right;min-width:3.5em}.link-button{min-height:40px;color:var(--muted);background:0 0;border:none;margin:0 -8px;padding:9px 8px;font-size:.95rem}.dev-reset{margin-top:28px;font-size:.85rem}.question-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px}.audio-row{gap:10px;display:flex}.play-button{border:1px solid var(--border);background:0 0;border-radius:12px;flex:1;padding:14px;font-size:1rem}.play-button:active{border-color:var(--accent)}.rate-button{border:1px solid var(--border);min-width:72px;color:var(--muted);background:0 0;border-radius:12px;padding:14px 10px;font-size:.95rem}.audio-error{border:1px solid var(--wrong);background:var(--wrong-bg);border-radius:12px;margin-top:10px;padding:12px}.audio-error p{color:var(--wrong);margin:0 0 8px;font-weight:600}.audio-error .hint{color:var(--muted);margin:8px 0 0;font-weight:400}.fallback-button{border:1px solid var(--wrong);background:var(--card);border-radius:10px;width:100%;padding:12px;font-size:.95rem}.hint{color:var(--muted);font-size:.85rem;line-height:1.5}.question-text{margin:14px 0;font-size:1.05rem;line-height:1.5}.options{flex-direction:column;gap:10px;display:flex}.option{text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:12px;width:100%;min-height:48px;padding:12px 14px;line-height:1.4}button.option:hover{border-color:var(--accent)}.option.revealed{cursor:default}button.option:disabled{opacity:.45;cursor:not-allowed}.option-correct{border-color:var(--correct);background:var(--correct-bg)}.option-wrong{border-color:var(--wrong);background:var(--wrong-bg)}.feedback{margin:0 0 12px;font-weight:700}.feedback.correct{color:var(--correct)}.feedback.wrong{color:var(--wrong)}.sentence{background:var(--bg);border-left:4px solid var(--accent);border-radius:8px;margin:0 0 4px;padding:12px 14px;line-height:1.6}.tappable-sentence{position:relative}.token{line-height:1.7}.word{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:1px 2px;line-height:1.7;display:inline}.word-highlight{background:var(--accent);color:var(--accent-text)}.lookup-bubble{z-index:10;background:var(--card);border:1px solid var(--accent);border-radius:12px;max-width:calc(100% - 8px);padding:10px 12px;position:absolute;box-shadow:0 6px 20px #0000002e}.lookup-meaning{margin:0 0 8px;line-height:1.5}.lookup-miss{color:var(--muted);margin:0}.lookup-save{margin-top:0;padding:10px;font-size:.95rem}.word-row{background:var(--card);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;margin-bottom:10px;padding:12px 14px;display:flex}.word-main{flex:1;min-width:0}.word-term{margin:0;font-weight:700}.word-meta{color:var(--muted);white-space:nowrap;font-size:.85rem;font-weight:400}.word-example{color:var(--muted);margin:4px 0 0;font-size:.85rem;line-height:1.5}.delete-button{background:var(--wrong);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:.9rem}.header-spacer{flex:1}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:0 auto 12px;animation:.9s linear infinite spinner-turn}@keyframes spinner-turn{to{transform:rotate(360deg)}}.notice .ghost-button,.notice .primary{margin-top:10px}.notice-exit{margin:12px auto 0;display:block}.settings-section{background:var(--card);border:1px solid var(--border);border-radius:16px;margin-bottom:14px;padding:14px}.settings-section h2{margin:0 0 10px;font-size:1rem}.settings-label{color:var(--muted);margin:10px 0 6px;font-size:.85rem;display:block}.settings-input{width:100%;min-width:0;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:11px 12px}.settings-row{align-items:center;gap:8px;display:flex}.settings-inline-button{white-space:nowrap;width:auto;padding:11px 12px}.settings-section .ghost-button{margin-top:8px}.level-choice{flex:1;margin-top:0}.level-choice.is-current{border-color:var(--accent);color:var(--accent);font-weight:700}.hidden-input{display:none}.settings-custom-model{margin-top:8px}.onboarding-levels{flex-direction:column;gap:12px;margin-top:8px;display:flex}.onboarding-level{min-height:72px}.review-word{text-align:center;margin:16px 0;font-size:1.8rem}.dial-row{justify-content:center;align-items:center;gap:14px;margin:12px 0;display:flex}.dial-button{width:52px;margin-top:0;font-size:1.2rem}.dial-value{text-align:center;min-width:2.2em;font-size:1.6rem;font-weight:700}.grade-row{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px;display:grid}.grade-button{flex-direction:column;align-items:center;gap:2px;margin-top:0;padding:10px 4px;font-size:.9rem;display:flex}.grade-preview{color:var(--muted);font-size:.75rem}.question-card .word-example{background:var(--bg);border-left:4px solid var(--accent);color:var(--text);border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:1rem}.primary{background:var(--accent);width:100%;color:var(--accent-text);border:none;border-radius:12px;margin-top:16px;padding:13px;font-size:1rem;font-weight:600}.primary:active{opacity:.85}.notice,.summary{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:16px;padding:24px 16px}.notice-text{color:var(--wrong)}.summary h2{margin:0}.score{margin:12px 0;font-size:3rem;font-weight:700}
