#app-root{height:100%}.daily-overview[data-v-08e22f7c]{padding:0 var(--spacing-md);margin-bottom:var(--spacing-lg)}.overview-row[data-v-08e22f7c]{background:var(--color-card);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-card);justify-content:space-around;display:flex}.overview-item[data-v-08e22f7c]{flex-direction:column;align-items:center;display:flex}.overview-num[data-v-08e22f7c]{color:var(--color-primary);font-size:28px;font-weight:700}.overview-num.has-due[data-v-08e22f7c]{color:var(--color-warning)}.overview-label[data-v-08e22f7c]{color:var(--color-text-secondary);margin-top:4px;font-size:12px}.home[data-v-960dac58]{flex-direction:column;min-height:100%;padding-top:48px;display:flex}.home-header[data-v-960dac58]{text-align:center;margin-bottom:24px}.home-title-row[data-v-960dac58]{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.home-title[data-v-960dac58]{background:linear-gradient(135deg,#4a7cf7,#7c4dff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:36px;font-weight:800}.home-book-badge[data-v-960dac58]{color:#4a7cf7;white-space:nowrap;background:#e8effd;border-radius:20px;padding:3px 10px;font-size:12px}.home-subtitle[data-v-960dac58]{color:var(--color-text-secondary);margin-top:6px;font-size:14px}.home-actions[data-v-960dac58]{padding:0 var(--spacing-md);margin-bottom:var(--spacing-md)}.home-start-btn[data-v-960dac58]{margin-bottom:var(--spacing-md);padding:16px;font-size:18px}.home-wordlist-btn[data-v-960dac58]{text-align:center;width:100%;margin-bottom:var(--spacing-sm);display:block}.btn-quiz[data-v-960dac58]{text-align:center;border-radius:var(--radius-md);border:2px solid var(--color-warning);width:100%;color:var(--color-warning);background:#fff;margin-bottom:8px;padding:14px;font-size:16px;font-weight:600;display:block}.btn-dictation[data-v-960dac58]{text-align:center;border-radius:var(--radius-md);color:#4a7cf7;background:#fff;border:2px solid #4a7cf7;width:100%;padding:14px;font-size:16px;font-weight:600;display:block}.vip-badge[data-v-960dac58]{color:#fff;background:linear-gradient(135deg,#f5af19,#f12711);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.stats-row[data-v-960dac58]{gap:8px;margin-bottom:16px;padding:0 16px;display:flex}.stat-card[data-v-960dac58]{text-align:center;background:#fff;border-radius:12px;flex:1;padding:14px 8px;box-shadow:0 1px 8px #0000000f}.stat-num[data-v-960dac58]{color:#4a7cf7;font-size:24px;font-weight:700;display:block}.stat-label[data-v-960dac58]{color:#8e8e93;margin-top:2px;font-size:12px;display:block}.home-tips[data-v-960dac58]{padding:0 var(--spacing-md)}.tip-card[data-v-960dac58]{background:var(--color-card);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-sm);align-items:center;gap:var(--spacing-sm);box-shadow:var(--shadow-card);font-size:14px;display:flex}.tip-icon[data-v-960dac58]{font-size:20px}.study-slots[data-v-960dac58]{padding:0 var(--spacing-md);margin-bottom:var(--spacing-md)}.slot-header[data-v-960dac58]{color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);font-size:13px;font-weight:600}.slot-row[data-v-960dac58]{background:var(--color-card);border-radius:var(--radius-sm);padding:10px var(--spacing-md);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.slot-time[data-v-960dac58]{color:var(--color-text);font-size:13px}.slot-dur[data-v-960dac58]{color:var(--color-primary);font-size:13px;font-weight:600}.home-settings[data-v-960dac58]{padding:var(--spacing-md);padding-bottom:calc(env(safe-area-inset-bottom) + var(--spacing-lg));margin-top:auto}.setting-row[data-v-960dac58]{background:var(--color-card);border-radius:var(--radius-md);padding:14px var(--spacing-md);box-shadow:var(--shadow-card);margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:center;display:flex}.setting-label[data-v-960dac58]{color:var(--color-text);font-size:15px}.setting-controls[data-v-960dac58]{align-items:center;gap:12px;display:flex}.setting-btn[data-v-960dac58]{background:var(--color-primary-light);width:32px;height:32px;color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.setting-value[data-v-960dac58]{color:var(--color-primary);text-align:center;min-width:30px;font-size:18px;font-weight:700}.setting-input[data-v-960dac58]{text-align:center;width:50px;color:var(--color-primary);border:2px solid #e8e8ed;border-radius:8px;outline:none;padding:4px 0;font-size:18px;font-weight:700}.setting-input[data-v-960dac58]:focus{border-color:var(--color-primary)}.wrong-words-row[data-v-960dac58]{background:var(--color-card);border-radius:var(--radius-md);padding:14px var(--spacing-md);align-items:center;gap:var(--spacing-sm);box-shadow:var(--shadow-card);cursor:pointer;display:flex}.wrong-words-icon[data-v-960dac58]{font-size:20px}.wrong-words-text[data-v-960dac58]{flex:1;font-size:15px}.wrong-words-count[data-v-960dac58]{color:var(--color-danger);font-size:13px;font-weight:500}.wrong-words-arrow[data-v-960dac58]{color:var(--color-text-secondary);font-size:20px}.clear-row[data-v-960dac58]{background:var(--color-card);border-radius:var(--radius-md);padding:14px var(--spacing-md);align-items:center;gap:var(--spacing-sm);box-shadow:var(--shadow-card);cursor:pointer;margin-top:var(--spacing-sm);display:flex}.clear-icon[data-v-960dac58]{font-size:16px}.clear-text[data-v-960dac58]{color:var(--color-text-secondary);flex:1;font-size:14px}.clear-arrow[data-v-960dac58]{color:var(--color-text-secondary);font-size:20px}.user-row[data-v-960dac58]{background:var(--color-card);border-radius:var(--radius-md);padding:14px var(--spacing-md);align-items:center;gap:var(--spacing-sm);box-shadow:var(--shadow-card);margin-top:var(--spacing-sm);display:flex}.user-icon[data-v-960dac58]{font-size:16px}.user-name[data-v-960dac58]{color:var(--color-text);flex:1;font-size:14px}.logout-btn[data-v-960dac58]{color:var(--color-danger);background:0 0;border-radius:6px;padding:4px 12px;font-size:13px}.admin-link[data-v-960dac58]{color:var(--color-text-secondary);text-align:center;cursor:pointer;padding:12px 0 4px;font-size:12px}.page-header[data-v-ef64d3be]{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);display:flex}.back-btn[data-v-ef64d3be]{color:var(--color-primary);white-space:nowrap;background:0 0;padding:4px 0;font-size:16px}.loading[data-v-ef64d3be]{text-align:center;color:var(--color-text-secondary);padding:40px}.wordlist-grid[data-v-ef64d3be]{gap:var(--spacing-md);flex-direction:column;display:flex}.wordlist-card[data-v-ef64d3be]{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);cursor:pointer;display:flex}.wordlist-icon[data-v-ef64d3be]{flex-shrink:0;font-size:36px}.wordlist-info[data-v-ef64d3be]{flex:1;min-width:0}.wordlist-name[data-v-ef64d3be]{margin-bottom:2px;font-size:17px;font-weight:600}.wordlist-grade[data-v-ef64d3be]{color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);font-size:13px}.progress-bar-bg[data-v-ef64d3be]{background:#e8e8ed;border-radius:3px;height:6px;overflow:hidden}.progress-bar-fill[data-v-ef64d3be]{background:var(--color-primary);border-radius:3px;height:100%;transition:width .3s}.wordlist-count[data-v-ef64d3be]{color:var(--color-text-secondary);margin-top:4px;font-size:12px}.add-card[data-v-ef64d3be]{border:2px dashed var(--color-primary);background:var(--color-primary-light)!important}.add-icon[data-v-ef64d3be]{opacity:.7;font-size:28px!important}.add-label[data-v-ef64d3be]{color:var(--color-primary)}.custom-badge[data-v-ef64d3be]{color:#856404;background:#fff3cd;border-radius:6px;margin-left:4px;padding:1px 6px;font-size:10px;display:inline-block}.wordlist-card.custom[data-v-ef64d3be]{border-left:3px solid #ff9500}.pronounce-wrapper[data-v-6cab1336]{flex-direction:column;align-items:center;width:100%;display:flex}.pronounce-card[data-v-6cab1336]{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:320px;min-height:220px;padding:32px 20px;display:flex;position:relative;box-shadow:0 4px 24px #667eea59}.pw-word[data-v-6cab1336]{margin-bottom:6px;font-size:36px;font-weight:700}.pw-phonetic[data-v-6cab1336]{opacity:.85;margin-bottom:4px;font-size:18px}.pw-speaker[data-v-6cab1336]{cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-top:8px;font-size:28px;transition:transform .15s;display:flex}.pw-speaker[data-v-6cab1336]:active{transform:scale(.9)}.pw-badge[data-v-6cab1336]{background:#fff3;border-radius:20px;margin-top:6px;padding:4px 14px;font-size:12px}.pw-next-btn[data-v-6cab1336]{color:#fff;background:#fff3;border-radius:12px;width:100%;max-width:320px;margin-top:20px;padding:12px 28px;font-size:16px;font-weight:600;transition:background .2s}.pw-next-btn[data-v-6cab1336]:active{background:#ffffff59}.quiz-wrapper[data-v-8522cd8d]{flex-direction:column;align-items:center;display:flex}.quiz-card[data-v-8522cd8d]{text-align:center;width:100%;max-width:320px;margin-bottom:20px}.quiz-question-label[data-v-8522cd8d]{color:#8e8e93;margin-bottom:8px;font-size:13px}.quiz-word[data-v-8522cd8d]{color:#1d1d1f;font-size:28px;font-weight:700}.quiz-hint[data-v-8522cd8d]{color:#8e8e93;margin-top:4px;font-size:14px}.quiz-options[data-v-8522cd8d]{flex-direction:column;gap:10px;width:100%;max-width:320px;display:flex}.quiz-option[data-v-8522cd8d]{text-align:center;background:#fff;border:2px solid #0000;border-radius:14px;padding:16px 20px;font-size:16px;transition:all .2s;box-shadow:0 2px 8px #0000000f}.quiz-option[data-v-8522cd8d]:active:not(:disabled){transform:scale(.97)}.correct-opt[data-v-8522cd8d]{color:#155724;background:#e8f8ed!important;border-color:#34c759!important}.wrong-opt[data-v-8522cd8d]{color:#721c24;background:#ffebea!important;border-color:#ff3b30!important}.dimmed[data-v-8522cd8d]{opacity:.35}.quiz-feedback[data-v-8522cd8d]{border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;max-width:320px;margin-top:16px;padding:14px 20px;font-size:15px;font-weight:600;display:flex}.quiz-feedback.correct[data-v-8522cd8d]{color:#155724;background:#e8f8ed}.quiz-feedback.wrong[data-v-8522cd8d]{color:#721c24;background:#ffebea}.feedback-icon[data-v-8522cd8d]{font-size:20px}.phrase-wrapper[data-v-2913652c]{flex-direction:column;align-items:center;display:flex}.phrase-prompt[data-v-2913652c]{text-align:center;width:100%;max-width:320px;margin-bottom:var(--spacing-lg)}.phrase-label[data-v-2913652c]{color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);font-size:13px}.phrase-word[data-v-2913652c]{color:var(--color-primary);font-size:24px;font-weight:700}.phrase-options[data-v-2913652c]{gap:var(--spacing-sm);flex-direction:column;width:100%;max-width:320px;display:flex}.phrase-option[data-v-2913652c]{border-radius:var(--radius-md);background:var(--color-card);box-shadow:var(--shadow-card);padding:16px 20px;font-size:16px;transition:all .2s}.phrase-option[data-v-2913652c]:active:not(:disabled){transform:scale(.97)}.correct-opt[data-v-2913652c]{color:#155724;border:2px solid var(--color-success);background:#d4edda!important}.wrong-opt[data-v-2913652c]{color:#721c24;border:2px solid var(--color-danger);background:#f8d7da!important}.dimmed[data-v-2913652c]{opacity:.4}.phrase-feedback[data-v-2913652c]{margin-top:var(--spacing-md);border-radius:var(--radius-md);padding:12px 24px;font-size:15px;font-weight:600}.phrase-feedback.correct[data-v-2913652c]{color:#155724;background:#d4edda}.phrase-feedback.wrong[data-v-2913652c]{color:#721c24;background:#f8d7da}.phrase-empty[data-v-2913652c]{text-align:center;padding:40px}.phrase-empty p[data-v-2913652c]{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}.fade-enter-active[data-v-2913652c]{transition:opacity .3s}.fade-enter-from[data-v-2913652c]{opacity:0}.spelling-wrapper[data-v-de22cf1e]{flex-direction:column;align-items:center;display:flex}.spelling-card[data-v-de22cf1e]{text-align:center;width:100%;max-width:320px;margin-bottom:var(--spacing-lg)}.spelling-label[data-v-de22cf1e]{color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);font-size:13px}.spelling-def[data-v-de22cf1e]{color:var(--color-text);margin-bottom:6px;font-size:24px;font-weight:600}.spelling-pos[data-v-de22cf1e]{color:var(--color-text-secondary);margin-bottom:4px;font-size:14px}.spelling-phonetic[data-v-de22cf1e]{color:var(--color-primary);margin-bottom:4px;font-size:16px}.spelling-hint[data-v-de22cf1e]{color:var(--color-warning);margin-top:4px;font-size:13px}.spelling-input-wrap[data-v-de22cf1e]{gap:var(--spacing-sm);width:100%;max-width:320px;display:flex}.spelling-input[data-v-de22cf1e]{border-radius:var(--radius-md);border:2px solid #e8e8ed;outline:none;flex:1;padding:14px 16px;font-size:18px;transition:border-color .2s}.spelling-input[data-v-de22cf1e]:focus{border-color:var(--color-primary)}.spelling-input[data-v-de22cf1e]:disabled{background:#f5f5f5}.spelling-submit[data-v-de22cf1e]{flex-shrink:0;width:auto;padding:14px 20px}.spelling-feedback[data-v-de22cf1e]{margin-top:var(--spacing-md);border-radius:var(--radius-md);text-align:center;padding:12px 24px;font-size:15px;font-weight:600}.spelling-feedback.correct[data-v-de22cf1e]{color:#155724;background:#d4edda}.spelling-feedback.wrong[data-v-de22cf1e]{color:#721c24;background:#f8d7da}.retry-hint[data-v-de22cf1e]{font-size:13px;font-weight:400}.fade-enter-active[data-v-de22cf1e]{transition:opacity .3s}.fade-enter-from[data-v-de22cf1e]{opacity:0}.summary-wrapper[data-v-57d1f3fc]{flex-direction:column;align-items:center;display:flex;position:relative;overflow:hidden}.confetti-container[data-v-57d1f3fc]{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-piece[data-v-57d1f3fc]{animation:2s ease-out forwards confetti-fall-57d1f3fc;position:absolute;top:-10px}.summary-header[data-v-57d1f3fc]{text-align:center;z-index:1;margin-bottom:24px}.summary-stars[data-v-57d1f3fc]{margin-bottom:8px}.star[data-v-57d1f3fc]{color:#e8e8ed;margin:0 4px;font-size:44px;display:inline-block}.star.filled[data-v-57d1f3fc]{color:#ff9500}.summary-title[data-v-57d1f3fc]{margin-bottom:6px;font-size:26px;font-weight:700}.summary-stat[data-v-57d1f3fc]{color:#8e8e93;font-size:15px}.summary-detail[data-v-57d1f3fc]{z-index:1;width:100%;max-width:360px;max-height:300px;margin-bottom:24px;overflow-y:auto}.detail-title[data-v-57d1f3fc]{margin-bottom:12px;font-size:15px;font-weight:600}.detail-row[data-v-57d1f3fc]{border-bottom:1px solid #f0f0f0;align-items:center;gap:8px;padding:10px 0;display:flex}.detail-word[data-v-57d1f3fc]{min-width:80px;font-size:15px;font-weight:600}.detail-def[data-v-57d1f3fc]{color:#8e8e93;flex:1;font-size:13px}.detail-status[data-v-57d1f3fc]{font-size:16px}.detail-row.struggled .detail-status[data-v-57d1f3fc]{color:#8e8e93}.summary-actions[data-v-57d1f3fc]{z-index:1;width:100%;max-width:320px}@keyframes confetti-fall-57d1f3fc{0%{opacity:1;transform:translateY(-10px)rotate(0)}to{opacity:0;transform:translateY(280px)rotate(720deg)}}.session-page[data-v-76b24d88]{flex-direction:column;height:100%;padding-top:0;display:flex}.session-header[data-v-76b24d88]{z-index:10;background:#f5f7fa;justify-content:space-between;align-items:center;padding:16px;display:flex;position:sticky;top:0}.back-btn[data-v-76b24d88]{color:#4a7cf7;background:0 0;font-size:15px}.session-progress-area[data-v-76b24d88]{flex-direction:column;align-items:center;gap:4px;display:flex}.progress-dots[data-v-76b24d88]{align-items:center;gap:5px;display:flex}.dot[data-v-76b24d88]{background:#e0e0e0;border-radius:50%;width:8px;height:8px;transition:all .3s}.dot.active[data-v-76b24d88]{background:#4a7cf7;transform:scale(1.3)}.dot.done[data-v-76b24d88]{background:#34c759}.phase-label[data-v-76b24d88]{color:#4a7cf7;background:#e8effd;border-radius:10px;padding:2px 8px;font-size:11px}.select-prompt[data-v-76b24d88]{text-align:center;padding-top:60px}.select-prompt p[data-v-76b24d88]{color:#8e8e93;margin-bottom:16px}.phase-container[data-v-76b24d88]{flex-direction:column;flex:1;justify-content:center;padding:16px;display:flex}.empty-state[data-v-76b24d88]{text-align:center;color:#8e8e93;font-size:16px}.summary-container[data-v-76b24d88]{flex-direction:column;flex:1;justify-content:center;padding:16px;display:flex}.meaning-wrapper[data-v-76b24d88]{flex-direction:column;align-items:center;display:flex}.meaning-card[data-v-76b24d88]{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:320px;margin-bottom:20px;padding:32px 24px;box-shadow:0 2px 16px #00000014}.mc-hint[data-v-76b24d88]{color:#8e8e93;text-align:center;margin-bottom:12px;font-size:14px}.mc-def[data-v-76b24d88]{color:#1d1d1f;margin-bottom:6px;font-size:24px;font-weight:700}.mc-word[data-v-76b24d88]{color:#4a7cf7;margin-bottom:12px;font-size:16px;font-weight:500}.mc-example[data-v-76b24d88]{color:#666;border-top:1px solid #f0f0f0;padding-top:10px;font-size:14px;font-style:italic;line-height:1.6}.mc-no-example[data-v-76b24d88]{color:#ccc;padding-top:10px;font-size:13px}.mc-rate-row[data-v-76b24d88]{gap:16px;width:100%;max-width:320px;display:flex}.mc-btn[data-v-76b24d88]{color:#8e8e93;background:#fff;border:2px solid #e0e0e0;border-radius:14px;flex:1;padding:16px 0;font-size:17px;font-weight:600;transition:all .15s}.mc-btn[data-v-76b24d88]:active{transform:scale(.96)}.mc-btn-wrong[data-v-76b24d88]{color:#ff3b30!important;background:#fff!important;border-color:#ff3b30!important}.mc-btn-right[data-v-76b24d88]{color:#34c759!important;background:#fff!important;border-color:#34c759!important}.phrase-wrapper[data-v-76b24d88]{flex-direction:column;align-items:center;width:100%;display:flex}.ph-section-title[data-v-76b24d88]{color:#1d1d1f;margin-bottom:4px;font-size:18px;font-weight:700}.ph-count[data-v-76b24d88]{color:#8e8e93;margin-bottom:20px;font-size:13px}.ph-card[data-v-76b24d88]{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:320px;margin-bottom:20px;padding:28px 24px;box-shadow:0 2px 16px #00000014}.ph-main[data-v-76b24d88]{color:#4a7cf7;margin-bottom:10px;font-size:24px;font-weight:700}.ph-def[data-v-76b24d88]{color:#1d1d1f;margin-bottom:8px;font-size:17px;font-weight:500}.ph-example[data-v-76b24d88]{color:#666;border-top:1px solid #f0f0f0;padding-top:10px;font-size:14px;font-style:italic;line-height:1.6}.ph-rate-row[data-v-76b24d88]{gap:16px;width:100%;max-width:320px;display:flex}.login-page[data-v-0f86b6df]{background:#f5f7fa;justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.login-box[data-v-0f86b6df]{width:100%;max-width:360px}.login-title[data-v-0f86b6df]{text-align:center;background:linear-gradient(135deg,#4a7cf7,#7c4dff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:4px;font-size:32px;font-weight:800}.login-subtitle[data-v-0f86b6df]{color:#8e8e93;text-align:center;margin-bottom:32px;font-size:13px}.tab-row[data-v-0f86b6df]{background:#e8e8ed;border-radius:10px;margin-bottom:24px;padding:3px;display:flex}.tab-btn[data-v-0f86b6df]{color:#8e8e93;background:0 0;border-radius:8px;flex:1;padding:10px;font-size:15px;font-weight:600}.tab-btn.active[data-v-0f86b6df]{color:#4a7cf7;background:#fff;box-shadow:0 1px 4px #00000014}.form[data-v-0f86b6df]{flex-direction:column;gap:16px;display:flex}.field label[data-v-0f86b6df]{color:#8e8e93;margin-bottom:4px;font-size:13px;display:block}.field input[data-v-0f86b6df]{border:2px solid #e8e8ed;border-radius:10px;outline:none;width:100%;padding:14px 16px;font-size:16px;transition:border-color .2s}.field input[data-v-0f86b6df]:focus{border-color:#4a7cf7}.form-error[data-v-0f86b6df]{color:#ff3b30;text-align:center;font-size:14px}.login-btn[data-v-0f86b6df]{padding:16px;font-size:17px}.btn-demo[data-v-0f86b6df]{color:#8e8e93;text-align:center;background:0 0;border-radius:10px;width:100%;margin-top:12px;padding:12px;font-size:14px}.form-hint[data-v-0f86b6df]{color:#8e8e93;text-align:center;margin-top:4px;font-size:12px}:root{--color-primary:#5b7fff;--color-primary-light:#eef2ff;--color-primary-dark:#4361e2;--color-success:#34c759;--color-success-light:#e8f8ed;--color-danger:#ff3b30;--color-danger-light:#ffebea;--color-warning:#ff9500;--color-bg:#f5f7fa;--color-card:#fff;--color-text:#1d1d1f;--color-text-secondary:#8e8e93;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--shadow-card:0 2px 16px #0000000f;--shadow-card-lg:0 8px 32px #00000014;--shadow-button:0 2px 8px #5b7fff4d}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;height:100%;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;overflow:hidden}body{-webkit-tap-highlight-color:transparent}#app{-webkit-overflow-scrolling:touch;height:100%;overflow-y:auto}button{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;outline:none;font-family:inherit}input{font-family:inherit}.card{background:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--spacing-lg)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-button);border-radius:14px;width:100%;padding:16px 32px;font-size:17px;font-weight:600;transition:transform .15s,opacity .15s}.btn-primary:active{opacity:.9;transform:scale(.97)}.btn-secondary{background:var(--color-primary-light);color:var(--color-primary);border-radius:12px;padding:14px 24px;font-size:15px;font-weight:600;transition:transform .15s}.btn-secondary:active{transform:scale(.97)}.page{padding:var(--spacing-lg);padding-bottom:calc(env(safe-area-inset-bottom) + var(--spacing-xl));min-height:100%}.page-title{margin-bottom:var(--spacing-lg);font-size:28px;font-weight:700}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-10px)rotate(0)}to{opacity:0;transform:translateY(100px)rotate(720deg)}}.anim-fade-in{animation:.3s ease-out fadeIn}.anim-slide-up{animation:.35s ease-out slideUp}.anim-pop-in{animation:.3s ease-out popIn}.anim-shake{animation:.4s ease-out shake}
