.today-plan[data-v-c3a7a0ba]{display:grid;gap:10px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.today-plan__head[data-v-c3a7a0ba]{display:flex;align-items:center;justify-content:space-between;gap:10px}.today-plan__eyebrow[data-v-c3a7a0ba]{margin:0;color:var(--muted);font-size:9px;letter-spacing:.14em}.today-plan h2[data-v-c3a7a0ba]{margin:3px 0 0;font-size:17px}.today-plan__empty[data-v-c3a7a0ba]{margin:0;color:var(--muted);font-size:12px}.today-plan__item[data-v-c3a7a0ba]{display:flex;align-items:center;gap:10px;padding:8px 0;border:0;border-top:1px solid var(--border);background:transparent;text-align:left;cursor:pointer}.today-plan__number[data-v-c3a7a0ba]{display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:var(--primary-soft, rgba(99, 102, 241, .12));color:var(--primary);font-size:11px;font-weight:800}.today-plan__copy[data-v-c3a7a0ba]{display:grid;flex:1;gap:3px}.today-plan__copy strong[data-v-c3a7a0ba]{font-size:13px}.today-plan__copy small[data-v-c3a7a0ba]{color:var(--muted);font-size:10px}.today-plan__go[data-v-c3a7a0ba]{color:var(--primary)}.level-settings[data-v-c3a7a0ba],.level-recommendation[data-v-c3a7a0ba]{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.level-settings>div[data-v-c3a7a0ba]{flex:1}.level-settings__eyebrow[data-v-c3a7a0ba]{margin:0 0 3px;color:var(--muted);font-size:10px}.level-settings select[data-v-c3a7a0ba],.story-list__filter select[data-v-c3a7a0ba]{max-width:48%;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}.level-recommendation[data-v-c3a7a0ba]{flex-wrap:wrap}.level-recommendation p[data-v-c3a7a0ba]{flex:1 1 100%;margin:0;font-size:13px}.story-list-wrap[data-v-c3a7a0ba]{display:grid;gap:12px}.story-list__filter[data-v-c3a7a0ba]{display:flex;align-items:center;justify-content:space-between;gap:10px}.story-list__filter h2[data-v-c3a7a0ba]{margin:0;font-size:18px}.story-card__details[data-v-c3a7a0ba]{margin:-6px 0 12px;color:var(--muted);font-size:11px}.level-modal[data-v-c3a7a0ba]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:16px;background:#0f172a8c}.level-modal__card[data-v-c3a7a0ba]{position:relative;display:grid;gap:12px;width:min(100%,520px);max-height:90vh;overflow-y:auto;padding:24px;border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.level-modal__card h2[data-v-c3a7a0ba],.level-modal__card p[data-v-c3a7a0ba]{margin:0}.level-modal__card>p[data-v-c3a7a0ba]:not(.today-plan__eyebrow){color:var(--muted);font-size:13px;line-height:1.5}.level-modal__close[data-v-c3a7a0ba]{position:absolute;top:14px;right:14px}.level-option[data-v-c3a7a0ba]{display:flex;align-items:flex-start;gap:10px;padding:10px;border:1px solid var(--border);border-radius:12px;cursor:pointer}.level-option span[data-v-c3a7a0ba]{display:grid;gap:2px}.level-option small[data-v-c3a7a0ba]{color:var(--muted);font-size:11px}.diagnostic-question[data-v-c3a7a0ba]{display:grid;gap:6px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.diagnostic-option[data-v-c3a7a0ba]{color:var(--muted);font-size:12px}.page[data-v-c3a7a0ba]{display:grid;gap:20px}.hero[data-v-c3a7a0ba]{padding:8px 2px 0}.hero h1[data-v-c3a7a0ba]{margin:12px 0 10px;font-size:clamp(28px,8vw,42px);line-height:1.15;letter-spacing:-.03em}.hero p[data-v-c3a7a0ba]{max-width:34rem;margin:0;color:var(--muted);font-size:14px;line-height:1.7}.stats[data-v-c3a7a0ba]{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}.stats__today[data-v-c3a7a0ba]{color:var(--muted);font-size:11px}.steps[data-v-c3a7a0ba]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.step[data-v-c3a7a0ba]{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.step>span[data-v-c3a7a0ba]{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:800}.step p[data-v-c3a7a0ba]{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.step strong[data-v-c3a7a0ba]{display:block;margin-bottom:2px;color:var(--text);font-size:12px}.story-list[data-v-c3a7a0ba],.scene-list[data-v-c3a7a0ba]{display:grid;gap:12px}.scene-card[data-v-c3a7a0ba]{padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;transition:transform .15s ease,border-color .2s ease}.scene-card[data-v-c3a7a0ba]:active{transform:scale(.985);border-color:var(--primary)}.scene-card__roles[data-v-c3a7a0ba]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.story-card__role[data-v-c3a7a0ba]{margin:-8px 0 10px;color:var(--primary);font-size:11px;font-weight:700}.story-list__controls[data-v-c3a7a0ba]{display:flex;align-items:center;gap:8px}.view-toggle[data-v-c3a7a0ba]{display:flex;padding:2px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2)}.view-toggle__button[data-v-c3a7a0ba]{padding:5px 10px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer}.view-toggle__button--active[data-v-c3a7a0ba]{background:var(--surface);color:var(--primary);box-shadow:var(--shadow)}.story-card[data-v-c3a7a0ba]{padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;transition:transform .15s ease,border-color .2s ease}.story-card[data-v-c3a7a0ba]:active{transform:scale(.985);border-color:var(--primary)}.story-card__top[data-v-c3a7a0ba],.story-card__bottom[data-v-c3a7a0ba]{display:flex;align-items:center;justify-content:space-between;gap:12px}.story-card__meta[data-v-c3a7a0ba]{display:flex;align-items:center;gap:8px}.story-card__count[data-v-c3a7a0ba]{color:var(--muted);font-size:11px}.story-card__progress[data-v-c3a7a0ba]{padding:2px 8px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:10px;font-weight:700}.story-card h2[data-v-c3a7a0ba]{margin:12px 0 2px;font-size:20px;letter-spacing:-.01em}.story-card__scene[data-v-c3a7a0ba]{margin:10px 0 14px;color:var(--muted);font-size:13px}.phonemes[data-v-c3a7a0ba]{display:flex;flex-wrap:wrap;gap:4px}.phoneme-tag[data-v-c3a7a0ba]{padding:2px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:10px}.story-card__go[data-v-c3a7a0ba]{flex:0 0 auto;color:var(--primary);font-size:12px;font-weight:700}.footnote[data-v-c3a7a0ba]{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.6}@media(max-width:420px){.steps[data-v-c3a7a0ba]{grid-template-columns:1fr}}.bubble[data-v-d2a7a2c7]{position:relative;max-width:92%;margin:0 0 12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:18px 18px 18px 6px;box-shadow:0 2px 10px #1f29370a;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.bubble--user[data-v-d2a7a2c7]{margin-left:auto;background:var(--primary-soft);border-color:transparent;border-radius:18px 18px 6px}.bubble--active[data-v-d2a7a2c7]{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);transform:translateY(-1px)}.bubble--speaking[data-v-d2a7a2c7]{animation:bubble-glow-d2a7a2c7 1.4s ease-in-out infinite}.bubble__meta[data-v-d2a7a2c7]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.bubble__avatar[data-v-d2a7a2c7]{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;font-weight:700}.bubble__name[data-v-d2a7a2c7]{font-size:12px;font-weight:600;color:var(--muted)}.bubble__badge[data-v-d2a7a2c7]{padding:1px 6px;border-radius:999px;background:var(--primary);color:#fff;font-size:10px;font-weight:700}.bubble__score[data-v-d2a7a2c7]{margin-left:auto;min-width:32px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:800;text-align:center}.bubble__text[data-v-d2a7a2c7]{margin:0;font-size:16px;line-height:1.6;letter-spacing:.01em}.bubble__actions[data-v-d2a7a2c7]{display:flex;gap:8px;margin-top:10px}@keyframes bubble-glow-d2a7a2c7{0%,to{box-shadow:0 0 0 3px var(--primary-soft)}50%{box-shadow:0 0 0 7px var(--primary-soft)}}.record[data-v-dbede451]{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:92px;height:92px;border:none;border-radius:50%;background:linear-gradient(145deg,#6366f1,#4338ca);color:#fff;cursor:pointer;box-shadow:0 14px 30px #4f46e559;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;-webkit-tap-highlight-color:transparent}.record[data-v-dbede451]:active{transform:scale(.96)}.record[data-v-dbede451]:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.record--active[data-v-dbede451]{background:linear-gradient(145deg,#ef4444,#b91c1c);animation:record-pulse-dbede451 1.3s ease-in-out infinite}.record--busy[data-v-dbede451]{background:linear-gradient(145deg,#94a3b8,#64748b)}.record__icon[data-v-dbede451]{display:grid;place-items:center}.record__label[data-v-dbede451]{font-size:10px;font-weight:700;letter-spacing:.02em}@keyframes record-pulse-dbede451{0%,to{box-shadow:0 0 #ef444473}50%{box-shadow:0 0 0 14px #ef444400}}.challenge[data-v-c670edae]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:flex;flex-direction:column;gap:24px;padding:24px 20px;background:var(--bg)}.challenge__header[data-v-c670edae]{display:flex;justify-content:space-between;gap:12px}.challenge__eyebrow[data-v-c670edae]{margin:0;color:var(--muted);font-size:10px;letter-spacing:.14em}.challenge h2[data-v-c670edae]{margin:4px 0 0;font-size:22px}.challenge__status[data-v-c670edae],.challenge__result[data-v-c670edae]{display:grid;justify-items:center;align-content:center;flex:1;gap:16px;text-align:center}.challenge__status p[data-v-c670edae],.challenge__result p[data-v-c670edae]{margin:0;color:var(--muted)}.challenge__turn[data-v-c670edae]{font-size:20px;font-weight:700;color:var(--text)!important}.challenge__pulse[data-v-c670edae]{width:18px;height:18px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent)}.challenge__hint[data-v-c670edae],.challenge__error[data-v-c670edae]{font-size:12px}.challenge__error[data-v-c670edae],.challenge__failed[data-v-c670edae]{color:var(--bad)}.challenge__passed[data-v-c670edae]{color:var(--good);font-size:24px;font-weight:800}.challenge__failed[data-v-c670edae]{font-size:24px;font-weight:800}.challenge__reference[data-v-c670edae]{width:100%;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.challenge__reference p[data-v-c670edae]{color:var(--text);font-size:18px}.word[data-v-125d913f]{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;transition:transform .12s ease,border-color .2s ease}.word[data-v-125d913f]:active{transform:scale(.97)}.word--good[data-v-125d913f]{border-color:#16a34a59;background:var(--good-soft)}.word--warn[data-v-125d913f]{border-color:#d9770659;background:var(--warn-soft)}.word--bad[data-v-125d913f]{border-color:#dc262659;background:var(--bad-soft)}.word__text[data-v-125d913f]{font-size:14px;font-weight:600}.word__score[data-v-125d913f]{font-size:10px;font-weight:800;opacity:.65}.word__error[data-v-125d913f]{padding:1px 5px;border-radius:999px;background:var(--bad-soft);color:var(--bad);font-size:9px;font-weight:700}.score-panel[data-v-88922974]{padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);touch-action:pan-y}.score-panel__head[data-v-88922974]{display:flex;gap:16px;align-items:center}.score-ring[data-v-88922974]{display:flex;flex:0 0 auto;flex-direction:column;align-items:center;justify-content:center;width:86px;height:86px;border:6px solid var(--border);border-radius:50%;background:var(--surface)}.score-ring strong[data-v-88922974]{font-size:26px;line-height:1}.score-ring span[data-v-88922974]{margin-top:3px;font-size:10px;color:var(--muted)}.score-ring--good[data-v-88922974]{border-color:var(--good);color:var(--good)}.score-ring--warn[data-v-88922974]{border-color:var(--warn);color:var(--warn)}.score-ring--bad[data-v-88922974]{border-color:var(--bad);color:var(--bad)}.score-panel__copy[data-v-88922974]{flex:1;min-width:0}.score-panel__verdict[data-v-88922974]{margin:0 0 8px;font-size:14px;font-weight:600}.score-panel__bars[data-v-88922974]{display:grid;gap:5px}.metric[data-v-88922974]{display:grid;grid-template-columns:32px 1fr 28px;gap:8px;align-items:center;font-size:10px;color:var(--muted)}.metric b[data-v-88922974]{color:var(--text);font-size:10px;text-align:right}.metric__track[data-v-88922974]{height:5px;overflow:hidden;border-radius:999px;background:var(--surface-2)}.metric__fill[data-v-88922974]{display:block;height:100%;border-radius:inherit;background:var(--primary)}.metric__fill--good[data-v-88922974]{background:var(--good)}.metric__fill--warn[data-v-88922974]{background:var(--warn)}.metric__fill--bad[data-v-88922974]{background:var(--bad)}.score-panel__words[data-v-88922974]{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.score-panel__hint[data-v-88922974]{margin:10px 0 0;font-size:11px;color:var(--muted)}.score-panel__coach[data-v-88922974]{display:grid;gap:8px;margin-top:14px;padding:12px;border:1px dashed var(--primary);border-radius:12px;background:var(--primary-soft, rgba(99, 102, 241, .08))}.score-panel__coach p[data-v-88922974]{margin:0;color:var(--text);font-size:12px;line-height:1.5}.score-panel__actions[data-v-88922974]{display:flex;gap:8px;margin-top:16px}.score-panel__actions .btn[data-v-88922974]{flex:1;padding-inline:8px}.coach[data-v-e7af01fd]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;gap:14px;padding:22px 20px 32px;overflow-y:auto;background:var(--bg);background:color-mix(in srgb,var(--bg) 97%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.coach__head[data-v-e7af01fd]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.coach__eyebrow[data-v-e7af01fd]{margin:0;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.coach__title[data-v-e7af01fd]{margin:4px 0 0;font-size:22px;letter-spacing:-.02em}.coach__modes[data-v-e7af01fd]{display:flex;gap:8px;align-items:center}.coach__mode[data-v-e7af01fd]{padding:6px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}.coach__mode--on[data-v-e7af01fd]{border-color:transparent;background:var(--primary);color:#fff}.coach__known[data-v-e7af01fd]{margin-left:auto;color:var(--muted);font-size:10px}.coach__progress[data-v-e7af01fd]{display:flex;gap:10px;align-items:center}.coach__track[data-v-e7af01fd]{flex:1;height:6px;overflow:hidden;border-radius:999px;background:var(--surface-2)}.coach__track i[data-v-e7af01fd]{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6366f1,#0ea5e9);transition:width .3s ease}.coach__count[data-v-e7af01fd]{color:var(--muted);font-size:10px;white-space:nowrap}.coach__segment[data-v-e7af01fd]{margin:0;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:clamp(20px,5.5vw,26px);line-height:1.5;letter-spacing:-.01em}.coach__segment--small[data-v-e7af01fd]{font-size:17px;padding:14px}.coach__word[data-v-e7af01fd]{color:var(--muted)}.coach__word--target[data-v-e7af01fd]{padding:1px 3px;border-radius:6px;background:var(--primary-soft, rgba(99, 102, 241, .16));color:var(--text);font-weight:700;box-shadow:inset 0 -2px #6366f173}.coach__actions[data-v-e7af01fd]{display:flex;gap:10px}.coach__actions .btn[data-v-e7af01fd]{flex:1}.btn--on[data-v-e7af01fd]{border-color:var(--primary);color:var(--primary)}.coach__record[data-v-e7af01fd]{display:flex;gap:16px;align-items:center}.coach__hint[data-v-e7af01fd]{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.coach__words[data-v-e7af01fd]{display:flex;flex-wrap:wrap;gap:8px}.coach__chip[data-v-e7af01fd]{padding:6px 10px;border:1px solid var(--border);border-radius:10px;font-size:13px;font-weight:700}.coach__chip--good[data-v-e7af01fd]{border-color:#16a34a59;background:var(--good-soft);color:var(--good)}.coach__chip--warn[data-v-e7af01fd]{border-color:#d9770659;background:var(--warn-soft);color:var(--warn)}.coach__chip--bad[data-v-e7af01fd]{border-color:#dc262659;background:var(--bad-soft);color:var(--bad)}.coach__verdict[data-v-e7af01fd]{margin:0;font-size:14px;font-weight:700}.coach__verdict--good[data-v-e7af01fd]{color:var(--good)}.coach__verdict--bad[data-v-e7af01fd]{color:var(--bad)}.coach__score[data-v-e7af01fd]{display:flex;gap:16px;align-items:center}.coach__ring[data-v-e7af01fd]{display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:74px;height:74px;border:5px solid var(--border);border-radius:50%;font-size:22px;font-weight:800}.coach__ring--good[data-v-e7af01fd]{border-color:var(--good);color:var(--good)}.coach__ring--warn[data-v-e7af01fd]{border-color:var(--warn);color:var(--warn)}.coach__ring--bad[data-v-e7af01fd]{border-color:var(--bad);color:var(--bad)}.coach__error[data-v-e7af01fd]{margin:0;color:var(--bad);font-size:12px}.coach__force[data-v-e7af01fd]{display:grid;gap:8px;margin-top:auto;padding-top:14px;border-top:1px dashed var(--border)}.coach__tokens[data-v-e7af01fd]{display:flex;flex-wrap:wrap;gap:6px}.coach__token[data-v-e7af01fd]{padding:4px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:12px;cursor:pointer}.coach__token--known[data-v-e7af01fd]{color:var(--muted);background:var(--surface-2)}.coach__token--forced[data-v-e7af01fd]{border-color:var(--primary);color:var(--primary);font-weight:700}.spoken[data-v-f23d7626]{display:inline}.spoken__word[data-v-f23d7626]{display:inline;padding:0 1px;border:0;border-bottom:1px dotted color-mix(in srgb,var(--muted) 55%,transparent);background:none;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;cursor:pointer}.spoken__word[data-v-f23d7626]:active{border-bottom-color:var(--primary);color:var(--primary)}.sheet[data-v-27ad326d]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;justify-content:flex-end}.sheet__backdrop[data-v-27ad326d]{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0f172a73;cursor:pointer}.sheet__panel[data-v-27ad326d]{position:relative;display:grid;gap:12px;max-height:78vh;padding:20px 20px 28px;overflow-y:auto;border-radius:20px 20px 0 0;background:var(--surface);box-shadow:0 -18px 50px #0f172a47;animation:sheet-in-27ad326d .18s ease-out}@keyframes sheet-in-27ad326d{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.sheet__head[data-v-27ad326d]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sheet__title h2[data-v-27ad326d]{margin:0;font-size:26px;letter-spacing:-.02em}.sheet__phonetic[data-v-27ad326d]{margin:2px 0 0;color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:13px}.sheet__actions[data-v-27ad326d]{display:flex;gap:10px;align-items:center}.sheet__score[data-v-27ad326d]{margin-left:auto;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.sheet__score--good[data-v-27ad326d]{background:var(--good-soft);color:var(--good)}.sheet__score--warn[data-v-27ad326d]{background:var(--warn-soft);color:var(--warn)}.sheet__score--bad[data-v-27ad326d]{background:var(--bad-soft);color:var(--bad)}.sheet__translation[data-v-27ad326d]{margin:0;font-size:17px;font-weight:600}.sheet__meanings[data-v-27ad326d]{display:grid;gap:6px;margin:0;padding:0;list-style:none}.sheet__meanings li[data-v-27ad326d]{display:flex;gap:8px;color:var(--text);font-size:14px;line-height:1.5}.sheet__pos[data-v-27ad326d]{flex:0 0 auto;color:var(--muted);font-size:12px;font-weight:700}.sheet__hint[data-v-27ad326d]{margin:0;color:var(--muted);font-size:13px}.sheet__note[data-v-27ad326d]{margin:0;padding:8px 10px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:13px;line-height:1.5}.sheet__detail[data-v-27ad326d]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:10px;border-top:1px dashed var(--border)}.sheet__error[data-v-27ad326d]{padding:2px 7px;border-radius:999px;background:var(--bad-soft);color:var(--bad);font-size:10px;font-weight:700}.sheet__phonemes[data-v-27ad326d]{display:flex;flex-wrap:wrap;gap:4px}.phoneme[data-v-27ad326d]{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border-radius:6px;background:var(--surface-2);font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.phoneme small[data-v-27ad326d]{font-size:9px;opacity:.6}.phoneme--good[data-v-27ad326d]{color:var(--good)}.phoneme--warn[data-v-27ad326d]{color:var(--warn)}.phoneme--bad[data-v-27ad326d]{color:var(--bad)}.sheet__tip[data-v-27ad326d]{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.play-page[data-v-53a61e23]{display:grid;gap:16px}.stage-switch[data-v-53a61e23]{display:flex;gap:8px;padding:4px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.stage-switch__button[data-v-53a61e23]{flex:1;min-height:40px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:12px;font-weight:700}.stage-switch__button[data-v-53a61e23]:disabled{opacity:.55}.stage-switch__button--active[data-v-53a61e23]{background:var(--surface);color:var(--primary);box-shadow:0 2px 8px #0f172a1a}.play-header[data-v-53a61e23]{display:flex;gap:12px;align-items:flex-start}.play-header__copy[data-v-53a61e23]{min-width:0}.play-header h1[data-v-53a61e23]{margin:0;font-size:22px;letter-spacing:-.02em}.play-header p[data-v-53a61e23]{margin:3px 0 0;color:var(--muted);font-size:11px}.play-header p.play-header__role[data-v-53a61e23]{color:var(--primary);font-weight:700}.progress[data-v-53a61e23]{display:flex;gap:10px;align-items:center}.progress__track[data-v-53a61e23]{flex:1;height:6px;overflow:hidden;border-radius:999px;background:var(--surface-2)}.progress__track i[data-v-53a61e23]{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6366f1,#0ea5e9);transition:width .3s ease}.progress__label[data-v-53a61e23]{color:var(--muted);font-size:10px;white-space:nowrap}.transcript[data-v-53a61e23]{display:flex;flex-direction:column;gap:2px;padding-bottom:4px}.transcript__line[data-v-53a61e23]{cursor:pointer}.practice[data-v-53a61e23]{position:sticky;bottom:12px;z-index:10;display:grid;gap:12px;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 18px 50px #1f293729;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.practice__head[data-v-53a61e23]{display:flex;align-items:center;justify-content:space-between;gap:10px}.practice__label[data-v-53a61e23]{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.practice__text[data-v-53a61e23]{margin:0;font-size:clamp(20px,5.5vw,26px);line-height:1.35;letter-spacing:-.02em}.practice__focus[data-v-53a61e23]{display:flex;flex-wrap:wrap;gap:6px}.practice__record[data-v-53a61e23]{display:flex;align-items:center;gap:18px;padding-top:4px}.practice__side[data-v-53a61e23]{display:flex;flex-direction:column;gap:8px}.practice__playback[data-v-53a61e23]{display:flex;gap:10px}.practice__playback .btn[data-v-53a61e23]{flex:1}.btn-wide[data-v-53a61e23]{width:100%}.summary[data-v-53a61e23]{display:grid;gap:12px;padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.summary h2[data-v-53a61e23]{margin:0;font-size:24px}.summary__sub[data-v-53a61e23]{margin:0;color:var(--muted);font-size:13px}.summary__score[data-v-53a61e23]{display:flex;gap:18px;align-items:center;padding:14px;border-radius:14px;background:var(--surface-2)}.summary__ring[data-v-53a61e23]{display:flex;flex:0 0 auto;flex-direction:column;align-items:center;justify-content:center;width:88px;height:88px;border:6px solid var(--border);border-radius:50%}.summary__ring strong[data-v-53a61e23]{font-size:26px;line-height:1}.summary__ring span[data-v-53a61e23]{margin-top:3px;font-size:9px;color:var(--muted)}.summary__words[data-v-53a61e23]{min-width:0}.summary__words>p[data-v-53a61e23]{margin:0 0 8px;font-size:11px;font-weight:700;color:var(--muted)}.summary__word-list[data-v-53a61e23]{display:flex;flex-wrap:wrap;gap:6px}.summary__actions[data-v-53a61e23]{display:flex;gap:10px}.summary__actions .btn[data-v-53a61e23]{flex:1}.page[data-v-bf9386c8]{display:grid;gap:16px}.scene-header[data-v-bf9386c8]{display:flex;align-items:flex-start;gap:12px;padding-top:8px}.scene-header__copy[data-v-bf9386c8]{flex:1}.eyebrow[data-v-bf9386c8]{margin:0 0 4px;color:var(--muted);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.scene-header h1[data-v-bf9386c8]{margin:0;font-size:clamp(22px,6vw,30px);letter-spacing:-.02em}.scene-header__description[data-v-bf9386c8]{margin:6px 0 0;color:var(--muted);font-size:13px}.level-list[data-v-bf9386c8]{display:grid;gap:12px}.level-card[data-v-bf9386c8]{padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;transition:transform .15s ease,border-color .2s ease}.level-card[data-v-bf9386c8]:active{transform:scale(.985);border-color:var(--primary)}.level-card__top[data-v-bf9386c8],.level-card__bottom[data-v-bf9386c8]{display:flex;align-items:center;justify-content:space-between;gap:10px}.level-card h2[data-v-bf9386c8]{margin:12px 0 2px;font-size:19px;letter-spacing:-.01em}.level-card__role[data-v-bf9386c8]{margin:4px 0 0;color:var(--primary);font-size:11px;font-weight:700}.level-card__scene[data-v-bf9386c8]{margin:6px 0 10px;color:var(--muted);font-size:13px}.level-card__hint[data-v-bf9386c8]{margin:0 0 10px;padding:6px 10px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:11px}.level-card__meta[data-v-bf9386c8]{color:var(--muted);font-size:11px}.pill--done[data-v-bf9386c8]{background:var(--primary-soft);color:var(--primary)}.story-card__progress[data-v-bf9386c8]{padding:2px 8px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:10px;font-weight:700}.story-card__go[data-v-bf9386c8]{color:var(--primary);font-size:12px;font-weight:700}.mistakes-page[data-v-4f89f8ed]{display:grid;gap:16px}.mistakes-head[data-v-4f89f8ed]{display:flex;align-items:center;gap:12px}.mistakes-head>div[data-v-4f89f8ed]{flex:1}.mistakes-head h1[data-v-4f89f8ed]{margin:2px 0 0;font-size:24px}.mistakes-eyebrow[data-v-4f89f8ed]{margin:0;color:var(--muted);font-size:10px;letter-spacing:.12em}.mistakes-tabs[data-v-4f89f8ed]{display:flex;gap:6px;overflow-x:auto}.mistakes-tab[data-v-4f89f8ed]{padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);white-space:nowrap}.mistakes-tab--active[data-v-4f89f8ed]{border-color:var(--primary);color:var(--primary)}.mistakes-list[data-v-4f89f8ed]{display:grid;gap:10px}.mistake-card[data-v-4f89f8ed]{display:grid;gap:8px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.mistake-card__top[data-v-4f89f8ed]{display:flex;justify-content:space-between;gap:8px}.mistake-kind[data-v-4f89f8ed]{color:var(--primary);font-size:11px;font-weight:700}.mistake-due[data-v-4f89f8ed],.mistake-meta[data-v-4f89f8ed]{color:var(--muted);font-size:11px}.mistake-card h2[data-v-4f89f8ed],.mistake-meta[data-v-4f89f8ed]{margin:0}.mistake-card h2[data-v-4f89f8ed]{font-size:17px}.mistake-actions[data-v-4f89f8ed]{display:flex;gap:8px}.mistake-actions .btn[data-v-4f89f8ed]{flex:1}.mistakes-empty[data-v-4f89f8ed],.mistakes-error[data-v-4f89f8ed]{padding:24px 10px;color:var(--muted);text-align:center}.mistakes-error[data-v-4f89f8ed]{color:var(--bad)}.auth-page[data-v-a5f0b28b]{display:grid;gap:16px;max-width:560px;margin:0 auto}.auth-head[data-v-a5f0b28b]{display:flex;gap:12px;align-items:center}.auth-eyebrow[data-v-a5f0b28b]{margin:0;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.12em}.auth-head h1[data-v-a5f0b28b]{margin:2px 0 0;font-size:28px}.auth-card[data-v-a5f0b28b]{display:grid;gap:14px;padding:20px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.auth-card--guest[data-v-a5f0b28b]{background:var(--surface-2)}.auth-profile[data-v-a5f0b28b]{display:flex;gap:12px;align-items:center}.auth-profile h2[data-v-a5f0b28b]{margin:0;font-size:20px}.auth-profile p[data-v-a5f0b28b]{margin:2px 0 0;color:var(--muted);font-size:13px}.auth-avatar[data-v-a5f0b28b]{display:grid;width:46px;height:46px;place-items:center;border-radius:50%;background:var(--accent-soft, var(--surface-2));color:var(--accent, var(--text));font-size:20px;font-weight:800}.auth-tabs[data-v-a5f0b28b]{display:flex;gap:8px}.auth-tab[data-v-a5f0b28b]{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-weight:700;cursor:pointer}.auth-tab--active[data-v-a5f0b28b]{border-color:var(--accent, var(--text));background:var(--accent-soft, var(--surface-2));color:var(--text)}.auth-form[data-v-a5f0b28b]{display:grid;gap:10px}.auth-form label[data-v-a5f0b28b]{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.auth-form input[data-v-a5f0b28b]{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit}.auth-hint[data-v-a5f0b28b]{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.auth-error[data-v-a5f0b28b]{margin:0;color:var(--bad);font-size:13px}.auth-ok[data-v-a5f0b28b]{margin:0;color:var(--good);font-size:13px}.auth-sync-code[data-v-a5f0b28b]{margin:0;padding:12px;border-radius:10px;background:var(--surface);font-family:SFMono-Regular,Consolas,monospace;font-size:18px;font-weight:700;letter-spacing:.08em;text-align:center}.auth-actions[data-v-a5f0b28b]{display:flex;gap:8px}.auth-divider[data-v-a5f0b28b]{height:1px;background:var(--border)}:root{--bg: #f3f5fb;--surface: #ffffff;--surface-2: #eef1f8;--text: #172033;--muted: #667085;--border: #e2e7f0;--primary: #4f46e5;--primary-soft: #eef0ff;--good: #15803d;--good-soft: #e9f9ef;--warn: #b45309;--warn-soft: #fff6e8;--bad: #b91c1c;--bad-soft: #fdecec;--shadow: 0 12px 36px rgba(23, 32, 51, .08);--radius: 18px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0b1020;--surface: #121a2e;--surface-2: #1a2440;--text: #e8edf7;--muted: #98a4bb;--border: #24304c;--primary: #818cf8;--primary-soft: #1c2550;--good: #4ade80;--good-soft: #10281c;--warn: #fbbf24;--warn-soft: #2a2110;--bad: #f87171;--bad-soft: #2c1414;--shadow: 0 16px 40px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100vh;margin:0;background:radial-gradient(1000px 500px at 10% -10%,rgba(99,102,241,.13),transparent 60%),radial-gradient(800px 400px at 100% 0%,rgba(14,165,233,.1),transparent 55%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea{font:inherit;color:inherit}button{-webkit-tap-highlight-color:transparent}a{color:inherit}.app-shell{width:100%;max-width:760px;margin:0 auto;padding:18px 16px calc(72px + env(safe-area-inset-bottom))}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.brand{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.brand__mark{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:linear-gradient(145deg,#6366f1,#4338ca);box-shadow:0 8px 20px #4f46e54d;color:#fff;font-size:18px;font-weight:800}.brand strong{display:block;font-size:15px;letter-spacing:-.01em}.brand small{display:block;margin-top:1px;color:var(--muted);font-size:10px}.app-header__actions{display:flex;align-items:center;gap:8px}.app-header__tag{padding:4px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:600;white-space:nowrap}.app-header__account{max-width:120px;overflow:hidden;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:11px;font-weight:700;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.app-header__account:hover{border-color:var(--accent, var(--text))}.app-header__install{padding:4px 10px;border:1px solid var(--accent, var(--text));border-radius:999px;background:var(--accent, #4f46e5);color:#fff;font:inherit;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}.app-header__install:hover{opacity:.9}.offline-banner{margin:-8px 0 18px;padding:9px 12px;border:1px solid var(--warn);border-radius:12px;background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--text);font-size:12px;line-height:1.5;text-align:center}.page{display:grid;gap:18px}.pill{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:10px;font-weight:600;line-height:1.4;white-space:nowrap}.pill--accent{border-color:transparent;background:var(--primary-soft);color:var(--primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border:1px solid transparent;border-radius:12px;background:var(--surface-2);color:var(--text);font-size:13px;font-weight:600;line-height:1.2;cursor:pointer;transition:transform .12s ease,opacity .2s ease,border-color .2s ease}.btn:active{transform:scale(.98)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:linear-gradient(145deg,#6366f1,#4338ca);box-shadow:0 10px 24px #4f46e547;color:#fff}.btn-ghost{border-color:var(--border);background:transparent}.btn-small{padding:6px 10px;border-radius:9px;background:var(--surface-2);font-size:11px}.btn-wide{width:100%}.icon-btn{display:grid;flex:0 0 auto;place-items:center;width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);font-size:16px;cursor:pointer}.icon-btn:active{transform:scale(.95)}.state{display:grid;gap:12px;place-items:center;padding:26px 18px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);color:var(--muted);font-size:13px;text-align:center}.state--error{border-color:var(--bad);color:var(--bad)}.error{margin:0;color:var(--bad);font-size:12px;line-height:1.5}.hint{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.score-good{background:var(--good-soft);color:var(--good)}.score-warn{background:var(--warn-soft);color:var(--warn)}.score-bad{background:var(--bad-soft);color:var(--bad)}.score-ring--good{border-color:var(--good);color:var(--good)}.score-ring--warn{border-color:var(--warn);color:var(--warn)}.score-ring--bad{border-color:var(--bad);color:var(--bad)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(max-width:420px){.app-shell{padding-left:14px;padding-right:14px}}
