.toc-btn[data-v-20f19a11]{background:#005a9c;border:none;border-radius:50%;box-shadow:0 2px 10px #0003;color:#fff;cursor:pointer;font-size:24px;height:50px;left:20px;position:fixed;top:80px;width:50px;z-index:1001}.toc-overlay[data-v-20f19a11]{background:#00000080;left:0;right:0;z-index:1002}.toc-overlay[data-v-20f19a11],.toc-sidebar[data-v-20f19a11]{bottom:0;position:fixed;top:0}.toc-sidebar[data-v-20f19a11]{background:var(--bg-secondary);box-shadow:2px 0 10px #0000001a;display:flex;flex-direction:column;left:-320px;transition:left .3s;width:300px;z-index:1003}.toc-sidebar.open[data-v-20f19a11]{left:0}.toc-header[data-v-20f19a11]{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px}.toc-header h3[data-v-20f19a11]{color:var(--text-primary);margin:0}.close-btn[data-v-20f19a11]{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:30px;height:30px;padding:0;width:30px}.toc-list[data-v-20f19a11]{flex:1;overflow-y:auto;padding:10px}.toc-item[data-v-20f19a11]{background:var(--bg-primary);border:2px solid transparent;border-radius:8px;cursor:pointer;margin-bottom:10px;padding:15px;transition:all .2s}.toc-item[data-v-20f19a11]:hover{background:var(--bg-secondary);border-color:var(--border-color)}.toc-item.active[data-v-20f19a11]{background:#005a9c1a;border-color:#005a9c}.chapter-info[data-v-20f19a11]{display:flex;gap:10px;margin-bottom:10px}.chapter-icon[data-v-20f19a11]{font-size:20px;text-align:center;width:24px}.chapter-text[data-v-20f19a11]{flex:1}.chapter-title[data-v-20f19a11]{color:var(--text-primary);font-weight:700;margin-bottom:4px}.chapter-subtitle[data-v-20f19a11]{color:var(--text-secondary);font-size:14px}.chapter-progress[data-v-20f19a11]{align-items:center;display:flex;gap:10px}.progress-bar[data-v-20f19a11]{background:var(--border-color);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill[data-v-20f19a11]{background:#4caf50;height:100%;transition:width .3s}.progress-text[data-v-20f19a11]{color:var(--text-secondary);font-size:12px;min-width:35px;text-align:right}.search-btn[data-v-120c1700]{background:#4caf50;border:none;border-radius:50%;box-shadow:0 2px 10px #0003;color:#fff;cursor:pointer;font-size:24px;height:50px;position:fixed;right:20px;top:80px;width:50px;z-index:900}.search-overlay[data-v-120c1700]{background:#00000080;inset:0;position:fixed;z-index:1002}.search-panel[data-v-120c1700]{background:var(--bg-primary);bottom:0;box-shadow:-2px 0 10px #0000001a;display:flex;flex-direction:column;position:fixed;right:-400px;top:0;transition:right .3s;width:380px;z-index:1003}.search-panel.open[data-v-120c1700]{right:0}.search-header[data-v-120c1700]{align-items:center;border-bottom:1px solid var(--border-color);display:flex;gap:10px;padding:20px}.search-input[data-v-120c1700]{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:20px;color:var(--text-primary);flex:1;font-size:16px;outline:none;padding:10px 15px}.search-input[data-v-120c1700]:focus{border-color:#4caf50}.close-btn[data-v-120c1700]{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:30px;height:30px;padding:0;width:30px}.search-results[data-v-120c1700]{flex:1;overflow-y:auto;padding:10px}.no-results[data-v-120c1700]{color:var(--text-secondary);padding:40px 20px;text-align:center}.result-item[data-v-120c1700]{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;margin-bottom:10px;padding:15px;transition:all .2s}.result-item[data-v-120c1700]:hover{background:var(--bg-primary);border-color:#4caf50}.result-header[data-v-120c1700]{align-items:center;display:flex;gap:10px;margin-bottom:8px}.chapter-tag[data-v-120c1700]{background:#e3f2fd;border-radius:4px;color:#1976d2;font-size:12px;padding:2px 8px}.vocab[data-v-120c1700]{color:var(--text-primary);font-weight:700}.result-content[data-v-120c1700]{font-size:14px}.jp[data-v-120c1700]{color:var(--text-primary);margin-bottom:4px}.cn[data-v-120c1700]{color:var(--text-secondary)}[data-v-120c1700] mark{background:#ffeb3b;border-radius:2px;padding:2px 4px}.player-panel[data-v-4f2c3531]{background:var(--bg-secondary);border-top:1px solid var(--border-color);bottom:0;box-shadow:0 -2px 10px #0000001a;left:0;padding-bottom:env(safe-area-inset-bottom);position:fixed;right:0;z-index:100}.player-content[data-v-4f2c3531]{margin:0 auto;max-width:800px;padding:12px 16px}.main-controls[data-v-4f2c3531]{gap:20px}.main-controls[data-v-4f2c3531],button[data-v-4f2c3531]{align-items:center;display:flex;justify-content:center}button[data-v-4f2c3531]{border:none;border-radius:50%;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}button[data-v-4f2c3531]:active{transform:scale(.95)}.btn-play[data-v-4f2c3531]{background:#005a9c;box-shadow:0 2px 8px #005a9c4d;color:#fff;font-size:24px;height:56px;width:56px}.btn-play[data-v-4f2c3531]:active{box-shadow:0 1px 4px #005a9c4d}.btn-skip[data-v-4f2c3531]{background:#667eea;box-shadow:0 2px 6px #667eea4d;color:#fff;font-size:20px;height:44px;width:44px}.btn-skip[data-v-4f2c3531]:disabled{box-shadow:none;cursor:not-allowed;opacity:.4}.btn-skip[data-v-4f2c3531]:active:not(:disabled){box-shadow:0 1px 3px #667eea4d}.loop-indicator[data-v-4f2c3531]{align-items:center;display:flex}.btn-loop[data-v-4f2c3531]{background:var(--bg-secondary);border:2px solid var(--border-color);color:var(--text-secondary);font-size:20px;height:44px;width:44px}.btn-loop.active[data-v-4f2c3531]{background:#4caf50;border-color:#4caf50;box-shadow:0 2px 6px #4caf504d;color:#fff}.btn-loop[data-v-4f2c3531]:active{box-shadow:0 1px 3px #0003}@media(max-width:768px){.player-content[data-v-4f2c3531]{padding:10px 12px}.main-controls[data-v-4f2c3531]{gap:16px}.btn-play[data-v-4f2c3531]{font-size:22px;height:52px;width:52px}.btn-loop[data-v-4f2c3531],.btn-skip[data-v-4f2c3531]{font-size:18px;height:40px;width:40px}}@media(max-width:375px){.main-controls[data-v-4f2c3531]{gap:12px}.btn-play[data-v-4f2c3531]{font-size:20px;height:48px;width:48px}.btn-loop[data-v-4f2c3531],.btn-skip[data-v-4f2c3531]{font-size:16px;height:38px;width:38px}}.cache-status[data-v-c478bfb4]{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fff9;border-radius:20px;box-shadow:0 2px 8px #0000001a;left:50%;max-width:90vw;min-width:180px;padding:10px 16px;pointer-events:none;position:fixed;top:20px;transform:translate(-50%);z-index:1000}.status-checking[data-v-c478bfb4]{border-left:4px solid rgba(33,150,243,.8)}.status-caching[data-v-c478bfb4]{border-left:4px solid rgba(255,152,0,.8)}.status-complete[data-v-c478bfb4]{border-left:4px solid rgba(76,175,80,.8)}.status-offline[data-v-c478bfb4]{border-left:4px solid rgba(244,67,54,.8)}.status-content[data-v-c478bfb4]{align-items:center;display:flex;gap:10px}.icon[data-v-c478bfb4]{font-size:20px}.text[data-v-c478bfb4]{color:#333;font-size:14px;font-weight:500;text-shadow:0 1px 2px hsla(0,0%,100%,.8)}.progress[data-v-c478bfb4]{background:#e0e0e0;border-radius:2px;height:4px;margin-top:8px;overflow:hidden}.progress-bar[data-v-c478bfb4]{background:#ff9800;height:100%;transition:width .3s}.settings-btn[data-v-78f95ad9]{background:#9c27b0;border:none;border-radius:50%;box-shadow:0 2px 10px #0003;color:#fff;cursor:pointer;font-size:24px;height:50px;position:fixed;right:20px;top:20px;transition:opacity .3s,visibility .3s;width:50px;z-index:900}.settings-btn.hide-on-panel[data-v-78f95ad9]{opacity:0;visibility:hidden}.settings-overlay[data-v-78f95ad9]{background:#00000080;inset:0;position:fixed;z-index:1002}.settings-panel[data-v-78f95ad9]{background:var(--bg-primary);bottom:0;box-shadow:-2px 0 10px #0000001a;display:flex;flex-direction:column;position:fixed;right:-350px;top:0;transition:right .3s;width:330px;z-index:1003}.settings-panel.open[data-v-78f95ad9]{right:0}.settings-header[data-v-78f95ad9]{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px}.settings-header h3[data-v-78f95ad9]{color:var(--text-primary);margin:0}.close-btn[data-v-78f95ad9]{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:30px;height:30px;padding:0;width:30px}.settings-content[data-v-78f95ad9]{flex:1;overflow-y:auto;padding:20px}.setting-group[data-v-78f95ad9]{margin-bottom:30px}.setting-group h4[data-v-78f95ad9]{color:var(--text-primary);margin:0 0 15px}.theme-buttons[data-v-78f95ad9]{display:flex;gap:10px}.theme-buttons button[data-v-78f95ad9]{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;flex:1;padding:10px;transition:all .2s}.theme-buttons button.active[data-v-78f95ad9]{background:#9c27b0;border-color:#9c27b0;color:#fff}.font-control[data-v-78f95ad9]{align-items:center;display:flex;gap:15px;margin-bottom:10px}.font-control button[data-v-78f95ad9]{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:18px;height:40px;width:40px}.font-control span[data-v-78f95ad9]{color:var(--text-primary);flex:1;font-weight:700;text-align:center}.preview[data-v-78f95ad9]{background:var(--bg-secondary);border-radius:8px;padding:15px;text-align:center}.preview.jp[data-v-78f95ad9]{color:var(--text-primary)}.preview.cn[data-v-78f95ad9]{color:var(--text-secondary)}.font-buttons[data-v-78f95ad9]{display:flex;flex-wrap:wrap;gap:10px}.font-buttons button[data-v-78f95ad9]{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;flex:1;min-width:80px;padding:10px;transition:all .2s}.font-buttons button.active[data-v-78f95ad9]{background:#9c27b0;border-color:#9c27b0;color:#fff}.data-hint[data-v-78f95ad9]{color:var(--text-secondary);font-size:12px;margin:-5px 0 10px}.export-buttons[data-v-78f95ad9]{display:flex;flex-direction:column;gap:10px}.export-btn[data-v-78f95ad9],.import-btn[data-v-78f95ad9]{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:14px;padding:12px;transition:all .2s}.export-btn[data-v-78f95ad9]:hover,.import-btn[data-v-78f95ad9]:hover{background:#9c27b0;border-color:#9c27b0;color:#fff}.import-btn[data-v-78f95ad9]{background:#4caf50;border-color:#4caf50;color:#fff}.import-btn[data-v-78f95ad9]:hover{background:#45a049;border-color:#45a049}.control-row[data-v-78f95ad9]{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.control-row label[data-v-78f95ad9]{color:var(--text-primary);font-size:14px}.mini-adjuster[data-v-78f95ad9]{align-items:center;display:flex;gap:10px}.mini-adjuster button[data-v-78f95ad9]{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:16px;height:32px;padding:0;width:32px}.mini-adjuster span[data-v-78f95ad9]{color:var(--text-primary);font-weight:700;min-width:45px;text-align:center}.color-buttons[data-v-78f95ad9]{display:flex;flex-wrap:wrap;gap:8px}.color-btn[data-v-78f95ad9]{align-items:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;flex:0 0 calc(50% - 4px);gap:8px;padding:8px;transition:all .2s}.color-btn.active[data-v-78f95ad9]{border-color:#9c27b0}.color-preview[data-v-78f95ad9]{border:1px solid rgba(0,0,0,.2);border-radius:4px;height:20px;width:20px}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#f9f9f9;--bg-secondary:#fff;--text-primary:#333;--text-secondary:#666;--border-color:#ddd;--furigana-color:#e53935}:root.dark{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--text-primary:#e0e0e0;--text-secondary:#a0a0a0;--border-color:#404040;--furigana-color:#ff6b6b}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}#app{min-height:100vh;min-height:-webkit-fill-available;padding-bottom:calc(80px + env(safe-area-inset-bottom))}@supports (-webkit-touch-callout:none){#app{min-height:-webkit-fill-available}}
