:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-display:"Inter", -apple-system, "SF Pro Display", "Segoe UI", sans-serif;--accent:#0ea5a0;--accent-deep:#0a7e7a;--accent-soft:#e6f7f6;--accent-glow:#0ea5a038;--teal:#0ea5a0;--teal-deep:#0a7e7a;--teal-soft:#e6f7f6;--blue:#3b82f6;--blue-soft:#eff6ff;--danger:#ef4444;--danger-soft:#fef2f2;--text:#1a1a2e;--text-2:#4a4a68;--muted:#8e8ea0;--muted-2:#b0b0c0;--bg:#eef6f5;--card:#fff;--border:#1a1a2e0f;--border-2:#1a1a2e1a;--r-sm:12px;--r-md:16px;--r-lg:20px;--r-xl:24px;--r-2xl:28px;--r-full:999px;--sh-sm:0 1px 3px #1a1a2e0a, 0 1px 2px #1a1a2e05;--sh-md:0 4px 16px #1a1a2e0f, 0 1px 3px #1a1a2e08;--sh-lg:0 12px 32px #1a1a2e14, 0 2px 8px #1a1a2e0a;--sh-accent:0 8px 20px var(--accent-glow);--ease:cubic-bezier(.16, 1, .3, 1);--fast:.13s;--base:.2s;--slow:.32s;font-family:var(--font-sans);color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#app{width:100%;height:100%;min-height:100%}html{overscroll-behavior:none;overflow:hidden}body{overscroll-behavior:none;touch-action:manipulation;background:radial-gradient(ellipse 70% 50% at 15% -5%, #0ea5a014, transparent 60%), radial-gradient(ellipse 60% 40% at 90% 10%, #3b82f60d, transparent 55%), var(--bg);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;position:fixed;inset:0;overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}input,textarea{-webkit-user-select:text;user-select:text}button{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}h1,h2,h3,h4,p,ul{margin:0}ul{padding:0;list-style:none}#app{width:100%;max-width:540px;height:100%;padding:max(10px, env(safe-area-inset-top)) 0 max(6px, env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.panel-main{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.primary-button,.ghost-button{border-radius:var(--r-sm);transition:transform var(--fast) var(--ease), background var(--fast) var(--ease), box-shadow var(--fast) var(--ease);border:none;font-weight:700}.primary-button{background:var(--accent);color:#fff;box-shadow:var(--sh-accent);flex:1;padding:13px 18px;font-size:.94rem}.primary-button:active{transform:scale(.97)}.ghost-button{background:var(--bg);color:var(--text);padding:11px 15px;font-size:.88rem}.ghost-button:active{background:#1a1a2e0f;transform:scale(.97)}.compact-button{padding:8px 12px;font-size:.82rem}.ghost-button.danger{background:var(--danger-soft);color:var(--danger)}.badge{border-radius:var(--r-full);background:var(--accent-soft);color:var(--accent-deep);align-items:center;padding:4px 11px;font-size:.74rem;font-weight:700;display:inline-flex}.master-chip{border-radius:var(--r-full);background:var(--teal-soft);color:var(--teal-deep);border:none;align-items:center;gap:3px;padding:5px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.empty-state{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.empty-icon{border-radius:var(--r-full);background:var(--teal-soft);justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;font-size:1.6rem;display:flex}.empty-state h3{color:var(--text-2);font-size:.96rem}.empty-state p{color:var(--muted);font-size:.84rem}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:var(--r-full)}@media (width>=768px){#app{max-width:720px}}@media (width>=1024px){#app{max-width:960px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.media-icon-btn[data-v-7b92498d]{border-radius:var(--r-full);cursor:pointer;width:40px;height:40px;transition:transform var(--fast) var(--ease), opacity var(--fast) var(--ease);border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.media-icon-btn[data-v-7b92498d]:active{transform:scale(.94)}.media-icon[data-v-7b92498d]{width:18px;height:18px}.media-icon-btn.primary[data-v-7b92498d]{background:var(--accent);color:#fff;box-shadow:var(--sh-accent)}.media-icon-btn.primary.playing[data-v-7b92498d]{background:var(--danger);box-shadow:none}.media-icon-btn.ghost[data-v-7b92498d]{background:var(--card);color:var(--accent-deep);border:1px solid var(--border-2)}.media-icon-btn.danger[data-v-7b92498d]{background:var(--danger-soft);color:var(--danger);border:1px solid #ef444440}.book-header[data-v-e8035340]{border-radius:var(--r-xl);background:var(--card);box-shadow:var(--sh-sm);flex:none;margin-bottom:10px;padding:12px 14px}.current-book[data-v-e8035340]{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.book-header-main[data-v-e8035340]{min-width:0}.switch-book-btn[data-v-e8035340]{flex:none}.book-grade[data-v-e8035340]{color:var(--accent);letter-spacing:.04em;font-size:.72rem;font-weight:700}.book-header h2[data-v-e8035340]{margin-top:4px;font-size:1.15rem;font-weight:800}.book-sub[data-v-e8035340]{color:var(--muted);margin-top:4px;font-size:.82rem}.section-label[data-v-e8035340]{color:var(--text-2);margin-bottom:8px;font-size:.82rem;font-weight:700}.breadcrumb[data-v-e8035340]{color:var(--text-2);align-items:center;gap:10px;margin-bottom:10px;font-weight:700;display:flex}.status-line[data-v-e8035340]{border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-deep);margin-bottom:10px;padding:10px 12px;font-size:.86rem;font-weight:600}.nav-list[data-v-e8035340]{flex-direction:column;flex:auto;gap:8px;min-height:0;padding-bottom:8px;display:flex;overflow:auto}.nav-row[data-v-e8035340]{border-radius:var(--r-md);background:var(--card);width:100%;box-shadow:var(--sh-sm);text-align:left;border:none;justify-content:space-between;align-items:center;gap:10px;padding:14px;display:flex}.book-row.active[data-v-e8035340]{border:1px solid var(--accent);background:var(--accent-soft)}.book-row[data-v-e8035340]:disabled{opacity:.7}.nav-row strong[data-v-e8035340]{font-size:.95rem;display:block}.nav-row p[data-v-e8035340]{color:var(--muted);margin-top:4px;font-size:.78rem}.chevron[data-v-e8035340]{color:var(--muted);font-size:1.2rem;line-height:1}.badge.current[data-v-e8035340]{background:var(--accent);color:#fff}.article-item[data-v-e8035340]{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.article-item.playing .nav-row[data-v-e8035340]{border:1px solid var(--accent);background:var(--accent-soft)}.article-item .nav-row[data-v-e8035340]{padding:12px}.unit-play-card[data-v-e8035340]{border-radius:var(--r-xl);background:var(--card);box-shadow:var(--sh-sm);transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease);border:1px solid #0000;flex:none;margin-bottom:10px;padding:12px 14px}.unit-play-card.active[data-v-e8035340]{background:linear-gradient(180deg, #f3fbfa 0%, var(--card) 100%);border-color:#0ea5a047}.unit-play-head[data-v-e8035340]{align-items:center;gap:12px;display:flex}.unit-play-head-text[data-v-e8035340]{flex:auto;min-width:0}.unit-play-head-text strong[data-v-e8035340]{color:var(--text);font-size:.92rem;font-weight:800;display:block}.unit-play-head-text p[data-v-e8035340]{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:.76rem;overflow:hidden}.unit-play-toggles[data-v-e8035340]{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:6px;display:flex}.unit-play-options[data-v-e8035340]{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;display:flex}.option-row[data-v-e8035340]{grid-template-columns:36px 1fr;align-items:center;gap:8px;display:grid}.option-label[data-v-e8035340]{color:var(--muted);font-size:.74rem;font-weight:700}.chip-group[data-v-e8035340]{border-radius:var(--r-full);background:var(--bg);flex-wrap:wrap;gap:4px;width:fit-content;max-width:100%;padding:3px;display:flex}.play-chip[data-v-e8035340]{border-radius:var(--r-full);min-height:28px;color:var(--text-2);background:0 0;border:1px solid #0000;padding:4px 10px;font-size:.74rem;font-weight:700;line-height:1}.play-chip.on[data-v-e8035340]{background:var(--accent);color:#fff;box-shadow:0 4px 12px var(--accent-glow)}.loop-chip[data-v-e8035340]{background:var(--bg);border-color:var(--border);flex:none}.loop-chip.on[data-v-e8035340]{border-color:var(--accent)}.unit-play-status[data-v-e8035340]{border-radius:var(--r-md);background:var(--accent-soft);min-height:36px;color:var(--accent-deep);align-items:center;gap:8px;margin:10px 0 0;padding:8px 10px;font-size:.8rem;font-weight:700;display:flex}.follow-gap[data-v-e8035340]{flex:auto;align-items:center;gap:8px;width:100%;min-width:0;display:flex}.follow-gap-label[data-v-e8035340],.follow-gap-time[data-v-e8035340]{flex:none;font-size:.74rem;font-weight:700;line-height:1}.follow-gap-time[data-v-e8035340]{text-align:right;font-variant-numeric:tabular-nums;min-width:2.2em}.follow-gap-track[data-v-e8035340]{border-radius:var(--r-full);background:#0ea5a029;flex:auto;min-width:0;height:6px;overflow:hidden}.follow-gap-fill[data-v-e8035340]{border-radius:inherit;background:linear-gradient(90deg, var(--accent) 0%, #2dd4bf 100%);height:100%;transition:width 50ms linear}.status-text[data-v-e8035340]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.playing-icon[data-v-e8035340]{width:16px;height:16px;color:var(--danger);flex:none;display:inline-flex}.playing-icon svg[data-v-e8035340]{stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;fill:none;width:100%;height:100%}.playing-icon svg[data-v-e8035340] :is(rect){stroke:none;fill:currentColor}.badge-playing[data-v-e8035340]{color:#fff;width:16px;height:16px;display:inline-flex}.badge-playing svg[data-v-e8035340]{stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;fill:none;width:100%;height:100%}.badge-playing svg[data-v-e8035340] :is(rect){stroke:none;fill:currentColor}.unit-play-error[data-v-e8035340]{color:var(--danger);margin:8px 0 0;font-size:.8rem;font-weight:600}.empty-state .primary-button[data-v-e8035340]{align-self:center;width:auto;margin-top:8px}.auth-card[data-v-077688a2],.manage-block[data-v-077688a2]{border-radius:var(--r-xl);background:var(--card);box-shadow:var(--sh-md);flex-direction:column;gap:10px;padding:16px;display:flex}.manage-content[data-v-077688a2]{flex-direction:column;flex:auto;gap:12px;min-height:0;padding-bottom:8px;display:flex;overflow:auto}.auth-card h2[data-v-077688a2],.manage-block h2[data-v-077688a2]{font-size:1rem;font-weight:800}.auth-card p[data-v-077688a2],.hint[data-v-077688a2]{color:var(--text-2);font-size:.88rem}.warn-text[data-v-077688a2]{color:var(--danger);margin:0;font-size:.88rem;font-weight:600;line-height:1.45}.link-button[data-v-077688a2]{color:var(--accent);text-align:left;background:0 0;border:none;padding:4px 0;font-size:.86rem;font-weight:700}.primary-button.danger[data-v-077688a2]{background:var(--danger);border-color:var(--danger);color:#fff}input[data-v-077688a2],select[data-v-077688a2]{border:1px solid var(--border-2);border-radius:var(--r-md);background:var(--bg);width:100%;padding:12px 14px}.curriculum-grid[data-v-077688a2]{gap:8px;display:grid}.curriculum-card[data-v-077688a2]{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);text-align:left;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.curriculum-card.active[data-v-077688a2]{border-color:var(--accent);background:var(--accent-soft)}.curriculum-card span[data-v-077688a2]{color:var(--muted);font-size:.8rem}.setting-row[data-v-077688a2]{justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.setting-row small[data-v-077688a2]{color:var(--muted);margin-top:2px;font-size:.76rem;font-weight:500;display:block}.setting-row input[type=number][data-v-077688a2]{text-align:center;width:72px}.field-label[data-v-077688a2]{color:var(--text-2);flex-direction:column;gap:6px;font-size:.84rem;font-weight:700;display:flex}.key-row[data-v-077688a2]{align-items:center;gap:8px;display:flex}.key-row input[data-v-077688a2]{flex:auto}.provider-row[data-v-077688a2]{flex-wrap:wrap;gap:8px;display:flex}.provider-button.active[data-v-077688a2]{border-color:var(--accent);background:var(--accent);color:#fff}.toggle-row[data-v-077688a2]{text-align:left;background:0 0;border:none}.toggle-switch[data-v-077688a2]{border-radius:var(--r-full);background:#1a1a2e1f;flex:none;width:44px;height:26px;position:relative}.toggle-switch[data-v-077688a2]:after{content:"";width:20px;height:20px;transition:transform var(--fast) var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle-switch.on[data-v-077688a2]{background:var(--accent)}.toggle-switch.on[data-v-077688a2]:after{transform:translate(18px)}.error-text[data-v-077688a2]{color:var(--danger);font-size:.84rem}.success-text[data-v-077688a2]{color:var(--teal-deep);font-size:.84rem}.action-row[data-v-077688a2]{gap:8px;display:flex}.version-button[data-v-077688a2]{text-align:left;background:0 0;border:none;flex-direction:column;gap:4px;padding:0;display:flex}.version-button small[data-v-077688a2]{color:var(--muted);font-size:.78rem}.version-button[data-v-077688a2]:disabled{opacity:1}.tab-bar[data-v-eba2316d]{padding:7px;padding-bottom:calc(7px + env(safe-area-inset-bottom));border-radius:var(--r-xl);background:var(--card);box-shadow:var(--sh-md);flex:none;grid-template-columns:repeat(5,1fr);gap:2px;display:grid}.tab-bar-button[data-v-eba2316d]{border-radius:var(--r-md);min-height:52px;color:var(--muted);transition:all var(--fast) var(--ease);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;display:flex}.tab-bar-button.active[data-v-eba2316d]{background:var(--accent-soft);color:var(--accent-deep)}.tab-icon[data-v-eba2316d]{width:22px;height:22px;display:inline-flex}.tab-icon svg[data-v-eba2316d]{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.tab-label[data-v-eba2316d]{font-size:.72rem;font-weight:700}.speak-box[data-v-225e3a17]{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.speak-button[data-v-225e3a17]{border:1px solid var(--border-2);border-radius:var(--r-full);background:var(--card);width:40px;height:40px;color:var(--accent-deep);cursor:pointer;transition:transform var(--fast) var(--ease), background var(--fast) var(--ease), color var(--fast) var(--ease), border-color var(--fast) var(--ease);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.speak-button[data-v-225e3a17]:active{transform:scale(.94)}.speak-button.active[data-v-225e3a17]{border-color:var(--danger);background:var(--danger);color:#fff}.speak-button.loading[data-v-225e3a17]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.speak-button[data-v-225e3a17]:disabled{opacity:.45;cursor:default}.speak-icon[data-v-225e3a17]{width:18px;height:18px}.speak-icon.spin[data-v-225e3a17]{animation:.8s linear infinite speak-spin-225e3a17}@keyframes speak-spin-225e3a17{to{transform:rotate(360deg)}}.speak-error[data-v-225e3a17]{max-width:140px;color:var(--danger);text-align:right;font-size:.72rem;line-height:1.3}.ai-practice-card[data-v-7e83da87]{border-radius:var(--r-xl);background:var(--card);box-shadow:var(--sh-md);flex-direction:column;gap:14px;padding:5px;display:flex}.card-head[data-v-7e83da87]{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.meta[data-v-7e83da87]{color:var(--accent);font-size:.72rem;font-weight:700}h2[data-v-7e83da87]{margin:4px 0 0;font-size:1.15rem}.title-zh[data-v-7e83da87]{color:var(--muted);margin:4px 0 0;font-size:.86rem}.master-chip[data-v-7e83da87]{border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg);color:var(--muted);flex:none;padding:6px 10px;font-size:.74rem;font-weight:700}.master-chip.on[data-v-7e83da87]{background:var(--accent);border-color:var(--accent);color:#fff}.start-panel[data-v-7e83da87],.status-panel[data-v-7e83da87]{border-radius:var(--r-md);background:var(--bg);flex-direction:column;gap:10px;padding:16px 12px;display:flex}.status-panel.success[data-v-7e83da87]{background:var(--accent-soft);color:var(--accent-deep)}.status-panel.error[data-v-7e83da87]{color:var(--danger)}.progress-row[data-v-7e83da87]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.badge[data-v-7e83da87]{border-radius:var(--r-full);background:var(--accent-soft);color:var(--accent-deep);padding:4px 8px;font-size:.74rem;font-weight:700}.type-chip[data-v-7e83da87]{border-radius:var(--r-full);background:var(--bg);color:var(--text-2);padding:4px 8px;font-size:.72rem;font-weight:700}.cache-chip[data-v-7e83da87]{border-radius:var(--r-full);color:#15803d;background:#22c55e1f;padding:4px 8px;font-size:.72rem;font-weight:700}.regen-link[data-v-7e83da87]{border-radius:var(--r-full);color:var(--accent);background:0 0;border:none;margin-left:auto;padding:4px 8px;font-size:.74rem;font-weight:700}.regen-link[data-v-7e83da87]:disabled{opacity:.45}.muted[data-v-7e83da87]{color:var(--muted);font-size:.74rem}.prompt-row[data-v-7e83da87]{cursor:pointer;border-radius:var(--r-md);background:var(--bg);justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.prompt-row[data-v-7e83da87]:active{background:var(--accent-soft)}.prompt-main[data-v-7e83da87]{flex:auto;min-width:0}.question-prompt[data-v-7e83da87]{margin:0;font-size:1rem;font-weight:700;line-height:1.45}.question-zh[data-v-7e83da87]{color:var(--muted);margin:6px 0 0;font-size:.84rem}.option-list[data-v-7e83da87]{flex-direction:column;gap:8px;margin-top:12px;display:flex}.option-button[data-v-7e83da87]{text-align:left;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);color:var(--text);padding:12px 14px;font-size:.92rem;font-weight:600}.option-button.selected[data-v-7e83da87]{border-color:var(--accent);background:var(--accent-soft)}.option-button.correct[data-v-7e83da87]{color:#15803d;background:#22c55e1f;border-color:#16a34a}.option-button.wrong[data-v-7e83da87]{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.result-banner[data-v-7e83da87]{border-radius:var(--r-md);background:var(--bg);padding:10px 12px;font-size:.86rem;font-weight:700;line-height:1.4}.result-banner.ok[data-v-7e83da87]{color:#15803d;background:#22c55e1f}.result-banner.bad[data-v-7e83da87]{background:var(--danger-soft);color:var(--danger)}.primary-button[data-v-7e83da87],.ghost-button[data-v-7e83da87]{width:100%}.ghost-button[data-v-7e83da87]{border:1px solid var(--border);border-radius:var(--r-md);background:var(--card);color:var(--text-2);padding:10px 12px;font-weight:700}.queue-switch[data-v-a857b8a5]{flex:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.queue-chip[data-v-a857b8a5]{border-radius:var(--r-full);background:var(--card);color:var(--muted);box-shadow:var(--sh-sm);border:none;flex:none;padding:8px 12px;font-size:.82rem;font-weight:700}.queue-chip.active[data-v-a857b8a5]{background:var(--accent);color:#fff}.passage-stack[data-v-a857b8a5]{flex:auto;min-height:0;padding-bottom:8px;overflow:auto}.sentence-ai[data-v-4967b23a]{flex-direction:column;gap:8px;display:flex}.ai-actions[data-v-4967b23a]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ai-chip[data-v-4967b23a]{border:1px solid var(--border-2);border-radius:var(--r-full);background:var(--card);color:var(--text-2);padding:7px 12px;font-size:.78rem;font-weight:700}.ai-chip.active[data-v-4967b23a]{border-color:var(--accent);background:var(--accent);color:#fff}.ai-chip[data-v-4967b23a]:disabled{opacity:.5}.ai-hint[data-v-4967b23a]{color:var(--muted);font-size:.78rem}.ai-result[data-v-4967b23a]{border-radius:var(--r-md);background:var(--bg);padding:12px}.ai-markdown[data-v-4967b23a]{color:var(--text);word-break:break-word;-webkit-user-select:text;user-select:text;font-size:.88rem;line-height:1.65}.ai-markdown[data-v-4967b23a] p{margin:0 0 .65em}.ai-markdown[data-v-4967b23a] p:last-child{margin-bottom:0}.ai-markdown[data-v-4967b23a] h1,.ai-markdown[data-v-4967b23a] h2,.ai-markdown[data-v-4967b23a] h3,.ai-markdown[data-v-4967b23a] h4{color:var(--text);margin:.85em 0 .4em;font-weight:800;line-height:1.35}.ai-markdown[data-v-4967b23a] h1{font-size:1.1rem}.ai-markdown[data-v-4967b23a] h2{font-size:1.02rem}.ai-markdown[data-v-4967b23a] h3,.ai-markdown[data-v-4967b23a] h4{font-size:.95rem}.ai-markdown[data-v-4967b23a] ul,.ai-markdown[data-v-4967b23a] ol{margin:0 0 .7em;padding-left:1.25em}.ai-markdown[data-v-4967b23a] li{margin:.25em 0}.ai-markdown[data-v-4967b23a] li>p{margin:.2em 0}.ai-markdown[data-v-4967b23a] strong{font-weight:800}.ai-markdown[data-v-4967b23a] blockquote{border-left:3px solid var(--accent);color:var(--text-2);background:#0ea5a00f;margin:.6em 0;padding:.35em .8em}.ai-markdown[data-v-4967b23a] code{background:#1a1a2e0f;border-radius:6px;padding:.1em .35em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.86em}.ai-markdown[data-v-4967b23a] pre{border-radius:var(--r-sm);background:#1a1a2e0f;margin:.6em 0;padding:10px 12px;overflow-x:auto}.ai-markdown[data-v-4967b23a] pre code{background:0 0;padding:0}.ai-markdown[data-v-4967b23a] .speakable-en{background:linear-gradient(transparent 62%, var(--accent-soft) 62%);color:var(--accent-deep);font:inherit;font-weight:700;line-height:inherit;text-align:left;cursor:pointer;-webkit-user-select:text;user-select:text;border:none;border-radius:4px;margin:0;padding:0 2px;display:inline}.ai-markdown[data-v-4967b23a] .speakable-en.speaking{background:var(--danger-soft);color:var(--danger)}.ai-error[data-v-4967b23a]{color:var(--danger);font-size:.86rem}.passage-card[data-v-ae032011]{border-radius:var(--r-xl);background:var(--card);box-shadow:var(--sh-md);flex-direction:column;gap:14px;padding:5px;display:flex}.card-head[data-v-ae032011]{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.meta[data-v-ae032011]{color:var(--accent);letter-spacing:.04em;font-size:.72rem;font-weight:700}.card-head h2[data-v-ae032011]{margin-top:4px;font-size:1.2rem;font-weight:800}.title-zh[data-v-ae032011]{color:var(--text-2);margin-top:4px;font-size:.86rem;font-weight:600}.master-chip.on[data-v-ae032011]{background:var(--teal);color:#fff}.sentence-panel[data-v-ae032011]{border-radius:var(--r-lg);background:var(--accent-soft);flex-direction:column;gap:10px;padding:14px;display:flex}.sentence-top[data-v-ae032011]{cursor:pointer;border-radius:var(--r-md);background:#ffffff8c;justify-content:space-between;align-items:flex-start;gap:10px;margin:-4px -6px 0;padding:10px 12px;display:flex}.sentence-top[data-v-ae032011]:active{background:#ffffffe6}.sentence-main[data-v-ae032011]{flex:auto;min-width:0}.sentence-en[data-v-ae032011]{-webkit-user-select:text;user-select:text;margin:0;font-size:1.05rem;font-weight:700;line-height:1.55}.sentence-zh[data-v-ae032011]{color:var(--text-2);margin:6px 0 0;font-size:.9rem;line-height:1.5}.question-zh[data-v-ae032011],.full-zh[data-v-ae032011]{color:var(--text-2);font-size:.9rem;line-height:1.5}.sentence-nav[data-v-ae032011]{justify-content:space-between;align-items:center;gap:8px;display:flex}.full-text[data-v-ae032011]{border-radius:var(--r-md);background:var(--bg);padding:10px 12px}.full-text summary[data-v-ae032011]{cursor:pointer;color:var(--text-2);justify-content:space-between;align-items:center;gap:10px;display:flex}.summary-label[data-v-ae032011]{font-weight:700}.full-text summary .ghost-button[data-v-ae032011]{pointer-events:auto}.full-text summary:hover .summary-label[data-v-ae032011]{color:var(--accent-deep)}.full-en[data-v-ae032011]{-webkit-user-select:text;user-select:text;margin-top:10px;line-height:1.65}.sentence-span[data-v-ae032011]{cursor:pointer}.sentence-span.done[data-v-ae032011]{color:var(--text-2)}.sentence-span.active[data-v-ae032011]{color:var(--danger);background:var(--danger-soft);border-radius:4px}.word-span.spoken[data-v-ae032011]{background:linear-gradient(transparent 60%, var(--danger-soft) 60%);border-radius:2px}.full-zh[data-v-ae032011]{margin-top:8px}.ghost-button.reading-active[data-v-ae032011]{border-color:var(--danger);color:var(--danger)}.full-ai[data-v-ae032011]{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.full-ai-label[data-v-ae032011]{color:var(--accent-deep);letter-spacing:.04em;margin-bottom:8px;font-size:.78rem;font-weight:800}.question-list[data-v-ae032011]{flex-direction:column;gap:14px;display:flex}.question-item[data-v-ae032011]{flex-direction:column;gap:8px;display:flex}.question-prompt[data-v-ae032011]{font-weight:700}.option-list[data-v-ae032011]{flex-direction:column;gap:8px;display:flex}.option-button[data-v-ae032011]{text-align:left;border:1px solid var(--border-2);border-radius:var(--r-md);background:var(--bg);padding:12px 14px;font-weight:600}.option-button.selected[data-v-ae032011]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.option-button.correct[data-v-ae032011]{border-color:var(--teal);background:var(--teal-soft);color:var(--teal-deep)}.option-button.wrong[data-v-ae032011]{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.result-banner[data-v-ae032011]{border-radius:var(--r-md);background:var(--teal-soft);color:var(--teal-deep);text-align:center;padding:10px 12px;font-weight:700}.primary-button[data-v-ae032011]:disabled{opacity:.45;box-shadow:none}.passage-stack[data-v-e40046b8]{flex-direction:column;flex:auto;gap:12px;min-height:0;padding-bottom:8px;display:flex;overflow:auto}.summary-grid[data-v-1efb244d]{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.summary-card[data-v-1efb244d]{border-radius:var(--r-md);background:var(--card);box-shadow:var(--sh-sm);flex-direction:column;gap:4px;padding:12px;display:flex}.summary-card span[data-v-1efb244d]{color:var(--muted);font-size:.72rem;font-weight:600}.summary-card strong[data-v-1efb244d]{font-size:1.1rem;font-weight:800}.record-list[data-v-1efb244d]{flex-direction:column;flex:auto;gap:8px;min-height:0;display:flex;overflow:auto}.record-item[data-v-1efb244d]{border-radius:var(--r-md);background:var(--card);box-shadow:var(--sh-sm);padding:14px}.record-item strong[data-v-1efb244d]{margin-bottom:4px;display:block}.record-item p[data-v-1efb244d]{color:var(--text-2);font-size:.86rem}.records-hint[data-v-1efb244d]{color:var(--muted);text-align:center;margin:10px 0 0;font-size:.74rem}.stats-overview[data-v-5e41c3c3]{border-radius:var(--r-md);background:var(--card);box-shadow:var(--sh-sm);flex:none;align-items:center;gap:2px;padding:6px 8px;display:flex}.stat-item[data-v-5e41c3c3]{flex:1 1 0;justify-content:center;align-items:baseline;gap:4px;min-width:0;padding:2px 4px;display:flex}.stat-item+.stat-item[data-v-5e41c3c3]{border-left:1px solid var(--border)}.stat-item span[data-v-5e41c3c3]{color:var(--muted);white-space:nowrap;font-size:.68rem;font-weight:600}.stat-item strong[data-v-5e41c3c3]{font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;font-size:.86rem;font-weight:800}.unit-player-shell[data-v-c62c9868]{flex-direction:column;flex:none;gap:8px;min-width:0;display:flex}.sentence-float[data-v-c62c9868]{border-radius:var(--r-lg);background:var(--card);box-shadow:var(--sh-md,0 10px 28px #0f172a1f);color:var(--text);word-break:break-word;border:1px solid #0ea5a047;padding:12px 14px;font-size:1rem;font-weight:700;line-height:1.45}.sentence-float-enter-active[data-v-c62c9868],.sentence-float-leave-active[data-v-c62c9868]{transition:opacity .18s,transform .18s}.sentence-float-enter-from[data-v-c62c9868],.sentence-float-leave-to[data-v-c62c9868]{opacity:0;transform:translateY(6px)}.unit-player-bar[data-v-c62c9868]{border-radius:var(--r-lg);background:var(--accent-soft);box-shadow:var(--sh-sm);border:1px solid #0ea5a040;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex;position:relative;overflow:visible}.unit-player-bar.follow[data-v-c62c9868]{border-color:#0000}.border-progress[data-v-c62c9868]{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.border-progress-track[data-v-c62c9868],.border-progress-value[data-v-c62c9868]{fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.border-progress-track[data-v-c62c9868]{stroke:#22c55e38}.border-progress-value[data-v-c62c9868]{stroke:#22c55e;transition:stroke-dashoffset 50ms linear}.playing-dot[data-v-c62c9868]{background:var(--danger);z-index:2;border-radius:50%;flex:none;width:8px;height:8px;animation:1.4s ease-out infinite pulse-dot-c62c9868;box-shadow:0 0 #ef444473}.playing-dot.paused[data-v-c62c9868]{background:var(--muted);box-shadow:none;animation:none}.playing-dot.follow[data-v-c62c9868]{background:#22c55e;animation:1.4s ease-out infinite pulse-follow-c62c9868;box-shadow:0 0 #22c55e73}@keyframes pulse-dot-c62c9868{0%{box-shadow:0 0 #ef444473}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}@keyframes pulse-follow-c62c9868{0%{box-shadow:0 0 #22c55e73}70%{box-shadow:0 0 0 8px #22c55e00}to{box-shadow:0 0 #22c55e00}}.bar-main[data-v-c62c9868]{z-index:2;flex:auto;min-width:0;position:relative}.bar-sentence[data-v-c62c9868]{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.88rem;font-weight:700;line-height:1.35;overflow:hidden}.bar-sentence.dimmed[data-v-c62c9868]{color:var(--muted);font-weight:600}.bar-actions[data-v-c62c9868]{z-index:2;flex:none;align-items:center;gap:6px;display:flex;position:relative}.media-icon-btn[data-v-c62c9868]{border-radius:var(--r-full);cursor:pointer;border:none;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:inline-flex}.media-icon[data-v-c62c9868]{width:16px;height:16px}.stop-btn[data-v-c62c9868]{background:var(--danger-soft);color:var(--danger);border:1px solid #ef444440}.stop-btn[data-v-c62c9868]:active{transform:scale(.94)}.app-shell[data-v-71f4d8cb]{flex-direction:column;gap:10px;height:100%;padding:0 14px;display:flex;position:relative;overflow:hidden}.app-header[data-v-71f4d8cb]{flex:none;justify-content:space-between;align-items:flex-end;gap:12px;padding:4px 2px 6px;display:flex}.header-titles[data-v-71f4d8cb]{flex-direction:column;gap:2px;min-width:0;display:flex}.eyebrow[data-v-71f4d8cb]{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.62rem;font-weight:700}.screen-title[data-v-71f4d8cb]{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.5rem;font-weight:800;line-height:1.1}.header-badge[data-v-71f4d8cb]{border-radius:var(--r-full);background:var(--accent-soft);color:var(--accent-deep);font-variant-numeric:tabular-nums;flex:none;padding:8px 12px;font-size:.86rem;font-weight:800}.content-panel[data-v-71f4d8cb]{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;overflow:hidden}.content-panel[data-v-71f4d8cb]>*{flex-direction:column;flex:auto;min-height:0;display:flex}.status-line[data-v-71f4d8cb]{border-radius:var(--r-md);background:var(--card);color:var(--text-2);margin:0;padding:8px 12px;font-size:.86rem}.status-line.error[data-v-71f4d8cb]{background:var(--danger-soft);color:var(--danger)}@media (width>=768px){.app-shell[data-v-71f4d8cb]{gap:14px;padding:0 24px}.screen-title[data-v-71f4d8cb]{font-size:1.8rem}}
