.error-boundary[data-v-15120c70]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg, #fff8f5);padding:20px}.error-content[data-v-15120c70]{text-align:center;max-width:360px}.error-icon[data-v-15120c70]{font-size:56px;display:block;margin-bottom:16px}.error-title[data-v-15120c70]{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary, #2d2d2d);margin:0 0 8px}.error-message[data-v-15120c70]{font-size:var(--text-base);color:var(--text-secondary, #666);line-height:1.6;margin:0 0 24px}.error-actions[data-v-15120c70]{display:flex;gap:12px;justify-content:center}.btn-retry[data-v-15120c70],.btn-home[data-v-15120c70]{padding:12px 24px;border-radius:var(--radius-full, 999px);font-size:var(--text-base);font-weight:600;transition:all .2s ease}.btn-retry[data-v-15120c70]{background:var(--gradient-primary, linear-gradient(135deg, #FF9B86, #FFB8A8));color:#fff;box-shadow:0 4px 12px #ff6b6b4d}.btn-retry[data-v-15120c70]:active{transform:scale(.95)}.btn-home[data-v-15120c70]{background:var(--card-bg, #fff);color:var(--text-secondary, #666);border:1px solid var(--border, #eee)}.btn-home[data-v-15120c70]:active{transform:scale(.95)}.error-details[data-v-15120c70]{margin-top:24px;text-align:left;background:var(--bg-soft, #f5f5f5);border-radius:var(--radius-md, 8px);padding:12px}.error-details summary[data-v-15120c70]{cursor:pointer;font-size:var(--text-base);color:var(--text-tertiary, #999);margin-bottom:8px}.error-details pre[data-v-15120c70]{font-size:var(--text-xs);color:var(--text-secondary, #666);white-space:pre-wrap;word-break:break-all;margin:4px 0;line-height:1.5}.toast-container[data-v-157397f3]{position:fixed;top:calc(env(safe-area-inset-top,0px) + 16px);left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:10px;padding:13px 22px;border-radius:var(--radius-xl);font-size:var(--text-base);font-weight:600;max-width:calc(100vw - 40px);box-shadow:var(--shadow-lg);cursor:pointer;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);outline:none;border:1px solid rgba(255,255,255,.15)}.toast-icon[data-v-157397f3]{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-md);flex-shrink:0;background:#ffffff40;animation:icon-pop-157397f3 .5s var(--ease-bounce)}@keyframes icon-pop-157397f3{0%{transform:scale(0) rotate(-180deg)}60%{transform:scale(1.3) rotate(10deg)}to{transform:scale(1) rotate(0)}}.toast-message[data-v-157397f3]{line-height:1.5;word-break:break-word}.toast-container.success[data-v-157397f3]{background:#5fcca9f2;color:#fff}.toast-container.error[data-v-157397f3]{background:#f47c6af2;color:#fff}.toast-container.warning[data-v-157397f3]{background:#ffcb6bf2;color:var(--text-primary)}.toast-container.warning .toast-icon[data-v-157397f3]{color:var(--text-primary)}.toast-container.info[data-v-157397f3]{background:#1f2937eb;color:#fff}.toast-fade-enter-active[data-v-157397f3]{transition:all .35s var(--ease-bounce)}.toast-fade-leave-active[data-v-157397f3]{transition:all .22s var(--ease-smooth)}.toast-fade-enter-from[data-v-157397f3]{opacity:0;transform:translate(-50%) translateY(-24px) scale(.92)}.toast-fade-leave-to[data-v-157397f3]{opacity:0;transform:translate(-50%) translateY(-12px) scale(.96)}.tab-bar[data-v-09f4998e]{position:fixed;bottom:0;left:0;right:0;height:var(--tab-bar-height);padding-bottom:env(safe-area-inset-bottom);background:var(--bg-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-around;z-index:1000}.tab-item[data-v-09f4998e]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--text-tertiary);transition:all .25s ease;padding:4px 0}.tab-item.active[data-v-09f4998e]{color:var(--primary)}.tab-item[data-v-09f4998e]:active{transform:scale(.9)}.tab-icon-wrap[data-v-09f4998e]{position:relative;display:inline-flex;align-items:center;justify-content:center}.tab-icon[data-v-09f4998e]{font-size:22px;line-height:1;transition:transform .25s var(--ease-spring);display:inline-block}.tab-badge[data-v-09f4998e]{position:absolute;top:-4px;right:-8px;min-width:16px;height:16px;padding:0 4px;background:#ff4757;color:#fff;font-size:10px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg);box-sizing:content-box}.tab-item.active .tab-icon[data-v-09f4998e]{transform:scale(1.15) translateY(-2px);animation:tab-bounce-09f4998e .5s var(--ease-bounce)}@keyframes tab-bounce-09f4998e{0%{transform:scale(.8) translateY(0)}60%{transform:scale(1.25) translateY(-4px)}to{transform:scale(1.15) translateY(-2px)}}.tab-label[data-v-09f4998e]{font-size:10px;font-weight:500}.floating-action-btn[data-v-cb6ec848]{position:fixed;right:18px;bottom:calc(var(--tab-bar-height, 60px) + 12px + env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;gap:6px;padding:12px 18px 12px 14px;border:none;border-radius:999px;background:var(--gradient-primary, linear-gradient(135deg, #ff6b6b, #ff8e8e));color:#fff;font-size:var(--text-base);font-weight:600;box-shadow:0 6px 18px #ff6b6b59,0 2px 6px #0000001f;cursor:pointer;z-index:1100;transition:transform .2s var(--ease-spring, ease),box-shadow .2s ease}.floating-action-btn[data-v-cb6ec848]:active{transform:scale(.94)}.fab-icon[data-v-cb6ec848]{font-size:var(--text-xl);line-height:1}.fab-label[data-v-cb6ec848]{font-size:var(--text-base);letter-spacing:.5px}@media (max-width: 380px){.fab-label[data-v-cb6ec848]{display:none}.floating-action-btn[data-v-cb6ec848]{padding:14px;width:52px;height:52px;justify-content:center}}.offline-banner[data-v-f0a2f1dd]{position:fixed;top:0;left:0;right:0;z-index:9990;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px));background:linear-gradient(135deg,#f97316,#ef4444);color:#fff;font-size:var(--text-base);font-weight:600;text-align:center;box-shadow:0 2px 12px #00000026}.offline-icon[data-v-f0a2f1dd]{font-size:var(--text-lg);animation:pulse-icon-f0a2f1dd 2s ease-in-out infinite}@keyframes pulse-icon-f0a2f1dd{0%,to{opacity:1}50%{opacity:.5}}.offline-text[data-v-f0a2f1dd]{letter-spacing:.5px}.offline-slide-enter-active[data-v-f0a2f1dd]{transition:all .35s cubic-bezier(.21,1.02,.73,1)}.offline-slide-leave-active[data-v-f0a2f1dd]{transition:all .25s ease}.offline-slide-enter-from[data-v-f0a2f1dd],.offline-slide-leave-to[data-v-f0a2f1dd]{transform:translateY(-100%);opacity:0}.onboarding-overlay[data-v-2c75d366]{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px}.skip-btn[data-v-2c75d366]{position:absolute;top:16px;right:16px;padding:8px var(--space-5);background:#ffffff26;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:20px;color:#ffffffe6;font-size:var(--text-base);font-weight:500;z-index:10001;transition:background .2s}.skip-btn[data-v-2c75d366]:hover{background:#ffffff40}.onboarding-card[data-v-2c75d366]{background:var(--card-bg);border-radius:var(--radius-lg);padding:0 24px 24px;max-width:380px;width:100%;box-shadow:0 20px 60px #0003;overflow:hidden;position:relative}.progress-bar[data-v-2c75d366]{height:36px;background:var(--bg);border-radius:0;display:flex;align-items:center;position:relative;margin:0 -24px;padding:0 24px;overflow:hidden}.progress-fill[data-v-2c75d366]{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--primary),#e17055);opacity:.15;transition:width .4s ease}.progress-label[data-v-2c75d366]{position:relative;z-index:1;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin:0 auto}.step-viewport[data-v-2c75d366]{overflow:hidden;position:relative}.step[data-v-2c75d366]{text-align:center;min-height:280px;display:flex;flex-direction:column;align-items:center;padding-top:24px;border-radius:var(--radius-md);margin:0 -24px;padding-left:24px;padding-right:24px}.step-gradient-welcome[data-v-2c75d366]{background:linear-gradient(180deg,rgba(99,102,241,.06) 0%,transparent 100%)}.step-gradient-account[data-v-2c75d366]{background:linear-gradient(180deg,rgba(16,185,129,.06) 0%,transparent 100%)}.step-gradient-record[data-v-2c75d366]{background:linear-gradient(180deg,rgba(236,72,153,.06) 0%,transparent 100%)}.step-gradient-ai[data-v-2c75d366]{background:linear-gradient(180deg,rgba(59,130,246,.06) 0%,transparent 100%)}.step-gradient-community[data-v-2c75d366]{background:linear-gradient(180deg,rgba(245,158,11,.06) 0%,transparent 100%)}.step-icon[data-v-2c75d366]{font-size:56px;margin-bottom:16px}.step-title[data-v-2c75d366]{font-size:22px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.step-desc[data-v-2c75d366]{font-size:var(--text-base);color:var(--text-secondary);line-height:1.6;margin-bottom:20px;max-width:300px}.step-visual[data-v-2c75d366]{margin-top:auto;padding:20px 0}.visual-wave[data-v-2c75d366]{display:flex;align-items:center;justify-content:center;gap:4px;height:50px}.wave-bar[data-v-2c75d366]{width:5px;background:var(--primary);border-radius:3px;animation:waveAnim-2c75d366 1.2s ease-in-out infinite;height:20px}@keyframes waveAnim-2c75d366{0%,to{height:12px;opacity:.4}50%{height:40px;opacity:1}}.account-info[data-v-2c75d366]{width:100%;display:flex;flex-direction:column;gap:14px;margin-top:auto}.account-badge[data-v-2c75d366]{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg);border-radius:var(--radius-md);text-align:left}.badge-icon[data-v-2c75d366]{font-size:28px;flex-shrink:0}.badge-text[data-v-2c75d366]{display:flex;flex-direction:column;gap:2px}.badge-label[data-v-2c75d366]{font-size:var(--text-sm);color:var(--text-secondary)}.badge-value[data-v-2c75d366]{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;letter-spacing:1px}.account-features[data-v-2c75d366]{display:flex;flex-direction:column;gap:8px}.account-feature[data-v-2c75d366]{display:flex;align-items:center;gap:8px;padding:var(--space-2) var(--space-3);background:var(--bg);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);text-align:left}.af-icon[data-v-2c75d366]{font-size:var(--text-lg);flex-shrink:0}.permission-card[data-v-2c75d366]{width:100%;padding:14px;background:var(--bg);border-radius:var(--radius-md);margin-bottom:14px}.perm-header[data-v-2c75d366]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.perm-icon[data-v-2c75d366]{font-size:var(--text-2xl)}.perm-title[data-v-2c75d366]{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.perm-desc[data-v-2c75d366]{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin-bottom:10px}.perm-btn[data-v-2c75d366]{width:100%;padding:10px;background:var(--primary);color:#fff;border-radius:var(--radius-xl);font-size:var(--text-base);font-weight:600;transition:all .3s}.perm-btn.granted[data-v-2c75d366]{background:#10b981}.step-features[data-v-2c75d366]{width:100%;display:flex;flex-direction:column;gap:12px;margin-top:auto}.feature-item[data-v-2c75d366]{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary)}.feature-icon[data-v-2c75d366]{font-size:var(--text-xl);flex-shrink:0}.personality-preview[data-v-2c75d366]{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:auto}.personality-chip[data-v-2c75d366]{display:flex;align-items:center;gap:4px;padding:6px var(--space-3);border-radius:20px;color:#fff;font-size:var(--text-base);font-weight:500}.chip-icon[data-v-2c75d366]{font-size:var(--text-base)}.confetti-container[data-v-2c75d366]{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti-piece[data-v-2c75d366]{position:absolute;top:-10px;border-radius:2px;animation:confettiFall-2c75d366 linear forwards;opacity:0}@keyframes confettiFall-2c75d366{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}to{transform:translateY(300px) rotate(720deg) scale(.5);opacity:0}}.pulse-btn[data-v-2c75d366]{animation:pulse-2c75d366 2s ease-in-out infinite}@keyframes pulse-2c75d366{0%,to{box-shadow:0 0 #6366f166}50%{box-shadow:0 0 0 10px #6366f100}}.slide-left-enter-active[data-v-2c75d366],.slide-left-leave-active[data-v-2c75d366],.slide-right-enter-active[data-v-2c75d366],.slide-right-leave-active[data-v-2c75d366]{transition:all .3s ease}.slide-left-enter-from[data-v-2c75d366]{opacity:0;transform:translate(40px)}.slide-left-leave-to[data-v-2c75d366],.slide-right-enter-from[data-v-2c75d366]{opacity:0;transform:translate(-40px)}.slide-right-leave-to[data-v-2c75d366]{opacity:0;transform:translate(40px)}.step-actions[data-v-2c75d366]{margin-top:24px;display:flex;flex-direction:column;align-items:center;gap:16px}.step-dots[data-v-2c75d366]{display:flex;gap:8px}.dot[data-v-2c75d366]{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all .3s}.dot.active[data-v-2c75d366]{background:var(--primary);width:24px;border-radius:4px}.step-buttons[data-v-2c75d366]{display:flex;gap:12px;width:100%}.btn-back[data-v-2c75d366]{flex:1;padding:12px;background:var(--bg);border-radius:var(--radius-xl);font-size:var(--text-md);color:var(--text-secondary);font-weight:500}.btn-next[data-v-2c75d366]{flex:2;padding:12px;background:var(--primary);color:#fff;border-radius:var(--radius-xl);font-size:var(--text-md);font-weight:600}.btn-start[data-v-2c75d366]{background:linear-gradient(135deg,var(--primary),#e17055)}.overlay-fade-enter-active[data-v-2c75d366]{transition:opacity .4s ease}.overlay-fade-leave-active[data-v-2c75d366]{transition:opacity .3s ease}.overlay-fade-enter-from[data-v-2c75d366],.overlay-fade-leave-to[data-v-2c75d366]{opacity:0}.ach-overlay[data-v-a767ac1a]{position:fixed;inset:0;z-index:10000;background:#0006;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.ach-card[data-v-a767ac1a]{background:#fff;border-radius:24px;padding:40px 32px 28px;max-width:300px;width:100%;text-align:center;box-shadow:0 20px 60px #ff9b864d;position:relative;overflow:hidden}.ach-confetti[data-v-a767ac1a]{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti-dot[data-v-a767ac1a]{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--primary, #FF9B86);animation:confetti-fall-a767ac1a 1.5s ease-out forwards;animation-delay:calc(var(--i) * .1s);opacity:0}.confetti-dot[data-v-a767ac1a]:nth-child(odd){background:var(--secondary, #FFD93D)}.confetti-dot[data-v-a767ac1a]:nth-child(3n){background:var(--accent, #6BCB77)}@keyframes confetti-fall-a767ac1a{0%{opacity:1;transform:translateY(-20px) scale(1.5)}to{opacity:0;transform:translateY(120px) scale(.3) rotate(180deg)}}.confetti-dot[data-v-a767ac1a]:nth-child(1){left:10%;top:0}.confetti-dot[data-v-a767ac1a]:nth-child(2){left:25%;top:5%}.confetti-dot[data-v-a767ac1a]:nth-child(3){left:45%;top:0}.confetti-dot[data-v-a767ac1a]:nth-child(4){left:65%;top:3%}.confetti-dot[data-v-a767ac1a]:nth-child(5){left:80%;top:0}.confetti-dot[data-v-a767ac1a]:nth-child(6){left:15%;top:8%}.confetti-dot[data-v-a767ac1a]:nth-child(7){left:55%;top:2%}.confetti-dot[data-v-a767ac1a]:nth-child(8){left:90%;top:5%}.ach-icon-wrap[data-v-a767ac1a]{margin-bottom:16px;animation:icon-bounce-a767ac1a .6s ease .3s both}.ach-icon-big[data-v-a767ac1a]{font-size:72px;display:inline-block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}@keyframes icon-bounce-a767ac1a{0%{transform:scale(0)}50%{transform:scale(1.3)}70%{transform:scale(.9)}to{transform:scale(1)}}.ach-label[data-v-a767ac1a]{display:inline-block;font-size:var(--text-sm);font-weight:600;color:var(--primary, #FF9B86);background:#ff9b861a;padding:var(--space-1) var(--space-3);border-radius:12px;margin-bottom:8px;letter-spacing:.5px}.ach-name[data-v-a767ac1a]{font-size:22px;font-weight:700;color:var(--text-primary, #2D3436);margin-bottom:6px}.ach-desc[data-v-a767ac1a]{font-size:var(--text-base);color:var(--text-secondary, #636E72);margin-bottom:20px;line-height:1.5}.ach-dismiss-btn[data-v-a767ac1a]{padding:12px 32px;background:var(--primary, #FF9B86);color:#fff;border-radius:24px;font-size:var(--text-md);font-weight:600;transition:transform .15s ease}.ach-dismiss-btn[data-v-a767ac1a]:active{transform:scale(.95)}.ach-actions[data-v-a767ac1a]{display:flex;flex-direction:column;gap:10px;align-items:center}.ach-skip-btn[data-v-a767ac1a]{background:transparent;color:var(--text-secondary, #636E72);font-size:var(--text-base);padding:6px var(--space-4);text-decoration:underline}.ach-pop-enter-active[data-v-a767ac1a]{transition:all .35s cubic-bezier(.34,1.56,.64,1)}.ach-pop-leave-active[data-v-a767ac1a]{transition:all .2s ease}.ach-pop-enter-from[data-v-a767ac1a]{opacity:0}.ach-pop-enter-from .ach-card[data-v-a767ac1a]{transform:scale(.8) translateY(20px)}.ach-pop-leave-to[data-v-a767ac1a]{opacity:0}.app-main{min-height:100vh;padding-bottom:0}.app-main.has-tabbar{padding-bottom:var(--tab-bar-height, 60px)}:root{--primary: #FF6B6B;--primary-soft: #FFF0F0;--primary-light: #FF8E8E;--primary-dark: #E05555;--primary-press: #CC4949;--primary-glow: rgba(255, 107, 107, .25);--secondary: #FFB347;--secondary-soft: #FFF3E3;--secondary-light: #FFC773;--wave: #4ECDC4;--wave-soft: #E8FAF7;--wave-dark: #3AB5AD;--dream: #A78BFA;--dream-soft: #F3EEFF;--dream-dark: #8B6FE8;--vivid: #F472B6;--vivid-soft: #FDF0F7;--sunshine: #FBBF24;--sunshine-soft: #FFFBE6;--accent: #6BCB77;--accent-soft: #E8F8EC;--accent-dark: #4FA85C;--bg: #FFF8F5;--bg-soft: #FFF0EC;--bg-elevated: #FFFFFF;--bg-gradient: linear-gradient(180deg, #FFF0EC 0%, #FFF8F5 50%, #FDFBFA 100%);--card-bg: #FFFFFF;--card-bg-secondary: #FFFAF8;--card-bg-hover: #FFF3EF;--text-primary: #1A1A2E;--text-secondary: #3F3F4A;--text-tertiary: #71717A;--text-quaternary: #C4C4C8;--text-inverse: #FFFFFF;--border: rgba(26, 26, 46, .06);--border-strong: rgba(26, 26, 46, .12);--divider: rgba(26, 26, 46, .04);--shadow-xs: 0 1px 3px rgba(26, 26, 46, .04);--shadow-sm: 0 2px 8px rgba(26, 26, 46, .05);--shadow: 0 4px 16px rgba(26, 26, 46, .06);--shadow-md: 0 8px 24px rgba(26, 26, 46, .08);--shadow-lg: 0 16px 40px rgba(26, 26, 46, .1);--shadow-xl: 0 24px 56px rgba(26, 26, 46, .12);--shadow-hover: 0 12px 32px rgba(255, 107, 107, .15);--shadow-glow: 0 6px 28px rgba(255, 107, 107, .25);--shadow-card: 0 2px 12px rgba(26, 26, 46, .04), 0 8px 24px rgba(26, 26, 46, .04);--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--header-height: 56px;--tab-bar-height: 64px;--safe-bottom-padding: max(12px, env(safe-area-inset-bottom));--max-width: 480px;--font-display: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--text-display: 30px;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.7;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--touch-min: 44px;--touch-comfortable: 48px;--gradient-primary: linear-gradient(135deg, #FF6B6B 0%, #FF8E8E 50%, #FFB347 100%);--gradient-primary-soft: linear-gradient(135deg, #FFF0F0 0%, #FFF7F5 100%);--gradient-warm: linear-gradient(135deg, #FFB347 0%, #FF6B6B 100%);--gradient-wave: linear-gradient(135deg, #4ECDC4 0%, #6EE7DE 50%, #A78BFA 100%);--gradient-dream: linear-gradient(135deg, #A78BFA 0%, #F472B6 50%, #FFB347 100%);--gradient-sunset: linear-gradient(135deg, #FF6B6B 0%, #FF8E8E 30%, #FFB347 70%, #FBBF24 100%);--gradient-ocean: linear-gradient(135deg, #4ECDC4 0%, #6EE7DE 40%, #A78BFA 80%, #F472B6 100%);--gradient-gold: linear-gradient(135deg, #FBBF24 0%, #F59E0B 50%, #FFB347 100%);--gradient-aurora: linear-gradient(135deg, #A78BFA 0%, #F472B6 40%, #FFB347 70%, #4ECDC4 100%);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-emphasized: cubic-bezier(.2, 0, 0, 1);--ease-spring: cubic-bezier(.22, 1.3, .36, 1);--bg-glass: rgba(255, 248, 245, .85);--blur-sm: 12px;--blur-md: 20px;--blur-lg: 32px}:root.dark{--primary: #FF7B7B;--primary-soft: rgba(255, 123, 123, .12);--primary-light: #FF9B9B;--primary-dark: #FFA0A0;--primary-glow: rgba(255, 123, 123, .2);--secondary: #FFC87A;--secondary-soft: rgba(255, 200, 122, .1);--wave: #5EDED5;--wave-soft: rgba(94, 222, 213, .12);--dream: #B49BF7;--dream-soft: rgba(180, 155, 247, .12);--sunshine: #FCD34D;--sunshine-soft: rgba(252, 211, 77, .1);--accent: #7DDC88;--accent-soft: rgba(125, 220, 136, .12);--accent-dark: #5DBE6A;--bg: #0F1119;--bg-soft: #171923;--bg-elevated: #1E2030;--bg-gradient: linear-gradient(180deg, #171923 0%, #0F1119 100%);--card-bg: #1E2030;--card-bg-secondary: #242738;--card-bg-hover: #2A2D3E;--text-primary: #F3F4F6;--text-secondary: #A1A7B3;--text-tertiary: #71717A;--text-quaternary: #5A6068;--text-inverse: #1A1A2E;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .12);--divider: rgba(255, 255, 255, .05);--shadow-xs: 0 1px 3px rgba(0, 0, 0, .2);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .25);--shadow: 0 4px 16px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .4);--shadow-xl: 0 24px 56px rgba(0, 0, 0, .45);--shadow-hover: 0 12px 32px rgba(255, 123, 123, .18);--shadow-glow: 0 6px 28px rgba(255, 123, 123, .2);--shadow-card: 0 2px 12px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .2);--bg-glass: rgba(30, 32, 48, .85)}:root.dark .header,:root.dark .page-header{background:var(--bg-glass)}:root.dark .card-glass{background:#1e2030bf;border-color:#ffffff14}:root.dark .glass{background:#1e2030b8;border-color:#ffffff14}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{height:100%;overflow-x:hidden;scroll-behavior:smooth}body{height:100%;font-family:var(--font-body);background:var(--bg);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}#app{min-height:100vh;padding-bottom:env(safe-area-inset-bottom);background:var(--bg)}a{text-decoration:none;color:inherit}button{border:none;cursor:pointer;font-family:inherit;background:none}input,textarea{font-family:inherit;border:1px solid transparent;outline:none}.btn-primary,.btn-secondary,.btn-ghost{padding:14px 28px;border-radius:var(--radius-full);font-size:var(--text-md);font-weight:600;transition:all .3s var(--ease-spring);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--touch-comfortable);position:relative;overflow:hidden;letter-spacing:.01em}.btn-primary{background:var(--gradient-primary);color:var(--text-inverse);box-shadow:var(--shadow-glow)}.btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,transparent 50%);pointer-events:none;border-radius:inherit}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 32px #ff6b6b52}.btn-primary:active{transform:scale(.95)}.btn-secondary{background:var(--bg-soft);color:var(--text-primary);border:1.5px solid var(--border)}.btn-secondary:hover{background:var(--primary-soft);border-color:var(--primary-light);color:var(--primary-dark);transform:translateY(-1px)}.btn-secondary:active{transform:scale(.96)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-soft);color:var(--text-primary)}.card{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);transition:all .3s var(--ease-smooth);border:1px solid var(--border);position:relative}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.card:active{transform:scale(.985)}.card-glass{background:var(--bg-glass);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));border:1px solid var(--border)}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-4)}.page{padding:var(--space-4);max-width:var(--max-width);margin:0 auto;padding-bottom:calc(var(--tab-bar-height) + var(--space-6))}.page-title{font-size:26px;font-weight:800;margin-bottom:var(--space-5);letter-spacing:-.03em;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-block}.tag{display:inline-flex;align-items:center;padding:5px 14px;background:var(--primary-soft);color:var(--primary-dark);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;border:1px solid rgba(255,107,107,.1);transition:all .2s var(--ease-smooth)}.tag:hover{transform:translateY(-1px);box-shadow:0 2px 8px #ff6b6b26}.tag-wave{background:var(--wave-soft);color:var(--wave-dark);border-color:#4ecdc426}.tag-dream{background:var(--dream-soft);color:var(--dream-dark);border-color:#a78bfa26}.tag-sunshine{background:var(--sunshine-soft);color:#d97706;border-color:#fbbf2433}.tag-vivid{background:var(--vivid-soft);color:var(--vivid);border-color:#f472b626}.empty-state{text-align:center;padding:var(--space-12) var(--space-5);color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);animation:fadeInUp .5s var(--ease-emphasized) forwards}.empty-state-icon{font-size:72px;line-height:1;margin-bottom:var(--space-2);animation:float 3s var(--ease-smooth) infinite}.empty-state-title{font-size:var(--text-xl);font-weight:700;color:var(--text-primary)}.empty-state p{font-size:var(--text-base);color:var(--text-tertiary);max-width:280px;line-height:1.7}.empty-state .btn-primary{margin-top:var(--space-4)}.header,.page-header{position:sticky;top:0;z-index:100;background:var(--bg-glass);backdrop-filter:blur(var(--blur-lg));-webkit-backdrop-filter:blur(var(--blur-lg));padding:var(--space-3) var(--space-5);display:flex;align-items:center;justify-content:space-between;min-height:var(--header-height);border-bottom:1px solid var(--divider)}.back-btn{padding:var(--space-2) var(--space-4);background:var(--bg-soft);border-radius:var(--radius-full);font-size:var(--text-base);font-weight:500;color:var(--text-secondary);transition:all .25s var(--ease-spring);display:inline-flex;align-items:center;gap:4px}.back-btn:hover{background:var(--primary-soft);color:var(--primary-dark);transform:translate(-2px)}.back-btn:active{transform:scale(.94)}.mobile-title{flex:1;font-size:var(--text-xl);font-weight:700;padding:0 var(--space-2);color:var(--text-primary);text-align:center}.page-content{padding:var(--space-4) var(--space-5);padding-bottom:var(--space-5);max-width:var(--max-width);margin:0 auto}.fixed-bottom,.form-actions{position:fixed;bottom:0;left:0;right:0;background:var(--card-bg);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));box-shadow:0 -4px 24px #1a1a2e0f;padding:var(--space-4) var(--space-5);padding-bottom:var(--safe-bottom-padding);z-index:100;border-top:1px solid var(--border)}.fixed-bottom{display:flex;gap:var(--space-3)}.fixed-bottom .btn-primary,.fixed-bottom .btn-secondary{flex:1;padding:14px 20px}.form-actions .btn-primary{width:100%}.list-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);min-height:var(--touch-min);cursor:pointer;transition:all .25s var(--ease-smooth);border-radius:var(--radius-md);background:var(--card-bg);border:1px solid var(--border)}.list-item:hover{background:var(--card-bg-hover);box-shadow:var(--shadow-sm);transform:translate(2px)}.list-item:active{transform:scale(.985)}.list-item-title{font-size:var(--text-md);font-weight:600;margin-bottom:3px;color:var(--text-primary)}.list-item-meta{font-size:13px;color:var(--text-tertiary)}.list-item-arrow{color:var(--text-tertiary);font-size:var(--text-base);margin-left:var(--space-3);transition:transform .2s var(--ease-smooth)}.list-item:hover .list-item-arrow{transform:translate(2px)}.section-title{font-size:17px;font-weight:700;margin-bottom:var(--space-4);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2);letter-spacing:-.01em}.section-title:before{content:"";width:4px;height:20px;border-radius:var(--radius-full);background:var(--gradient-primary)}.stars{display:flex;gap:6px}.stars span{font-size:var(--text-display);cursor:pointer;opacity:.25;transition:all .2s var(--ease-spring);filter:grayscale(.5)}.stars span.active{opacity:1;filter:grayscale(0);transform:scale(1.15)}.stars span:hover{opacity:.85;transform:scale(1.1)}.stars span:active{transform:scale(1.3)}.comment-textarea{width:100%;min-height:80px;padding:var(--space-4);background:var(--bg-soft);border-radius:var(--radius-md);border:1.5px solid var(--border);font-size:var(--text-md);line-height:1.7;resize:vertical;margin-bottom:var(--space-3);color:var(--text-primary);transition:all .25s var(--ease-smooth)}input:focus,textarea:focus{border-color:var(--primary-light);box-shadow:0 0 0 4px var(--primary-soft);background:var(--card-bg)}.skeleton{background:linear-gradient(90deg,var(--bg-soft) 25%,var(--card-bg) 50%,var(--bg-soft) 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top:3px solid var(--primary);border-right:3px solid var(--primary-light);border-radius:50%;animation:spin .7s linear infinite}.loading-center{display:flex;justify-content:center;align-items:center;padding:var(--space-10)}.btn-primary:disabled,.btn-secondary:disabled,.btn-ghost:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.clickable{cursor:pointer;transition:transform .15s var(--ease-smooth),opacity .15s var(--ease-smooth)}.clickable:active{transform:scale(.97);opacity:.9}.safe-bottom{padding-bottom:var(--safe-bottom-padding)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ellipsis-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-wave{background:var(--gradient-wave);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-dream{background:var(--gradient-dream);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.glass{background:var(--bg-glass);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));border:1px solid var(--border)}.press-scale{transition:transform .15s var(--ease-smooth)}.press-scale:active{transform:scale(.96)}.focus-ring:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-glow)}.rating-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--divider)}.rating-label{font-size:var(--text-base);color:var(--text-primary);font-weight:500}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulse-soft{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.06);opacity:.9}}@keyframes glow-pulse{0%,to{box-shadow:0 0 8px #ff6b6b33}50%{box-shadow:0 0 24px #ff6b6b66}}@keyframes wave-move{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce-in{0%{transform:scale(0);opacity:0}50%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}@keyframes confetti-fall{0%{transform:translateY(-100%) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@keyframes heartbeat{0%,to{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.15)}60%{transform:scale(1)}}@keyframes shimmer-shine{0%{background-position:-200% center}to{background-position:200% center}}.fade-in-up{animation:fadeInUp .5s var(--ease-emphasized) forwards;opacity:0}.fade-in{animation:fadeIn .4s var(--ease-smooth) forwards}.scale-in{animation:scaleIn .35s var(--ease-spring) forwards}.slide-in-right{animation:slideInRight .4s var(--ease-emphasized) forwards}.slide-in-up{animation:slideInUp .45s var(--ease-emphasized) forwards}.bounce-in{animation:bounce-in .5s var(--ease-spring) forwards}.animate-float{animation:float 3s var(--ease-smooth) infinite}.animate-pulse-soft{animation:pulse-soft 2s var(--ease-smooth) infinite}.animate-glow{animation:glow-pulse 2s var(--ease-smooth) infinite}.animate-wiggle{animation:wiggle .5s ease-in-out}.animate-heartbeat{animation:heartbeat 1.2s ease-in-out infinite}.shine-text{background:linear-gradient(90deg,var(--text-primary) 0%,var(--primary) 50%,var(--text-primary) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer-shine 2.5s linear infinite}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.stagger-7{animation-delay:.35s}.stagger-8{animation-delay:.4s}.wave-decoration{position:relative;overflow:hidden}.wave-decoration:before{content:"";position:absolute;top:0;left:-50%;width:200%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,107,107,.05) 25%,rgba(255,179,71,.08) 50%,rgba(255,107,107,.05) 75%,transparent 100%);animation:wave-move 6s ease-in-out infinite}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999}.confetti-piece{position:absolute;top:-10px;width:10px;height:10px;border-radius:2px;animation:confetti-fall 2.5s var(--ease-smooth) forwards}@media (max-width: 480px){:root{--header-height: 52px;--tab-bar-height: 60px}.page{padding:var(--space-3);padding-bottom:calc(var(--tab-bar-height) + var(--space-5))}.page-title{font-size:22px}.card{padding:var(--space-4)}.btn-primary,.btn-secondary,.btn-ghost{padding:var(--space-3) var(--space-5);font-size:var(--text-base);min-height:44px}.page-content{padding:var(--space-3) var(--space-4)}.section-title{font-size:var(--text-lg)}}
