.grammar-text[data-v-7469d7f6]{white-space:pre-wrap}.grammar-error[data-v-7469d7f6]{text-decoration:underline wavy #FF6B6B;text-decoration-thickness:2px;cursor:help;position:relative;background:#ff6b6b1a;padding:1px 3px;border-radius:3px}.grammar-error:hover .error-tooltip[data-v-7469d7f6]{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.error-tooltip[data-v-7469d7f6]{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);background:#3d2c2c;color:#fff;padding:8px 12px;border-radius:10px;font-size:13px;white-space:nowrap;opacity:0;pointer-events:none;transition:all .2s var(--ease-out);z-index:100;box-shadow:0 4px 16px #0003;display:flex;flex-direction:column;gap:4px}.tooltip-correct[data-v-7469d7f6]{color:#6bcb77;font-weight:600}.tooltip-explain[data-v-7469d7f6]{color:#d4d4d4;font-size:12px}.library-picker[data-v-7cc7db8f]{padding:20px}.picker-header[data-v-7cc7db8f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.picker-header h3[data-v-7cc7db8f]{font-size:16px;margin:0}.clear-btn[data-v-7cc7db8f]{background:none;border:1px solid var(--border);color:var(--muted);padding:4px 10px;border-radius:12px;font-size:12px;cursor:pointer}.clear-btn[data-v-7cc7db8f]:hover{color:var(--error);border-color:var(--error)}.hint[data-v-7cc7db8f]{color:var(--muted);font-size:13px;margin:0 0 16px}.active-banner[data-v-7cc7db8f]{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;padding:14px 16px;border-radius:12px;display:flex;gap:12px;align-items:center;margin-bottom:16px}.active-icon[data-v-7cc7db8f]{font-size:32px}.active-name[data-v-7cc7db8f]{font-weight:700;font-size:15px}.active-desc[data-v-7cc7db8f]{font-size:12px;opacity:.9;margin-top:2px}.topic-grid[data-v-7cc7db8f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.topic-card[data-v-7cc7db8f]{background:#fff;border:2px solid var(--border);border-radius:10px;padding:12px;display:flex;gap:10px;cursor:pointer;transition:all .2s}.topic-card[data-v-7cc7db8f]:hover{border-color:var(--primary);transform:translateY(-2px)}.topic-card.active[data-v-7cc7db8f]{border-color:var(--primary);background:#eff6ff}.topic-icon[data-v-7cc7db8f]{font-size:28px}.topic-info[data-v-7cc7db8f]{flex:1}.topic-name[data-v-7cc7db8f]{font-weight:600;font-size:14px;margin-bottom:4px}.topic-desc[data-v-7cc7db8f]{font-size:12px;color:var(--muted);line-height:1.4}.loading[data-v-7cc7db8f]{text-align:center;color:var(--muted);padding:20px}.extractor-mask[data-v-3f02d1e9]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.extractor-modal[data-v-3f02d1e9]{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column}.modal-header[data-v-3f02d1e9]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3[data-v-3f02d1e9]{margin:0;font-size:17px}.close-btn[data-v-3f02d1e9]{background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted)}.modal-body[data-v-3f02d1e9]{flex:1;overflow-y:auto;padding:16px 20px}.hint[data-v-3f02d1e9]{color:var(--muted);font-size:13px;margin:0 0 12px}.loading[data-v-3f02d1e9],.empty[data-v-3f02d1e9]{text-align:center;color:var(--muted);padding:24px}.candidate-list[data-v-3f02d1e9]{display:flex;flex-direction:column;gap:8px}.candidate-item[data-v-3f02d1e9]{display:flex;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s}.candidate-item.checked[data-v-3f02d1e9]{background:#eff6ff;border-color:var(--primary)}.candidate-item input[data-v-3f02d1e9]{cursor:pointer}.candidate-info[data-v-3f02d1e9]{flex:1}.word-row[data-v-3f02d1e9]{display:flex;gap:8px;align-items:baseline}.word[data-v-3f02d1e9]{font-weight:700;color:var(--primary)}.translation[data-v-3f02d1e9]{color:var(--text);font-size:13px}.example[data-v-3f02d1e9]{font-size:12px;color:var(--muted);font-style:italic;margin-top:2px}.modal-footer[data-v-3f02d1e9]{padding:12px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.cancel-btn[data-v-3f02d1e9],.save-btn[data-v-3f02d1e9]{padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;border:none}.cancel-btn[data-v-3f02d1e9]{background:var(--bg);color:var(--text)}.save-btn[data-v-3f02d1e9]{background:var(--primary);color:#fff}.save-btn[data-v-3f02d1e9]:disabled{background:var(--muted);cursor:not-allowed}.vocab-book[data-v-2748d598]{padding:20px}.header[data-v-2748d598]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.header h3[data-v-2748d598]{font-size:16px;margin:0}.count[data-v-2748d598]{color:var(--muted);font-size:13px;font-weight:400}.header-actions[data-v-2748d598]{display:flex;gap:8px}.sort-select[data-v-2748d598]{padding:4px 8px;border:1px solid var(--border);border-radius:6px;font-size:12px}.add-toggle.ai-btn[data-v-2748d598]{background:linear-gradient(135deg,#8b5cf6,#ec4899)}.add-toggle[data-v-2748d598]{padding:4px 12px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer}.add-form[data-v-2748d598]{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;margin-bottom:12px;padding:8px;background:var(--bg);border-radius:6px}.add-form input[data-v-2748d598]{padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:13px}.add-form button[data-v-2748d598]{padding:6px 12px;background:var(--success);color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer}.add-form button[data-v-2748d598]:disabled{background:var(--muted);cursor:not-allowed}.empty[data-v-2748d598]{text-align:center;color:var(--muted);padding:24px}.empty .hint[data-v-2748d598]{font-size:12px}.vocab-list[data-v-2748d598]{display:flex;flex-direction:column;gap:6px}.vocab-item[data-v-2748d598]{background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;transition:background .2s}.vocab-item.mastery-1[data-v-2748d598]{background:#fef3c7}.vocab-item.mastery-2[data-v-2748d598]{background:#d1fae5}.vocab-info[data-v-2748d598]{flex:1}.vocab-word-row[data-v-2748d598]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vocab-word-text[data-v-2748d598]{font-weight:700;font-size:15px;color:var(--primary)}.vocab-translation[data-v-2748d598]{color:var(--text);font-size:13px}.source-tag[data-v-2748d598]{font-size:10px;padding:1px 6px;background:var(--purple);color:#fff;border-radius:8px}.vocab-example[data-v-2748d598]{font-size:12px;color:var(--muted);font-style:italic;margin-top:4px}.vocab-note[data-v-2748d598]{font-size:12px;color:var(--muted);margin-top:4px}.vocab-actions[data-v-2748d598]{display:flex;gap:4px}.mastery-btn[data-v-2748d598],.del-btn[data-v-2748d598]{background:none;border:none;font-size:18px;cursor:pointer;padding:4px 6px}.del-btn[data-v-2748d598]{color:var(--muted)}.del-btn[data-v-2748d598]:hover{color:var(--error)}.persona-section[data-v-d99aad16]{margin-bottom:28px}.persona-section h3[data-v-d99aad16]{font-size:16px;margin-bottom:8px}.hint[data-v-d99aad16]{color:var(--muted);font-size:13px;margin:0 0 16px;line-height:1.5}.loading[data-v-d99aad16]{color:var(--muted);padding:12px}.form-grid[data-v-d99aad16]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.form-grid .field.full[data-v-d99aad16]{grid-column:1 / -1}.form-grid label[data-v-d99aad16]{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px}.form-grid input[data-v-d99aad16],.form-grid select[data-v-d99aad16],.form-grid textarea[data-v-d99aad16]{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;font-family:inherit}.form-grid textarea[data-v-d99aad16]{resize:vertical;font-family:inherit}.actions[data-v-d99aad16]{display:flex;align-items:center;gap:12px}.save-btn[data-v-d99aad16]{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer}.save-btn[data-v-d99aad16]:disabled{opacity:.5;cursor:not-allowed}.msg[data-v-d99aad16]{font-size:13px;color:var(--success)}.msg[data-v-d99aad16]:has-text("✗"){color:var(--error)}.memory-add[data-v-d99aad16]{display:flex;gap:8px;margin-bottom:16px}.memory-add select[data-v-d99aad16],.memory-add input[data-v-d99aad16],.memory-add button[data-v-d99aad16]{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px}.memory-add select[data-v-d99aad16]{background:#fff}.memory-add button[data-v-d99aad16]{background:var(--primary);color:#fff;border:none;cursor:pointer;font-weight:600;padding:8px 16px}.empty-mem[data-v-d99aad16]{text-align:center;color:var(--muted);padding:20px;font-size:13px}.memory-list[data-v-d99aad16]{display:flex;flex-direction:column;gap:8px}.memory-item[data-v-d99aad16]{background:#fff;border:1px solid var(--border);border-left:3px solid var(--muted);border-radius:6px;padding:10px 12px;display:flex;justify-content:space-between;align-items:flex-start}.memory-item.type-preference[data-v-d99aad16]{border-left-color:#10b981}.memory-item.type-weakness[data-v-d99aad16]{border-left-color:#ef4444}.memory-item.type-progress[data-v-d99aad16]{border-left-color:#3b82f6}.memory-item.type-note[data-v-d99aad16]{border-left-color:#6b7280}.mem-info[data-v-d99aad16]{flex:1}.mem-header[data-v-d99aad16]{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:12px}.mem-type[data-v-d99aad16]{font-weight:600;color:var(--text)}.mem-importance[data-v-d99aad16]{color:var(--warning)}.inactive[data-v-d99aad16]{color:var(--muted);font-style:italic}.mem-content[data-v-d99aad16]{font-size:14px;color:var(--text);line-height:1.5;margin-bottom:4px}.mem-meta[data-v-d99aad16]{font-size:11px;color:var(--muted)}.del-btn[data-v-d99aad16]{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted)}.del-btn[data-v-d99aad16]:hover{color:var(--error)}.settings-page[data-v-d22e96ac]{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.back-bar[data-v-d22e96ac]{display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--card);border-bottom:1px solid var(--border-light);flex-shrink:0}.back-bar h2[data-v-d22e96ac]{margin:0;font-size:17px;color:var(--text);flex:1}.version[data-v-d22e96ac]{font-size:12px;color:var(--muted);background:var(--bg-warm);padding:2px 8px;border-radius:6px}.back-btn[data-v-d22e96ac]{background:none;border:none;color:var(--primary);font-size:15px;cursor:pointer;font-weight:700;padding:4px 8px;border-radius:6px;transition:background .2s}.back-btn[data-v-d22e96ac]:hover{background:var(--bg-warm)}.settings-body[data-v-d22e96ac]{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.card[data-v-d22e96ac]{background:var(--card);border-radius:var(--radius-md);padding:16px;box-shadow:var(--card-shadow);border:1px solid var(--border-light)}.card-title[data-v-d22e96ac]{font-size:16px;font-weight:700;color:var(--text);margin-bottom:14px}.collapsible[data-v-d22e96ac]{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;justify-content:space-between}.arrow[data-v-d22e96ac]{color:var(--muted);font-size:14px}.row[data-v-d22e96ac]{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border-light);gap:12px;flex-wrap:wrap}.row[data-v-d22e96ac]:last-child{border-bottom:none}.label[data-v-d22e96ac]{font-size:14px;font-weight:600;color:var(--text-soft);white-space:nowrap}.val[data-v-d22e96ac]{font-size:13px;color:var(--primary);font-weight:600}.select[data-v-d22e96ac]{padding:8px 12px;border:1.5px solid var(--border);border-radius:8px;font-size:14px;background:var(--bg-warm);color:var(--text);max-width:200px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.speed-wrap[data-v-d22e96ac]{display:flex;gap:6px;flex-wrap:wrap}.speed-btn[data-v-d22e96ac]{padding:6px 14px;border:1.5px solid var(--border);border-radius:16px;font-size:13px;font-weight:600;background:var(--card);color:var(--text-soft);cursor:pointer;transition:all .2s}.speed-btn.active[data-v-d22e96ac]{background:var(--primary);color:#fff;border-color:var(--primary)}.voice-row[data-v-d22e96ac]{flex-direction:column;align-items:flex-start}.voice-scroll[data-v-d22e96ac]{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;width:100%;-webkit-overflow-scrolling:touch}.voice-chip[data-v-d22e96ac]{flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:8px 14px;border:2px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;background:var(--card);font-size:13px;font-weight:600}.voice-chip small[data-v-d22e96ac]{font-size:11px;color:var(--muted);margin-top:2px}.voice-chip.active[data-v-d22e96ac]{border-color:var(--primary);background:#fff5eb}.input-sm[data-v-d22e96ac]{padding:8px 12px;border:1.5px solid var(--border);border-radius:8px;font-size:14px;background:var(--bg-warm);max-width:220px;flex:1}.collapsed .card-title[data-v-d22e96ac]{margin-bottom:0}@media(max-width:600px){.settings-body[data-v-d22e96ac]{padding:10px;gap:10px}.card[data-v-d22e96ac]{padding:14px}.row[data-v-d22e96ac]{padding:8px 0}.select[data-v-d22e96ac]{max-width:160px;font-size:13px}.voice-chip[data-v-d22e96ac]{padding:6px 10px;font-size:12px}}.gate-mask[data-v-dbe8d2d3]{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.gate-card[data-v-dbe8d2d3]{background:#fff;border-radius:16px;padding:32px 28px;width:100%;max-width:400px;box-shadow:0 20px 60px #0000004d}.logo[data-v-dbe8d2d3]{text-align:center;font-size:28px;font-weight:800;margin-bottom:8px}.welcome[data-v-dbe8d2d3]{text-align:center;color:#6b7280;font-size:14px;line-height:1.6;margin-bottom:20px}.tabs[data-v-dbe8d2d3]{display:flex;background:#f3f4f6;border-radius:10px;padding:4px;margin-bottom:20px}.tabs button[data-v-dbe8d2d3]{flex:1;padding:10px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:600;color:#6b7280;cursor:pointer}.tabs button.active[data-v-dbe8d2d3]{background:#fff;color:#3b82f6;box-shadow:0 1px 3px #0000001a}form[data-v-dbe8d2d3]{display:flex;flex-direction:column;gap:12px}form input[data-v-dbe8d2d3]{padding:12px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:15px}form input[data-v-dbe8d2d3]:focus{outline:none;border-color:#3b82f6}.submit-btn[data-v-dbe8d2d3]{padding:12px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;margin-top:4px}.submit-btn[data-v-dbe8d2d3]:hover:not(:disabled){background:#2563eb}.submit-btn[data-v-dbe8d2d3]:disabled{opacity:.5;cursor:not-allowed}.error[data-v-dbe8d2d3]{margin-top:12px;color:#ef4444;font-size:13px;text-align:center}.locked[data-v-dbe8d2d3]{margin-top:12px;color:#f59e0b;font-size:13px;text-align:center;font-weight:600}.hint[data-v-dbe8d2d3]{margin-top:12px;color:#9ca3af;font-size:12px;text-align:center;line-height:1.5}.history-panel[data-v-557a89bc]{width:320px;background:var(--card);border-left:1px solid var(--border-light);display:flex;flex-direction:column;height:100%;overflow:hidden}.panel-header[data-v-557a89bc]{padding:16px 18px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}.panel-header h3[data-v-557a89bc]{font-size:15px;margin:0;color:var(--text)}.header-actions[data-v-557a89bc]{display:flex;align-items:center;gap:8px}.today-count[data-v-557a89bc]{font-size:12px;color:var(--primary);font-weight:700;background:var(--bg-warm);padding:2px 8px;border-radius:10px}.expand-btn[data-v-557a89bc]{background:none;border:1.5px solid var(--border);color:var(--primary);padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.expand-btn[data-v-557a89bc]:hover{background:var(--bg-warm);border-color:var(--primary-light)}.loading[data-v-557a89bc],.empty[data-v-557a89bc]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:8px;padding:30px 20px}.loading-spinner[data-v-557a89bc]{font-size:28px;animation:spin-557a89bc 1.5s linear infinite}@keyframes spin-557a89bc{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-icon[data-v-557a89bc]{font-size:40px}.empty-title[data-v-557a89bc]{font-size:15px;font-weight:600;color:var(--text-soft);margin:0}.empty-hint[data-v-557a89bc]{font-size:13px;color:var(--muted);margin:0}.convo-list[data-v-557a89bc]{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.convo-item[data-v-557a89bc]{padding:10px 12px;border-radius:10px;background:var(--card);border-left:3px solid var(--border);transition:background .2s}.convo-item.user[data-v-557a89bc]{border-left-color:var(--primary-light);background:#fff8f0}.convo-item.user[data-v-557a89bc]:has(.convo-errors){background:var(--error-bg);border-left-color:var(--error)}.convo-item.ai[data-v-557a89bc]{border-left-color:var(--secondary);background:#f5fff8}.convo-top[data-v-557a89bc]{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-bottom:4px}.convo-role[data-v-557a89bc]{font-weight:700}.convo-text[data-v-557a89bc]{line-height:1.5;word-break:break-word;font-size:13px;color:var(--text-soft)}.convo-text[data-v-557a89bc] .hl-wrong{text-decoration:line-through;text-decoration-color:#ef4444;text-decoration-thickness:1.5px;background:#fee2e2;padding:0 2px;border-radius:2px;cursor:help}.convo-errors[data-v-557a89bc]{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.err-tag[data-v-557a89bc]{font-size:11px;padding:2px 8px;background:#fecaca;color:#991b1b;border-radius:8px;cursor:help;font-weight:500}.footer-info[data-v-557a89bc]{padding:8px 16px;text-align:center;color:var(--muted);font-size:12px;border-top:1px solid var(--border-light)}@media(max-width:900px){.history-panel[data-v-557a89bc]{width:100%;border-left:none;border-top:1px solid var(--border-light);max-height:280px}}.app[data-v-86cf6f0c]{height:100vh;display:flex;flex-direction:column;max-width:1280px;margin:0 auto;background:var(--bg)}.main-content[data-v-86cf6f0c]{flex:1;display:flex;overflow:hidden;min-height:0}.header[data-v-86cf6f0c]{background:linear-gradient(135deg,#ff8c42,#ffa366);color:#fff;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 12px #ff8c4240;flex-shrink:0;z-index:10}.header-left[data-v-86cf6f0c]{display:flex;align-items:center;gap:10px}.mascot[data-v-86cf6f0c]{font-size:32px;transition:transform .3s var(--spring)}.mascot.waving[data-v-86cf6f0c]{animation:bounce-slight .6s ease infinite}.title-group[data-v-86cf6f0c]{display:flex;flex-direction:column}.app-title[data-v-86cf6f0c]{font-size:20px;font-weight:800;letter-spacing:-.5px}.teacher-name[data-v-86cf6f0c]{font-size:12px;opacity:.85;font-weight:500}.header-right[data-v-86cf6f0c]{display:flex;align-items:center;gap:10px}.streak-badge[data-v-86cf6f0c]{background:#ffffff40;padding:3px 10px;border-radius:12px;font-size:13px;font-weight:700}.level-badge[data-v-86cf6f0c]{background:#ffffff40;padding:5px 14px;border-radius:14px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.level-badge[data-v-86cf6f0c]:hover{background:#ffffff59}.icon-btn[data-v-86cf6f0c]{background:#ffffff40;width:38px;height:38px;border-radius:50%;font-size:18px;color:#fff;border:none;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.icon-btn[data-v-86cf6f0c]:hover{background:#fff6;transform:scale(1.05)}.top-bar[data-v-86cf6f0c]{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.progress-bar[data-v-86cf6f0c]{background:var(--card);border-radius:var(--radius-md);padding:8px 14px;box-shadow:var(--card-shadow);display:flex;align-items:center;gap:10px;height:36px;border:1px solid var(--border-light);position:relative;overflow:hidden;flex:1;min-width:150px}.progress-fill[data-v-86cf6f0c]{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#ffd93d,#ff8c42);border-radius:var(--radius-md);transition:width .6s var(--ease-out);opacity:.3;z-index:0}.progress-text[data-v-86cf6f0c]{font-size:13px;font-weight:700;color:var(--primary);z-index:1}.progress-star[data-v-86cf6f0c]{font-size:13px;font-weight:600;color:#ff8c42;margin-left:auto;z-index:1}.topic-badge[data-v-86cf6f0c]{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#2e7d32;padding:7px 14px;border-radius:var(--radius-lg);font-size:14px;font-weight:700;white-space:nowrap;border:1.5px solid #A5D6A7;box-shadow:0 2px 8px #2e7d3214}.chat-area[data-v-86cf6f0c]{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:14px;min-width:0;scroll-behavior:smooth}.welcome[data-v-86cf6f0c]{text-align:center;padding:40px 20px;animation:fadeIn .6s var(--ease-out)}.welcome-mascot[data-v-86cf6f0c]{font-size:80px;margin-bottom:12px;animation:bounce-slight 2s ease infinite}.welcome h1[data-v-86cf6f0c]{font-size:28px;color:var(--text);margin-bottom:8px;font-weight:800}.welcome-subtitle[data-v-86cf6f0c]{font-size:17px;color:var(--text-soft);margin-bottom:24px;line-height:1.6}.welcome-hints[data-v-86cf6f0c]{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:16px}.hint-card[data-v-86cf6f0c]{background:var(--card);border-radius:var(--radius-md);padding:14px 20px;box-shadow:var(--card-shadow);display:flex;align-items:center;gap:10px;font-size:15px;color:var(--text-soft);border:1px solid var(--border-light)}.hint-icon[data-v-86cf6f0c]{font-size:24px}.continue-hint[data-v-86cf6f0c]{margin-top:16px;padding:12px 20px;background:var(--success-bg);border-radius:var(--radius-md);color:var(--success);font-size:15px;border:1px solid #c8f0d0}.round[data-v-86cf6f0c]{display:flex;flex-direction:column;gap:6px;animation:fadeInUp .35s var(--ease-out)}.message[data-v-86cf6f0c]{display:flex;gap:8px;align-items:flex-start}.message.user[data-v-86cf6f0c]{justify-content:flex-end}.message.ai[data-v-86cf6f0c]{justify-content:flex-start}.avatar[data-v-86cf6f0c]{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.user-avatar[data-v-86cf6f0c]{background:linear-gradient(135deg,#ffd93d,#ff8c42);order:2}.ai-avatar[data-v-86cf6f0c]{background:linear-gradient(135deg,bisque,#ffb380);order:0}.bubble[data-v-86cf6f0c]{max-width:72%;padding:12px 16px;border-radius:18px;line-height:1.55;font-size:16px;word-break:break-word}.user-bubble[data-v-86cf6f0c]{background:var(--user-bubble);color:var(--user-text);border-bottom-right-radius:6px;box-shadow:0 2px 8px #ff8c4233}.user-text-content[data-v-86cf6f0c]{font-size:16px;line-height:1.5}.error-count[data-v-86cf6f0c]{margin-top:6px;font-size:12px;opacity:.85;text-align:right}.ai-bubble[data-v-86cf6f0c]{background:var(--ai-bubble);color:var(--ai-text);border:1px solid var(--ai-border);border-bottom-left-radius:6px;box-shadow:0 2px 8px #0000000a}.ai-text[data-v-86cf6f0c]{font-size:16px;line-height:1.55;cursor:pointer;transition:background .2s;padding:2px 0}.vocab-tags[data-v-86cf6f0c]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.vocab-tag[data-v-86cf6f0c]{background:var(--bg-warm);border:1px solid var(--border);border-radius:12px;padding:3px 10px;font-size:13px;color:var(--primary);cursor:help;position:relative;transition:all .2s}.vocab-tag[data-v-86cf6f0c]:hover{background:#fff0e0;border-color:var(--primary-light)}.vocab-tag:hover .vocab-zh[data-v-86cf6f0c]{opacity:1;transform:translateY(0)}.vocab-zh[data-v-86cf6f0c]{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%) translateY(4px);background:var(--text);color:#fff;padding:2px 8px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:all .2s var(--ease-out)}.action-row[data-v-86cf6f0c]{display:flex;gap:8px;margin-top:8px}.action-btn[data-v-86cf6f0c]{padding:6px 14px;border-radius:16px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out);border:none}.play-btn[data-v-86cf6f0c]{background:var(--primary);color:#fff}.play-btn[data-v-86cf6f0c]:hover{background:var(--primary-dark)}.play-btn.playing[data-v-86cf6f0c]{background:var(--success);animation:pulse 1.5s ease infinite}.replay-btn[data-v-86cf6f0c]{background:none;border:1.5px dashed var(--border);color:var(--muted)}.replay-btn[data-v-86cf6f0c]:hover{border-color:var(--primary);color:var(--primary)}.revealed-detail[data-v-86cf6f0c]{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.detail-section[data-v-86cf6f0c]{margin-bottom:10px}.detail-label[data-v-86cf6f0c]{font-size:11px;color:var(--muted);font-weight:700;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.correction-hint[data-v-86cf6f0c]{margin-top:6px;font-size:14px;color:var(--primary-dark);padding:6px 10px;background:#fff5eb;border-radius:8px}.suggestion-block[data-v-86cf6f0c]{margin-top:8px;padding:10px 12px;background:#f0f9ff;border:1.5px dashed #93C5FD;border-radius:10px}.suggestion-label[data-v-86cf6f0c]{font-size:12px;color:#1e40af;font-weight:700;margin-bottom:6px}.suggestion-item[data-v-86cf6f0c]{display:flex;flex-direction:column;padding:5px 0;border-bottom:1px dotted #CBD5E1}.suggestion-item[data-v-86cf6f0c]:last-child{border-bottom:none}.suggestion-en[data-v-86cf6f0c]{font-size:15px;color:#1e40af;font-weight:600}.suggestion-zh[data-v-86cf6f0c]{font-size:13px;color:#64748b;margin-top:2px}.hide-btn[data-v-86cf6f0c]{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;padding:4px 0;margin-top:4px}.hide-btn[data-v-86cf6f0c]:hover{color:var(--text-soft)}.thinking-bubble[data-v-86cf6f0c]{display:flex;align-items:center;gap:5px;padding:14px 18px}.thinking-bubble span[data-v-86cf6f0c]{width:8px;height:8px;background:var(--primary-light);border-radius:50%;animation:thinking-dot 1.4s infinite ease-in-out}.thinking-bubble span[data-v-86cf6f0c]:nth-child(2){animation-delay:.2s}.thinking-bubble span[data-v-86cf6f0c]:nth-child(3){animation-delay:.4s}.thinking-text[data-v-86cf6f0c]{margin-left:8px;font-size:13px;color:var(--muted);animation:none!important;width:auto!important;height:auto!important;background:none!important;border-radius:0!important}.thinking-avatar[data-v-86cf6f0c]{animation:bounce-slight .6s ease infinite}.star-reward[data-v-86cf6f0c]{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 0;animation:fadeIn .3s ease}.star[data-v-86cf6f0c]{font-size:18px;animation:star-pop .5s var(--spring) both}.star-text[data-v-86cf6f0c]{margin-left:6px;font-size:13px;font-weight:700;color:#ffb84d}.review-cards[data-v-86cf6f0c]{margin-top:10px;padding:12px;background:linear-gradient(135deg,#fffde7,#fff8e1);border:2px solid #FFE082;border-radius:14px;animation:fadeInUp .4s var(--ease-out)}.review-header[data-v-86cf6f0c]{font-size:17px;font-weight:800;color:#f57f17;margin-bottom:10px;text-align:center}.review-section[data-v-86cf6f0c]{margin-bottom:10px}.review-section-title[data-v-86cf6f0c]{font-size:13px;font-weight:700;color:#6d4c00;margin-bottom:6px}.word-cards[data-v-86cf6f0c]{display:flex;flex-wrap:wrap;gap:6px}.word-card[data-v-86cf6f0c]{background:#fff;border:1.5px solid #FFE082;border-radius:10px;padding:8px 12px;min-width:100px;flex:1;transition:all .2s var(--ease-out)}.word-card[data-v-86cf6f0c]:hover{border-color:#ffb300;box-shadow:0 2px 8px #ffb30026;transform:translateY(-2px)}.word-main[data-v-86cf6f0c]{display:flex;align-items:center;gap:8px}.word-en[data-v-86cf6f0c]{font-size:16px;font-weight:700;color:#e65100}.word-zh[data-v-86cf6f0c]{font-size:13px;color:#8d6e63;background:#fff3e0;padding:1px 6px;border-radius:4px}.word-example[data-v-86cf6f0c]{font-size:12px;color:#9e9e9e;margin-top:4px;font-style:italic}.grammar-section[data-v-86cf6f0c]{background:#fff;border-radius:10px;padding:10px 12px;border:1.5px solid #C8E6C9}.grammar-card[data-v-86cf6f0c]{display:flex;flex-direction:column;gap:4px}.grammar-pattern[data-v-86cf6f0c]{font-size:15px;font-weight:700;color:#2e7d32}.grammar-explain[data-v-86cf6f0c]{font-size:13px;color:#5d4037;line-height:1.5}.grammar-example[data-v-86cf6f0c]{font-size:13px;color:#1565c0;margin-top:2px;font-weight:500}.challenge-box[data-v-86cf6f0c]{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:1.5px dashed #64B5F6;border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:8px;font-size:14px;color:#1565c0;margin-top:8px}.challenge-icon[data-v-86cf6f0c]{font-size:22px;animation:bounce-slight 1.5s ease infinite}.suggested-answer-area[data-v-86cf6f0c]{margin-top:10px}.hint-btn[data-v-86cf6f0c]{background:none;border:1.5px dashed #C4B5FD;color:#7c3aed;padding:6px 14px;border-radius:14px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out)}.hint-btn[data-v-86cf6f0c]:hover{background:#f5f3ff;border-color:#8b5cf6}.hint-answer[data-v-86cf6f0c]{margin-top:8px;padding:10px 14px;background:linear-gradient(135deg,#f5f3ff,#ede9fe);border:1.5px solid #C4B5FD;border-radius:12px;animation:fadeInUp .3s var(--ease-out);display:flex;flex-direction:column;gap:4px}.hint-label[data-v-86cf6f0c]{font-size:12px;color:#7c3aed;font-weight:700}.hint-text[data-v-86cf6f0c]{font-size:15px;color:#4c1d95;font-weight:600;font-style:italic;letter-spacing:.3px}.recording-area[data-v-86cf6f0c]{display:flex;flex-direction:column;align-items:center;padding:14px 20px 20px;background:var(--card);border-top:1px solid var(--border-light);flex-shrink:0;gap:8px}.big-record-btn[data-v-86cf6f0c]{width:90px;height:90px;border-radius:50%;background:var(--primary);color:#fff;border:none;cursor:pointer;transition:all .25s var(--spring);box-shadow:0 6px 24px var(--primary-glow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;-webkit-tap-highlight-color:transparent;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.big-record-btn[data-v-86cf6f0c]:hover:not(:disabled){transform:scale(1.08);box-shadow:0 8px 32px var(--primary-glow)}.big-record-btn[data-v-86cf6f0c]:active:not(:disabled){transform:scale(.95)}.big-record-btn.recording[data-v-86cf6f0c]{background:var(--error);box-shadow:0 0 #ff6b6b80;animation:pulse 1.2s ease infinite;width:100px;height:100px}.big-record-btn.disabled[data-v-86cf6f0c]{opacity:.5;cursor:not-allowed;transform:none}.record-inner[data-v-86cf6f0c]{display:flex;align-items:center;justify-content:center}.record-icon[data-v-86cf6f0c]{font-size:36px;line-height:1}.record-label[data-v-86cf6f0c]{font-size:11px;font-weight:600;opacity:.9}.recording-hint[data-v-86cf6f0c]{font-size:13px;color:var(--muted)}.recording-hint kbd[data-v-86cf6f0c]{background:var(--bg-warm);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-size:12px;font-family:inherit}.recording-hint-active[data-v-86cf6f0c]{color:var(--error);font-weight:600;animation:pulse 1.5s ease infinite}.thinking-hint[data-v-86cf6f0c]{color:var(--primary);font-weight:600}.desktop-history[data-v-86cf6f0c]{display:block}@media(max-width:900px){.app[data-v-86cf6f0c]{max-width:100%}.main-content[data-v-86cf6f0c]{flex-direction:column}.chat-area[data-v-86cf6f0c]{padding:12px 14px}.bubble[data-v-86cf6f0c]{max-width:82%;font-size:15px}.big-record-btn[data-v-86cf6f0c]{width:80px;height:80px}.big-record-btn.recording[data-v-86cf6f0c]{width:88px;height:88px}.record-icon[data-v-86cf6f0c]{font-size:30px}.desktop-history[data-v-86cf6f0c]{display:none}.welcome-mascot[data-v-86cf6f0c]{font-size:60px}.welcome h1[data-v-86cf6f0c]{font-size:24px}}@media(max-width:480px){.header[data-v-86cf6f0c]{padding:8px 12px}.app-title[data-v-86cf6f0c]{font-size:17px}.mascot[data-v-86cf6f0c]{font-size:26px}.bubble[data-v-86cf6f0c]{max-width:88%;font-size:14px}.chat-area[data-v-86cf6f0c]{padding:10px;gap:10px}.recording-area[data-v-86cf6f0c]{padding:10px 12px 16px}.big-record-btn[data-v-86cf6f0c]{width:72px;height:72px}.record-icon[data-v-86cf6f0c]{font-size:28px}.hint-card[data-v-86cf6f0c]{padding:10px 14px;font-size:13px}}:root{--primary: #FF8C42;--primary-light: #FFB380;--primary-dark: #E6732C;--primary-glow: rgba(255, 140, 66, .3);--secondary: #7EC8A0;--secondary-light: #A8DFBF;--secondary-dark: #5DA87A;--bg: #FFF8F0;--bg-warm: #FFF5EB;--card: #FFFFFF;--card-shadow: 0 2px 16px rgba(0, 0, 0, .06);--text: #3D2C2C;--text-soft: #5C4A4A;--muted: #9B8E8E;--border: #F0E4D4;--border-light: #F5EDE4;--error: #FF6B6B;--error-bg: #FFF0F0;--warning: #FFB84D;--warning-bg: #FFF8EE;--success: #6BCB77;--success-bg: #F0FFF2;--user-bubble: linear-gradient(135deg, #FF8C42 0%, #FFA366 100%);--user-text: #FFFFFF;--ai-bubble: #FFFFFF;--ai-text: #3D2C2C;--ai-border: #F0E4D4;--spring: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--font-display: "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-body: "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;overflow:hidden}body{font-family:var(--font-body);background:var(--bg);color:var(--text);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:text;user-select:text}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none;-webkit-tap-highlight-color:transparent}input,select,textarea{font-family:var(--font-body);outline:none;font-size:16px}a{color:var(--primary);text-decoration:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes bounce-slight{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes star-pop{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.3) rotate(5deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes sparkle{0%,to{opacity:0;transform:scale(0) translateY(0)}50%{opacity:1;transform:scale(1) translateY(-10px)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes thinking-dot{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.btn-primary{background:var(--primary);color:#fff;padding:14px 28px;border-radius:var(--radius-lg);font-size:17px;font-weight:700;border:none;cursor:pointer;transition:all .2s var(--ease-out);box-shadow:0 4px 12px var(--primary-glow)}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 6px 20px var(--primary-glow)}.btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px var(--primary-glow)}.card{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--card-shadow);border:1px solid var(--border-light)}@media(max-width:768px){:root{--radius-lg: 20px}body{font-size:15px}}
