.home-container[data-v-4a52f529]{min-height:100vh;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.header[data-v-4a52f529]{text-align:center;padding:40px 20px 30px;color:#fff}.user-corner[data-v-4a52f529]{position:fixed;bottom:20px;right:20px;z-index:100}.user-trigger[data-v-4a52f529]{padding:8px 14px;font-size:13px;border:1px solid rgba(255,255,255,.8);border-radius:20px;background:#fff3;color:#fff;cursor:pointer;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-overlay[data-v-4a52f529]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu-dropdown[data-v-4a52f529]{position:absolute;bottom:100%;right:0;margin-bottom:8px;background:#fff;border-radius:10px;box-shadow:0 4px 16px #00000026;overflow:hidden;z-index:101}.menu-item[data-v-4a52f529]{display:block;width:100%;padding:12px 20px;font-size:14px;border:none;background:none;color:#333;cursor:pointer;text-align:left}.title[data-v-4a52f529]{font-size:28px;font-weight:700;margin-bottom:10px}.subtitle[data-v-4a52f529]{font-size:14px;opacity:.9;min-height:20px}.content[data-v-4a52f529]{margin-top:24px}.section-block[data-v-4a52f529]{margin-bottom:20px}.section-block[data-v-4a52f529]:last-child{margin-bottom:0}.section-head[data-v-4a52f529]{font-size:18px;font-weight:600;color:#fffffff2;margin:0 0 12px;padding-left:4px}.section-head-in-card[data-v-4a52f529]{font-size:16px;font-weight:600;color:#333;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.06)}.atlas-list-card[data-v-4a52f529]{padding:16px}.atlas-list[data-v-4a52f529]{list-style:none;padding:0;margin:0}.atlas-list-item[data-v-4a52f529]{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.06)}.atlas-list-item[data-v-4a52f529]:last-child{border-bottom:none}.atlas-item-link[data-v-4a52f529]{flex:1;min-width:0;display:inline-flex;align-items:baseline;gap:8px;text-decoration:none;color:inherit}.atlas-item-link[data-v-4a52f529]:active{opacity:.9}.atlas-item-title[data-v-4a52f529]{font-size:15px;font-weight:600;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.atlas-item-count[data-v-4a52f529]{font-size:13px;color:#666;flex-shrink:0}.btn-study-small[data-v-4a52f529]{flex-shrink:0;padding:6px 12px;font-size:13px;font-weight:600;color:#fff;border:none;border-radius:8px;cursor:pointer;background:linear-gradient(145deg,#6366f1,#4f46e5)}.btn-study-small[data-v-4a52f529]:active{opacity:.9}.sentence-practice-card[data-v-4a52f529]{padding:16px}.sentence-practice-head[data-v-4a52f529]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.sentence-practice-desc[data-v-4a52f529]{font-size:14px;color:#555;margin:0}.btn-sentence-generate[data-v-4a52f529]{font-size:14px;font-weight:600;color:#fff;border:none;border-radius:8px;cursor:pointer;background:linear-gradient(145deg,#0d9488,#0f766e)}.btn-sentence-round[data-v-4a52f529]{width:44px;height:44px;padding:0;border-radius:50%;flex-shrink:0}.btn-sentence-generate[data-v-4a52f529]:disabled{opacity:.7;cursor:not-allowed}.sentence-result[data-v-4a52f529]{padding:12px;background:#0d948814;border-radius:8px;margin-bottom:12px}.sentence-label[data-v-4a52f529]{font-size:13px;color:#666;margin-right:6px}.sentence-text[data-v-4a52f529]{font-size:16px;color:#333;line-height:1.5}.btn-history-link[data-v-4a52f529]{padding:6px 0;font-size:13px;color:#0d9488;background:none;border:none;cursor:pointer;text-decoration:underline}.modal-history[data-v-4a52f529]{max-height:80vh;overflow-y:auto}.history-sentence-list[data-v-4a52f529]{list-style:none;padding:0;margin:0;max-height:50vh;overflow-y:auto}.history-sentence-item[data-v-4a52f529]{padding:12px 0;border-bottom:1px solid #eee}.history-sentence-item[data-v-4a52f529]:last-child{border-bottom:none}.history-sentence-text[data-v-4a52f529]{display:block;font-size:15px;color:#333;line-height:1.5;margin-bottom:4px}.history-sentence-meta[data-v-4a52f529]{font-size:12px;color:#999}.loading[data-v-4a52f529]{text-align:center;color:#ffffffe6;padding:24px}.card.collection-card[data-v-4a52f529]{background:#fff;border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:0 4px 20px #6366f114,0 2px 8px #0000000a;border:1px solid rgba(0,0,0,.04)}.card-title-row[data-v-4a52f529]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.card-title-link[data-v-4a52f529]{display:inline-flex;align-items:baseline;gap:8px;flex:1;min-width:0;text-decoration:none;color:inherit}.card-title-link[data-v-4a52f529]:active{opacity:.9}.card-title[data-v-4a52f529]{font-size:24px;font-weight:700;color:#333}.learned-badge[data-v-4a52f529]{font-size:14px;color:#333;font-weight:500}.btn-study-balloon[data-v-4a52f529]{position:relative;flex-shrink:0;width:56px;height:56px;border-radius:50%;border:none;font-size:20px;font-weight:600;color:#fff;cursor:pointer;background:linear-gradient(145deg,#6366f1,#4f46e5,#4338ca);box-shadow:0 4px 12px #6366f159,inset 0 1px #fff6,inset 0 -1px #0000001a;transition:transform .15s;overflow:hidden}.btn-study-balloon[data-v-4a52f529]:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;border-radius:50% 50% 0 0;background:linear-gradient(180deg,#ffffff59,#fff0);pointer-events:none}.btn-study-balloon[data-v-4a52f529]:active{transform:scale(.95);box-shadow:0 2px 8px #6366f159,inset 0 1px #fff3}.btn-study-balloon[data-v-4a52f529]:active:before{opacity:.8}.section-title[data-v-4a52f529]{font-size:14px;font-weight:600;color:#555;margin-bottom:8px}.empty-mini[data-v-4a52f529]{font-size:13px;color:#999;padding:8px 0}.chars-preview-wrap[data-v-4a52f529]{margin-bottom:12px}.chars-preview[data-v-4a52f529]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.char-preview[data-v-4a52f529]{font-size:24px;font-weight:700;color:#667eea;padding:6px 10px;background:#f0f0f0;border-radius:8px}.more[data-v-4a52f529]{font-size:14px;color:#999;font-weight:500}.history-list[data-v-4a52f529]{list-style:none;padding:0;margin:0}.history-item[data-v-4a52f529]{padding:10px 0;border-bottom:1px solid #eee}.history-item[data-v-4a52f529]:last-child{border-bottom:none}.period-label[data-v-4a52f529]{font-size:13px;font-weight:600;color:#333;margin-right:8px}.status[data-v-4a52f529]{font-size:12px;padding:2px 6px;border-radius:4px;margin-right:8px}.status.finished[data-v-4a52f529]{background:#e8f5e9;color:#4caf50}.status.learning[data-v-4a52f529]{background:#fff3e0;color:#ff9800}.tag-btn[data-v-4a52f529]{padding:2px 8px;border:1px solid rgba(102,126,234,.4);border-radius:4px;background:#667eea14;color:#667eea;font-size:12px;cursor:pointer}.history-chars[data-v-4a52f529]{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.char-small[data-v-4a52f529]{padding:2px 6px;background:#f5f5f5;color:#666;border-radius:4px;font-size:13px}.modal-overlay[data-v-4a52f529]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-4a52f529]{background:#fff;border-radius:12px;padding:24px;max-width:320px;width:90%}.modal-title[data-v-4a52f529]{font-size:18px;font-weight:600;color:#333;margin-bottom:12px}.modal-text[data-v-4a52f529]{font-size:14px;color:#666;margin-bottom:20px;line-height:1.5}.modal-actions[data-v-4a52f529]{display:flex;gap:12px}.btn-modal[data-v-4a52f529]{flex:1;padding:10px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.btn-modal.cancel[data-v-4a52f529]{background:#f0f0f0;color:#666}.btn-modal.confirm[data-v-4a52f529]{background:#667eea;color:#fff}.study-page[data-v-2014b8ec]{min-height:100vh;background:#f5f5f5}.header[data-v-2014b8ec]{background:#fff;padding:14px 20px;display:flex;align-items:center;box-shadow:0 2px 8px #0000000f}.back-btn[data-v-2014b8ec]{background:none;border:none;font-size:16px;color:#667eea;cursor:pointer;margin-right:12px}.title[data-v-2014b8ec]{flex:1;font-size:20px;font-weight:600;color:#333}.user-corner[data-v-2014b8ec]{position:fixed;bottom:20px;right:20px;z-index:100}.user-trigger[data-v-2014b8ec]{padding:8px 14px;font-size:13px;border:1px solid #ddd;border-radius:20px;background:#fff;color:#333;cursor:pointer;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-overlay[data-v-2014b8ec]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu-dropdown[data-v-2014b8ec]{position:absolute;bottom:100%;right:0;margin-bottom:8px;background:#fff;border-radius:10px;box-shadow:0 4px 16px #00000026;overflow:hidden;z-index:101}.menu-item[data-v-2014b8ec]{display:block;width:100%;padding:12px 20px;font-size:14px;border:none;background:none;color:#333;cursor:pointer;text-align:left}.menu-item[data-v-2014b8ec]:hover{background:#f5f5f5}.content[data-v-2014b8ec]{padding:24px 20px}.period-list-section[data-v-2014b8ec]{background:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 2px 8px #0000000f}.period-list-bottom[data-v-2014b8ec]{margin-top:24px;margin-bottom:20px}.period-chars[data-v-2014b8ec]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.period-char[data-v-2014b8ec]{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;font-size:18px;font-weight:600;border-radius:8px;background:#f0f0f0;color:#333}.period-char.current[data-v-2014b8ec]{background:#dbeafe;color:#2563eb}.period-char.correct[data-v-2014b8ec]{background:#dcfce7;color:#16a34a}.period-char.wrong[data-v-2014b8ec]{background:#fee2e2;color:#dc2626}.period-char.pending[data-v-2014b8ec]{background:#f5f5f5;color:#333}.period-actions[data-v-2014b8ec]{display:flex;gap:12px;align-items:center}.btn-edit-period[data-v-2014b8ec]{flex:0 0 auto;padding:10px 16px;border:1px solid #667eea;border-radius:10px;font-size:15px;font-weight:600;color:#667eea;background:#fff;cursor:pointer}.btn-edit-period[data-v-2014b8ec]:hover{background:#f0f4ff}.btn-next-period[data-v-2014b8ec]{flex:1;min-width:0;padding:10px 16px;border:none;border-radius:10px;font-size:15px;font-weight:600;color:#fff;background:#667eea;cursor:pointer}.btn-next-period[data-v-2014b8ec]:disabled{opacity:.7;cursor:not-allowed}.edit-period-modal[data-v-2014b8ec]{max-width:360px}.modal-hint[data-v-2014b8ec]{font-size:13px;color:#666;margin:0 0 12px;line-height:1.4}.edit-period-list[data-v-2014b8ec]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;max-height:160px;overflow-y:auto}.edit-period-item[data-v-2014b8ec]{display:inline-flex;align-items:center;gap:4px;padding:6px 8px;border-radius:8px;background:#f0f0f0}.edit-period-char[data-v-2014b8ec]{font-size:18px;font-weight:600;color:#333}.edit-period-remove[data-v-2014b8ec]{width:22px;height:22px;padding:0;border:none;border-radius:50%;font-size:16px;line-height:1;color:#666;background:transparent;cursor:pointer}.edit-period-remove[data-v-2014b8ec]:hover{color:#dc2626;background:#fee2e2}.edit-period-add[data-v-2014b8ec]{display:flex;gap:8px;margin-bottom:16px}.edit-period-input[data-v-2014b8ec]{flex:1;min-width:0;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:15px}.edit-period-input[data-v-2014b8ec]:focus{outline:none;border-color:#667eea}.btn-add-char[data-v-2014b8ec]{flex-shrink:0;padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;color:#fff;background:#667eea;cursor:pointer}.btn-add-char[data-v-2014b8ec]:hover{background:#5a67d8}.modal-overlay[data-v-2014b8ec]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.writer-error[data-v-2014b8ec]{margin-top:12px;font-size:14px;color:#c33}.modal[data-v-2014b8ec]{background:#fff;border-radius:12px;padding:24px;max-width:320px;width:90%}.modal-title[data-v-2014b8ec]{font-size:18px;font-weight:600;color:#333;margin-bottom:12px}.modal-text[data-v-2014b8ec]{font-size:14px;color:#666;margin-bottom:20px;line-height:1.5}.modal-actions[data-v-2014b8ec]{display:flex;gap:12px}.btn-modal[data-v-2014b8ec]{flex:1;padding:10px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.btn-modal.cancel[data-v-2014b8ec]{background:#f0f0f0;color:#666}.btn-modal.confirm[data-v-2014b8ec]{background:#667eea;color:#fff}.loading[data-v-2014b8ec],.empty[data-v-2014b8ec]{text-align:center;padding:48px 20px;color:#666}.empty p[data-v-2014b8ec]{margin-bottom:16px}.empty-actions[data-v-2014b8ec]{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:20px}.empty-actions .btn[data-v-2014b8ec]{min-width:160px}.btn.primary[data-v-2014b8ec]{background:#667eea;color:#fff}.card-wrap[data-v-2014b8ec]{max-width:360px;margin:0 auto}.card[data-v-2014b8ec]{background:#fff;border-radius:16px;padding:32px 24px;box-shadow:0 4px 16px #00000014;text-align:center}.char-main[data-v-2014b8ec]{min-height:260px;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:8px}.char-text[data-v-2014b8ec]{font-size:80px;font-weight:700;color:#333;line-height:1.2}.writer-inline[data-v-2014b8ec]{display:flex;flex-direction:column;align-items:center}.hanzi-writer-inline[data-v-2014b8ec]{width:240px;height:240px;display:flex;align-items:center;justify-content:center;border:1px solid #e5e7eb;border-radius:12px;background-color:#fff;position:relative;transition:opacity .3s cubic-bezier(.4,0,.2,1);opacity:1;will-change:opacity;overflow:hidden}.hanzi-writer-inline svg[data-v-2014b8ec],.hanzi-writer-inline canvas[data-v-2014b8ec]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:100%;max-height:100%}.hanzi-writer-inline.loading[data-v-2014b8ec]{opacity:.5}.hanzi-writer-inline.fade[data-v-2014b8ec]{opacity:0}.writer-loading[data-v-2014b8ec]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;color:#667eea;pointer-events:none;animation:pulse-2014b8ec 1.5s ease-in-out infinite}@keyframes pulse-2014b8ec{0%,to{opacity:.6}50%{opacity:1}}.pinyin-row[data-v-2014b8ec]{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.pinyin[data-v-2014b8ec]{font-size:24px;color:#667eea}.strokes[data-v-2014b8ec]{font-size:24px;color:#666}.audio-btn[data-v-2014b8ec]{width:44px;height:44px;border:none;border-radius:50%;background:#f1f3ff;color:#667eea;cursor:pointer;font-size:24px;display:inline-flex;align-items:center;justify-content:center}.audio-btn[data-v-2014b8ec]:active{transform:scale(.96)}.write-btn[data-v-2014b8ec]{width:44px;height:44px;border:none;border-radius:50%;background:#f1f3ff;color:#667eea;cursor:pointer;font-size:24px;display:inline-flex;align-items:center;justify-content:center;margin-right:2px}.write-btn[data-v-2014b8ec]:active{transform:scale(.96)}.hint[data-v-2014b8ec]{font-size:16px;color:#666;margin-bottom:28px}.actions[data-v-2014b8ec]{display:flex;gap:40px;justify-content:center;margin-bottom:16px}.btn[data-v-2014b8ec]{padding:14px 28px;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.btn.wrong[data-v-2014b8ec]{background:#fee;color:#c33}.btn.correct[data-v-2014b8ec]{background:#efe;color:#383}.btn.link[data-v-2014b8ec]{background:transparent;color:#667eea;font-weight:500}.expand-row[data-v-2014b8ec]{margin-top:20px;padding-top:16px;border-top:1px solid #eee;text-align:center}.expand-modes[data-v-2014b8ec]{display:flex;justify-content:center;gap:8px;margin-bottom:12px}.mode-chip[data-v-2014b8ec]{padding:6px 14px;border:1px solid #ddd;border-radius:20px;background:#fff;font-size:14px;color:#666;cursor:pointer}.mode-chip.active[data-v-2014b8ec]{background:#667eea;color:#fff;border-color:#667eea}.expand-btn[data-v-2014b8ec]{padding:8px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;background:#e8ebff;color:#667eea;cursor:pointer}.expand-btn[data-v-2014b8ec]:disabled{opacity:.7;cursor:not-allowed}.expand-error[data-v-2014b8ec]{margin-top:8px;font-size:13px;color:#c33}.expand-words[data-v-2014b8ec]{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}.word-chip[data-v-2014b8ec]{padding:6px 12px;border-radius:8px;background:#f0f4ff;color:#333;font-size:14px}.btn.secondary[data-v-2014b8ec]{background:#667eea;color:#fff}.tts-debug-panel[data-v-2014b8ec]{position:fixed;bottom:20px;left:20px;z-index:100}.tts-debug-toggle[data-v-2014b8ec]{padding:8px 12px;border:1px solid #667eea;border-radius:8px;background:#fff;color:#667eea;font-size:12px;cursor:pointer;box-shadow:0 2px 8px #0000001a}.tts-debug-toggle[data-v-2014b8ec]:hover{background:#f0f4ff}.tts-debug-content[data-v-2014b8ec]{position:absolute;bottom:100%;left:0;margin-bottom:8px;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 16px #00000026;max-width:300px;max-height:400px;overflow:hidden;display:flex;flex-direction:column}.tts-debug-header[data-v-2014b8ec]{padding:10px 12px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center;background:#f8f9fa}.tts-debug-header strong[data-v-2014b8ec]{font-size:13px;color:#333}.tts-debug-header>div[data-v-2014b8ec]{display:flex;align-items:center;gap:8px}.tts-debug-copy[data-v-2014b8ec]{padding:4px 8px;border:1px solid #667eea;border-radius:4px;background:#667eea;color:#fff;font-size:11px;cursor:pointer}.tts-debug-copy[data-v-2014b8ec]:hover{background:#5568d3}.tts-debug-close[data-v-2014b8ec]{width:20px;height:20px;border:none;background:transparent;font-size:18px;line-height:1;color:#666;cursor:pointer;padding:0}.tts-debug-body[data-v-2014b8ec]{padding:10px 12px;overflow-y:auto;font-size:12px;color:#333}.tts-debug-item[data-v-2014b8ec]{margin-bottom:10px}.tts-debug-item[data-v-2014b8ec]:last-child{margin-bottom:0}.tts-debug-item strong[data-v-2014b8ec]{color:#667eea;display:block;margin-bottom:4px}.tts-debug-voices[data-v-2014b8ec]{max-height:150px;overflow-y:auto;margin-top:4px;padding:4px;background:#f8f9fa;border-radius:4px}.tts-debug-voice-item[data-v-2014b8ec]{padding:4px 6px;font-size:11px;color:#666;border-bottom:1px solid #eee}.tts-debug-voice-item[data-v-2014b8ec]:last-child{border-bottom:none}.tts-debug-select-btn[data-v-2014b8ec]{padding:6px 12px;border:1px solid #667eea;border-radius:6px;background:#667eea;color:#fff;font-size:11px;cursor:pointer;margin-top:8px}.tts-debug-select-btn[data-v-2014b8ec]:hover{background:#5568d3}.tts-debug-selected[data-v-2014b8ec]{margin-top:8px;padding:6px;background:#e8f5e9;border-radius:4px;font-size:11px;display:flex;justify-content:space-between;align-items:center}.tts-debug-selected strong[data-v-2014b8ec]{color:#2e7d32}.tts-debug-reset[data-v-2014b8ec]{padding:2px 6px;border:1px solid #c33;border-radius:4px;background:transparent;color:#c33;font-size:10px;cursor:pointer}.voice-selector-overlay[data-v-2014b8ec]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.voice-selector-modal[data-v-2014b8ec]{background:#fff;border-radius:12px;max-width:90%;max-height:80vh;width:400px;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.voice-selector-header[data-v-2014b8ec]{padding:16px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center;background:#f8f9fa}.voice-selector-header strong[data-v-2014b8ec]{font-size:14px;color:#333}.voice-selector-close[data-v-2014b8ec]{width:24px;height:24px;border:none;background:transparent;font-size:20px;line-height:1;color:#666;cursor:pointer;padding:0}.voice-selector-body[data-v-2014b8ec]{padding:12px;overflow-y:auto;max-height:calc(80vh - 60px)}.voice-selector-item[data-v-2014b8ec]{display:flex;align-items:center;gap:8px;padding:10px;margin-bottom:8px;border:1px solid #eee;border-radius:8px;background:#fff;transition:all .2s}.voice-selector-item[data-v-2014b8ec]:hover{background:#f8f9fa;border-color:#667eea}.voice-selector-item.selected[data-v-2014b8ec]{background:#e8ebff;border-color:#667eea}.voice-test-btn[data-v-2014b8ec]{padding:6px 12px;border:1px solid #667eea;border-radius:6px;background:#fff;color:#667eea;font-size:12px;cursor:pointer;white-space:nowrap}.voice-test-btn[data-v-2014b8ec]:hover{background:#f0f4ff}.voice-name[data-v-2014b8ec]{flex:1;font-size:13px;color:#333}.voice-select-btn[data-v-2014b8ec]{padding:6px 12px;border:1px solid #667eea;border-radius:6px;background:#667eea;color:#fff;font-size:12px;cursor:pointer;white-space:nowrap}.voice-select-btn[data-v-2014b8ec]:hover{background:#5568d3}.plan-page[data-v-7fd585c7]{min-height:100vh;background:#f5f5f5}.header[data-v-7fd585c7]{background:#fff;padding:14px 20px;display:flex;align-items:center;box-shadow:0 2px 8px #0000000f}.back-btn[data-v-7fd585c7]{background:none;border:none;font-size:16px;color:#667eea;cursor:pointer;margin-right:12px}.title[data-v-7fd585c7]{flex:1;font-size:20px;font-weight:600;color:#333}.user-corner[data-v-7fd585c7]{position:fixed;bottom:20px;right:20px;z-index:100}.user-trigger[data-v-7fd585c7]{padding:8px 14px;font-size:13px;border:1px solid #ddd;border-radius:20px;background:#fff;color:#333;cursor:pointer;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-overlay[data-v-7fd585c7]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu-dropdown[data-v-7fd585c7]{position:absolute;bottom:100%;right:0;margin-bottom:8px;background:#fff;border-radius:10px;box-shadow:0 4px 16px #00000026;overflow:hidden;z-index:101}.menu-item[data-v-7fd585c7]{display:block;width:100%;padding:12px 20px;font-size:14px;border:none;background:none;color:#333;cursor:pointer;text-align:left}.menu-item[data-v-7fd585c7]:hover{background:#f5f5f5}.content[data-v-7fd585c7]{padding:20px}.section[data-v-7fd585c7]{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.section-title[data-v-7fd585c7]{font-size:16px;font-weight:600;color:#333;margin-bottom:12px}.period-num[data-v-7fd585c7]{font-weight:400;color:#999;font-size:14px}.daily-count-row[data-v-7fd585c7]{display:flex;align-items:center;gap:8px}.daily-count-input[data-v-7fd585c7]{width:72px;padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:16px}.unit[data-v-7fd585c7]{color:#666;font-size:14px}.hint[data-v-7fd585c7]{font-size:12px;color:#999;margin-top:8px}.edit-hint[data-v-7fd585c7]{font-size:12px;color:#999;margin-bottom:12px}.loading[data-v-7fd585c7],.empty[data-v-7fd585c7]{color:#999;font-size:14px}.chars-row[data-v-7fd585c7]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.char-tag[data-v-7fd585c7]{display:inline-block;padding:8px 14px;background:#e8ecff;color:#667eea;border-radius:8px;font-size:18px;font-weight:600}.edit-row[data-v-7fd585c7]{display:flex;flex-direction:column;gap:10px}.edit-input[data-v-7fd585c7]{padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px}.edit-actions[data-v-7fd585c7]{display:flex;gap:8px}.edit-btn[data-v-7fd585c7]{padding:6px 12px;font-size:12px;color:#667eea;background:#e8ecff;border:none;border-radius:6px;cursor:pointer}.btn-sm[data-v-7fd585c7]{padding:6px 14px;font-size:13px;color:#fff;background:#667eea;border:none;border-radius:6px;cursor:pointer}.btn-sm.cancel[data-v-7fd585c7]{background:#999}.error-msg[data-v-7fd585c7]{color:#c33;font-size:14px;margin-bottom:16px}.actions[data-v-7fd585c7]{margin-top:24px}.btn[data-v-7fd585c7]{width:100%;padding:14px;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer}.btn.primary[data-v-7fd585c7]{background:#667eea;color:#fff}.btn.primary[data-v-7fd585c7]:disabled{opacity:.7;cursor:not-allowed}.btn.link.load-more[data-v-7fd585c7]{margin-top:12px;background:transparent;color:#667eea;font-weight:500}.modal-overlay[data-v-7fd585c7]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-7fd585c7]{background:#fff;border-radius:12px;padding:24px;max-width:320px;width:90%}.modal-title[data-v-7fd585c7]{font-size:18px;font-weight:600;color:#333;margin-bottom:12px}.modal-text[data-v-7fd585c7]{font-size:14px;color:#666;margin-bottom:20px;line-height:1.5}.modal-actions[data-v-7fd585c7]{display:flex;gap:12px}.btn-modal[data-v-7fd585c7]{flex:1;padding:10px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.btn-modal.cancel[data-v-7fd585c7]{background:#f0f0f0;color:#666}.btn-modal.confirm[data-v-7fd585c7]{background:#667eea;color:#fff}.history-list[data-v-7fd585c7]{list-style:none;padding:0;margin:0}.history-item[data-v-7fd585c7]{padding:12px 0;border-bottom:1px solid #eee}.history-item[data-v-7fd585c7]:last-child{border-bottom:none}.history-header[data-v-7fd585c7]{display:flex;align-items:center;gap:10px;margin-bottom:8px}.period-label[data-v-7fd585c7]{font-size:14px;font-weight:600;color:#333}.status[data-v-7fd585c7]{font-size:12px;padding:2px 8px;border-radius:4px}.status.finished[data-v-7fd585c7]{background:#e8f5e9;color:#4caf50}.status.learning[data-v-7fd585c7]{background:#fff3e0;color:#ff9800}.history-chars[data-v-7fd585c7]{display:flex;flex-wrap:wrap;gap:6px}.char-small[data-v-7fd585c7]{display:inline-block;padding:4px 8px;background:#f5f5f5;color:#666;border-radius:4px;font-size:14px}.tag-btn[data-v-7fd585c7]{padding:2px 8px;border:1px solid rgba(102,126,234,.4);border-radius:4px;background:#667eea14;color:#667eea;font-size:12px;cursor:pointer}.tag-btn[data-v-7fd585c7]:active{transform:scale(.96)}.history-actions[data-v-7fd585c7]{margin-top:8px}.replay-btn[data-v-7fd585c7]{border:1px solid rgba(102,126,234,.4);background:#667eea14;color:#667eea}.replay-btn[data-v-7fd585c7]:active{transform:scale(.96)}.list-page[data-v-c1ed1ee5]{min-height:100vh;background:#f5f5f5}.header[data-v-c1ed1ee5]{background:#fff;padding:14px 20px;display:flex;align-items:center;box-shadow:0 2px 8px #0000000f}.back-btn[data-v-c1ed1ee5]{background:none;border:none;font-size:16px;color:#667eea;cursor:pointer;margin-right:12px}.title[data-v-c1ed1ee5]{flex:1;font-size:20px;font-weight:600;color:#333}.user-corner[data-v-c1ed1ee5]{position:fixed;bottom:20px;right:20px;z-index:100}.user-trigger[data-v-c1ed1ee5]{padding:8px 14px;font-size:13px;border:1px solid #ddd;border-radius:20px;background:#fff;color:#333;cursor:pointer;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-overlay[data-v-c1ed1ee5]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu-dropdown[data-v-c1ed1ee5]{position:absolute;bottom:100%;right:0;margin-bottom:8px;background:#fff;border-radius:10px;box-shadow:0 4px 16px #00000026;overflow:hidden;z-index:101}.menu-item[data-v-c1ed1ee5]{display:block;width:100%;padding:12px 20px;font-size:14px;border:none;background:none;color:#333;cursor:pointer;text-align:left}.menu-item[data-v-c1ed1ee5]:hover{background:#f5f5f5}.content[data-v-c1ed1ee5]{padding:20px}.desc[data-v-c1ed1ee5]{font-size:14px;color:#666;margin-bottom:16px}.loading[data-v-c1ed1ee5],.empty[data-v-c1ed1ee5]{text-align:center;color:#999;padding:24px}.grid[data-v-c1ed1ee5]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.item[data-v-c1ed1ee5]{background:#e0e0e0;border-radius:12px;padding:16px;text-align:center;color:#999}.item.learned[data-v-c1ed1ee5]{background:#e8f5e9;color:#2e7d32}.char[data-v-c1ed1ee5]{display:block;font-size:28px;font-weight:700;margin-bottom:4px}.status[data-v-c1ed1ee5]{font-size:12px}.auth-page[data-v-6a3a8f25]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.card[data-v-6a3a8f25]{background:#fff;border-radius:16px;padding:28px 24px;max-width:360px;width:100%;box-shadow:0 4px 20px #00000026}.title[data-v-6a3a8f25]{font-size:22px;font-weight:700;color:#333;text-align:center;margin-bottom:20px}.tabs[data-v-6a3a8f25]{display:flex;gap:8px;margin-bottom:20px}.tab[data-v-6a3a8f25]{flex:1;padding:10px;border:1px solid #ddd;border-radius:8px;background:#f9f9f9;font-size:15px;cursor:pointer}.tab.active[data-v-6a3a8f25]{background:#667eea;color:#fff;border-color:#667eea}.form[data-v-6a3a8f25]{display:flex;flex-direction:column;gap:12px}.input[data-v-6a3a8f25]{padding:12px 14px;border:1px solid #ddd;border-radius:8px;font-size:15px}.input[data-v-6a3a8f25]:focus{outline:none;border-color:#667eea}.error[data-v-6a3a8f25]{color:#c33;font-size:13px}.btn[data-v-6a3a8f25]{width:100%;padding:14px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer}.btn.primary[data-v-6a3a8f25]{background:#667eea;color:#fff}.btn.primary[data-v-6a3a8f25]:disabled{opacity:.7;cursor:not-allowed}.divider[data-v-6a3a8f25]{text-align:center;color:#999;font-size:13px;margin:20px 0 16px}.btn.wechat[data-v-6a3a8f25]{background:#07c160;color:#fff}.btn.wechat[data-v-6a3a8f25]:disabled{opacity:.7;cursor:not-allowed}.detail-page[data-v-b3d95e41]{min-height:100vh;background:#f5f5f5}.header[data-v-b3d95e41]{background:#fff;padding:14px 20px;display:flex;align-items:center;box-shadow:0 2px 8px #0000000f}.back-btn[data-v-b3d95e41]{background:none;border:none;font-size:16px;color:#667eea;cursor:pointer;margin-right:12px}.title[data-v-b3d95e41]{flex:1;font-size:20px;font-weight:600;color:#333}.user-corner[data-v-b3d95e41]{position:fixed;bottom:20px;right:20px;z-index:100}.user-trigger[data-v-b3d95e41]{padding:8px 14px;font-size:13px;border:1px solid #ddd;border-radius:20px;background:#fff;color:#333;cursor:pointer;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-overlay[data-v-b3d95e41]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu-dropdown[data-v-b3d95e41]{position:absolute;bottom:100%;right:0;margin-bottom:8px;background:#fff;border-radius:10px;box-shadow:0 4px 16px #00000026;overflow:hidden;z-index:101}.menu-item[data-v-b3d95e41]{display:block;width:100%;padding:12px 20px;font-size:14px;border:none;background:none;color:#333;cursor:pointer;text-align:left}.content[data-v-b3d95e41]{padding:20px}.loading[data-v-b3d95e41]{text-align:center;padding:24px;color:#999}.learned-summary[data-v-b3d95e41]{font-size:14px;color:#667eea;font-weight:500;margin-bottom:16px}.section[data-v-b3d95e41]{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.section-title[data-v-b3d95e41]{font-size:16px;font-weight:600;color:#333;margin-bottom:12px}.period-num[data-v-b3d95e41]{font-weight:400;color:#999;font-size:14px}.chars-grid[data-v-b3d95e41]{display:flex;flex-wrap:wrap;gap:8px}.char-cell[data-v-b3d95e41]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:20px;font-weight:600;color:#333;background:#f0f0f0;border-radius:8px}.char-cell.learned[data-v-b3d95e41]{color:#2563eb;background:#eff6ff}.daily-count-row[data-v-b3d95e41]{display:flex;align-items:center;gap:8px}.daily-input[data-v-b3d95e41]{width:72px;padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:16px}.unit[data-v-b3d95e41]{color:#666;font-size:14px}.empty-mini[data-v-b3d95e41]{font-size:13px;color:#999;padding:8px 0}.chars-preview[data-v-b3d95e41]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.char-preview[data-v-b3d95e41]{font-size:22px;font-weight:700;color:#667eea;padding:6px 10px;background:#f0f0f0;border-radius:8px}.row-actions[data-v-b3d95e41]{display:flex;gap:10px}.btn-sm[data-v-b3d95e41]{padding:8px 14px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer}.btn-sm.study[data-v-b3d95e41]{background:linear-gradient(145deg,#8b5cf6,#7c3aed);color:#fff}.btn-sm.generate[data-v-b3d95e41]{background:#667eea;color:#fff}.btn-sm.generate[data-v-b3d95e41]:disabled{opacity:.7;cursor:not-allowed}.history-list[data-v-b3d95e41]{list-style:none;padding:0;margin:0}.history-item[data-v-b3d95e41]{padding:12px 0;border-bottom:1px solid #eee}.history-item[data-v-b3d95e41]:last-child{border-bottom:none}.history-header[data-v-b3d95e41]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}.period-label[data-v-b3d95e41]{font-size:14px;font-weight:600;color:#333}.status[data-v-b3d95e41]{font-size:12px;padding:2px 8px;border-radius:4px}.status.finished[data-v-b3d95e41]{background:#e8f5e9;color:#4caf50}.status.learning[data-v-b3d95e41]{background:#fff3e0;color:#ff9800}.tag-btn[data-v-b3d95e41]{padding:2px 8px;border:1px solid rgba(102,126,234,.4);border-radius:4px;background:#667eea14;color:#667eea;font-size:12px;cursor:pointer}.history-chars[data-v-b3d95e41]{display:flex;flex-wrap:wrap;gap:6px}.char-small[data-v-b3d95e41]{padding:4px 8px;background:#f5f5f5;color:#666;border-radius:4px;font-size:14px}.more[data-v-b3d95e41]{font-size:13px;color:#999}.modal-overlay[data-v-b3d95e41]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-b3d95e41]{background:#fff;border-radius:12px;padding:24px;max-width:320px;width:90%}.modal-title[data-v-b3d95e41]{font-size:18px;font-weight:600;color:#333;margin-bottom:12px}.modal-text[data-v-b3d95e41]{font-size:14px;color:#666;margin-bottom:20px;line-height:1.5}.modal-actions[data-v-b3d95e41]{display:flex;gap:12px}.btn-modal[data-v-b3d95e41]{flex:1;padding:10px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.btn-modal.cancel[data-v-b3d95e41]{background:#f0f0f0;color:#666}.btn-modal.confirm[data-v-b3d95e41]{background:#667eea;color:#fff}#app{width:100%;min-height:100vh;background-color:#f5f5f5}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}input,textarea,select{font-size:16px}
