.icon-animate-spin[data-v-0359add6]{animation:icon-spin-0359add6 1s linear infinite}.icon-animate-pop[data-v-0359add6]{animation:icon-pop-0359add6 .2s ease-out}.icon-animate-shake[data-v-0359add6]{animation:icon-shake-0359add6 .2s ease-in-out}@keyframes icon-spin-0359add6{to{transform:rotate(360deg)}}@keyframes icon-pop-0359add6{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes icon-shake-0359add6{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@media (prefers-reduced-motion: reduce){.icon-animate-spin[data-v-0359add6],.icon-animate-pop[data-v-0359add6],.icon-animate-shake[data-v-0359add6]{animation:none}}.modal-mask[data-v-d8d1550d]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200;padding:24px}.modal[data-v-d8d1550d]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:640px;width:100%;position:relative;padding:24px;box-shadow:var(--shadow-modal);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.modal-close[data-v-d8d1550d]{position:absolute;top:12px;right:12px;width:32px;height:32px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted);font-size:14px;cursor:pointer;z-index:1;transition:all .2s}.modal-close[data-v-d8d1550d]:hover{color:var(--color-text);border-color:var(--color-primary)}.modal-enter-active[data-v-d8d1550d],.modal-leave-active[data-v-d8d1550d]{transition:opacity .2s ease-out}.modal-enter-active .modal[data-v-d8d1550d],.modal-leave-active .modal[data-v-d8d1550d]{transition:transform .2s ease-out}.modal-enter-from[data-v-d8d1550d],.modal-leave-to[data-v-d8d1550d]{opacity:0}.modal-enter-from .modal[data-v-d8d1550d],.modal-leave-to .modal[data-v-d8d1550d]{transform:scale(.96)}.auth-modal[data-v-b4d6184a]{display:flex;flex-direction:column;gap:16px}.mode-tabs[data-v-b4d6184a]{display:flex;gap:8px;border-bottom:1px solid var(--color-border);padding-bottom:12px}.mode-tab[data-v-b4d6184a]{padding:8px 16px;border:none;background:transparent;color:var(--color-text-muted);font-size:var(--font-md);font-weight:600;cursor:pointer;border-radius:var(--radius-sm);transition:all .2s}.mode-tab[data-v-b4d6184a]:hover{color:var(--color-text);background:var(--color-surface-2)}.mode-tab.active[data-v-b4d6184a]{color:var(--color-primary);background:#4ade801a}.auth-form[data-v-b4d6184a]{display:flex;flex-direction:column;gap:14px}.field[data-v-b4d6184a]{display:flex;flex-direction:column;gap:6px}.field-label[data-v-b4d6184a]{font-size:var(--font-sm);color:var(--color-text-muted)}.field-input[data-v-b4d6184a]{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2);color:var(--color-text);font-size:var(--font-md);transition:border-color .2s}.field-input[data-v-b4d6184a]:focus{outline:none;border-color:var(--color-primary)}.code-row[data-v-b4d6184a]{display:flex;gap:10px;align-items:flex-end}.code-field[data-v-b4d6184a]{flex:1}.captcha-row[data-v-b4d6184a]{display:flex;gap:10px;align-items:flex-end}.captcha-field[data-v-b4d6184a]{flex:1}.captcha-img-btn[data-v-b4d6184a]{width:120px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2);overflow:hidden;cursor:pointer;padding:0;transition:border-color .2s}.captcha-img-btn[data-v-b4d6184a]:hover:not(:disabled){border-color:var(--color-primary)}.captcha-img-btn[data-v-b4d6184a]:disabled{opacity:.5;cursor:not-allowed}.captcha-img[data-v-b4d6184a]{width:100%;height:100%;object-fit:cover;display:block}.captcha-placeholder[data-v-b4d6184a]{font-size:var(--font-sm);color:var(--color-text-muted)}.send-btn[data-v-b4d6184a]{padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2);color:var(--color-text);font-size:var(--font-sm);cursor:pointer;white-space:nowrap;transition:all .2s}.send-btn[data-v-b4d6184a]:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.send-btn[data-v-b4d6184a]:disabled{opacity:.5;cursor:not-allowed}.form-error[data-v-b4d6184a]{color:var(--color-danger);font-size:var(--font-sm)}.submit-btn[data-v-b4d6184a]{padding:12px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;font-size:var(--font-md);font-weight:600;cursor:pointer;transition:opacity .2s}.submit-btn[data-v-b4d6184a]:hover:not(:disabled){opacity:.9}.submit-btn[data-v-b4d6184a]:disabled{opacity:.5;cursor:not-allowed}.link-btn[data-v-b4d6184a]{padding:4px;border:none;background:transparent;color:var(--color-primary);font-size:var(--font-sm);cursor:pointer;text-align:center}.link-btn[data-v-b4d6184a]:hover{text-decoration:underline}.auth-tip[data-v-b4d6184a]{color:var(--color-text-muted);font-size:var(--font-sm);text-align:center}.setup-desc[data-v-b4d6184a]{color:var(--color-text-muted);font-size:var(--font-sm);margin:0}.app-logo[data-v-44a813b8]{width:28px;height:28px;display:block}.onboarding-overlay[data-v-c9539ca2]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}.onboarding-card[data-v-c9539ca2]{width:100%;max-width:480px;max-height:calc(100vh - 40px);overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:32px 28px;box-shadow:0 24px 64px #0000004d}.onboarding-progress[data-v-c9539ca2]{display:flex;justify-content:center;gap:8px;margin-bottom:24px}.progress-dot[data-v-c9539ca2]{width:8px;height:8px;border-radius:50%;background:var(--color-border);transition:all .3s}.progress-dot.active[data-v-c9539ca2]{width:24px;border-radius:4px;background:var(--color-primary)}.onboarding-step[data-v-c9539ca2]{text-align:center;min-height:320px}.step-icon[data-v-c9539ca2]{display:flex;justify-content:center;margin-bottom:16px;color:var(--color-primary)}.onboarding-step h2[data-v-c9539ca2]{font-size:22px;font-weight:800;margin-bottom:8px}.step-desc[data-v-c9539ca2]{font-size:var(--font-sm);color:var(--color-text-muted);margin-bottom:24px}.option-grid[data-v-c9539ca2]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.option-btn[data-v-c9539ca2]{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 6px;min-height:64px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:all .2s}.option-btn[data-v-c9539ca2]:hover{border-color:var(--color-primary);color:var(--color-text)}.option-btn.active[data-v-c9539ca2]{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-glow)}.option-list[data-v-c9539ca2]{display:flex;flex-direction:column;gap:10px}.level-btn[data-v-c9539ca2]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:all .2s}.level-btn[data-v-c9539ca2]:hover{border-color:var(--color-primary);color:var(--color-text)}.level-btn.active[data-v-c9539ca2]{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-glow)}.level-name[data-v-c9539ca2]{font-size:var(--font-md);font-weight:700}.level-desc[data-v-c9539ca2]{font-size:var(--font-xs);opacity:.8}.onboarding-actions[data-v-c9539ca2]{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.back-btn[data-v-c9539ca2]{display:flex;align-items:center;gap:6px;padding:12px 20px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-md);cursor:pointer;transition:all .2s}.back-btn.ghost[data-v-c9539ca2]{background:transparent;border-color:transparent;color:var(--color-text-muted)}.back-btn[data-v-c9539ca2]:hover{border-color:var(--color-primary);color:var(--color-primary)}.next-btn[data-v-c9539ca2]{display:flex;align-items:center;gap:6px;padding:12px 24px;background:var(--gradient-primary);border:none;border-radius:var(--radius-md);color:#0b0e14;font-size:var(--font-md);font-weight:700;cursor:pointer;box-shadow:0 4px 16px #4ade8040;transition:all .2s}.next-btn[data-v-c9539ca2]:hover{transform:translateY(-1px);box-shadow:0 6px 24px #4ade8059}.slide-enter-active[data-v-c9539ca2],.slide-leave-active[data-v-c9539ca2]{transition:opacity .2s,transform .2s}.slide-enter-from[data-v-c9539ca2]{opacity:0;transform:translate(24px)}.slide-leave-to[data-v-c9539ca2]{opacity:0;transform:translate(-24px)}@media (prefers-reduced-motion: reduce){.slide-enter-active[data-v-c9539ca2],.slide-leave-active[data-v-c9539ca2],.progress-dot[data-v-c9539ca2]{transition:none}}.app-shell[data-v-1ca0fd70]{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text)}.topbar[data-v-1ca0fd70]{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:60px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.brand[data-v-1ca0fd70]{display:flex;align-items:center;gap:10px;cursor:pointer}.logo[data-v-1ca0fd70]{display:flex;align-items:center}.brand-name[data-v-1ca0fd70]{font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.nav[data-v-1ca0fd70]{display:flex;gap:8px;align-items:center}.nav-link[data-v-1ca0fd70]{padding:8px 16px;border-radius:var(--radius-sm);font-size:var(--font-md);color:var(--color-text-muted);transition:all .2s}.nav-link[data-v-1ca0fd70]:hover{color:var(--color-text);background:var(--color-surface-2)}.nav-link.active[data-v-1ca0fd70]{color:var(--color-primary);background:#4ade801a}.theme-btn[data-v-1ca0fd70]{width:36px;height:36px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface-2);color:var(--color-text);font-size:16px;cursor:pointer;transition:all .2s}.login-btn[data-v-1ca0fd70]{padding:6px 16px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:transparent;color:var(--color-primary);font-size:var(--font-md);font-weight:600;cursor:pointer;transition:all .2s}.login-btn[data-v-1ca0fd70]:hover{background:#4ade801a}.user-email[data-v-1ca0fd70]{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-sm);color:var(--color-text-muted)}.logout-btn[data-v-1ca0fd70]{padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--font-sm);cursor:pointer;transition:all .2s}.logout-btn[data-v-1ca0fd70]:hover{color:var(--color-danger);border-color:var(--color-danger)}.sync-banner[data-v-1ca0fd70]{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 16px;background:linear-gradient(135deg,#4ade801f,#38bdf81f);border-bottom:1px solid var(--color-border);font-size:var(--font-sm);color:var(--color-text-muted)}.sync-banner-btn[data-v-1ca0fd70]{padding:4px 12px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:transparent;color:var(--color-primary);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:all .2s}.sync-banner-btn[data-v-1ca0fd70]:hover{background:#4ade801a}.lang-btn[data-v-1ca0fd70]{width:36px;height:36px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface-2);color:var(--color-text);font-size:13px;font-weight:700;cursor:pointer;transition:all .2s}.theme-btn[data-v-1ca0fd70]:hover,.lang-btn[data-v-1ca0fd70]:hover{border-color:var(--color-primary)}.content[data-v-1ca0fd70]{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:24px}.bottom-nav[data-v-1ca0fd70]{display:none}@media (max-width: 640px){.topbar .nav[data-v-1ca0fd70]{display:none}.bottom-nav[data-v-1ca0fd70]{display:flex;position:fixed;bottom:0;left:0;right:0;height:56px;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100}.bottom-link[data-v-1ca0fd70]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:var(--color-text-muted)}.bottom-lang[data-v-1ca0fd70],.bottom-theme[data-v-1ca0fd70],.bottom-login[data-v-1ca0fd70]{background:none;border:none;cursor:pointer;font-family:inherit}.bottom-link.active[data-v-1ca0fd70]{color:var(--color-primary)}.bottom-icon[data-v-1ca0fd70]{font-size:20px}.content[data-v-1ca0fd70]{padding:16px 16px 72px}}.toast-container[data-v-0b55f661]{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast[data-v-0b55f661]{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-md);box-shadow:var(--shadow-modal);max-width:80vw}.toast-icon[data-v-0b55f661]{font-weight:700}.toast-success .toast-icon[data-v-0b55f661]{color:var(--color-primary)}.toast-error .toast-icon[data-v-0b55f661]{color:var(--color-danger)}.toast-info .toast-icon[data-v-0b55f661]{color:var(--color-accent)}.toast-enter-active[data-v-0b55f661],.toast-leave-active[data-v-0b55f661]{transition:all .25s ease-out}.toast-enter-from[data-v-0b55f661],.toast-leave-to[data-v-0b55f661]{opacity:0;transform:translateY(-10px)}:root{--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-numeric: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-bg: #0b0e14;--color-surface: #131722;--color-surface-2: #1a2030;--color-surface-3: #222a3d;--color-border: #232b3d;--color-border-hover: #33405c;--color-primary: #4ade80;--color-primary-soft: rgba(74, 222, 128, .12);--color-accent: #22d3ee;--color-accent-soft: rgba(34, 211, 238, .12);--color-danger: #f87171;--color-warning: #fbbf24;--color-text: #e8ecf4;--color-text-muted: #8b93a7;--color-text-faint: #5b6478;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--font-xs: .75rem;--font-sm: .8125rem;--font-md: .875rem;--font-lg: 1rem;--font-xl: 1.25rem;--font-2xl: 1.625rem;--shadow-card: 0 1px 3px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .2);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .35), 0 12px 32px rgba(0, 0, 0, .3);--shadow-modal: 0 8px 40px rgba(0, 0, 0, .6);--shadow-glow: 0 0 0 1px rgba(74, 222, 128, .3), 0 0 24px rgba(74, 222, 128, .15);--gradient-primary: linear-gradient(135deg, #4ade80 0%, #22d3ee 100%);--gradient-surface: linear-gradient(180deg, rgba(255, 255, 255, .03) 0%, transparent 100%);--transition-fast: .15s ease;--transition-base: .25s cubic-bezier(.4, 0, .2, 1)}:root[data-theme=light]{--color-bg: #f6f8fb;--color-surface: #ffffff;--color-surface-2: #f1f5f9;--color-surface-3: #e8eef5;--color-border: #e2e8f0;--color-border-hover: #cbd5e1;--color-primary: #15803d;--color-primary-soft: rgba(21, 128, 61, .1);--color-accent: #0e7490;--color-accent-soft: rgba(14, 116, 144, .1);--color-danger: #dc2626;--color-warning: #d97706;--color-text: #0f172a;--color-text-muted: #475569;--color-text-faint: #94a3b8;--shadow-card: 0 1px 3px rgba(15, 23, 42, .06), 0 4px 16px rgba(15, 23, 42, .06);--shadow-card-hover: 0 4px 12px rgba(15, 23, 42, .1), 0 12px 32px rgba(15, 23, 42, .1);--shadow-modal: 0 8px 40px rgba(15, 23, 42, .15);--shadow-glow: 0 0 0 1px rgba(21, 128, 61, .25), 0 0 24px rgba(21, 128, 61, .1)}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}@font-face{font-family:Inter;src:url(/fonts/Inter-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-ExtraBold.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-ExtraBold.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}*{margin:0;padding:0;box-sizing:border-box}html{font-size:100%}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);min-height:100vh;transition:background .2s,color .2s}.stat-value,.stat-sub,.ring-value,.summary-value,.complete-value,.streak-days,.set-current,.rest-countdown,.count-badge,.progress-text,.milestone-days{font-family:var(--font-numeric);font-variant-numeric:tabular-nums}#app{min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-surface)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}
