#app-shell[data-v-d128ecd8]{background:var(--bg-primary,#fff);flex-direction:column;min-height:100dvh;display:flex}.app-header[data-v-d128ecd8]{background:var(--bg-primary,#fff);border-bottom:1px solid var(--border-color,#d2d2d7);z-index:100;align-items:center;min-height:48px;padding:12px 16px;display:flex;position:sticky;top:0}.back-btn[data-v-d128ecd8]{color:var(--accent-color,#1a73e8);cursor:pointer;background:0 0;border:none;margin-right:8px;padding:4px 8px;font-size:16px}.app-title[data-v-d128ecd8]{color:var(--text-primary,#1d1d1f);margin:0;font-size:18px;font-weight:600}.app-main[data-v-d128ecd8]{flex:1;overflow-y:auto}.app-tabbar[data-v-d128ecd8]{padding:8px 0;padding-bottom:max(8px, env(safe-area-inset-bottom));background:var(--bg-primary,#fff);border-top:1px solid var(--border-color,#d2d2d7);z-index:100;justify-content:space-around;align-items:center;display:flex;position:sticky;bottom:0}.tab-item[data-v-d128ecd8]{color:var(--text-secondary,#6e6e73);flex-direction:column;align-items:center;gap:2px;padding:4px 12px;font-size:11px;text-decoration:none;transition:color .2s;display:flex}.tab-item.router-link-active[data-v-d128ecd8]{color:var(--accent-color,#1a73e8)}.tab-icon[data-v-d128ecd8]{font-size:20px}.tab-label[data-v-d128ecd8]{font-size:11px}.chapter-nav[data-v-4291e151]{padding:12px 0}.nav-row[data-v-4291e151]{justify-content:space-between;align-items:center;gap:8px;display:flex}.nav-btn[data-v-4291e151]{background:var(--bg-secondary,#f5f5f5);border:1px solid var(--border-color,#d2d2d7);color:var(--text-primary,#1d1d1f);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px;transition:opacity .2s}.nav-btn[data-v-4291e151]:disabled{opacity:.3;cursor:default}.nav-btn[data-v-4291e151]:not(:disabled):hover{background:var(--accent-color,#1a73e8);color:#fff;border-color:var(--accent-color,#1a73e8)}.toc-btn[data-v-4291e151]{min-width:80px}.current-chapter-label[data-v-4291e151]{text-align:center;color:var(--text-secondary,#6e6e73);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:13px;overflow:hidden}.toc-overlay[data-v-4291e151]{z-index:200;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.toc-dropdown[data-v-4291e151]{background:var(--bg-primary,#fff);border-radius:16px 16px 0 0;flex-direction:column;width:100%;max-width:500px;max-height:70vh;display:flex;overflow:hidden}.toc-header[data-v-4291e151]{border-bottom:1px solid var(--border-color,#d2d2d7);justify-content:space-between;align-items:center;padding:16px;font-weight:600;display:flex}.toc-close[data-v-4291e151]{cursor:pointer;color:var(--text-secondary,#6e6e73);background:0 0;border:none;font-size:18px}.toc-list[data-v-4291e151]{padding:8px 0;overflow-y:auto}.toc-item[data-v-4291e151]{cursor:pointer;width:100%;color:var(--text-primary,#1d1d1f);text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:12px 16px;font-size:15px;transition:background .15s;display:flex}.toc-item[data-v-4291e151]:hover{background:var(--bg-secondary,#f5f5f7)}.toc-item.active[data-v-4291e151]{background:var(--highlight-bg,#fff8e1);font-weight:600}.toc-num[data-v-4291e151]{background:var(--bg-secondary,#f5f5f7);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;display:flex}.toc-title[data-v-4291e151]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.toc-check[data-v-4291e151]{color:var(--accent-color,#1a73e8);font-size:10px}.audio-player[data-v-4f741682]{padding:10px 16px;padding-bottom:max(10px, env(safe-area-inset-bottom));background:var(--bg-primary,#fff);border-top:1px solid var(--border-color,#d2d2d7);z-index:150;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #00000014}.play-btn[data-v-4f741682]{background:var(--accent-color,#1a73e8);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;transition:transform .15s;display:flex}.play-btn[data-v-4f741682]:hover{transform:scale(1.05)}.play-btn[data-v-4f741682]:disabled{opacity:.6}.spinner-sm[data-v-4f741682]{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin-4f741682}@keyframes spin-4f741682{to{transform:rotate(360deg)}}.audio-info[data-v-4f741682]{flex-direction:column;flex:1;gap:2px;display:flex}.audio-label[data-v-4f741682]{color:var(--text-primary,#1d1d1f);font-size:14px;font-weight:500}.audio-source[data-v-4f741682]{color:var(--text-secondary,#6e6e73);font-size:11px}.fallback-btn[data-v-4f741682]{border:1px solid var(--accent-color,#1a73e8);color:var(--accent-color,#1a73e8);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:4px 12px;font-size:12px}.fallback-btn[data-v-4f741682]:hover{background:var(--accent-color,#1a73e8);color:#fff}.popup-overlay{z-index:300;background:#00000059;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.popup-card{background:var(--bg-primary,#fff);border-radius:16px 16px 0 0;width:100%;max-width:500px;max-height:60vh;padding:20px;overflow-y:auto;box-shadow:0 -4px 24px #0000001f}.popup-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.popup-word{color:var(--text-primary,#1d1d1f);margin:0;font-size:24px;font-weight:700}.popup-close{color:var(--text-secondary,#6e6e73);cursor:pointer;background:0 0;border:none;padding:4px;font-size:20px}.popup-loading{color:var(--text-secondary,#6e6e73);align-items:center;gap:8px;padding:16px 0;display:flex}.phrase-banner{background:var(--phrase-bg,#34c7591a);border-left:3px solid var(--success-color,#34c759);border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:12px;padding:8px 12px;display:flex}.phrase-text{color:var(--text-primary,#1d1d1f);font-size:15px;font-weight:600}.phrase-defs{color:var(--text-secondary,#6e6e73);font-size:13px}.spinner-sm{border:2px solid var(--border-color,#d2d2d7);border-top-color:var(--accent-color,#1a73e8);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.popup-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.phonetic{color:var(--text-secondary,#6e6e73);font-size:14px}.pos-tag{background:var(--bg-secondary,#f5f5f7);color:var(--text-secondary,#6e6e73);border-radius:4px;padding:2px 8px;font-size:12px;font-style:italic}.level-tag{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.level-tag.sat{color:#1565c0;background:#e3f2fd}.level-tag.ap{color:#c62828;background:#fce4ec}.def-list{margin:0 0 16px;padding-left:20px}.def-item{color:var(--text-primary,#1d1d1f);margin-bottom:6px;font-size:15px;line-height:1.5}.popup-chapters{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;display:flex}.chapters-label{color:var(--text-secondary,#6e6e73);font-size:12px}.chapter-badge{background:var(--bg-secondary,#f5f5f7);color:var(--text-secondary,#6e6e73);border-radius:4px;padding:2px 8px;font-size:11px}.popup-actions{flex-wrap:wrap;gap:8px;display:flex}.action-btn{border:1px solid var(--border-color,#d2d2d7);background:var(--bg-primary,#fff);cursor:pointer;color:var(--text-primary,#1d1d1f);border-radius:8px;padding:8px 16px;font-size:14px;transition:background .2s}.action-btn:hover{background:var(--bg-secondary,#f5f5f7)}.action-btn.saved{border-color:var(--success-color,#34c759);color:var(--success-color,#34c759);background:0 0}.notfound-hint{color:var(--text-secondary,#6e6e73);margin:4px 0 12px;font-size:13px;font-style:italic}.action-btn.primary{background:var(--accent-color,#1a73e8);color:#fff;border-color:var(--accent-color,#1a73e8)}.popup-notfound{text-align:center;color:var(--text-secondary,#6e6e73);padding:16px 0}.popup-notfound .action-btn{margin-top:8px}.popup-enter-active,.popup-leave-active{transition:opacity .25s}.popup-enter-active .popup-card,.popup-leave-active .popup-card{transition:transform .25s}.popup-enter-from,.popup-leave-to{opacity:0}.popup-enter-from .popup-card,.popup-leave-to .popup-card{transform:translateY(100%)}@media (width>=768px){.popup-overlay{align-items:center}.popup-card{border-radius:16px;max-height:70vh}}.reader-view[data-v-747e1b26]{max-width:760px;margin:0 auto;padding:0 16px 64px}.loading-state[data-v-747e1b26],.error-state[data-v-747e1b26]{text-align:center;color:var(--text-secondary,#6e6e73);padding:48px 16px}.spinner[data-v-747e1b26]{border:3px solid var(--border-color,#d2d2d7);border-top-color:var(--accent-color,#1a73e8);border-radius:50%;width:32px;height:32px;margin:0 auto 12px;animation:.8s linear infinite spin-747e1b26}@keyframes spin-747e1b26{to{transform:rotate(360deg)}}.error-state button[data-v-747e1b26]{background:var(--accent-color,#1a73e8);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:12px;padding:8px 20px}.chapter-content[data-v-747e1b26]{margin:24px 0}.chapter-title[data-v-747e1b26]{color:var(--text-primary,#1d1d1f);margin-bottom:24px;font-size:22px;font-weight:700;line-height:1.3}.paragraph[data-v-747e1b26]{color:var(--text-primary,#1d1d1f);text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin-bottom:16px;font-size:17px;line-height:1.75}.paragraph.playing-para[data-v-747e1b26]{background:var(--highlight-bg,#fff3cd);box-shadow:0 0 0 6px var(--highlight-bg,#fff3cd);border-radius:4px;transition:background .3s,box-shadow .3s}.para-play[data-v-747e1b26]{color:var(--accent-color,#1a73e8);cursor:pointer;opacity:.45;vertical-align:middle;background:0 0;border:none;margin-right:6px;padding:0 2px;font-size:11px;transition:opacity .15s}.para-play[data-v-747e1b26]:hover{opacity:1}.word[data-v-747e1b26]{cursor:pointer;border-radius:3px;padding:0 1px;transition:background .15s}.word[data-v-747e1b26]:hover{background:var(--highlight-bg,#fff3cd)}.word.annotated[data-v-747e1b26]{border-bottom:2px solid var(--accent-color,#e6a817)}.word.saved[data-v-747e1b26]{border-bottom:2px dotted var(--success-color,#34c759)}.word.phrase[data-v-747e1b26]{background:var(--phrase-bg,#34c7591a);border-bottom:2px solid var(--success-color,#34c759);border-radius:0}@media (width<=480px){.reader-view[data-v-747e1b26]{padding:0 12px 48px}.paragraph[data-v-747e1b26]{font-size:16px;line-height:1.7}.chapter-title[data-v-747e1b26]{font-size:20px}}@media (width>=768px){.reader-view[data-v-747e1b26]{max-width:720px;padding:0 24px 64px}}@media (width>=1024px){.reader-view[data-v-747e1b26]{max-width:760px;padding:0 32px 64px}}:root{--bg-primary:#fff;--bg-secondary:#f5f5f7;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--border-color:#d2d2d7;--accent-color:#1a73e8;--accent-hover:#1557b0;--highlight-bg:#fff3cd;--success-color:#34c759;--danger-color:#ff3b30;--phrase-bg:#34c7591a;--rating-again:#ff3b30;--rating-hard:#ff9500;--rating-good:#34c759;--rating-easy:#007aff;--quiz-correct-bg:#34c7591f;--quiz-wrong-bg:#ff3b301a;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif:"Georgia", "Times New Roman", serif}@media (prefers-color-scheme:dark){:root{--bg-primary:#1c1c1e;--bg-secondary:#2c2c2e;--text-primary:#f5f5f7;--text-secondary:#a1a1a6;--border-color:#48484a;--accent-color:#4da3ff;--accent-hover:#6db5ff;--highlight-bg:#3d3520;--success-color:#30d158;--danger-color:#ff453a;--phrase-bg:#30d15829;--rating-again:#ff453a;--rating-hard:#ff9f0a;--rating-good:#30d158;--rating-easy:#0a84ff;--quiz-correct-bg:#30d1582e;--quiz-wrong-bg:#ff453a29}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100dvh;line-height:1.5}#app{min-height:100dvh}h1,h2,h3,h4,h5,h6{color:var(--text-primary);line-height:1.3}a{color:var(--accent-color);text-decoration:none}button{font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}::selection{background:var(--accent-color);color:#fff}
