.login-modal[data-v-e6ceb5ab]{background:#ffffffd1;border:1px solid rgba(255,255,255,.35);border-radius:28px;width:100%;max-width:400px;box-shadow:0 24px 80px #6c5ce71f,0 0 0 1px #ffffff1a;overflow:hidden;outline:none;animation:modalSlideUp-e6ceb5ab .35s cubic-bezier(.34,1.56,.64,1)}@keyframes modalSlideUp-e6ceb5ab{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header[data-v-e6ceb5ab]{display:flex;align-items:center;justify-content:space-between;padding:24px 28px 0}.modal-logo[data-v-e6ceb5ab]{font-size:1.5rem;font-weight:900;color:var(--cetu-primary);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-1px}.close-btn[data-v-e6ceb5ab]{background:none;border:none;cursor:pointer;color:#9ca3af;min-width:44px;min-height:44px;padding:8px;border-radius:12px;transition:color .2s,background .2s;display:flex;align-items:center}.close-btn[data-v-e6ceb5ab]:hover{color:#374151;background:#6c5ce70f}.modal-tabs[data-v-e6ceb5ab]{display:flex;padding:20px 28px 0;gap:8px;border-bottom:none}.tab-btn[data-v-e6ceb5ab]{flex:1;min-height:44px;padding:10px;background:none;border:none;border-radius:14px;font-size:15px;font-weight:600;color:#9ca3af;cursor:pointer;transition:all .25s ease}.tab-btn.active[data-v-e6ceb5ab]{color:var(--cetu-primary);background:#6c5ce714}.modal-body[data-v-e6ceb5ab]{padding:24px 28px 28px}.auth-form[data-v-e6ceb5ab]{display:flex;flex-direction:column;gap:16px}.form-group[data-v-e6ceb5ab]{display:flex;flex-direction:column;gap:6px}.form-label[data-v-e6ceb5ab]{font-size:13px;font-weight:600;color:#374151}.optional[data-v-e6ceb5ab]{font-weight:400;color:#9ca3af;font-size:12px;margin-left:4px}.form-input[data-v-e6ceb5ab],.form-select[data-v-e6ceb5ab]{min-height:44px;padding:11px 16px;border:1.5px solid rgba(209,213,219,.6);border-radius:14px;font-size:14px;color:#111827;background:#fff9;transition:border-color .2s,box-shadow .2s;width:100%;box-sizing:border-box;outline:none}.form-input[data-v-e6ceb5ab]:focus,.form-select[data-v-e6ceb5ab]:focus{border-color:var(--cetu-primary);box-shadow:0 0 0 4px #6c5ce71f,0 0 16px #6c5ce714}.form-error[data-v-e6ceb5ab]{padding:10px 14px;background:#fef2f2cc;border:1px solid rgba(239,68,68,.3);border-radius:14px;color:#dc2626;font-size:13px}.btn-submit[data-v-e6ceb5ab]{min-height:44px;padding:13px;background:var(--gradient-primary);color:#fff;border:none;border-radius:16px;font-size:15px;font-weight:700;cursor:pointer;transition:all .25s ease;margin-top:4px;box-shadow:0 4px 20px #6c5ce74d;position:relative}.btn-submit[data-v-e6ceb5ab]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 28px #6c5ce766}.btn-submit[data-v-e6ceb5ab]:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.divider[data-v-e6ceb5ab]{display:flex;align-items:center;gap:12px;margin:20px 0;color:#9ca3af;font-size:13px}.divider[data-v-e6ceb5ab]:before,.divider[data-v-e6ceb5ab]:after{content:"";flex:1;height:1px;background:#d1d5db80}.social-btns[data-v-e6ceb5ab]{display:flex;flex-direction:column;gap:10px}.btn-social[data-v-e6ceb5ab]{min-height:44px;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border:1.5px solid rgba(209,213,219,.5);border-radius:14px;background:#ffffff80;font-size:14px;font-weight:500;color:#374151;cursor:pointer;transition:all .25s ease;width:100%}.btn-social[data-v-e6ceb5ab]:hover{background:#6c5ce70a;border-color:#6c5ce733}.btn-social[data-v-e6ceb5ab]:disabled{opacity:.7;cursor:wait}[data-v-04c2c855]:root{--color-primary: var(--cetu-primary, #6C5CE7);--color-primary-light: var(--cetu-primary-light, #A29BFE);--color-accent: var(--cetu-accent-alt, #FD79A8);--color-bg: var(--bg-primary, #FAFBFF);--color-surface: var(--surface-card, #FFFFFF);--color-surface-solid: var(--surface-card-solid, #fff);--color-text: var(--text-primary, #1A1A2E);--color-text-muted: var(--text-muted, #8888A0);--color-border: var(--border-color, #E2E0F0);--nav-height: 60px;--mobile-nav-height: 64px}.layout-root[data-v-04c2c855]{min-height:100vh;background-color:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column;font-family:Inter,PingFang SC,Noto Sans SC,system-ui,sans-serif}.desktop-nav[data-v-04c2c855]{position:sticky;top:0;z-index:100;background:var(--color-bg);border-bottom:1px solid var(--color-border);height:var(--nav-height);display:flex;align-items:center}.nav-inner[data-v-04c2c855]{max-width:1280px;width:100%;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:20px}.logo[data-v-04c2c855]{min-height:44px;display:inline-flex;align-items:center;font-size:1.25rem;font-weight:800;color:var(--cetu-primary);text-decoration:none;letter-spacing:-.5px;white-space:nowrap;flex-shrink:0}.logo-sub[data-v-04c2c855]{font-size:13px;font-weight:400;-webkit-text-fill-color:var(--color-text-muted)}.nav-links[data-v-04c2c855]{display:flex;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none}.nav-links[data-v-04c2c855]::-webkit-scrollbar{display:none}.nav-link[data-v-04c2c855]{min-width:44px;min-height:44px;padding:8px 14px;border-radius:12px;text-decoration:none;color:var(--color-text-muted);font-size:13.5px;font-weight:500;transition:all .2s;white-space:nowrap;position:relative;display:inline-flex;align-items:center}.nav-link[data-v-04c2c855]:hover{color:var(--color-primary);background:#6c5ce70f}.nav-link.active[data-v-04c2c855]{color:var(--color-primary);font-weight:600;background:transparent}.nav-link.active[data-v-04c2c855]:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:5px;height:5px;background:var(--color-primary);border-radius:50%}.nav-actions[data-v-04c2c855]{display:flex;align-items:center;gap:8px;flex-shrink:0}.lang-menu[data-v-04c2c855]{position:relative}.lang-switcher[data-v-04c2c855]{display:flex;align-items:center;gap:4px;min-height:44px;padding:8px 12px;border:1px solid var(--color-border);border-radius:12px;cursor:pointer;font-size:13px;font-weight:600;color:var(--color-text);background:var(--color-surface);-webkit-user-select:none;user-select:none;transition:all .2s}.lang-switcher[data-v-04c2c855]:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce71a}.lang-dropdown[data-v-04c2c855]{position:absolute;top:calc(100% + 8px);right:0;background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 12px 32px #0000001f;min-width:130px;overflow:hidden;z-index:200;padding:4px}.lang-option[data-v-04c2c855]{display:block;width:100%;padding:10px 16px;text-align:left;background:none;border:none;cursor:pointer;font-size:14px;color:var(--color-text);border-radius:12px;transition:background .15s}.lang-option[data-v-04c2c855]:hover{background:#6c5ce70f}.lang-option.selected[data-v-04c2c855]{color:var(--color-primary);font-weight:600;background:#6c5ce70f}.icon-btn[data-v-04c2c855]{background:none;border:1px solid var(--color-border);border-radius:12px;min-width:44px;min-height:44px;padding:8px;cursor:pointer;font-size:16px;line-height:1;transition:all .2s}.icon-btn[data-v-04c2c855]:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce71a}.btn-login[data-v-04c2c855]{min-height:44px;padding:8px 20px;background:var(--gradient-primary);color:#fff;border:none;border-radius:12px;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #6c5ce740}.btn-login[data-v-04c2c855]:hover{transform:translateY(-1px);box-shadow:0 4px 16px #6c5ce759}.btn-profile[data-v-04c2c855]{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;color:var(--color-primary);border:1px solid var(--color-primary-light);border-radius:12px;font-size:13px;font-weight:600;text-decoration:none;transition:all .2s;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-profile[data-v-04c2c855]:hover{background:#6c5ce70f}.btn-logout[data-v-04c2c855]{min-height:44px;padding:8px 12px;background:none;border:1px solid var(--color-border);border-radius:12px;font-size:13px;cursor:pointer;color:var(--color-text-muted);transition:all .2s}.btn-logout[data-v-04c2c855]:hover{border-color:var(--color-accent);color:var(--color-accent)}.feedback-floating-btn[data-v-04c2c855]{position:fixed;right:20px;bottom:24px;z-index:120;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-solid);color:var(--color-text);box-shadow:0 8px 28px #1a1a2e29;cursor:pointer;font-size:13px;font-weight:700}.feedback-floating-btn[data-v-04c2c855]:hover{border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 10px 32px #6c5ce738}.feedback-floating-btn span[aria-hidden=true][data-v-04c2c855]{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#6c5ce71a}.feedback-modal[data-v-04c2c855]{width:min(520px,calc(100vw - 32px));background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:18px;box-shadow:0 24px 80px #0a0a1a47;padding:22px;color:var(--color-text)}.feedback-header[data-v-04c2c855]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.feedback-eyebrow[data-v-04c2c855]{margin:0 0 4px;color:var(--color-primary);font-size:12px;font-weight:800}.feedback-title[data-v-04c2c855]{margin:0;font-size:20px;line-height:1.25}.feedback-close[data-v-04c2c855]{width:44px;height:44px;border:1px solid var(--color-border);border-radius:12px;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:24px}.feedback-label[data-v-04c2c855]{display:block;margin-bottom:8px;font-size:13px;font-weight:700;color:var(--color-text-muted)}.feedback-textarea[data-v-04c2c855]{width:100%;min-height:150px;resize:vertical;box-sizing:border-box;border:1.5px solid var(--color-border);border-radius:14px;padding:14px 16px;font:inherit;line-height:1.6;color:var(--color-text);background:var(--color-surface);outline:none}.feedback-textarea[data-v-04c2c855]:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #6c5ce71a}.feedback-meta[data-v-04c2c855]{display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:var(--color-text-muted);font-size:12px}.feedback-status[data-v-04c2c855]{margin:12px 0 0;padding:10px 12px;border-radius:12px;font-size:13px}.feedback-status--error[data-v-04c2c855]{color:#dc2626;background:#ef444414}.feedback-status--success[data-v-04c2c855]{color:#059669;background:#10b98114}.feedback-actions[data-v-04c2c855]{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.feedback-primary[data-v-04c2c855],.feedback-secondary[data-v-04c2c855]{min-height:44px;padding:10px 18px;border-radius:12px;font-weight:700;cursor:pointer}.feedback-primary[data-v-04c2c855]{border:none;background:var(--gradient-primary);color:#fff}.feedback-primary[data-v-04c2c855]:disabled{opacity:.6;cursor:not-allowed}.feedback-secondary[data-v-04c2c855]{border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted)}.main-content[data-v-04c2c855]{flex:1;padding-bottom:var(--mobile-nav-height)}@media(min-width:1024px){.main-content[data-v-04c2c855]{padding-bottom:0}}.mobile-bottom-nav[data-v-04c2c855]{position:fixed;bottom:0;left:0;right:0;height:var(--mobile-nav-height);background:var(--color-bg);border-top:1px solid var(--color-border);display:flex;align-items:stretch;z-index:100;padding-bottom:env(safe-area-inset-bottom,0)}.bottom-tab[data-v-04c2c855]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--color-text-muted);font-size:10px;transition:color .2s,transform .2s;position:relative;min-height:44px}.bottom-tab.active[data-v-04c2c855]{color:var(--color-primary)}.bottom-tab.active[data-v-04c2c855]:after{content:"";position:absolute;bottom:6px;left:50%;transform:translate(-50%);width:4px;height:4px;background:var(--color-primary);border-radius:50%}.tab-icon[data-v-04c2c855]{font-size:22px;line-height:1;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.bottom-tab.active .tab-icon[data-v-04c2c855]{transform:scale(1.15) translateY(-2px)}.tab-label[data-v-04c2c855]{font-size:10px;font-weight:500}@media(min-width:1024px){.mobile-bottom-nav[data-v-04c2c855]{display:none}}@media(max-width:767px){.nav-links[data-v-04c2c855]{display:none}.nav-actions[data-v-04c2c855]{gap:4px}.feedback-floating-btn[data-v-04c2c855]{bottom:calc(var(--mobile-nav-height) + 16px + env(safe-area-inset-bottom,0px));right:16px}.feedback-actions[data-v-04c2c855]{flex-direction:column-reverse}.feedback-primary[data-v-04c2c855],.feedback-secondary[data-v-04c2c855]{width:100%}.feedback-meta[data-v-04c2c855]{flex-direction:column}}@media(min-width:768px)and (max-width:1023px){.nav-links[data-v-04c2c855]{gap:2px}.nav-link[data-v-04c2c855]{padding:6px 8px;font-size:13px}}.modal-overlay[data-v-04c2c855]{position:fixed;inset:0;background:#0a0a1a99;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px}.backdrop[data-v-04c2c855]{position:fixed;inset:0;z-index:99}.toast-container[data-v-04c2c855]{position:fixed;top:80px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast[data-v-04c2c855]{padding:14px 20px;border-radius:16px;font-size:14px;font-weight:500;box-shadow:0 4px 20px #0000001f;pointer-events:all;cursor:pointer;max-width:300px;word-break:break-word;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toast--success[data-v-04c2c855]{background:#22c55ee6;color:#fff}.toast--error[data-v-04c2c855]{background:#ef4444e6;color:#fff}.toast--info[data-v-04c2c855]{background:#6c5ce7e6;color:#fff}.toast-enter-active[data-v-04c2c855],.toast-leave-active[data-v-04c2c855]{transition:all .3s ease}.toast-enter-from[data-v-04c2c855],.toast-leave-to[data-v-04c2c855]{opacity:0;transform:translate(100%)}.dark{--color-bg: #0D1117;--color-surface: #161B22;--color-surface-solid: #161B22;--color-text: #E6EDF3;--color-text-muted: #8B949E;--color-border: #30363D}.dark{background:#0d1117;border-bottom-color:#30363d}.dark{background:#0d1117;border-top-color:#30363d}.page-fade-enter-active[data-v-04c2c855],.page-fade-leave-active[data-v-04c2c855]{transition:opacity .15s ease}.page-fade-enter-from[data-v-04c2c855],.page-fade-leave-to[data-v-04c2c855]{opacity:0}:root{--cetu-primary: #6E8B74;--cetu-primary-light: #94AA98;--cetu-primary-dark: #4F6A56;--cetu-accent: #C89B5B;--cetu-accent-light: #E6C89A;--cetu-accent-alt: #EFD8C2;--cetu-gold: #C89B5B;--brand-green-deep: #48614F;--gradient-primary: linear-gradient(135deg, #6E8B74, #58705E);--gradient-primary-dark: linear-gradient(135deg, #58705E, #48614F);--gradient-accent: linear-gradient(135deg, #F4E7D7, #EFD8C2);--gradient-glow: linear-gradient(135deg, #EFD8C2, #F7F3EC);--gradient-hero: linear-gradient(135deg, #FBF6EF 0%, #F7F3EC 48%, #F2E7D8 100%);--cta-primary: linear-gradient(135deg, #1F2937, #314052);--cta-secondary: linear-gradient(135deg, #6E8B74, #58705E);--surface-success: #EEF4EF;--glow-primary: rgba(108, 92, 231, .12);--glow-primary-strong: rgba(108, 92, 231, .25);--glow-accent: rgba(0, 206, 201, .12);--glow-pink: rgba(253, 121, 168, .12);--primary-subtle: rgba(108, 92, 231, .06);--ai-gradient: linear-gradient(135deg, #6C5CE7, #74B9FF);--rule-gradient: linear-gradient(135deg, #5541D9, #6C5CE7);--wx-metal: #DAA520;--wx-wood: #228B22;--wx-water: #1E90FF;--wx-fire: #DC143C;--wx-earth: #8B4513;--wx-metal-bg: rgba(218,165,32,.12);--wx-wood-bg: rgba(34,139,34,.12);--wx-water-bg: rgba(30,144,255,.12);--wx-fire-bg: rgba(220,20,60,.12);--wx-earth-bg: rgba(139,69,19,.12);--star-ziwei: #7B2FBE;--star-tianfu: #DAA520;--star-sha: #DC143C;--star-support: #4169E1;--star-lucky: #059669;--astro-fire: #DC143C;--astro-earth: #8B4513;--astro-air: #4169E1;--astro-water: #1E90FF;--aspect-conjunction: #4169E1;--aspect-sextile: #999;--aspect-square: #DC143C;--aspect-trine: #228B22;--aspect-opposition: #DC143C;--grade-a: #22C55E;--grade-b: #3B82F6;--grade-c: #EAB308;--grade-d: #EF4444;--anno-golden: #D4AF37;--anno-risk: #EF4444;--anno-turning: #7B2FBE;--status-high-bg: #d1fae5;--status-high-text: #065f46;--status-high-dot: #059669;--status-medium-bg: #fef3c7;--status-medium-text: #92400e;--status-medium-dot: #d97706;--status-low-bg: #fee2e2;--status-low-text: #991b1b;--status-low-dot: #dc2626;--findings-highlight-bg: #f0fdf4;--findings-highlight-border: #bbf7d0;--findings-highlight-text: #166534;--findings-concern-bg: #fff7ed;--findings-concern-border: #fed7aa;--findings-concern-text: #9a3412;--findings-suggestion-text: #d97706;--badge-bazi-bg: #ede9fe;--badge-bazi-text: #5b21b6;--badge-ziwei-bg: #fce7f3;--badge-ziwei-text: #9d174d;--badge-astro-bg: #dbeafe;--badge-astro-text: #1e40af;--bg-primary: #F7F3EC;--bg-secondary: #F2EBE0;--bg-tertiary: #FFF8EF;--text-primary: #1F2937;--text-secondary: #667085;--text-muted: #8A8F98;--border-color: #E7DDD0;--border-light: #F1E7DB;--surface-card: #FFFFFF;--surface-card-solid: #FFFFFF;--surface-modal: rgba(255, 255, 255, .95);--surface-overlay: rgba(10, 10, 26, .6);--glass-border: rgba(108, 92, 231, .08);--glass-blur: blur(0px);--glass-blur-nav: blur(12px) saturate(120%);--shadow-sm: 0 6px 18px rgba(31, 41, 55, .04);--shadow-md: 0 12px 30px rgba(31, 41, 55, .06);--shadow-lg: 0 20px 60px rgba(31, 41, 55, .08);--shadow-glow: 0 0 20px rgba(200, 155, 91, .12);--shadow-glow-strong: 0 0 40px rgba(200, 155, 91, .18);--font-sans: "Inter", "Noto Sans SC", "Noto Sans JP", system-ui, -apple-system, sans-serif;--font-serif: "Noto Serif SC", "Noto Serif JP", Georgia, serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--transition-spring: .35s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown: 100;--z-modal: 200;--z-toast: 300;--z-tooltip: 400;--nav-height: 56px;--mobile-tab-height: 60px;--sidebar-width: 240px;--max-content-width: 1200px;color-scheme:light dark}html.dark{--bg-primary: #0D1117;--bg-secondary: #161B22;--bg-tertiary: #21262D;--text-primary: #E6EDF3;--text-secondary: #8B949E;--text-muted: #6868A0;--border-color: #30363D;--border-light: #21262D;--surface-card: #161B22;--surface-card-solid: #161B22;--surface-modal: rgba(22, 27, 34, .95);--glass-border: rgba(255, 255, 255, .06);--shadow-sm: 0 2px 8px rgba(0,0,0,.3);--shadow-md: 0 4px 16px rgba(0,0,0,.4);--shadow-lg: 0 8px 32px rgba(0,0,0,.5);--shadow-glow: 0 0 20px rgba(108, 92, 231, .15);--shadow-glow-strong: 0 0 40px rgba(108, 92, 231, .25);--status-high-bg: rgba(5, 150, 105, .2);--status-high-text: #6ee7b7;--status-high-dot: #34d399;--status-medium-bg: rgba(217, 119, 6, .2);--status-medium-text: #fcd34d;--status-medium-dot: #fbbf24;--status-low-bg: rgba(220, 38, 38, .2);--status-low-text: #fca5a5;--status-low-dot: #f87171;--findings-highlight-bg: rgba(5, 150, 105, .1);--findings-highlight-border: rgba(5, 150, 105, .3);--findings-highlight-text: #6ee7b7;--findings-concern-bg: rgba(217, 119, 6, .1);--findings-concern-border: rgba(217, 119, 6, .3);--findings-concern-text: #fdba74;--findings-suggestion-text: #fbbf24;--badge-bazi-bg: rgba(91, 33, 182, .2);--badge-bazi-text: #c4b5fd;--badge-ziwei-bg: rgba(157, 23, 77, .2);--badge-ziwei-text: #f9a8d4;--badge-astro-bg: rgba(30, 64, 175, .2);--badge-astro-text: #93c5fd}html.dark .palace-card,html.dark .glass-card{color:#ffffffeb}html.dark .cred-badge-A{background:#1a7a3a;color:#fff}html.dark .cred-badge-B{background:#1a5a8a;color:#fff}html.dark .cred-badge-C{background:#7a5a10;color:#fff}html.dark .cred-badge-D{background:#7a1a1a;color:#fff}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.7;min-height:100vh}#app{min-height:100vh;display:flex;flex-direction:column}a{color:var(--cetu-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--cetu-primary-light)}img{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.container{max-width:var(--max-content-width);margin:0 auto;padding:0 var(--space-md)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1{font-size:2rem;font-weight:800;line-height:1.15;letter-spacing:-.02em}h2{font-size:1.5rem;font-weight:700;line-height:1.25;letter-spacing:-.01em}h3{font-size:1.25rem;font-weight:700;line-height:1.35}h4{font-size:1rem;font-weight:600}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass-card{background:var(--surface-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.glass-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:12px 24px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;border:none;transition:all var(--transition-normal);white-space:nowrap;position:relative;overflow:hidden}.btn:focus-visible{outline:2px solid var(--cetu-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 16px #6c5ce74d}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #6c5ce766}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--border-color);border-color:var(--cetu-primary-light)}.btn-accent{background:var(--gradient-accent);color:#fff;box-shadow:0 4px 16px #6c5ce740}.btn-accent:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #6c5ce759}.btn-danger{background:var(--grade-d);color:#fff}.btn-sm{padding:8px 16px;font-size:.875rem;border-radius:var(--radius-sm)}.btn-lg{padding:16px 32px;font-size:1.125rem;border-radius:var(--radius-lg)}.btn-icon{padding:10px;border-radius:var(--radius-full);background:transparent;border:none;cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast)}.btn-icon:hover{color:var(--text-primary);background:var(--bg-tertiary)}.btn-glow{position:relative}.btn-glow:before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:var(--gradient-primary);opacity:0;filter:blur(12px);transition:opacity var(--transition-normal);z-index:-1}.btn-glow:hover:before{opacity:.6}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.form-input,.form-select{padding:12px 16px;border:1.5px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--cetu-primary);box-shadow:0 0 0 3px var(--primary-subtle)}.form-input::placeholder{color:var(--text-muted)}.form-checkbox{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer}.form-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--cetu-primary)}.form-radio{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer}.form-radio input[type=radio]{accent-color:var(--cetu-primary)}.card{background:var(--surface-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.card-hover:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;white-space:nowrap}.badge-ai{background:var(--ai-gradient);color:#fff}.badge-classical{background:linear-gradient(135deg,#d4af37,#b8860b);color:#fff}.badge-grade-a{background:var(--grade-a);color:#fff}.badge-grade-b{background:var(--grade-b);color:#fff}.badge-grade-c{background:var(--grade-c);color:#000}.badge-grade-d{background:var(--grade-d);color:#fff}.badge-metal{background:var(--wx-metal-bg);color:var(--wx-metal);border:1px solid var(--wx-metal)}.badge-wood{background:var(--wx-wood-bg);color:var(--wx-wood);border:1px solid var(--wx-wood)}.badge-water{background:var(--wx-water-bg);color:var(--wx-water);border:1px solid var(--wx-water)}.badge-fire{background:var(--wx-fire-bg);color:var(--wx-fire);border:1px solid var(--wx-fire)}.badge-earth{background:var(--wx-earth-bg);color:var(--wx-earth);border:1px solid var(--wx-earth)}.tabs{display:flex;gap:4px;background:var(--bg-tertiary);border-radius:var(--radius-md);padding:4px;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{padding:10px 20px;font-weight:500;color:var(--text-muted);cursor:pointer;border:none;background:transparent;border-radius:var(--radius-sm);white-space:nowrap;transition:all var(--transition-fast);position:relative}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--cetu-primary);background:var(--surface-card-solid);box-shadow:var(--shadow-sm);font-weight:600}.modal-overlay{position:fixed;inset:0;background:var(--surface-overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn var(--transition-fast)}.modal-content{background:var(--surface-modal);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-xl);max-width:480px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg),var(--shadow-glow-strong);animation:modalSlideUp var(--transition-normal)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);padding:4px;line-height:1;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.toast-container{position:fixed;top:calc(var(--nav-height) + 12px);right:16px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:14px 20px;border-radius:var(--radius-md);color:#fff;font-weight:500;font-size:.875rem;box-shadow:var(--shadow-md);animation:slideRight var(--transition-normal);pointer-events:auto;max-width:360px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toast-success{background:#22c55ee6}.toast-error{background:#ef4444e6}.toast-warning{background:#eab308e6;color:#000}.toast-info{background:#6c5ce7e6;color:#fff}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--border-light) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-text{height:16px;margin-bottom:8px}.skeleton-heading{height:24px;width:60%;margin-bottom:12px}.skeleton-block{height:100px;margin-bottom:12px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(32px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes yinyang{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #6c5ce733}50%{box-shadow:0 0 40px #6c5ce766}}@keyframes twinkle{0%,to{opacity:.2}50%{opacity:1}}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}@media(max-width:767px){:root{--nav-height: 0px}h1{font-size:1.5rem}h2{font-size:1.25rem}.container{padding:0 var(--space-sm)}.card{padding:var(--space-md)}.hide-mobile{display:none!important}}@media(min-width:768px)and (max-width:1023px){.hide-tablet{display:none!important}}@media(min-width:1024px){.hide-desktop{display:none!important}}@media print{body{background:#fff;color:#000}.no-print,nav,.toast-container,.modal-overlay,.mobile-tab-bar,.btn-icon{display:none!important}.nav-bar,.btn,.modal,.paywall-modal{display:none!important}.collapsible{max-height:none!important;overflow:visible!important}.ziwei-board{display:grid!important}.card{box-shadow:none;border:1px solid #ccc;break-inside:avoid;-webkit-backdrop-filter:none;backdrop-filter:none}@page{margin:1.5cm}}:focus-visible{outline:2px solid var(--cetu-primary);outline-offset:2px}[tabindex]:focus:not(:focus-visible){outline:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.wx-label{display:inline-block;min-width:1.5em;text-align:center;font-weight:600}@media(max-width:768px){.ziwei-board{display:flex!important;flex-direction:row;overflow-x:auto;gap:8px;padding-bottom:8px;-webkit-overflow-scrolling:touch}.palace-card{min-width:140px;flex-shrink:0}.resonance-track{flex-direction:column!important}.resonance-item{width:100%!important}}@media(max-width:480px){.astro-wheel-container{transform:scale(.75);transform-origin:top center}.planet-label{display:none}.planet-label-collapsed{display:block;font-size:9px}}.markdown-body{font-size:.9375rem;color:var(--text-primary);line-height:1.8;word-break:break-word}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:1.25em 0 .5em;font-weight:700;color:var(--text-primary);line-height:1.35}.markdown-body h1{font-size:1.25rem}.markdown-body h2{font-size:1.125rem;border-left:3px solid var(--cetu-primary);padding-left:.5rem}.markdown-body h3{font-size:1rem}.markdown-body h4{font-size:.9375rem}.markdown-body p{margin:0 0 .75em}.markdown-body ul,.markdown-body ol{margin:0 0 .75em;padding-left:1.5em}.markdown-body li{margin-bottom:.25em}.markdown-body strong{font-weight:700;color:var(--text-primary)}.markdown-body em{font-style:italic}.markdown-body blockquote{margin:.75em 0;padding:.5em 1em;border-left:3px solid var(--cetu-primary-light);background:var(--bg-secondary);border-radius:var(--radius-sm);color:var(--text-secondary)}.markdown-body code{font-family:var(--font-mono);font-size:.85em;padding:.15em .4em;background:var(--bg-tertiary);border-radius:4px;color:var(--cetu-primary)}.markdown-body pre{margin:.75em 0;padding:1em;background:var(--bg-tertiary);border-radius:var(--radius-sm);overflow-x:auto}.markdown-body pre code{background:none;padding:0;color:var(--text-primary)}.markdown-body hr{margin:1.5em 0;border:none;border-top:1px solid var(--border-color)}.markdown-body a{color:var(--cetu-primary);text-decoration:underline;text-underline-offset:2px}.markdown-body a:hover{color:var(--cetu-primary-light)}.markdown-body table{width:100%;border-collapse:collapse;margin:.75em 0;font-size:.875rem}.markdown-body th,.markdown-body td{padding:.5em .75em;border:1px solid var(--border-color);text-align:left}.markdown-body th{background:var(--bg-secondary);font-weight:600}.markdown-body>*:first-child{margin-top:0}.markdown-body>*:last-child{margin-bottom:0}.toast-container[data-v-d8981c99]{position:fixed;top:1.25rem;right:1.25rem;z-index:3000;display:flex;flex-direction:column;gap:.5rem;pointer-events:none;max-width:24rem;width:calc(100vw - 2.5rem)}.toast-list[data-v-d8981c99]{display:flex;flex-direction:column;gap:.5rem}.toast[data-v-d8981c99]{display:flex;align-items:center;gap:.625rem;padding:.75rem .875rem;border-radius:.625rem;box-shadow:0 4px 16px #0000001f;pointer-events:all;font-size:.9rem;font-weight:500;line-height:1.4;border-left:4px solid transparent}.toast--success[data-v-d8981c99]{background:#f0fdf4;color:#166534;border-left-color:#16a34a}.toast--success .toast-icon[data-v-d8981c99]{color:#16a34a}.toast--error[data-v-d8981c99]{background:#fff8f8;color:#991b1b;border-left-color:#ef4444}.toast--error .toast-icon[data-v-d8981c99]{color:#ef4444}.toast--warning[data-v-d8981c99]{background:#fffbeb;color:#92400e;border-left-color:#f59e0b}.toast--warning .toast-icon[data-v-d8981c99]{color:#f59e0b}.toast--info[data-v-d8981c99]{background:#eff6ff;color:#1e40af;border-left-color:#3b82f6}.toast--info .toast-icon[data-v-d8981c99]{color:#3b82f6}.toast-icon[data-v-d8981c99]{flex-shrink:0;display:flex;align-items:center}.toast-message[data-v-d8981c99]{flex:1}.toast-close[data-v-d8981c99]{flex-shrink:0;background:none;border:none;padding:.125rem;cursor:pointer;color:inherit;opacity:.5;display:flex;align-items:center;transition:opacity .15s}.toast-close[data-v-d8981c99]:hover{opacity:1}.toast-slide-enter-active[data-v-d8981c99]{transition:all .25s cubic-bezier(.16,1,.3,1)}.toast-slide-leave-active[data-v-d8981c99]{transition:all .2s ease}.toast-slide-enter-from[data-v-d8981c99]{opacity:0;transform:translate(2rem)}.toast-slide-leave-to[data-v-d8981c99]{opacity:0;transform:translate(2rem) scale(.95)}.toast-slide-move[data-v-d8981c99]{transition:transform .2s ease}.error-boundary[data-v-708e99d7]{width:100%}.error-state[data-v-708e99d7]{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.5rem;background:#fff8f8;border:1px solid #fecaca;border-radius:.75rem;text-align:center}.error-icon[data-v-708e99d7]{color:#ef4444;opacity:.85}.error-title[data-v-708e99d7]{font-size:1rem;font-weight:600;color:#111827;margin:0}.error-message[data-v-708e99d7]{font-size:.875rem;color:#6b7280;margin:0;max-width:28rem;line-height:1.6}.degradation-note[data-v-708e99d7]{display:flex;align-items:center;gap:.375rem;background:#fef3c7;border:1px solid #fde68a;border-radius:.375rem;padding:.5rem .875rem;font-size:.8125rem;color:#92400e}.degradation-icon[data-v-708e99d7]{flex-shrink:0;color:#d97706}.retry-btn[data-v-708e99d7]{display:flex;align-items:center;gap:.375rem;padding:.5rem 1.25rem;background:var(--cetu-primary);color:#fff;border:none;border-radius:.5rem;font-size:.9375rem;font-weight:500;cursor:pointer;transition:background .15s,transform .1s;margin-top:.25rem}.retry-btn[data-v-708e99d7]:hover{background:#6d28d9}.retry-btn[data-v-708e99d7]:active{transform:scale(.97)}
