:root{--bg-color:#f5f7fa;--card-bg:#fff;--text-primary:#1e293b;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#94a3b8;--border-color:#e2e8f0;--border-light:#f1f5f9;--primary-color:#2563eb;--primary-hover:#1d4ed8;--primary-light:#eff6ff;--secondary-bg:#f1f5f9;--secondary-hover:#e2e8f0;--danger-bg:#fee2e2;--danger-color:#dc2626;--danger-hover:#fecaca;--success-bg:#dcfce7;--success-color:#166534;--badge-bg:#e0e7ff;--badge-color:#4338ca;--shadow:#0000000f;--input-bg:#fff}.dark{--bg-color:#0f172a;--card-bg:#1e293b;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-tertiary:#94a3b8;--text-muted:#64748b;--border-color:#334155;--border-light:#1e293b;--primary-color:#60a5fa;--primary-hover:#3b82f6;--primary-light:#1e3a8a;--secondary-bg:#334155;--secondary-hover:#475569;--danger-bg:#dc262633;--danger-color:#fca5a5;--danger-hover:#dc26264d;--success-bg:#22c55e33;--success-color:#86efac;--badge-bg:#312e81;--badge-color:#a5b4fc;--shadow:#0000004d;--input-bg:#0f172a}*{box-sizing:border-box}body{color:var(--text-primary);background:var(--bg-color);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}h1,h2,h3{color:var(--text-primary);margin:0 0 16px}.card{background:var(--card-bg);box-shadow:0 1px 3px var(--shadow);border-radius:12px;margin-bottom:16px;padding:20px}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--secondary-bg);color:var(--text-secondary)}.btn-secondary:hover{background:var(--secondary-hover)}.btn-danger{background:var(--danger-bg);color:var(--danger-color)}.btn-danger:hover{background:var(--danger-hover)}.btn-sm{padding:6px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-primary);border-radius:8px;outline:none;padding:10px 12px;font-size:14px;transition:border .2s}input:focus,textarea:focus,select:focus{border-color:var(--primary-color)}input::placeholder,textarea::placeholder{color:var(--text-muted)}.form-group{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.form-row{flex-wrap:wrap;gap:12px;display:flex}.badge{background:var(--badge-bg);color:var(--badge-color);border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px}a{color:var(--primary-color)}.app[data-v-11e0fc42]{background:var(--bg-color);min-height:100vh}.nav[data-v-11e0fc42]{z-index:100;background:var(--card-bg);height:56px;box-shadow:0 1px 3px var(--shadow);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.brand[data-v-11e0fc42]{color:var(--primary-color);font-size:18px;font-weight:700}.links[data-v-11e0fc42]{align-items:center;gap:8px;display:flex}.links a[data-v-11e0fc42]{color:var(--text-secondary);border-radius:6px;padding:6px 14px;font-size:14px;text-decoration:none;transition:all .2s}.links a[data-v-11e0fc42]:hover{background:var(--secondary-bg);color:var(--text-primary)}.links a.router-link-active[data-v-11e0fc42]{background:var(--primary-light);color:var(--primary-color);font-weight:500}.theme-btn[data-v-11e0fc42]{background:var(--secondary-bg);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;transition:all .2s;display:flex}.theme-btn[data-v-11e0fc42]:hover{background:var(--secondary-hover)}.main[data-v-11e0fc42]{max-width:960px;margin:0 auto;padding:24px}.subtitle[data-v-2684178d]{color:var(--text-tertiary);margin-top:-12px;margin-bottom:12px}.summary[data-v-2684178d]{text-align:center;grid-template-columns:repeat(4,1fr);gap:16px;display:grid}@media (width<=640px){.summary[data-v-2684178d]{grid-template-columns:repeat(2,1fr)}}.summary-value[data-v-2684178d]{color:var(--primary-color);font-size:26px;font-weight:700}.summary-label[data-v-2684178d]{color:var(--text-tertiary);margin-top:4px;font-size:13px}.mode-card[data-v-2684178d]{padding:16px 20px}.mode-title[data-v-2684178d]{color:var(--text-secondary);margin-bottom:12px;font-size:14px;font-weight:600}.mode-options[data-v-2684178d]{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=640px){.mode-options[data-v-2684178d]{grid-template-columns:1fr}}.mode-option[data-v-2684178d]{background:var(--card-bg);border:2px solid var(--border-color);cursor:pointer;text-align:center;border-radius:12px;padding:12px;transition:all .2s}.mode-option.active[data-v-2684178d]{border-color:var(--primary-color);background:var(--primary-light)}.mode-value[data-v-2684178d]{color:var(--text-primary);margin-bottom:2px;font-size:18px;font-weight:700}.mode-desc[data-v-2684178d]{color:var(--text-tertiary);font-size:12px}.plan-section[data-v-2684178d]{margin-top:8px}.section-header[data-v-2684178d]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-header h2[data-v-2684178d]{margin:0;font-size:18px}.task-list[data-v-2684178d]{flex-direction:column;gap:16px;display:flex}.task-item[data-v-2684178d]{gap:16px;transition:all .2s;display:flex}.task-item.done[data-v-2684178d]{opacity:.7;background:var(--secondary-bg)}.task-item.done .task-title[data-v-2684178d]{color:var(--text-muted);text-decoration:line-through}.task-number[data-v-2684178d]{background:var(--primary-color);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-weight:600;display:flex}.task-content[data-v-2684178d]{flex:1;min-width:0}.task-header[data-v-2684178d]{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.task-type[data-v-2684178d]{color:var(--text-tertiary);margin-bottom:4px;font-size:12px}.task-title[data-v-2684178d]{color:var(--text-primary);font-size:16px;font-weight:600}.task-detail[data-v-2684178d]{background:var(--secondary-bg);border-radius:10px;margin-bottom:14px;padding:14px}.word-chips[data-v-2684178d]{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.word-chip[data-v-2684178d]{background:var(--card-bg);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:13px}.word-chip.more[data-v-2684178d]{background:var(--badge-bg);color:var(--badge-color)}.lesson-info[data-v-2684178d]{align-items:center;gap:8px;margin-bottom:10px;display:flex}.lesson-unit[data-v-2684178d]{color:var(--text-secondary);font-size:14px;font-weight:500}.task-steps[data-v-2684178d]{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.step[data-v-2684178d]{color:var(--text-tertiary);padding-left:16px;font-size:13px;position:relative}.step[data-v-2684178d]:before{content:"•";color:var(--primary-color);position:absolute;left:4px}.task-actions[data-v-2684178d]{justify-content:flex-end;display:flex}.empty-state[data-v-2684178d]{text-align:center;padding:40px 20px}.empty-state p[data-v-2684178d]{color:var(--text-muted);margin:8px 0 14px}.quick-actions[data-v-ef0ee233],.filter-row[data-v-ef0ee233]{flex-wrap:wrap;gap:12px;display:flex}.stats-bar[data-v-ef0ee233]{color:var(--text-tertiary);font-size:14px}.word-card[data-v-ef0ee233]{margin-bottom:12px}.word-header[data-v-ef0ee233]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.word-title-line[data-v-ef0ee233]{align-items:center;gap:8px;display:flex}.word-title[data-v-ef0ee233]{color:var(--text-primary);font-size:18px;font-weight:600}.speak-btn[data-v-ef0ee233]{cursor:pointer;background:#ffffffe6;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-top:12px;font-size:18px;transition:all .2s;display:flex}.speak-btn[data-v-ef0ee233]:hover{background:#fff;transform:scale(1.1)}.speak-btn-inline[data-v-ef0ee233]{cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:14px;transition:all .2s}.speak-btn-inline[data-v-ef0ee233]:hover{opacity:1;background:var(--border-color)}.speak-btn[data-v-ef0ee233]:disabled,.speak-btn-inline[data-v-ef0ee233]:disabled{opacity:.5;cursor:not-allowed}.speech-error[data-v-ef0ee233]{text-align:center;color:var(--danger-color);background:var(--danger-bg);border-radius:8px;padding:10px;font-size:13px}.word-meaning[data-v-ef0ee233]{color:var(--text-secondary);margin-bottom:8px}.word-context[data-v-ef0ee233]{color:var(--text-tertiary);border-left:3px solid var(--border-color);margin-bottom:12px;padding-left:12px;font-size:13px;font-style:italic}.word-footer[data-v-ef0ee233]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.word-tags[data-v-ef0ee233]{flex-wrap:wrap;gap:6px;display:flex}.word-meta[data-v-ef0ee233]{color:var(--text-muted);gap:12px;font-size:12px;display:flex}.test-overlay[data-v-ef0ee233]{flex-direction:column;gap:20px;display:flex}.test-header[data-v-ef0ee233]{justify-content:space-between;align-items:center;display:flex}.test-progress[data-v-ef0ee233]{color:var(--text-tertiary);font-size:14px}.flash-card[data-v-ef0ee233]{background:linear-gradient(135deg, var(--primary-light) 0%, var(--primary-light) 100%);cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;min-height:240px;padding:32px;transition:all .3s;display:flex}.flash-card[data-v-ef0ee233]:hover{box-shadow:0 8px 24px #2563eb1f}.flash-card-word[data-v-ef0ee233]{color:var(--primary-hover);margin-bottom:12px;font-size:32px;font-weight:700}.flash-card-hint[data-v-ef0ee233]{color:#60a5fa;font-size:13px}.flash-card.flipped[data-v-ef0ee233]{background:linear-gradient(135deg, #f0fdf4 0%, var(--success-bg) 100%)}.flash-card-meaning[data-v-ef0ee233]{color:#166534;margin-bottom:16px;font-size:24px;font-weight:600}.flash-card-context[data-v-ef0ee233]{color:#15803d;font-size:14px;font-style:italic}.test-actions[data-v-ef0ee233]{justify-content:center;gap:16px;display:flex}.test-actions .btn[data-v-ef0ee233]{flex:1;max-width:200px;padding:14px;font-size:16px}.test-hint[data-v-ef0ee233]{text-align:center;color:var(--text-muted);font-size:14px}.test-result[data-v-ef0ee233]{text-align:center;padding:40px 24px}.result-stats[data-v-ef0ee233]{grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0;display:grid}.result-value[data-v-ef0ee233]{color:var(--primary-color);font-size:36px;font-weight:700}.result-label[data-v-ef0ee233]{color:var(--text-tertiary);margin-top:4px;font-size:13px}.spell-card[data-v-ef0ee233]{text-align:center;background:var(--secondary-bg);border-radius:12px;margin-bottom:16px;padding:24px 16px}.spell-label[data-v-ef0ee233]{color:var(--text-muted);margin-bottom:8px;font-size:12px}.spell-meaning[data-v-ef0ee233]{color:var(--text-primary);margin-bottom:8px;font-size:22px;font-weight:600}.spell-context[data-v-ef0ee233]{color:var(--text-tertiary);margin-bottom:16px;font-size:13px;font-style:italic}.spell-input-row[data-v-ef0ee233]{justify-content:center;gap:8px;margin-top:8px;display:flex}.spell-input-row input[data-v-ef0ee233]{text-align:center;width:260px;font-size:16px}.spell-result[data-v-ef0ee233]{color:var(--danger-color);padding:10px 0;font-size:16px;font-weight:600}.spell-result.right[data-v-ef0ee233]{color:var(--success-color)}.reader-actions[data-v-b05a1024]{gap:10px;display:flex}.reader-layout[data-v-b05a1024]{grid-template-columns:1fr 320px;gap:16px;display:grid}@media (width<=768px){.reader-layout[data-v-b05a1024]{grid-template-columns:1fr}}.reader-text[data-v-b05a1024]{color:var(--text-secondary);font-size:16px;line-height:2}.word[data-v-b05a1024]{cursor:pointer;border-radius:4px;margin-right:6px;padding:2px 4px;transition:background .15s;display:inline-block}.word[data-v-b05a1024]:hover{background:var(--primary-light)}.word.selected[data-v-b05a1024]{background:var(--primary-color);color:#fff}.word.known[data-v-b05a1024]{background:var(--success-bg);color:#166534;border-bottom:2px solid var(--success-color)}.word.known[data-v-b05a1024]:hover{background:#bbf7d0}.word-panel[data-v-b05a1024]{align-self:start;position:sticky;top:72px}.panel-actions[data-v-b05a1024]{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.meaning-source[data-v-b05a1024]{color:var(--primary-color);margin-left:6px;font-size:12px;font-weight:400}.input-hint[data-v-b05a1024]{color:var(--text-muted);margin-top:4px;font-size:12px}.recent-list[data-v-b05a1024]{flex-wrap:wrap;gap:8px;display:flex}.speech-error[data-v-b05a1024]{background:var(--danger-bg);color:var(--danger-color);border-radius:6px;margin-top:10px;padding:8px 12px;font-size:12px}.level-card[data-v-8a034f1e]{background:linear-gradient(135deg, var(--card-bg) 0%, var(--card-bg) 100%)}.level-row[data-v-8a034f1e]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.level-code[data-v-8a034f1e]{color:var(--primary-color);font-size:22px;font-weight:700}.level-cefr[data-v-8a034f1e]{color:var(--text-tertiary);margin-left:8px;font-size:13px}.level-dates[data-v-8a034f1e]{color:var(--text-tertiary);font-size:13px}.level-bar[data-v-8a034f1e]{background:var(--secondary-bg);border-radius:5px;height:10px;overflow:hidden}.level-fill[data-v-8a034f1e]{background:var(--primary-color);border-radius:5px;height:100%;transition:width .4s}.level-text[data-v-8a034f1e]{color:var(--text-tertiary);margin-top:8px;font-size:13px}.radar-wrap[data-v-8a034f1e]{justify-content:center;display:flex}.radar[data-v-8a034f1e]{width:300px;max-width:100%}.radar-ring[data-v-8a034f1e]{fill:none;stroke:var(--border-color);stroke-width:1px}.radar-axis[data-v-8a034f1e]{stroke:var(--border-color);stroke-width:1px}.radar-value[data-v-8a034f1e]{fill:#2563eb40;stroke:var(--primary-color);stroke-width:2px}.radar-label[data-v-8a034f1e]{fill:var(--text-tertiary);font-size:11px}.radar-tip[data-v-8a034f1e]{text-align:center;color:var(--text-muted);margin:8px 0 0;font-size:12px}.placement-history[data-v-8a034f1e]{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.placement-item[data-v-8a034f1e]{align-items:center;gap:10px;font-size:14px;display:flex}.placement-date[data-v-8a034f1e]{color:var(--text-tertiary);font-size:13px}.placement-detail[data-v-8a034f1e],.retest-tip[data-v-8a034f1e]{color:var(--text-muted);font-size:13px}.stats-grid[data-v-8a034f1e]{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;display:grid}@media (width<=768px){.stats-grid[data-v-8a034f1e]{grid-template-columns:repeat(2,1fr)}}.stat-card[data-v-8a034f1e]{text-align:center}.stat-value[data-v-8a034f1e]{color:var(--primary-color);font-size:32px;font-weight:700}.stat-label[data-v-8a034f1e]{color:var(--text-tertiary);margin-top:6px;font-size:13px}.detail-list[data-v-8a034f1e]{flex-direction:column;gap:16px;display:flex}.detail-section h4[data-v-8a034f1e]{color:var(--text-tertiary);margin:0 0 8px;font-size:14px}.detail-item[data-v-8a034f1e]{border-bottom:1px solid var(--border-light);gap:12px;padding:8px 0;font-size:14px;display:flex}.detail-time[data-v-8a034f1e]{width:50px;color:var(--text-muted);flex-shrink:0}.detail-type[data-v-8a034f1e]{width:60px;color:var(--primary-color);flex-shrink:0}.detail-title[data-v-8a034f1e]{color:var(--text-secondary);flex:1}.word-tags[data-v-8a034f1e]{flex-wrap:wrap;gap:6px;display:flex}.badge-known[data-v-8a034f1e]{background:var(--success-bg);color:var(--success-color)}.badge-unknown[data-v-8a034f1e]{background:var(--danger-bg);color:var(--danger-color)}.history-list[data-v-8a034f1e]{flex-direction:column;gap:10px;display:flex}.history-item[data-v-8a034f1e]{cursor:pointer;flex-direction:column;display:flex}.history-main[data-v-8a034f1e]{align-items:center;gap:12px;display:flex}.history-date[data-v-8a034f1e]{width:60px;color:var(--text-tertiary);font-size:13px}.history-bar-wrap[data-v-8a034f1e]{background:var(--border-color);border-radius:6px;flex:1;height:12px;overflow:hidden}.history-bar[data-v-8a034f1e]{background:var(--text-muted);border-radius:6px;height:100%;transition:width .3s}.history-bar.done[data-v-8a034f1e]{background:var(--success-color)}.history-count[data-v-8a034f1e]{text-align:right;width:50px;color:var(--text-tertiary);font-size:13px}.history-toggle[data-v-8a034f1e]{text-align:center;width:20px;color:var(--text-muted);font-size:12px}.history-detail[data-v-8a034f1e]{background:var(--secondary-bg);border-radius:8px;margin-top:12px;padding:12px}.empty-state[data-v-8a034f1e]{text-align:center;color:var(--text-muted);padding:24px}.speech-error[data-v-aa8faa94]{background:var(--danger-bg);color:var(--danger-color);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.tabs[data-v-aa8faa94]{flex-wrap:wrap;gap:8px;display:flex}.filter-bar[data-v-aa8faa94]{flex-wrap:wrap;gap:12px;display:flex}.content-list[data-v-aa8faa94]{flex-direction:column;gap:12px;display:flex}.content-item[data-v-aa8faa94]{flex-direction:column;gap:10px;display:flex}.content-header[data-v-aa8faa94]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.content-title[data-v-aa8faa94]{margin-bottom:6px;font-size:16px;font-weight:600}.content-meta[data-v-aa8faa94]{flex-wrap:wrap;gap:6px;display:flex}.content-preview[data-v-aa8faa94]{color:var(--text-tertiary);font-size:13px;line-height:1.5}.stats-bar[data-v-aa8faa94]{margin-bottom:12px}.vocab-grid[data-v-aa8faa94]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.vocab-item[data-v-aa8faa94]{flex-direction:column;gap:6px;display:flex}.vocab-word-line[data-v-aa8faa94]{align-items:center;gap:8px;display:flex}.vocab-word[data-v-aa8faa94]{font-size:15px;font-weight:600}.vocab-meaning[data-v-aa8faa94]{color:var(--text-tertiary);font-size:13px}.speak-btn-inline[data-v-aa8faa94]{cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:13px;transition:all .2s}.speak-btn-inline[data-v-aa8faa94]:hover{opacity:1;background:var(--border-color)}.speak-btn-inline[data-v-aa8faa94]:disabled{opacity:.3;cursor:not-allowed}.vocab-tags[data-v-aa8faa94]{flex-wrap:wrap;gap:4px;display:flex}.template-card[data-v-aa8faa94]{margin-bottom:16px}.template-title[data-v-aa8faa94]{margin-bottom:4px;font-size:16px;font-weight:600}.template-desc[data-v-aa8faa94]{color:var(--text-tertiary);margin-bottom:12px;font-size:13px}.template-section[data-v-aa8faa94]{margin-top:12px}.template-section ul[data-v-aa8faa94]{color:var(--text-tertiary);margin:6px 0 0;padding-left:18px}.template-section pre[data-v-aa8faa94]{background:var(--secondary-bg);white-space:pre-wrap;color:var(--text-secondary);border-radius:8px;margin-top:6px;padding:12px;font-size:13px;line-height:1.6}.scenario[data-v-aa8faa94]{margin-bottom:16px}.pattern-group[data-v-aa8faa94]{margin-bottom:24px}.pattern-group h3[data-v-aa8faa94]{color:var(--primary-color);margin-bottom:10px}.pattern-list[data-v-aa8faa94]{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.pattern-item[data-v-aa8faa94]{background:var(--secondary-bg);border-radius:8px;padding:10px 12px}.pattern-en[data-v-aa8faa94]{margin-bottom:2px;font-weight:500}.pattern-zh[data-v-aa8faa94]{color:var(--text-tertiary);font-size:13px}.subtitle[data-v-24df5f86]{color:var(--text-tertiary);margin-top:-12px;margin-bottom:20px}.info-row[data-v-24df5f86]{border-bottom:1px solid var(--border-light);justify-content:space-between;padding:8px 0;font-size:14px;display:flex}.info-row[data-v-24df5f86]:last-of-type{border-bottom:none;margin-bottom:12px}.status-ok[data-v-24df5f86]{color:var(--success-color);font-weight:500}.status-error[data-v-24df5f86]{color:var(--danger-color);font-weight:500}.voice-list[data-v-24df5f86]{flex-direction:column;gap:8px;max-height:300px;display:flex;overflow-y:auto}.voice-item[data-v-24df5f86]{background:var(--secondary-bg);border-radius:6px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;display:flex}.voice-name[data-v-24df5f86]{color:var(--text-primary)}.test-actions[data-v-24df5f86]{flex-wrap:wrap;gap:10px;display:flex}.result-box[data-v-24df5f86]{border-radius:8px;margin-top:14px;padding:12px;font-size:14px}.result-box.success[data-v-24df5f86]{background:var(--success-bg);color:var(--success-color)}.result-box.error[data-v-24df5f86]{background:var(--danger-bg);color:var(--danger-color)}.warning-box[data-v-24df5f86]{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;margin-top:14px;padding:14px}.warning-box strong[data-v-24df5f86]{margin-bottom:6px;display:block}.warning-box p[data-v-24df5f86]{margin:0;font-size:13px;line-height:1.6}.faq-list[data-v-24df5f86]{flex-direction:column;gap:16px;display:flex}.faq-item[data-v-24df5f86]{background:var(--secondary-bg);border-radius:8px;padding:12px}.faq-q[data-v-24df5f86]{color:var(--text-primary);margin-bottom:8px;font-weight:600}.faq-a[data-v-24df5f86]{color:var(--text-tertiary);font-size:13px;line-height:1.8}.hero h1[data-v-9b9abf6a]{margin-bottom:8px}.hero-desc[data-v-9b9abf6a]{color:var(--text-secondary);margin:0 0 16px}.flow[data-v-9b9abf6a]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.flow-item[data-v-9b9abf6a]{background:var(--primary-light);color:var(--primary-color);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:500}.flow-arrow[data-v-9b9abf6a]{color:var(--text-muted)}.hint[data-v-9b9abf6a]{color:var(--text-tertiary);margin-top:-8px;font-size:13px}.goal-options[data-v-9b9abf6a]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.goal-option[data-v-9b9abf6a]{border:2px solid var(--border-color);cursor:pointer;border-radius:12px;padding:14px;transition:all .2s}.goal-option[data-v-9b9abf6a]:hover{border-color:var(--primary-color)}.goal-option.active[data-v-9b9abf6a]{border-color:var(--primary-color);background:var(--primary-light)}.goal-label[data-v-9b9abf6a]{color:var(--text-primary);margin-bottom:4px;font-weight:600}.goal-desc[data-v-9b9abf6a]{color:var(--text-tertiary);font-size:12px}.minute-options[data-v-9b9abf6a]{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=640px){.minute-options[data-v-9b9abf6a]{grid-template-columns:1fr}}.minute-option[data-v-9b9abf6a]{border:2px solid var(--border-color);cursor:pointer;text-align:center;border-radius:12px;padding:14px;transition:all .2s}.minute-option.active[data-v-9b9abf6a]{border-color:var(--primary-color);background:var(--primary-light)}.minute-value[data-v-9b9abf6a]{color:var(--text-primary);font-size:18px;font-weight:700}.minute-desc[data-v-9b9abf6a]{color:var(--text-tertiary);margin-top:4px;font-size:12px}.next-card[data-v-9b9abf6a]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.next-info[data-v-9b9abf6a]{color:var(--text-secondary);flex:1;min-width:240px;font-size:14px}.intro p[data-v-38adb976]{color:var(--text-secondary)}.part-list[data-v-38adb976]{flex-direction:column;gap:12px;margin:16px 0;display:flex}.part-item[data-v-38adb976]{align-items:flex-start;gap:12px;display:flex}.part-num[data-v-38adb976]{background:var(--primary-color);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-weight:600;display:flex}.part-title[data-v-38adb976]{color:var(--text-primary);font-weight:600}.part-desc[data-v-38adb976]{color:var(--text-tertiary);margin-top:2px;font-size:13px}.honest-tip[data-v-38adb976]{color:var(--text-muted);font-size:13px}.progress-line[data-v-38adb976]{color:var(--text-tertiary);justify-content:space-between;margin-bottom:8px;font-size:13px;display:flex}.progress-bar[data-v-38adb976]{background:var(--secondary-bg);border-radius:3px;height:6px;margin-bottom:24px;overflow:hidden}.progress-fill[data-v-38adb976]{background:var(--primary-color);height:100%;transition:width .3s}.vocab-card[data-v-38adb976]{text-align:center;padding:32px 0}.vocab-word[data-v-38adb976]{color:var(--text-primary);margin-bottom:8px;font-size:36px;font-weight:700}.vocab-question[data-v-38adb976]{color:var(--text-tertiary)}.answer-actions[data-v-38adb976]{justify-content:center;gap:16px;display:flex}.grammar-q[data-v-38adb976]{color:var(--text-primary);margin-bottom:20px;font-size:18px;font-weight:600}.grammar-options[data-v-38adb976]{flex-direction:column;gap:10px;display:flex}.grammar-option[data-v-38adb976]{text-align:left;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:12px 16px;font-size:15px;transition:all .15s}.grammar-option[data-v-38adb976]:hover{border-color:var(--primary-color);background:var(--primary-light)}.level-card[data-v-38adb976]{text-align:center}.level-label[data-v-38adb976]{color:var(--text-tertiary);font-size:14px}.level-code[data-v-38adb976]{color:var(--primary-color);margin:8px 0;font-size:40px;font-weight:700}.level-cefr[data-v-38adb976]{font-size:14px}.level-desc[data-v-38adb976]{color:var(--text-secondary);margin:16px 0}.result-grid[data-v-38adb976]{justify-content:center;gap:48px;display:flex}.result-value[data-v-38adb976]{color:var(--text-primary);font-size:24px;font-weight:700}.result-label[data-v-38adb976]{color:var(--text-tertiary);margin-top:4px;font-size:13px}.next-steps[data-v-38adb976]{color:var(--text-secondary);flex-direction:column;gap:10px;margin-bottom:16px;font-size:14px;display:flex}.level-overview[data-v-7a44c3a7]{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.level-code[data-v-7a44c3a7]{color:var(--primary-color);font-size:24px;font-weight:700}.level-desc[data-v-7a44c3a7]{color:var(--text-secondary);margin:6px 0 10px;font-size:14px}.goal-tags[data-v-7a44c3a7]{flex-wrap:wrap;gap:6px;display:flex}.level-stats[data-v-7a44c3a7]{text-align:center;gap:32px;display:flex}.stat-value[data-v-7a44c3a7]{color:var(--text-primary);font-size:24px;font-weight:700}.stat-label[data-v-7a44c3a7]{color:var(--text-tertiary);margin-top:2px;font-size:12px}.level-tabs[data-v-7a44c3a7]{gap:8px;margin-bottom:16px;display:flex}.level-tab[data-v-7a44c3a7]{border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s;position:relative}.level-tab.active[data-v-7a44c3a7]{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.current-dot[data-v-7a44c3a7]{background:var(--success-color);border:2px solid var(--card-bg);border-radius:50%;width:10px;height:10px;position:absolute;top:-3px;right:-3px}.unit-list[data-v-7a44c3a7]{flex-direction:column;gap:12px;display:flex}.unit-card[data-v-7a44c3a7]{align-items:center;gap:16px;margin-bottom:0;display:flex}.unit-card.locked[data-v-7a44c3a7]{opacity:.6}.unit-card.done[data-v-7a44c3a7]{background:var(--secondary-bg)}.unit-card.current[data-v-7a44c3a7]{border-left:4px solid var(--primary-color)}.unit-num[data-v-7a44c3a7]{background:var(--primary-light);width:36px;height:36px;color:var(--primary-color);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.unit-card.done .unit-num[data-v-7a44c3a7]{background:var(--success-bg);color:var(--success-color)}.unit-body[data-v-7a44c3a7]{flex:1;min-width:0}.unit-header[data-v-7a44c3a7]{align-items:center;gap:8px;margin-bottom:4px;display:flex}.unit-title[data-v-7a44c3a7]{color:var(--text-primary);font-weight:600}.unit-meta[data-v-7a44c3a7]{color:var(--text-tertiary);gap:6px;font-size:12px;display:flex}.unit-progress[data-v-7a44c3a7]{align-items:center;gap:8px;margin-top:8px;display:flex}.mini-progress[data-v-7a44c3a7]{background:var(--secondary-bg);border-radius:3px;width:120px;height:5px;overflow:hidden}.mini-fill[data-v-7a44c3a7]{background:var(--primary-color);height:100%}.mini-text[data-v-7a44c3a7]{color:var(--text-tertiary);font-size:12px}.unit-action[data-v-7a44c3a7]{flex-shrink:0}.lock-icon[data-v-7a44c3a7]{font-size:18px}.quiz-block[data-v-9edf3892]{border-top:1px solid var(--border-light);margin-top:16px;padding-top:16px}.q-progress[data-v-9edf3892]{color:var(--text-muted);margin-bottom:8px;font-size:12px}.q-text[data-v-9edf3892]{color:var(--text-primary);margin-bottom:14px;font-size:16px;font-weight:600;line-height:1.6}.q-options[data-v-9edf3892]{flex-direction:column;gap:8px;display:flex}.q-option[data-v-9edf3892]{text-align:left;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:10px 14px;font-size:14px;transition:all .15s}.q-option[data-v-9edf3892]:hover:not(:disabled){border-color:var(--primary-color)}.q-option.right[data-v-9edf3892]{border-color:var(--success-color);background:var(--success-bg);color:var(--success-color)}.q-option.wrong[data-v-9edf3892]{border-color:var(--danger-color);background:var(--danger-bg);color:var(--danger-color)}.q-option[data-v-9edf3892]:disabled{cursor:default;opacity:.9}.q-feedback[data-v-9edf3892]{color:var(--danger-color);margin-top:12px;font-size:14px}.q-feedback.right[data-v-9edf3892]{color:var(--success-color)}.q-nav[data-v-9edf3892]{justify-content:flex-end;margin-top:12px;display:flex}.q-result[data-v-9edf3892]{text-align:center;padding:16px 0}.q-score[data-v-9edf3892]{color:var(--primary-color);font-size:40px;font-weight:700}.q-score-unit[data-v-9edf3892]{font-size:16px}.q-detail[data-v-9edf3892]{color:var(--text-tertiary);margin:6px 0 14px}.recorder[data-v-df00fe58]{margin:12px 0}.recorder-tip[data-v-df00fe58]{background:var(--secondary-bg);color:var(--text-tertiary);border-radius:8px;padding:10px 14px;font-size:13px}.recorder-actions[data-v-df00fe58]{gap:8px;display:flex}.recorder-status[data-v-df00fe58]{color:var(--danger-color);margin-top:8px;font-size:13px}.recorder-audio[data-v-df00fe58]{width:100%;max-width:420px;height:36px;margin-top:10px;display:block}.recorder-error[data-v-df00fe58]{color:var(--danger-color);margin-top:8px;font-size:13px}.shadow-progress[data-v-d8253f2d]{color:var(--text-tertiary);justify-content:space-between;align-items:center;margin-bottom:14px;font-size:13px;display:flex}.dots[data-v-d8253f2d]{gap:6px;display:flex}.dot[data-v-d8253f2d]{background:var(--secondary-bg);cursor:pointer;border-radius:50%;width:10px;height:10px}.dot.visited[data-v-d8253f2d]{background:var(--primary-light)}.dot.active[data-v-d8253f2d]{background:var(--primary-color)}.pattern-card[data-v-d8253f2d]{background:var(--secondary-bg);text-align:center;border-radius:10px;padding:18px}.pattern-zh[data-v-d8253f2d]{color:var(--text-tertiary);margin-bottom:8px;font-size:13px}.pattern-en[data-v-d8253f2d]{color:var(--text-primary);font-size:20px;font-weight:600;line-height:1.5}.speak-btn-inline[data-v-d8253f2d]{cursor:pointer;background:0 0;border:none;margin-left:6px;font-size:16px}.speak-btn-inline[data-v-d8253f2d]:disabled{opacity:.4;cursor:not-allowed}.shadow-nav[data-v-d8253f2d]{justify-content:space-between;margin-top:8px;display:flex}.speech-error[data-v-d8253f2d]{background:var(--danger-bg);color:var(--danger-color);border-radius:8px;margin-top:10px;padding:8px 12px;font-size:13px}.wp-prompt[data-v-82bf953f]{color:var(--text-secondary);background:var(--secondary-bg);border-left:3px solid var(--primary-color);border-radius:8px;margin-bottom:14px;padding:12px 14px;font-size:15px;font-weight:500;line-height:1.6}.wp-textarea[data-v-82bf953f]{resize:vertical;width:100%;line-height:1.7}.wp-meta[data-v-82bf953f]{color:var(--text-muted);text-align:right;margin-top:6px;font-size:12px}.wp-meta .enough[data-v-82bf953f]{color:var(--success-color)}.wp-model[data-v-82bf953f]{margin:14px 0}.model-text[data-v-82bf953f]{background:var(--primary-light);color:var(--text-secondary);border-radius:8px;margin-top:10px;padding:12px 14px;font-size:14px;line-height:1.7}.checklist-title[data-v-82bf953f]{color:var(--text-tertiary);margin-bottom:8px;font-size:13px}.check-item[data-v-82bf953f]{color:var(--text-secondary);cursor:pointer;margin-bottom:6px;font-size:14px;display:block}.check-item input[data-v-82bf953f]{margin-right:8px}.btn-primary[data-v-82bf953f]{margin-top:14px}.lesson-header[data-v-f194e1b5]{margin-bottom:16px}.back-link[data-v-f194e1b5]{color:var(--text-tertiary);font-size:13px;text-decoration:none}.back-link[data-v-f194e1b5]:hover{color:var(--primary-color)}.lesson-header h1[data-v-f194e1b5]{margin:8px 0;font-size:24px}.lesson-meta[data-v-f194e1b5]{flex-wrap:wrap;gap:8px;display:flex}.done-badge[data-v-f194e1b5]{background:var(--success-bg);color:var(--success-color)}.step-nav[data-v-f194e1b5]{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.step-chip[data-v-f194e1b5]{border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-secondary);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:all .2s;display:inline-flex}.step-chip.active[data-v-f194e1b5]{border-color:var(--primary-color);background:var(--primary-light);color:var(--primary-color);font-weight:500}.step-check[data-v-f194e1b5]{background:var(--secondary-bg);width:18px;height:18px;color:var(--text-tertiary);border-radius:50%;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.step-chip.done .step-check[data-v-f194e1b5]{background:var(--success-bg);color:var(--success-color)}.tip[data-v-f194e1b5]{color:var(--text-tertiary);margin-top:-8px;font-size:13px}.vocab-grid[data-v-f194e1b5]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:16px;display:grid}.vocab-item[data-v-f194e1b5]{border:1px solid var(--border-color);border-radius:10px;padding:12px}.vocab-head[data-v-f194e1b5]{justify-content:space-between;align-items:center;display:flex}.vocab-word[data-v-f194e1b5]{color:var(--text-primary);font-weight:700}.vocab-meaning[data-v-f194e1b5]{color:var(--text-secondary);margin:4px 0;font-size:13px}.vocab-example[data-v-f194e1b5]{color:var(--text-muted);font-size:12px;line-height:1.5}.speak-btn-inline[data-v-f194e1b5]{cursor:pointer;background:0 0;border:none;font-size:14px}.speak-btn-inline[data-v-f194e1b5]:disabled{opacity:.4;cursor:not-allowed}.inline-tip[data-v-f194e1b5]{color:var(--success-color);margin-left:12px;font-size:13px}.step-done-tip[data-v-f194e1b5]{color:var(--success-color);margin-top:12px;font-size:13px}.reading-tools[data-v-f194e1b5]{align-items:center;gap:12px;margin-bottom:12px;display:flex}.word-count[data-v-f194e1b5]{color:var(--text-muted);font-size:12px}.reading-body[data-v-f194e1b5]{color:var(--text-secondary);white-space:pre-wrap;font-size:15px;line-height:1.9}.listening-player[data-v-f194e1b5]{align-items:center;gap:10px;margin-bottom:8px;display:flex}.script-box[data-v-f194e1b5]{background:var(--secondary-bg);color:var(--text-secondary);white-space:pre-wrap;border-radius:8px;margin:12px 0;padding:12px 14px;font-size:14px;line-height:1.8}.output-prompt[data-v-f194e1b5]{color:var(--text-secondary);background:var(--secondary-bg);border-left:3px solid var(--primary-color);border-radius:8px;margin-bottom:6px;padding:12px 14px;font-size:15px;font-weight:500;line-height:1.6}.model-answer[data-v-f194e1b5]{margin:12px 0;font-size:14px}.model-answer summary[data-v-f194e1b5]{cursor:pointer;color:var(--primary-color);font-size:13px}.model-answer p[data-v-f194e1b5]{background:var(--primary-light);color:var(--text-secondary);border-radius:8px;margin-top:10px;padding:12px 14px;line-height:1.7}.checklist[data-v-f194e1b5]{margin:12px 0}.checklist-title[data-v-f194e1b5]{color:var(--text-tertiary);margin-bottom:8px;font-size:13px}.check-item[data-v-f194e1b5]{color:var(--text-secondary);cursor:pointer;margin-bottom:6px;font-size:14px;display:block}.check-item input[data-v-f194e1b5]{margin-right:8px}.best-score[data-v-f194e1b5]{color:var(--text-secondary);margin-bottom:4px;font-size:13px}.pass-text[data-v-f194e1b5]{color:var(--success-color)}.fail-text[data-v-f194e1b5]{color:var(--text-muted)}.pass-banner[data-v-f194e1b5]{background:var(--success-bg);color:var(--success-color);border-radius:8px;margin-top:14px;padding:12px 16px;font-size:14px}.promote-text[data-v-f194e1b5]{margin:6px 0;font-weight:600}.lesson-nav[data-v-f194e1b5]{justify-content:space-between;margin-top:8px;display:flex}.empty-state[data-v-f194e1b5]{text-align:center;padding:40px 20px}.goal-chips[data-v-0b22293a]{flex-wrap:wrap;gap:8px;display:flex}.goal-chip[data-v-0b22293a]{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;transition:all .2s}.goal-chip.active[data-v-0b22293a]{background:var(--primary-light);border-color:var(--primary-color);color:var(--primary-color);font-weight:500}.minute-row[data-v-0b22293a]{gap:8px;display:flex}.save-tip[data-v-0b22293a]{color:var(--success-color);margin-top:12px;font-size:13px}.level-row[data-v-0b22293a]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.level-badge[data-v-0b22293a]{color:var(--primary-color);font-size:18px;font-weight:700}.level-cefr[data-v-0b22293a]{color:var(--text-tertiary);margin-left:6px;font-size:13px}.cycle-info[data-v-0b22293a]{color:var(--text-tertiary);margin-top:10px;font-size:13px}.history-mini[data-v-0b22293a]{color:var(--text-muted);margin-top:6px;font-size:13px}.card-desc[data-v-0b22293a]{color:var(--text-tertiary);margin-top:-8px;font-size:13px}.data-actions[data-v-0b22293a]{flex-wrap:wrap;gap:8px;display:flex}.import-btn[data-v-0b22293a]{cursor:pointer}
