: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}}.book-header[data-v-dc4d95a9]{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-dc4d95a9]{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.book-header-main[data-v-dc4d95a9]{min-width:0}.switch-book-btn[data-v-dc4d95a9]{flex:none}.book-grade[data-v-dc4d95a9]{color:var(--accent);letter-spacing:.04em;font-size:.72rem;font-weight:700}.book-header h2[data-v-dc4d95a9]{margin-top:4px;font-size:1.15rem;font-weight:800}.book-sub[data-v-dc4d95a9]{color:var(--muted);margin-top:4px;font-size:.82rem}.section-label[data-v-dc4d95a9]{color:var(--text-2);margin-bottom:8px;font-size:.82rem;font-weight:700}.breadcrumb[data-v-dc4d95a9]{color:var(--text-2);align-items:center;gap:10px;margin-bottom:10px;font-weight:700;display:flex}.status-line[data-v-dc4d95a9]{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-dc4d95a9]{flex-direction:column;flex:auto;gap:8px;min-height:0;padding-bottom:8px;display:flex;overflow:auto}.nav-row[data-v-dc4d95a9]{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-dc4d95a9]{border:1px solid var(--accent);background:var(--accent-soft)}.book-row[data-v-dc4d95a9]:disabled{opacity:.7}.nav-row strong[data-v-dc4d95a9]{font-size:.95rem;display:block}.nav-row p[data-v-dc4d95a9]{color:var(--muted);margin-top:4px;font-size:.78rem}.chevron[data-v-dc4d95a9]{color:var(--muted);font-size:1.2rem;line-height:1}.badge.current[data-v-dc4d95a9]{background:var(--accent);color:#fff}.article-item[data-v-dc4d95a9]{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.article-item .nav-row[data-v-dc4d95a9]{padding:12px}.empty-state .primary-button[data-v-dc4d95a9]{align-self:center;width:auto;margin-top:8px}.auth-card[data-v-26c5f2ac],.manage-block[data-v-26c5f2ac]{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-26c5f2ac]{flex-direction:column;flex:auto;gap:12px;min-height:0;padding-bottom:8px;display:flex;overflow:auto}.auth-card h2[data-v-26c5f2ac],.manage-block h2[data-v-26c5f2ac]{font-size:1rem;font-weight:800}.auth-card p[data-v-26c5f2ac],.hint[data-v-26c5f2ac]{color:var(--text-2);font-size:.88rem}input[data-v-26c5f2ac],select[data-v-26c5f2ac]{border:1px solid var(--border-2);border-radius:var(--r-md);background:var(--bg);width:100%;padding:12px 14px}.curriculum-grid[data-v-26c5f2ac]{gap:8px;display:grid}.curriculum-card[data-v-26c5f2ac]{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-26c5f2ac]{border-color:var(--accent);background:var(--accent-soft)}.curriculum-card span[data-v-26c5f2ac]{color:var(--muted);font-size:.8rem}.setting-row[data-v-26c5f2ac]{justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.setting-row small[data-v-26c5f2ac]{color:var(--muted);margin-top:2px;font-size:.76rem;font-weight:500;display:block}.setting-row input[type=number][data-v-26c5f2ac]{text-align:center;width:72px}.field-label[data-v-26c5f2ac]{color:var(--text-2);flex-direction:column;gap:6px;font-size:.84rem;font-weight:700;display:flex}.key-row[data-v-26c5f2ac]{align-items:center;gap:8px;display:flex}.key-row input[data-v-26c5f2ac]{flex:auto}.provider-row[data-v-26c5f2ac]{flex-wrap:wrap;gap:8px;display:flex}.provider-button.active[data-v-26c5f2ac]{border-color:var(--accent);background:var(--accent);color:#fff}.toggle-row[data-v-26c5f2ac]{text-align:left;background:0 0;border:none}.toggle-switch[data-v-26c5f2ac]{border-radius:var(--r-full);background:#1a1a2e1f;flex:none;width:44px;height:26px;position:relative}.toggle-switch[data-v-26c5f2ac]: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-26c5f2ac]{background:var(--accent)}.toggle-switch.on[data-v-26c5f2ac]:after{transform:translate(18px)}.error-text[data-v-26c5f2ac]{color:var(--danger);font-size:.84rem}.success-text[data-v-26c5f2ac]{color:var(--teal-deep);font-size:.84rem}.action-row[data-v-26c5f2ac]{gap:8px;display:flex}.version-button[data-v-26c5f2ac]{text-align:left;background:0 0;border:none;flex-direction:column;gap:4px;padding:0;display:flex}.version-button small[data-v-26c5f2ac]{color:var(--muted);font-size:.78rem}.version-button[data-v-26c5f2ac]: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}.sentence-ai[data-v-dbf4eb37]{flex-direction:column;gap:8px;display:flex}.ai-actions[data-v-dbf4eb37]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ai-chip[data-v-dbf4eb37]{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-dbf4eb37]{border-color:var(--accent);background:var(--accent);color:#fff}.ai-chip[data-v-dbf4eb37]:disabled{opacity:.5}.ai-hint[data-v-dbf4eb37]{color:var(--muted);font-size:.78rem}.ai-result[data-v-dbf4eb37]{border-radius:var(--r-md);background:var(--bg);padding:12px}.ai-markdown[data-v-dbf4eb37]{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-dbf4eb37] p{margin:0 0 .65em}.ai-markdown[data-v-dbf4eb37] p:last-child{margin-bottom:0}.ai-markdown[data-v-dbf4eb37] h1,.ai-markdown[data-v-dbf4eb37] h2,.ai-markdown[data-v-dbf4eb37] h3,.ai-markdown[data-v-dbf4eb37] h4{color:var(--text);margin:.85em 0 .4em;font-weight:800;line-height:1.35}.ai-markdown[data-v-dbf4eb37] h1{font-size:1.1rem}.ai-markdown[data-v-dbf4eb37] h2{font-size:1.02rem}.ai-markdown[data-v-dbf4eb37] h3,.ai-markdown[data-v-dbf4eb37] h4{font-size:.95rem}.ai-markdown[data-v-dbf4eb37] ul,.ai-markdown[data-v-dbf4eb37] ol{margin:0 0 .7em;padding-left:1.25em}.ai-markdown[data-v-dbf4eb37] li{margin:.25em 0}.ai-markdown[data-v-dbf4eb37] li>p{margin:.2em 0}.ai-markdown[data-v-dbf4eb37] strong{font-weight:800}.ai-markdown[data-v-dbf4eb37] blockquote{border-left:3px solid var(--accent);color:var(--text-2);background:#0ea5a00f;margin:.6em 0;padding:.35em .8em}.ai-markdown[data-v-dbf4eb37] 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-dbf4eb37] pre{border-radius:var(--r-sm);background:#1a1a2e0f;margin:.6em 0;padding:10px 12px;overflow-x:auto}.ai-markdown[data-v-dbf4eb37] pre code{background:0 0;padding:0}.ai-error[data-v-dbf4eb37]{color:var(--danger);font-size:.86rem}.speak-box[data-v-5717c39f]{flex-direction:column;gap:4px;display:flex}.speak-button[data-v-5717c39f]{border:1px solid var(--border-2);border-radius:var(--r-full);background:var(--card);min-height:32px;color:var(--accent-deep);align-self:flex-start;padding:6px 12px;font-size:.78rem;font-weight:700}.speak-button.active[data-v-5717c39f]{border-color:var(--accent);background:var(--accent);color:#fff}.speak-button[data-v-5717c39f]:disabled{opacity:.45}.speak-error[data-v-5717c39f]{color:var(--danger);font-size:.74rem}.passage-card[data-v-048c9119]{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-048c9119]{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.meta[data-v-048c9119]{color:var(--accent);letter-spacing:.04em;font-size:.72rem;font-weight:700}.card-head h2[data-v-048c9119]{margin-top:4px;font-size:1.2rem;font-weight:800}.title-zh[data-v-048c9119]{color:var(--text-2);margin-top:4px;font-size:.86rem;font-weight:600}.master-chip.on[data-v-048c9119]{background:var(--teal);color:#fff}.sentence-panel[data-v-048c9119]{border-radius:var(--r-lg);background:var(--accent-soft);flex-direction:column;gap:10px;padding:14px;display:flex}.sentence-top[data-v-048c9119]{cursor:pointer;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.sentence-en[data-v-048c9119]{-webkit-user-select:text;user-select:text;flex:auto;min-width:0;font-size:1.05rem;font-weight:700;line-height:1.55}.sentence-zh[data-v-048c9119],.question-zh[data-v-048c9119],.full-zh[data-v-048c9119]{color:var(--text-2);font-size:.9rem;line-height:1.5}.sentence-nav[data-v-048c9119]{justify-content:space-between;align-items:center;gap:8px;display:flex}.full-text[data-v-048c9119]{border-radius:var(--r-md);background:var(--bg);padding:10px 12px}.full-text summary[data-v-048c9119]{cursor:pointer;color:var(--text-2);justify-content:space-between;align-items:center;gap:10px;display:flex}.summary-label[data-v-048c9119]{font-weight:700}.full-text summary .ghost-button[data-v-048c9119]{pointer-events:auto}.full-text summary:hover .summary-label[data-v-048c9119]{color:var(--accent-deep)}.full-en[data-v-048c9119]{-webkit-user-select:text;user-select:text;margin-top:10px;line-height:1.65}.sentence-span[data-v-048c9119]{cursor:pointer}.sentence-span.done[data-v-048c9119]{color:var(--text-2)}.sentence-span.active[data-v-048c9119]{color:var(--danger);background:var(--danger-soft);border-radius:4px}.word-span.spoken[data-v-048c9119]{background:linear-gradient(transparent 60%, var(--danger-soft) 60%);border-radius:2px}.full-zh[data-v-048c9119]{margin-top:8px}.ghost-button.reading-active[data-v-048c9119]{border-color:var(--danger);color:var(--danger)}.full-ai[data-v-048c9119]{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.full-ai-label[data-v-048c9119]{color:var(--accent-deep);letter-spacing:.04em;margin-bottom:8px;font-size:.78rem;font-weight:800}.question-list[data-v-048c9119]{flex-direction:column;gap:14px;display:flex}.question-item[data-v-048c9119]{flex-direction:column;gap:8px;display:flex}.question-prompt[data-v-048c9119]{font-weight:700}.option-list[data-v-048c9119]{flex-direction:column;gap:8px;display:flex}.option-button[data-v-048c9119]{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-048c9119]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.option-button.correct[data-v-048c9119]{border-color:var(--teal);background:var(--teal-soft);color:var(--teal-deep)}.option-button.wrong[data-v-048c9119]{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.result-banner[data-v-048c9119]{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-048c9119]:disabled{opacity:.45;box-shadow:none}.queue-switch[data-v-2853f3ca]{flex:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.queue-chip[data-v-2853f3ca]{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-2853f3ca]{background:var(--accent);color:#fff}.passage-stack[data-v-2853f3ca]{flex:auto;min-height:0;padding-bottom:8px;overflow:auto}.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-afd22eba]{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.summary-card[data-v-afd22eba]{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-afd22eba]{color:var(--muted);font-size:.72rem;font-weight:600}.summary-card strong[data-v-afd22eba]{font-size:1.1rem;font-weight:800}.record-list[data-v-afd22eba]{flex-direction:column;flex:auto;gap:8px;min-height:0;display:flex;overflow:auto}.record-item[data-v-afd22eba]{border-radius:var(--r-md);background:var(--card);box-shadow:var(--sh-sm);padding:14px}.record-item strong[data-v-afd22eba]{margin-bottom:4px;display:block}.record-item p[data-v-afd22eba]{color:var(--text-2);font-size:.86rem}.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}.app-shell[data-v-d84b3b43]{flex-direction:column;gap:10px;height:100%;padding:0 14px;display:flex;position:relative;overflow:hidden}.app-header[data-v-d84b3b43]{flex:none;justify-content:space-between;align-items:flex-end;gap:12px;padding:4px 2px 6px;display:flex}.header-titles[data-v-d84b3b43]{flex-direction:column;gap:2px;min-width:0;display:flex}.eyebrow[data-v-d84b3b43]{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.62rem;font-weight:700}.screen-title[data-v-d84b3b43]{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.5rem;font-weight:800;line-height:1.1}.header-badge[data-v-d84b3b43]{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-d84b3b43]{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;overflow:hidden}.content-panel[data-v-d84b3b43]>*{flex-direction:column;flex:auto;min-height:0;display:flex}.status-line[data-v-d84b3b43]{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-d84b3b43]{background:var(--danger-soft);color:var(--danger)}@media (width>=768px){.app-shell[data-v-d84b3b43]{gap:14px;padding:0 24px}.screen-title[data-v-d84b3b43]{font-size:1.8rem}}
