.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;height:82px;background:var(--color-surface);border-top:1px solid var(--color-divider);display:flex;align-items:flex-start;justify-content:space-around;padding-top:8px;padding-bottom:env(safe-area-inset-bottom,16px);z-index:var(--z-tabbar);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:rgba(var(--color-surface),.92)}[data-theme=light] .tabbar{background:#ffffffeb}[data-theme=dark] .tabbar{background:#1c1c1eeb;border-top-color:var(--color-border)}.tabbar-item{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--color-text-tertiary);transition:all var(--transition-fast);padding:4px 12px;border-radius:8px;min-width:56px}.tabbar-item:hover{color:var(--color-text-secondary)}.tabbar-item-active{color:var(--color-primary)!important}.tabbar-item-active .tabbar-label{font-weight:600}.tabbar-label{font-size:11px;letter-spacing:.3px}.card{background:var(--color-surface);border-radius:var(--card-radius);box-shadow:var(--shadow-md);overflow:hidden;transition:all var(--transition-normal)}.card:hover{box-shadow:var(--shadow-lg)}.card-hero{background:var(--gradient-hero);color:#fff;padding:24px;border-radius:20px;position:relative;overflow:hidden}.card-hero:before{content:"";position:absolute;top:-50%;right:-30%;width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%}.card-hero:after{content:"";position:absolute;bottom:-40%;left:-20%;width:150px;height:150px;background:radial-gradient(circle,rgba(255,255,255,.08) 0%,transparent 70%);border-radius:50%}.card-metric{padding:16px;min-width:160px;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.metric-icon{font-size:28px;margin-bottom:4px}.metric-value{font-size:var(--font-size-xl);font-weight:900;color:var(--color-text);line-height:1.2}.metric-title{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.metric-subtitle{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.metric-trend{font-size:var(--font-size-xs);font-weight:600;margin-top:4px}.trend-up{color:var(--color-income)}.trend-down{color:var(--color-expense)}.card-insight{padding:16px;display:flex;gap:12px;align-items:flex-start}.insight-icon{font-size:24px;flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-10);border-radius:12px}.insight-content{flex:1;min-width:0}.insight-text{font-size:var(--font-size-base);color:var(--color-text);line-height:1.6}.insight-math-btn{border:none;background:none;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;padding:4px 0;margin-top:6px;font-family:var(--font-family)}.insight-math-btn:hover{text-decoration:underline}.card-chart{padding:20px}.chart-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.chart-title{font-size:var(--font-size-md);font-weight:700;color:var(--color-text)}.chart-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.chart-body{width:100%}.chart-actions{display:flex;gap:8px}.math-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:var(--z-sidebar);animation:fadeIn .2s ease}.math-sidebar{position:fixed;top:0;right:0;width:90%;max-width:380px;height:100vh;background:var(--color-surface);z-index:calc(var(--z-sidebar) + 1);display:flex;flex-direction:column;animation:slideInRight .3s ease;box-shadow:-4px 0 24px #00000026}.math-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--color-divider);flex-shrink:0}.math-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text)}.math-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:4px}.math-close{background:var(--color-surface-alt);border:none;border-radius:8px;padding:8px;cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast)}.math-close:hover{background:var(--color-border);color:var(--color-text)}.math-content{flex:1;overflow-y:auto;padding:16px 20px}.math-section{margin-bottom:24px}.math-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.math-section-header .math-section-title{margin-bottom:0}.math-section-title{font-size:var(--font-size-base);font-weight:700;color:var(--color-text);margin-bottom:12px;display:flex;align-items:center;gap:6px}.math-edit-btn{border:1px solid var(--color-primary);border-radius:6px;background:transparent;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:600;padding:3px 10px;cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast)}.math-edit-btn:hover{background:var(--color-primary);color:#fff}.math-input-wrapper{display:flex;align-items:center;gap:4px}.math-input{width:72px;border:1.5px solid var(--color-primary);border-radius:6px;background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-sm);font-weight:600;padding:3px 6px;text-align:right;outline:none}.math-input-unit{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.math-edit-actions{display:flex;gap:8px;margin-top:10px}.math-cancel-btn{flex:1;border:1.5px solid var(--color-border);border-radius:8px;background:var(--color-surface-alt);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;padding:8px 0;cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast)}.math-cancel-btn:hover:not(:disabled){border-color:var(--color-text-secondary);color:var(--color-text)}.math-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.math-recalc-btn{flex:2;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:var(--font-size-sm);font-weight:600;padding:8px 0;cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast)}.math-recalc-btn:hover:not(:disabled){opacity:.85}.math-recalc-btn:disabled{opacity:.6;cursor:not-allowed}.math-table{background:var(--color-surface-alt);border-radius:12px;overflow:hidden}.math-row{display:flex;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--color-divider);font-size:var(--font-size-sm)}.math-row:last-child{border-bottom:none}.math-label{color:var(--color-text-secondary)}.math-value{font-weight:600;color:var(--color-text)}.math-formula-block{margin-bottom:12px}.math-formula-name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);margin-bottom:6px}.math-formula{background:var(--color-surface-alt);border-radius:10px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px}.math-formula code{font-family:SF Mono,monospace;font-size:var(--font-size-sm);color:var(--color-primary);word-break:break-all;flex:1}.math-copy-btn{border:none;background:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;flex-shrink:0}.math-copy-btn:hover{color:var(--color-primary)}.math-formula-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:6px;line-height:1.5}.math-steps{display:flex;flex-direction:column;gap:8px}.math-step{display:flex;gap:12px;align-items:flex-start}.math-step-number{width:28px;height:28px;border-radius:50%;background:var(--color-primary-10);color:var(--color-primary);font-weight:700;font-size:var(--font-size-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.math-step-content{flex:1;padding-bottom:8px;border-bottom:1px solid var(--color-divider)}.math-step:last-child .math-step-content{border-bottom:none}.math-step-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.math-step-value{font-size:var(--font-size-base);font-weight:700;color:var(--color-text);margin-top:2px}.math-step-note{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.math-result-section{background:var(--color-primary-bg);border-radius:12px;padding:16px}.math-result{display:flex;justify-content:space-between;align-items:center}.math-result-label{font-size:var(--font-size-base);color:var(--color-text)}.math-result-value{font-size:var(--font-size-xl);font-weight:900;color:var(--color-primary)}.math-footer{padding:12px 20px;border-top:1px solid var(--color-divider);flex-shrink:0}.math-source{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.dashboard{padding-bottom:20px}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0 16px;position:relative;z-index:10}.header-logo{font-size:22px;font-weight:900;color:var(--color-primary);letter-spacing:-.5px}.header-logo span{color:var(--color-text)}.header-greeting{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:2px}.header-right{display:flex;align-items:center;gap:6px}.header-icon-btn{width:38px;height:38px;border:none;background:var(--color-surface);border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);position:relative;transition:all var(--transition-fast)}.header-icon-btn:hover{background:var(--color-surface-alt);color:var(--color-text)}.header-icon-btn .spinning{animation:spin 1s linear infinite}.notification-dot{position:absolute;top:8px;right:8px;width:7px;height:7px;background:var(--color-danger);border-radius:50%;border:1.5px solid var(--color-surface)}.notif-wrapper{position:relative}.notif-dropdown{position:fixed;top:56px;left:16px;right:16px;max-width:380px;margin:0 auto;max-height:400px;overflow-y:auto;overflow-x:hidden;background:var(--color-surface);border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:100}@media (max-width: 412px){.notif-dropdown{left:8px;right:8px}}.notif-dropdown-header{padding:12px 16px;font-size:14px;font-weight:600;color:var(--color-text);border-bottom:1px solid var(--color-border)}.notif-empty{padding:24px 16px;text-align:center;font-size:13px;color:var(--color-text-secondary)}.notif-item{padding:12px 16px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast)}.notif-item:hover{background:var(--color-surface-alt)}.notif-item.unread{background:#2196f30a}.notif-item-title{font-size:13px;font-weight:600;color:var(--color-text);margin-bottom:4px}.notif-item-content{font-size:12px;color:var(--color-text-secondary);margin-bottom:4px;line-height:1.4;overflow-wrap:break-word;word-break:break-all}.notif-item-time{font-size:11px;color:var(--color-text-muted)}.header-avatar{width:36px;height:36px;border-radius:50%;background:var(--gradient-primary);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer}.hero-content{position:relative;z-index:1;margin-bottom:20px}.hero-label{font-size:var(--font-size-base);opacity:.8;margin-bottom:4px}.hero-amount{font-size:38px;font-weight:900;letter-spacing:-1px;margin-bottom:8px}.hero-cashflow{display:flex;align-items:center;gap:8px;margin-bottom:4px}.hero-cashflow-value{font-size:var(--font-size-lg);font-weight:700}.hero-cashflow-value.positive{color:#fff}.hero-cashflow-value.negative{color:#ffcdd2}.hero-cashflow-label{font-size:var(--font-size-sm);opacity:.7}.hero-change{font-size:var(--font-size-sm);opacity:.65}.hero-setup-hint{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:var(--font-size-sm);opacity:.9}.hero-setup-btn{padding:4px 12px;border-radius:8px;border:1.5px solid rgba(255,255,255,.8);background:transparent;color:#fff;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.hero-setup-btn:hover{background:#ffffff26}.hero-actions{display:flex;justify-content:space-between;gap:8px;position:relative;z-index:1}.hero-action-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border:none;background:#ffffff2e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;color:#fff;font-size:11px;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);font-weight:500}.hero-action-btn:hover{background:#ffffff47}.hero-action-btn:active{transform:scale(.95)}.hero-action-icon{font-size:22px}.section-title{font-size:var(--font-size-md);font-weight:700;color:var(--color-text);margin-bottom:12px;display:flex;align-items:center;gap:6px}.metrics-section{margin-top:20px}.metrics-scroll{display:flex;gap:var(--card-gap);overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.metrics-scroll::-webkit-scrollbar{display:none}.metrics-scroll .card-metric{scroll-snap-align:start}.insights-section{margin-top:24px}.insights-list{display:flex;flex-direction:column;gap:var(--card-gap)}.scenarios-section{margin-top:24px}.scenarios-scroll{display:flex;flex-direction:column;gap:8px}.scenario-chip{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--color-surface);border:none;border-radius:14px;cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);transition:all var(--transition-fast);box-shadow:var(--shadow-sm);width:100%;text-align:left}.scenario-chip:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.scenario-chip:active{transform:scale(.99)}.scenario-icon{font-size:20px}.scenario-name{flex:1;font-weight:500}.scenario-chip svg{color:var(--color-text-tertiary)}.upgrade-banner{display:flex;align-items:center;gap:10px;width:100%;padding:13px 16px;background:linear-gradient(135deg,#00c85314,#7c4dff14);border:1.5px solid rgba(0,200,83,.25);border-radius:14px;cursor:pointer;font-family:var(--font-family);text-align:left;margin-bottom:16px;transition:all var(--transition-fast)}.upgrade-banner:hover{border-color:var(--color-primary);transform:translateY(-1px)}.upgrade-banner-badge{padding:2px 8px;background:var(--gradient-primary);color:#fff;font-size:11px;font-weight:800;border-radius:6px;flex-shrink:0}.upgrade-banner-text{flex:1;font-size:var(--font-size-sm);color:var(--color-text);font-weight:500}.upgrade-banner-price{font-size:var(--font-size-sm);font-weight:700;color:var(--color-primary);flex-shrink:0}.invest-health-card{min-width:160px;max-width:180px;background:var(--color-surface);border-radius:16px;padding:14px 14px 12px;box-shadow:var(--shadow-sm);scroll-snap-align:start;flex-shrink:0}.ihc-top{display:flex;align-items:center;gap:6px;margin-bottom:10px}.ihc-icon-wrap{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ihc-title{flex:1;font-size:12px;font-weight:600;color:var(--color-text-secondary)}.ihc-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px}.ihc-score{font-size:38px;font-weight:900;line-height:1;margin-bottom:8px;letter-spacing:-1px}.ihc-bar-bg{height:5px;background:var(--color-divider);border-radius:3px;overflow:hidden;margin-bottom:8px}.ihc-bar-fill{height:100%;border-radius:3px;transition:width .8s ease}.ihc-meta{display:flex;justify-content:space-between;align-items:center}.ihc-sharpe{font-size:11px;color:var(--color-text-secondary)}.ihc-sharpe strong{color:var(--color-text)}.ihc-sub{font-size:10px;color:var(--color-text-tertiary)}.chat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:300;display:flex;align-items:flex-end}.chat-modal{width:100%;max-width:480px;margin:0 auto;background:var(--color-bg);border-radius:20px 20px 0 0;display:flex;flex-direction:column;max-height:70vh;overflow:hidden}.chat-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--color-divider);flex-shrink:0}.chat-title{flex:1;font-size:15px;font-weight:700;color:var(--color-text)}.chat-quota{font-size:12px;color:var(--color-text-tertiary);background:var(--color-surface);padding:2px 8px;border-radius:8px}.chat-close{width:30px;height:30px;border:none;background:var(--color-surface);border-radius:8px;cursor:pointer;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center}.chat-messages{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.chat-bubble-row{display:flex;gap:8px;align-items:flex-end}.chat-bubble-row.user{flex-direction:row-reverse}.chat-avatar-sm{width:28px;height:28px;border-radius:50%;background:var(--gradient-primary);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-bubble{max-width:78%;padding:10px 13px;border-radius:16px;font-size:14px;line-height:1.5}.chat-bubble.assistant{background:var(--color-surface);color:var(--color-text);border-bottom-left-radius:4px}.chat-bubble.user{background:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.chat-typing{display:flex;gap:4px;align-items:center;height:18px}.chat-typing span{width:7px;height:7px;border-radius:50%;background:var(--color-text-tertiary);animation:chatPulse 1.2s infinite}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes chatPulse{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}.chat-input-row{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--color-divider);flex-shrink:0;padding-bottom:max(12px,env(safe-area-inset-bottom))}.chat-input{flex:1;padding:10px 14px;border:1.5px solid var(--color-divider);border-radius:22px;background:var(--color-surface);color:var(--color-text);font-size:14px;font-family:var(--font-family);outline:none}.chat-input:focus{border-color:var(--color-primary)}.chat-send{width:40px;height:40px;border-radius:50%;background:var(--color-primary);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}.chat-send:disabled{opacity:.4;cursor:not-allowed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-family:var(--font-family);font-weight:600;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-large{height:48px;padding:0 24px;font-size:16px;border-radius:var(--btn-radius)}.btn-medium{height:40px;padding:0 20px;font-size:14px;border-radius:var(--btn-radius)}.btn-small{height:32px;padding:0 14px;font-size:13px;border-radius:8px}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:active:not(:disabled){background:var(--color-primary-pressed)}.btn-secondary{background:var(--color-surface-alt);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-outline{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary)}.btn-outline:hover:not(:disabled){background:var(--color-primary-bg)}.btn-destructive{background:var(--color-danger);color:#fff}.btn-destructive:hover:not(:disabled){background:var(--color-danger-hover)}.btn-text{background:transparent;color:var(--color-primary);padding:0 8px}.btn-text:hover:not(:disabled){text-decoration:underline}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-alt)}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.btn-icon{display:flex;align-items:center}.btn-icon svg{width:18px;height:18px}.planner{padding-bottom:80px}.planner-header{display:flex;align-items:center;gap:8px;padding:8px 0 12px}.back-btn{width:36px;height:36px;border:none;background:var(--color-surface);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text)}.back-btn:hover{background:var(--color-surface-alt)}.planner-title{flex:1;font-size:var(--font-size-lg);font-weight:700}.timeline-card{background:var(--color-surface);border-radius:var(--card-radius);padding:16px 20px;margin-bottom:12px;box-shadow:var(--shadow-sm)}.timeline-labels{display:flex;justify-content:space-between;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:8px}.timeline-current{color:var(--color-primary);font-weight:600}.timeline-slider{width:100%;-webkit-appearance:none;height:4px;border-radius:2px;background:var(--color-border);outline:none}.timeline-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer;box-shadow:0 2px 6px #00c8534d}.planner-tabs{display:flex;gap:4px;background:var(--color-surface);border-radius:12px;padding:4px;margin-bottom:12px;box-shadow:var(--shadow-sm)}.planner-tab{flex:1;padding:10px;border:none;background:transparent;border-radius:10px;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.planner-tab.active{background:var(--color-primary);color:#fff;font-weight:600}.cashflow-table-wrapper{background:var(--color-surface);border-radius:var(--card-radius);overflow:hidden;box-shadow:var(--shadow-md)}.cashflow-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.cashflow-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.cashflow-table th{background:var(--color-surface-alt);padding:12px 14px;text-align:right;font-weight:600;color:var(--color-text-secondary);white-space:nowrap;border-bottom:1px solid var(--color-divider);position:sticky;top:0;z-index:1}.cashflow-table th:first-child{text-align:left}.cashflow-table td{padding:10px 14px;text-align:right;border-bottom:1px solid var(--color-divider);white-space:nowrap;transition:background var(--transition-fast)}.cashflow-table td:first-child{text-align:left}.cashflow-table tr:hover td{background:var(--color-primary-10)}.sticky-col{position:sticky;left:0;background:var(--color-surface);z-index:1;font-weight:600}.cashflow-table th.sticky-col{background:var(--color-surface-alt);z-index:2}.clickable{cursor:pointer}.clickable:hover{text-decoration:underline;color:var(--color-primary)}.col-income{color:var(--color-income)}.col-expense{color:var(--color-expense)}.col-tax{color:var(--color-tax)}.retired-row td{opacity:.7}.table-hint{padding:12px 16px;font-size:var(--font-size-xs);color:var(--color-text-tertiary);border-top:1px solid var(--color-divider)}.empty-compare{padding:60px 20px}.empty-compare-content{display:flex;flex-direction:column;align-items:center;gap:8px}.empty-compare-content p{color:var(--color-text-secondary);font-size:var(--font-size-base)}.empty-hint{font-size:var(--font-size-sm)!important;color:var(--color-text-tertiary)!important}.planner-footer{position:fixed;bottom:82px;left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:398px;display:flex;gap:8px;background:var(--color-surface);padding:12px;border-radius:16px;box-shadow:var(--shadow-lg);z-index:50}.planner-footer .btn{flex:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:var(--z-modal);animation:fadeIn .2s ease}.scenario-modal{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;background:var(--color-surface);border-radius:20px 20px 0 0;padding:24px 20px 40px;z-index:calc(var(--z-modal) + 1);animation:slideInUp .3s ease}.scenario-modal h3{font-size:var(--font-size-lg);font-weight:700;margin-bottom:16px}.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.scenario-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;background:var(--color-surface-alt);border:2px solid transparent;border-radius:14px;cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text);transition:all var(--transition-fast)}.scenario-option:hover{border-color:var(--color-primary);background:var(--color-primary-bg)}.scenario-option:disabled{opacity:.5}.scenario-option-icon{font-size:28px}.computing-bar{margin-top:16px;display:flex;align-items:center;gap:12px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.computing-progress{width:100px;height:4px;background:var(--color-border);border-radius:2px;position:relative;overflow:hidden}.computing-progress:after{content:"";position:absolute;top:0;left:0;height:100%;width:40%;background:var(--color-primary);border-radius:2px;animation:computeSlide 1.2s ease infinite}@keyframes computeSlide{0%{left:-40%}to{left:100%}}.planner-empty{margin-bottom:12px}.planner-empty-content{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;text-align:center}.planner-empty-content .empty-icon{font-size:48px}.planner-empty-content h3{font-size:var(--font-size-md);font-weight:700}.planner-empty-content p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6}.planner-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 0}.planner-loading p{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.user-assets-card{margin-bottom:12px}.user-assets-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 8px;font-weight:700}.user-assets-total{font-size:var(--font-size-sm);color:var(--color-income);font-weight:600}.user-asset-row{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--color-divider)}.ua-info{flex:1;display:flex;flex-direction:column;gap:2px}.ua-name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text)}.ua-type{font-size:var(--font-size-xs);color:var(--color-primary);background:var(--color-primary-10);padding:1px 6px;border-radius:4px;display:inline-block;width:fit-content}.ua-inst{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.ua-value{font-weight:700;font-size:var(--font-size-base);color:var(--color-income);white-space:nowrap}.ua-delete{border:none;background:none;color:var(--color-text-tertiary);cursor:pointer;padding:4px;border-radius:6px;transition:all .2s}.ua-delete:hover{color:var(--color-expense);background:#ffebee}.ua-info{cursor:pointer}.user-asset-row.editing{flex-direction:column;align-items:stretch;padding:12px 16px}.ua-edit-form{display:flex;flex-direction:column;gap:8px}.ua-edit-row{display:flex;gap:8px}.ua-edit-row .ua-edit-input{flex:1}.ua-edit-input{border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:8px;padding:8px 10px;font-size:13px;outline:none;transition:border-color .2s;min-width:0}.ua-edit-input:focus{border-color:var(--color-primary)}.ua-edit-actions{display:flex;gap:8px;justify-content:flex-end}.add-asset-modal{position:fixed;bottom:82px;left:50%;transform:translate(-50%);width:100%;max-width:430px;background:var(--color-surface);border-radius:20px 20px 0 0;padding:20px 20px 40px;z-index:calc(var(--z-modal) + 1);animation:slideInUp .3s ease;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-header h3{font-size:var(--font-size-lg);font-weight:700}.modal-close{border:none;background:none;color:var(--color-text-tertiary);cursor:pointer;padding:4px}.ocr-section{background:var(--color-surface-alt);border-radius:12px;padding:14px;margin-bottom:12px}.ocr-label{font-size:var(--font-size-sm);font-weight:600;margin-bottom:10px}.ocr-upload-btn{display:flex;align-items:center;gap:8px;width:100%;border:1.5px dashed var(--color-primary);border-radius:10px;padding:10px;background:var(--color-primary-bg);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;justify-content:center;transition:all .2s}.ocr-upload-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.ocr-upload-btn:disabled{opacity:.6;cursor:not-allowed}.ocr-result{margin-top:12px}.ocr-result-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-income);margin-bottom:8px}.ocr-asset-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--color-divider)}.ocr-asset-info{flex:1;display:flex;flex-direction:column;gap:2px}.ocr-asset-name{font-size:var(--font-size-sm);font-weight:600}.ocr-asset-type{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.ocr-asset-value{font-size:var(--font-size-sm);color:var(--color-income);font-weight:600}.ocr-import-btn{border:1px solid var(--color-primary);border-radius:8px;padding:4px 10px;background:transparent;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:600;cursor:pointer}.ocr-import-btn:hover{background:var(--color-primary);color:#fff}.ocr-tip{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:8px;line-height:1.5}.modal-divider{display:flex;align-items:center;gap:10px;margin:12px 0;color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.modal-divider:before,.modal-divider:after{content:"";flex:1;height:1px;background:var(--color-divider)}.add-asset-form{display:flex;flex-direction:column;gap:10px}.asset-input{width:100%;box-sizing:border-box;border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:10px;padding:10px 12px;font-size:14px;outline:none;transition:border-color .2s}.asset-input:focus{border-color:var(--color-primary)}.asset-row{display:flex;gap:8px}.asset-row .asset-input{flex:1}.portfolio-header{display:flex;align-items:center;gap:8px;padding:8px 0 12px}.portfolio-title{flex:1;font-size:var(--font-size-lg);font-weight:700}.header-actions{display:flex;gap:6px}.portfolio-hero{margin-bottom:12px}.portfolio-hero-content{padding:24px 20px}.portfolio-hero-label{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:4px}.portfolio-hero-amount{font-size:34px;font-weight:900;color:var(--color-text);margin-bottom:16px;letter-spacing:-.5px}.portfolio-metrics-row{display:flex;align-items:center;gap:0}.portfolio-metric{flex:1;text-align:center}.portfolio-metric-divider{width:1px;height:32px;background:var(--color-divider)}.pm-value{display:block;font-size:var(--font-size-lg);font-weight:900}.pm-value.positive{color:var(--color-income)}.pm-value.warning{color:var(--color-warning)}.pm-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.allocation-grid{display:flex;gap:12px;align-items:flex-start}.pie-wrapper{flex:1;min-width:0}.allocation-list{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.allocation-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.allocation-item:hover,.allocation-item.active{background:var(--color-primary-10)}.alloc-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.alloc-name{flex:1;color:var(--color-text);font-weight:500;white-space:nowrap}.alloc-pct{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.alloc-value{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.metrics-compare{display:flex;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--color-divider)}.mc-col{flex:1}.mc-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);margin-bottom:6px}.mc-values{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.mc-values .positive{color:var(--color-income)}.mc-values .warning{color:var(--color-warning)}.math-link-btn{border:none;background:var(--color-primary-bg);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:600;padding:6px 12px;border-radius:8px;cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast)}.math-link-btn:hover{background:var(--color-primary);color:#fff}.ai-suggestion{margin-top:12px}.suggestion-content{padding:16px 20px;display:flex;align-items:flex-start;gap:12px;background:var(--color-primary-bg);border-radius:var(--card-radius)}.suggestion-icon{font-size:24px;flex-shrink:0}.suggestion-text{flex:1}.suggestion-main{font-size:var(--font-size-base);color:var(--color-text);line-height:1.6}.rebalance-modal{position:fixed;bottom:82px;left:50%;transform:translate(-50%);width:100%;max-width:430px;background:var(--color-surface);border-radius:20px 20px 0 0;padding:24px 20px 40px;z-index:calc(var(--z-modal) + 1);animation:slideInUp .3s ease}.rebalance-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.rebalance-modal-header h3{font-size:var(--font-size-lg);font-weight:700;margin:0}.modal-close{width:30px;height:30px;border:none;background:var(--color-surface-alt);border-radius:8px;cursor:pointer;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center}.rebalance-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 0}.rebalance-loading p{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.rebalance-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6;margin-bottom:12px}.rebalance-changes{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.rebalance-change-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--color-surface-alt);border-radius:10px;font-size:var(--font-size-sm)}.rc-asset{flex:1;font-weight:600}.rc-current{color:var(--color-text-secondary)}.rc-arrow{color:var(--color-text-tertiary)}.rc-target{font-weight:600;color:var(--color-primary)}.rc-action{font-size:var(--font-size-xs);padding:2px 8px;border-radius:4px;font-weight:600}.rc-action.sell{background:#ffebee;color:var(--color-expense)}.rc-action.buy{background:#e8f5e9;color:var(--color-income)}.rebalance-metrics{display:flex;gap:8px;margin-bottom:16px;padding:12px;background:var(--color-primary-bg);border-radius:12px}.rm-item{flex:1;text-align:center}.rm-label{display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:4px}.rm-value{font-size:var(--font-size-base);font-weight:700}.rm-value.positive{color:var(--color-income)}.rm-value.warning{color:var(--color-warning)}.rebalance-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--color-surface-alt);border-radius:10px;font-size:var(--font-size-sm)}.rb-asset{flex:1;font-weight:600}.rb-current{color:var(--color-text-secondary)}.rb-arrow{color:var(--color-text-tertiary)}.rb-target{font-weight:600;color:var(--color-primary)}.rb-action{font-size:var(--font-size-xs);padding:2px 8px;border-radius:4px;font-weight:600}.rb-action.sell{background:#ffebee;color:var(--color-expense)}.rb-action.buy{background:#e8f5e9;color:var(--color-income)}.rebalance-expected{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--color-primary-bg);border-radius:12px;margin-bottom:16px}.rebalance-expected>div{display:flex;justify-content:space-between;font-size:var(--font-size-sm)}.rebalance-expected .positive{color:var(--color-income);font-weight:600}.rebalance-expected .warning{color:var(--color-warning);font-weight:600}.rebalance-actions{display:flex;gap:8px}.rebalance-actions .btn{flex:1}.portfolio-empty{margin-bottom:12px}.portfolio-empty-content{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;text-align:center}.portfolio-empty-content .empty-icon{font-size:48px}.portfolio-empty-content h3{font-size:var(--font-size-md);font-weight:700}.portfolio-empty-content p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6}.portfolio-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 0}.portfolio-loading p{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.rebalance-trigger-btn{margin-top:14px;padding:8px 16px;background:var(--color-surface-alt);border:1.5px solid var(--color-border);border-radius:10px;color:var(--color-text);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;width:100%;font-family:var(--font-family)}.rebalance-trigger-btn:hover{background:var(--color-primary-bg);border-color:var(--color-primary);color:var(--color-primary)}.ocr-no-key{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:var(--color-surface-secondary, #f8f8f8);border-radius:10px;text-align:center}.ocr-no-key-icon{font-size:28px}.ocr-no-key-msg{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6}.tax-page{padding-bottom:20px}.tax-header{display:flex;align-items:center;gap:8px;padding:8px 0 12px}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:var(--color-surface-secondary, #f5f5f5);cursor:pointer;color:var(--color-text-secondary)}.icon-btn:hover{background:var(--color-primary-10);color:var(--color-primary)}.tax-input-card{margin-bottom:12px}.tax-input-content{padding:20px}.tax-input-title{font-size:var(--font-size-md);font-weight:700;margin-bottom:16px}.tax-input-row{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.tax-input-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.tax-input-field{padding:10px 14px;border:1.5px solid var(--color-divider);border-radius:10px;font-size:var(--font-size-base);background:var(--color-bg);color:var(--color-text);outline:none;width:100%}.tax-input-field:focus{border-color:var(--color-primary)}.tax-input-actions{display:flex;gap:10px;margin-top:4px}.tax-input-hint{margin-top:14px;font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:1.6}.tax-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 0}.tax-loading p{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.tax-title{flex:1;font-size:var(--font-size-lg);font-weight:700}.tax-hero{margin-bottom:12px}.tax-hero-content{padding:24px 20px}.tax-hero-label{font-size:var(--font-size-base);color:var(--color-text-secondary)}.tax-hero-amount{font-size:36px;font-weight:900;color:var(--color-expense);margin:4px 0;letter-spacing:-.5px}.tax-hero-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:16px}.tax-metrics-row{display:flex;align-items:center}.tax-metric{flex:1;text-align:center}.tax-metric-divider{width:1px;height:32px;background:var(--color-divider)}.tm-value{display:block;font-size:var(--font-size-md);font-weight:700}.tm-danger{color:var(--color-expense)}.tm-neutral{color:var(--color-text-secondary)}.tm-success{color:var(--color-income)}.tm-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.tax-saving-hint{margin-top:12px;padding:8px 12px;background:var(--color-primary-bg);border-radius:10px;font-size:var(--font-size-sm);color:var(--color-income);display:flex;align-items:center;gap:6px}.saving-tag{font-size:16px}.tax-details{background:var(--color-surface);border-radius:var(--card-radius);box-shadow:var(--shadow-md);margin-bottom:12px;overflow:hidden}.tax-details-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-divider)}.tax-details-header h3{font-size:var(--font-size-md);font-weight:700}.tax-year-badge{font-size:var(--font-size-xs);font-weight:600;padding:4px 10px;border-radius:6px;background:var(--color-primary-10);color:var(--color-primary)}.tax-items{padding:4px 0}.tax-item{cursor:pointer;transition:all var(--transition-fast);border-left:4px solid transparent}.tax-item:hover{background:var(--color-primary-10)}.tax-item.item-income{border-left-color:var(--color-income)}.tax-item.item-deduction{border-left-color:var(--color-primary)}.tax-item.item-taxable{border-left-color:var(--color-warning)}.tax-item.item-tax{border-left-color:var(--color-expense)}.tax-item-main{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 12px 12px;border-bottom:1px solid var(--color-divider)}.tax-item-left{display:flex;align-items:center;gap:10px}.tax-item-icon{font-size:20px}.tax-item-label{font-size:var(--font-size-base);font-weight:500;color:var(--color-text)}.tax-item-sub{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.tax-item-right{display:flex;align-items:center;gap:8px}.tax-item-amount{font-size:var(--font-size-base);font-weight:700}.item-income .tax-item-amount{color:var(--color-income)}.item-deduction .tax-item-amount{color:var(--color-primary)}.item-taxable .tax-item-amount{color:var(--color-warning)}.item-tax .tax-item-amount{color:var(--color-expense)}.tax-item-right svg{color:var(--color-text-tertiary)}.tax-hint{padding:10px 16px;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.tax-optimization{background:var(--color-primary-bg);border-radius:var(--card-radius);padding:20px;margin-bottom:12px}.optimization-title{font-size:var(--font-size-md);font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:6px;margin-bottom:12px}.optimization-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.optimization-item{background:var(--color-surface);border-radius:12px;padding:14px 16px}.opt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.opt-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.opt-saving{font-size:var(--font-size-xs);font-weight:700;color:var(--color-income);padding:2px 8px;background:#e8f5e9;border-radius:4px}.opt-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.optimize-btn{width:100%}.settlement-card{margin-bottom:12px}.settlement-content{padding:20px}.settlement-content h3{font-size:var(--font-size-md);font-weight:700;margin-bottom:4px}.settlement-result{margin-top:12px}.settlement-row{display:flex;justify-content:space-between;padding:8px 0;font-size:var(--font-size-base);color:var(--color-text-secondary);border-bottom:1px solid var(--color-divider)}.settlement-final{margin-top:4px;padding-top:12px;border-bottom:none;font-weight:700;font-size:var(--font-size-lg);color:var(--color-text)}.settlement-final.refund .settlement-amount{color:var(--color-income)}.settlement-final.pay .settlement-amount{color:var(--color-expense)}.settlement-amount{font-weight:900}.settlement-note{margin-top:8px;text-align:center;font-size:var(--font-size-sm);color:var(--color-income)}.ai-result-card{margin-bottom:12px;border:1.5px solid var(--color-primary);background:var(--color-primary-bg)}.ai-result-header{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:var(--font-size-base);color:var(--color-primary);padding:14px 16px 8px}.close-ai-btn{border:none;background:none;color:var(--color-text-tertiary);cursor:pointer;padding:2px}.ai-result-text{padding:0 16px 16px;font-size:var(--font-size-sm);color:var(--color-text);line-height:1.8;white-space:pre-line}.ai-loading-dots{display:flex;gap:6px;padding:8px 16px 16px}.ai-loading-dots span{width:8px;height:8px;background:var(--color-primary);border-radius:50%;animation:bounce 1.2s infinite}.ai-loading-dots span:nth-child(2){animation-delay:.2s}.ai-loading-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}.profile-page{padding-bottom:20px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;animation:fadeIn .2s ease}.modal-close{border:none;background:none;font-size:18px;color:var(--color-text-tertiary);cursor:pointer;padding:4px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.user-card{margin-bottom:12px}.user-card-content{padding:24px 20px;display:flex;align-items:center;gap:16px}.user-avatar-large{width:64px;height:64px;border-radius:50%;background:var(--gradient-primary);color:#fff;font-size:24px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-info{flex:1}.user-name{font-size:var(--font-size-xl);font-weight:700;margin-bottom:4px}.user-plan{font-size:var(--font-size-sm);color:var(--color-primary);display:flex;align-items:center;gap:4px;font-weight:500;margin-bottom:2px}.user-age{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.profile-upgrade-btn{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:4px 10px;background:var(--gradient-primary);color:#fff;font-size:11px;font-weight:700;border:none;border-radius:8px;cursor:pointer;font-family:var(--font-family)}.user-pro-expiry{margin-top:5px;font-size:11px;color:var(--color-primary);opacity:.85}.assumptions-card{margin-bottom:12px}.assumptions-content{padding:20px}.assumptions-title{font-size:var(--font-size-md);font-weight:700;margin-bottom:12px}.section-header-toggle{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-header-actions{display:flex;align-items:center;gap:10px}.assumptions-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.assumption-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--color-surface-alt);border-radius:10px;font-size:var(--font-size-sm)}.a-label{color:var(--color-text-secondary)}.a-value{font-weight:600;color:var(--color-text)}.assumption-item input,.assumption-item select,.form-row input,.form-row select{border:1px solid var(--color-border);border-radius:8px;padding:6px 8px;font-size:13px;background:var(--color-bg);color:var(--color-text);min-width:86px}.form-row{display:grid;grid-template-columns:1fr 1fr 100px;gap:8px;margin-top:10px;margin-bottom:8px}.member-edit-row{background:var(--color-surface-alt);border-radius:10px;padding:10px;margin-bottom:8px;display:grid;grid-template-columns:1fr 1fr 100px auto;gap:8px;align-items:center}.member-actions{display:flex;gap:6px}.member-actions-inline{display:flex;gap:8px}.form-error{margin-top:6px;color:var(--color-expense);font-size:var(--font-size-xs)}.rules-panel{margin-top:8px;margin-bottom:8px}.rules-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.actions-row{margin-top:12px;display:flex;gap:8px}.impact-preview{margin-top:12px;border-radius:12px;padding:12px;border:1px solid var(--color-divider)}.impact-preview.positive{background:#00c85314;border-color:#00c85340}.impact-preview.negative{background:#f4433614;border-color:#f4433640}.impact-title{font-size:var(--font-size-sm);font-weight:700;margin-bottom:4px}.impact-formula,.impact-state{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px}.impact-result{font-size:var(--font-size-sm);font-weight:700;margin-top:4px}.link-btn{border:none;background:transparent;color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;font-weight:600}.link-btn.danger{color:var(--color-expense)}.assumptions-note{margin-top:10px;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.theme-card{margin-bottom:12px}.theme-toggle{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer}.theme-info{display:flex;align-items:center;gap:12px}.theme-info svg{color:var(--color-text-secondary)}.theme-label{display:block;font-size:var(--font-size-base);font-weight:500}.theme-value{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.theme-switch{width:48px;height:28px;border-radius:14px;background:var(--color-border);position:relative;transition:all var(--transition-normal)}.theme-switch.active{background:var(--color-primary)}.theme-switch-handle{width:22px;height:22px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003;transition:all var(--transition-normal)}.theme-switch.active .theme-switch-handle{left:23px}.menu-card{margin-bottom:12px;overflow:hidden}.menu-item{display:flex;align-items:center;gap:12px;padding:14px 20px;cursor:pointer;border-bottom:1px solid var(--color-divider);transition:all var(--transition-fast)}.menu-item:last-child{border-bottom:none}.menu-item:hover{background:var(--color-primary-10)}.menu-icon-wrapper{width:36px;height:36px;border-radius:10px;background:var(--color-surface-alt);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.menu-text{flex:1}.menu-label{display:block;font-size:var(--font-size-base);font-weight:500}.menu-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.menu-arrow{color:var(--color-text-tertiary);cursor:pointer;transition:transform .2s ease;flex-shrink:0}.menu-arrow-open{transform:rotate(90deg)}.legal-links{border-top:1px solid var(--color-divider);padding:4px 0}.legal-link-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 12px 52px;cursor:pointer;transition:background .15s}.legal-link-item:hover{background:var(--color-primary-10)}.legal-link-label{font-size:var(--font-size-sm);color:var(--color-text)}.legal-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--color-surface);display:flex;flex-direction:column}.legal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-divider);flex-shrink:0}.legal-modal-header h3{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text);margin:0}.legal-modal-body{flex:1;overflow-y:auto;padding:16px 20px 40px}.legal-loading{text-align:center;color:var(--color-text-tertiary);padding:40px 0}.legal-content{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--font-size-sm);color:var(--color-text);line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0}.logout-btn{width:100%;padding:14px;background:var(--color-surface);border:none;border-radius:var(--card-radius);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:500;color:var(--color-expense);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px;transition:all var(--transition-fast)}.logout-btn:hover{background:#fff0f0}.copyright{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:1.6}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--color-bg)}.auth-card{width:100%;max-width:400px;background:var(--color-surface);border-radius:20px;box-shadow:var(--shadow-lg);padding:32px 24px 24px;display:flex;flex-direction:column;gap:12px}.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:2px}.auth-logo-icon{font-size:28px}.auth-card h1{font-size:26px;margin:0;font-weight:700}.auth-subtitle{color:var(--color-text-secondary);font-size:13px;margin-bottom:8px}.auth-field{display:flex;flex-direction:column;gap:4px}.auth-card input{border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:10px;padding:13px 14px;font-size:15px;width:100%;box-sizing:border-box;transition:border-color .2s;outline:none}.auth-card input:focus{border-color:var(--color-primary)}.auth-card input.error{border-color:#f44}.auth-field-error{color:#f44;font-size:12px;margin:0;padding-left:4px}.auth-code-row{display:flex;gap:10px;align-items:stretch}.auth-code-input{flex:1}.send-code-btn{flex-shrink:0;border:1.5px solid var(--color-primary);border-radius:10px;padding:0 14px;background:transparent;color:var(--color-primary);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s;min-width:88px}.send-code-btn:disabled{border-color:var(--color-border);color:var(--color-text-tertiary);cursor:not-allowed}.send-code-btn:not(:disabled):hover{background:var(--color-primary);color:#fff}.submit-btn{margin-top:4px;border:0;border-radius:12px;padding:14px;background:var(--color-primary);color:#fff;font-weight:700;font-size:16px;cursor:pointer;transition:opacity .2s}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.submit-btn:not(:disabled):active{opacity:.85}.auth-divider{display:flex;align-items:center;gap:10px;margin:4px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.auth-divider span{font-size:12px;color:var(--color-text-tertiary);white-space:nowrap}.wechat-btn{display:flex;align-items:center;justify-content:center;gap:8px;border:1.5px solid var(--color-border);border-radius:12px;padding:12px;background:var(--color-surface);color:var(--color-text);font-size:15px;font-weight:500;cursor:pointer;transition:border-color .2s,background .2s}.wechat-btn:hover{border-color:#07c160;color:#07c160}.wechat-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#07c160;color:#fff;border-radius:50%;font-size:10px;font-weight:700}.auth-wechat-tip{font-size:12px;color:var(--color-text-tertiary);background:var(--color-surface-alt);border-radius:8px;padding:10px 12px;text-align:center}.auth-back-btn{border:none;background:none;color:var(--color-text-secondary);font-size:13px;cursor:pointer;padding:4px 0;text-align:center}.auth-back-btn:hover{color:var(--color-primary)}.auth-tip{font-size:12px;color:var(--color-text-tertiary);text-align:center;line-height:1.6;margin:4px 0 0}.auth-tip-demo{color:var(--color-primary);font-size:11px}.retirement{padding-bottom:100px}.retirement-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0 16px}.retirement-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text)}.retirement-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:64px 0;color:var(--color-text-secondary)}.retirement-empty{margin-top:40px;text-align:center}.retirement-empty-content{padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.retirement-empty-content h3{font-size:var(--font-size-lg);font-weight:700}.retirement-empty-content p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.progress-card{display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 20px;margin-bottom:12px}.progress-ring-wrapper{position:relative;width:140px;height:140px;flex-shrink:0}.progress-ring-svg{width:140px;height:140px;transform:rotate(-90deg)}.progress-track{fill:none;stroke:var(--color-divider);stroke-width:10}.progress-fill{fill:none;stroke:url(#retireGrad);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .8s ease}.progress-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.progress-pct{font-size:28px;font-weight:900;color:var(--color-primary);line-height:1}.progress-label{font-size:11px;color:var(--color-text-secondary);margin-top:2px}.progress-meta{text-align:center}.progress-title{font-size:var(--font-size-md);font-weight:600;color:var(--color-text)}.progress-title strong{color:var(--color-primary)}.progress-sub{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:4px}.retirement-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.metric-item{background:var(--color-surface);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-sm)}.metric-icon{width:18px;height:18px}.metric-icon.green{color:var(--color-primary)}.metric-icon.blue{color:#2196f3}.metric-icon.orange{color:#ff9800}.metric-icon.purple{color:#7c4dff}.metric-label{font-size:11px;color:var(--color-text-tertiary)}.metric-value{font-size:var(--font-size-md);font-weight:700;color:var(--color-text)}.metric-value.gap-red{color:var(--color-danger)}.metric-value.gap-green{color:var(--color-primary)}.gap-card{margin-bottom:12px;padding:16px;border-left:3px solid #FF9800}.gap-title{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text);margin-bottom:8px}.gap-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6}.gap-desc strong{color:var(--color-text)}.ai-explain-btn-wrap{display:flex;justify-content:center;margin:0 0 12px}.retirement-settings-modal{position:fixed;bottom:82px;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:var(--color-surface);border-radius:20px 20px 0 0;padding:24px 20px 36px;z-index:1001;box-shadow:0 -4px 24px #0000001f}.retirement-settings-modal h3{font-size:var(--font-size-lg);font-weight:700;margin-bottom:20px;text-align:center}.settings-field{margin-bottom:16px}.settings-field label{display:block;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:6px;font-weight:500}.settings-field input{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:12px;font-size:var(--font-size-base);background:var(--color-bg);color:var(--color-text);outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.settings-field input:focus{border-color:var(--color-primary)}.settings-actions{display:flex;gap:10px;margin-top:24px}.settings-actions>*{flex:1}.assessment{padding-bottom:100px}.assessment-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0 16px}.assessment-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text)}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:var(--color-surface);border-radius:10px;cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast)}.icon-btn:hover{background:var(--color-surface-alt);color:var(--color-text)}.spinning{animation:spin 1s linear infinite}.assessment-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:64px 0;color:var(--color-text-secondary)}.assessment-empty{margin-top:40px;text-align:center}.assessment-empty-content{padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.assessment-empty-content h3{font-size:var(--font-size-lg);font-weight:700}.assessment-empty-content p{color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center}.empty-icon{font-size:48px}.empty-actions{display:flex;gap:10px;margin-top:4px}.overall-card{margin-bottom:12px;padding:20px;border-left:4px solid var(--color-primary)}.score-green-card{border-left-color:#00c853}.score-orange-card{border-left-color:#ff9800}.score-red-card{border-left-color:#f44336}.overall-inner{display:flex;align-items:center;gap:20px}.overall-score-wrap{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.overall-score{font-size:52px;font-weight:900;line-height:1}.score-green{color:#00c853}.score-orange{color:#ff9800}.score-red{color:#f44336}.overall-label{font-size:11px;color:var(--color-text-secondary);margin-top:4px}.overall-level{font-size:var(--font-size-md);font-weight:700;color:var(--color-text);margin-bottom:4px}.overall-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.radar-card{margin-bottom:12px;padding:16px}.radar-title{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text);margin-bottom:8px;text-align:center}.dimensions-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.dimension-item{padding:14px 16px}.dimension-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.dimension-icon{font-size:20px;flex-shrink:0}.dimension-meta{flex:1;display:flex;align-items:center;justify-content:space-between}.dimension-name{font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.dimension-score{font-size:var(--font-size-md);font-weight:800}.dimension-bar-wrap{margin-bottom:8px}.dimension-bar-track{height:6px;background:var(--color-divider);border-radius:3px;overflow:hidden}.dimension-bar-fill{height:100%;border-radius:3px;transition:width .6s ease}.score-green-bar{background:#00c853}.score-orange-bar{background:#ff9800}.score-red-bar{background:#f44336}.dimension-tip{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.dimension-action{font-size:var(--font-size-sm);color:var(--color-primary);margin-top:6px;font-weight:500}.pro-prompt{margin-bottom:12px;cursor:pointer;transition:all var(--transition-fast)}.pro-prompt:hover{transform:translateY(-1px)}.pro-prompt-inner{display:flex;align-items:center;gap:12px;padding:16px}.pro-badge{padding:2px 8px;background:var(--gradient-primary);color:#fff;font-size:11px;font-weight:800;border-radius:6px;flex-shrink:0}.pro-prompt-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.pro-prompt-sub{font-size:11px;color:var(--color-text-secondary);margin-top:2px}.assess-footer-btns{display:flex;gap:10px;margin-bottom:12px}.assess-footer-btns>*{flex:1}.ai-result-card{margin-bottom:12px;padding:16px}.ai-result-header{font-size:var(--font-size-sm);font-weight:700;color:var(--color-primary);margin-bottom:8px}.ai-result-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.7;white-space:pre-line}.upgrade{padding-bottom:120px}.upgrade-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0 16px}.upgrade-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text)}.price-card{background:var(--gradient-primary);border-radius:var(--border-radius-lg);padding:28px 24px;color:#fff;text-align:center;position:relative;margin-bottom:16px;overflow:hidden}.price-badge{position:absolute;top:14px;right:-20px;background:#ff9800;color:#fff;font-size:11px;font-weight:700;padding:3px 28px;transform:rotate(35deg);transform-origin:center}.price-label{font-size:var(--font-size-base);font-weight:600;opacity:.9;margin-bottom:12px}.price-amount{display:flex;align-items:flex-end;justify-content:center;gap:2px;margin-bottom:8px}.price-currency{font-size:24px;font-weight:700;padding-bottom:8px}.price-number{font-size:72px;font-weight:900;line-height:1;letter-spacing:-2px}.price-period{font-size:var(--font-size-md);opacity:.8;padding-bottom:12px}.price-sub{font-size:var(--font-size-sm);opacity:.75;margin-bottom:10px}.price-trial{display:inline-block;background:#fff3;border-radius:8px;padding:6px 16px;font-size:var(--font-size-sm)}.price-trial strong{font-size:var(--font-size-md)}.feature-table{padding:0;overflow:hidden;margin-bottom:16px}.feature-table-header{display:flex;align-items:center;padding:12px 16px;background:var(--color-surface-alt);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-secondary);border-bottom:1px solid var(--color-divider)}.feature-col-label{flex:1}.feature-col-tier{width:54px;text-align:center;font-size:12px}.pro-col{color:var(--color-primary);font-weight:800}.feature-row{display:flex;align-items:center;padding:11px 16px;border-bottom:1px solid var(--color-divider)}.feature-row:last-child{border-bottom:none}.feature-row-alt{background:var(--color-bg)}.feature-row-label{flex:1;font-size:var(--font-size-sm);color:var(--color-text)}.feature-row-cell{width:54px;display:flex;justify-content:center;align-items:center}.check-icon{color:var(--color-text-tertiary)}.check-pro-icon{color:var(--color-primary)}.x-icon{color:var(--color-divider)}.security-card{padding:16px;margin-bottom:16px}.security-title{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text);margin-bottom:10px}.security-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.security-list li{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding-left:16px;position:relative;line-height:1.5}.security-list li:before{content:"•";position:absolute;left:0;color:var(--color-primary)}.upgrade-footer{position:fixed;bottom:82px;left:0;right:0;margin:0 auto;width:calc(100% - 40px);max-width:430px;background:var(--color-bg);padding:16px 0;text-align:center;z-index:99}.upgrade-cta-btn{width:100%;font-size:var(--font-size-md)!important}.upgrade-cta-hint{font-size:11px;color:var(--color-text-tertiary);margin-top:8px}.already-pro{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;background:var(--color-surface);border-radius:14px;font-size:var(--font-size-base);font-weight:600;color:var(--color-primary)}.plan-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.plan-tab{position:relative;display:flex;flex-direction:column;align-items:center;padding:14px 10px 12px;border:2px solid var(--color-divider);border-radius:14px;background:var(--color-surface);cursor:pointer;transition:all .18s;overflow:hidden}.plan-tab-active{border-color:var(--color-primary);background:#00c8530d}.plan-badge{position:absolute;top:0;right:0;font-size:10px;font-weight:700;background:#ff9800;color:#fff;padding:2px 8px;border-radius:0 12px 0 8px}.plan-tab-active .plan-badge{background:var(--color-primary)}.plan-tab-label{font-size:12px;color:var(--color-text-secondary);margin-bottom:4px}.plan-tab-active .plan-tab-label{color:var(--color-primary);font-weight:600}.plan-tab-price{font-size:28px;font-weight:900;color:var(--color-text);line-height:1}.plan-tab-active .plan-tab-price{color:var(--color-primary)}.plan-tab-monthly{font-size:11px;color:var(--color-text-tertiary);margin-top:3px}.pay-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;display:flex;align-items:flex-end;justify-content:center}.pay-sheet{background:var(--color-surface);border-radius:20px 20px 0 0;padding:16px 20px 40px;width:100%;max-width:480px;margin-bottom:82px}.pay-sheet-handle{width:40px;height:4px;background:var(--color-divider);border-radius:2px;margin:0 auto 18px}.pay-sheet-title{font-size:17px;font-weight:700;color:var(--color-text);margin-bottom:16px;text-align:center}.pay-order-summary{display:flex;align-items:center;justify-content:space-between;background:var(--color-bg);border-radius:10px;padding:12px 14px;margin-bottom:16px}.pay-order-name{font-size:13px;color:var(--color-text-secondary);display:flex;align-items:center}.pay-order-amount{font-size:20px;font-weight:800;color:var(--color-primary)}.pay-methods{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.pay-method-btn{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1.5px solid var(--color-divider);border-radius:12px;background:var(--color-surface);cursor:pointer;transition:all .15s}.pay-method-btn.active{border-color:var(--color-primary);background:#00c8530a}.pay-method-emoji{font-size:22px}.pay-method-name{flex:1;font-size:15px;font-weight:500;color:var(--color-text)}.pay-method-desc{font-size:11px;color:var(--color-primary);background:#00c8531a;padding:2px 7px;border-radius:6px}.pay-method-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-divider);display:flex;align-items:center;justify-content:center;transition:border-color .15s}.pay-method-btn.active .pay-method-radio{border-color:var(--color-primary)}.radio-dot{width:10px;height:10px;border-radius:50%;background:var(--color-primary)}.pay-confirm-btn{width:100%;padding:15px;background:var(--color-primary);border:none;border-radius:14px;color:#fff;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity .15s}.pay-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.pay-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pay-spinner-lg{width:32px;height:32px;border:3px solid var(--color-divider);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px;display:block}.pay-pending{text-align:center;padding:8px 0 16px}.pay-pending-text{font-size:14px;color:var(--color-text);margin-bottom:8px}.pay-pending-order{font-size:12px;color:var(--color-text-tertiary);margin-bottom:12px;font-family:monospace}.pay-pending-link{display:inline-block;padding:10px 24px;background:var(--color-primary);color:#fff;border-radius:10px;text-decoration:none;font-size:14px;font-weight:600}.pay-hint{text-align:center;font-size:11px;color:var(--color-text-tertiary);margin-top:10px}.success-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;text-align:center}.success-icon{font-size:72px;margin-bottom:16px;animation:pop .5s ease}@keyframes pop{0%{transform:scale(.5);opacity:0}80%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.success-title{font-size:26px;font-weight:900;color:var(--color-text);margin-bottom:8px}.success-sub{font-size:15px;color:var(--color-text-secondary);margin-bottom:16px}.success-expiry{background:#00c8531a;color:var(--color-primary);border-radius:10px;padding:8px 16px;font-size:14px;margin-bottom:24px}.success-expiry strong{font-weight:700}.success-perks{display:flex;flex-direction:column;gap:10px;align-items:flex-start;background:var(--color-surface);border-radius:14px;padding:16px 20px;width:100%;max-width:320px;margin-bottom:32px}.success-perk{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--color-text)}.success-btn{display:flex;align-items:center;padding:15px 40px;background:var(--gradient-primary);border:none;border-radius:14px;color:#fff;font-size:16px;font-weight:700;cursor:pointer}:root{--color-primary: #00C853;--color-primary-hover: #00B84A;--color-primary-pressed: #00A23F;--color-primary-light: #E8F5E9;--color-primary-bg: #F0FFF0;--color-primary-10: rgba(0, 200, 83, .1);--color-primary-20: rgba(0, 200, 83, .2);--color-warning: #FF9800;--color-info: #2196F3;--color-danger: #F44336;--color-danger-hover: #E53935;--color-purple: #7C4DFF;--color-bg: #F5F5F5;--color-surface: #FFFFFF;--color-surface-alt: #F8F9FA;--color-border: #E8E8E8;--color-divider: #F0F0F0;--color-text: #212121;--color-text-secondary: #757575;--color-text-tertiary: #9E9E9E;--color-text-inverse: #FFFFFF;--color-income: #00C853;--color-expense: #F44336;--color-tax: #FF9800;--color-saving: #00C853;--shadow-sm: 0 1px 3px rgba(0,0,0,.06);--shadow-md: 0 4px 12px rgba(0,0,0,.06);--shadow-lg: 0 8px 24px rgba(0,0,0,.08);--shadow-xl: 0 12px 36px rgba(0,0,0,.12);--page-padding: 16px;--card-gap: 12px;--card-radius: 16px;--btn-radius: 12px;--font-family: "Noto Sans SC", "PingFang SC", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 32px;--font-size-4xl: 36px;--z-tabbar: 100;--z-modal: 200;--z-sidebar: 250;--z-toast: 300;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--gradient-primary: linear-gradient(135deg, #00C853 0%, #00B84A 100%);--gradient-hero: linear-gradient(135deg, #00C853 0%, #009624 100%)}[data-theme=dark]{--color-bg: #0A0A0A;--color-surface: #1C1C1E;--color-surface-alt: #2C2C2E;--color-border: #3A3A3C;--color-divider: #2C2C2E;--color-text: #FFFFFF;--color-text-secondary: #A0A0A5;--color-text-tertiary: #8E8E93;--color-expense: #FF453A;--color-primary-bg: #003322;--color-primary-light: #003322;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 24px rgba(0,0,0,.5);--shadow-xl: 0 12px 36px rgba(0,0,0,.6);--gradient-primary: linear-gradient(135deg, #00C853 0%, #00A23F 100%);--gradient-hero: linear-gradient(135deg, #00C853 0%, #007B2E 100%)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);line-height:1.5;overflow-x:hidden;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.app-layout{display:flex;flex-direction:column;min-height:100vh;max-width:430px;margin:0 auto;background:var(--color-bg);position:relative}.page-content{flex:1;padding:var(--page-padding);padding-bottom:100px;overflow-y:auto;-webkit-overflow-scrolling:touch}.text-primary{color:var(--color-primary)}.text-danger{color:var(--color-expense)}.text-warning{color:var(--color-warning)}.text-secondary{color:var(--color-text-secondary)}.text-center{text-align:center}.font-bold{font-weight:700}.font-extra-bold{font-weight:900}.flex{display:flex}.flex-col{flex-direction:column}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-sm{gap:8px}.gap-md{gap:12px}.gap-lg{gap:16px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideOutRight{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .4s ease forwards}.animate-slide-up{animation:slideInUp .3s ease forwards}.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}.number-animate{animation:countUp .6s ease forwards;display:inline-block}@media (min-width: 768px){.app-layout{max-width:768px;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border)}}@media (min-width: 1024px){.app-layout{max-width:430px;box-shadow:var(--shadow-xl)}}
