:root{--bg: #ffffff;--bg-secondary: #f8f9fb;--bg-tertiary: #f0f1f5;--card-bg: #ffffff;--bg-hover: rgba(0, 0, 0, .03);--bg-page: #f5f5f7;--text: #1a1a2e;--text-secondary: #4a4d5e;--text-tertiary: #5a5d6e;--text-light: #5e6170;--border: rgba(0, 0, 0, .15);--border-hover: rgba(0, 0, 0, .25);--accent: #4f6ef7;--accent-hover: #3d5bd9;--accent-dark: #3350c4;--accent-light: rgba(79, 110, 247, .08);--accent-subtle: rgba(79, 110, 247, .04);--primary: #4f6ef7;--primary-color: #4f6ef7;--success: #10b981;--success-bg: rgba(16, 185, 129, .08);--danger: #ef4444;--danger-hover: #dc2626;--danger-bg: rgba(239, 68, 68, .08);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .08);--success-subtle: rgba(16, 185, 129, .04);--danger-subtle: rgba(239, 68, 68, .04);--warning-subtle: rgba(245, 158, 11, .04);--text-inverse: #ffffff;--gradient-primary: linear-gradient(135deg, #4f6ef7 0%, #7c5cfc 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #34d399 100%);--gradient-danger: linear-gradient(135deg, #ef4444 0%, #f97316 100%);--gradient-warning: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);--gradient-hero: linear-gradient(145deg, #16162a 0%, #1f1f4a 40%, #3d56d0 100%);--gradient-subtle: linear-gradient(135deg, rgba(79, 110, 247, .05) 0%, rgba(124, 92, 252, .03) 100%);--gradient-mesh: radial-gradient(at 20% 80%, rgba(79,110,247,.06) 0%, transparent 50%), radial-gradient(at 80% 20%, rgba(124,92,252,.04) 0%, transparent 50%);--gradient-card-shine: linear-gradient(135deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,0) 60%);--balance-gradient-end: #2d2b55;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04), 0 0 0 1px rgba(0, 0, 0, .02);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 2px 8px rgba(0, 0, 0, .04), 0 0 0 1px rgba(0, 0, 0, .02);--shadow-md: 0 2px 4px rgba(0, 0, 0, .02), 0 4px 16px rgba(0, 0, 0, .06), 0 12px 40px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .02), 0 8px 24px rgba(0, 0, 0, .06), 0 24px 80px rgba(0, 0, 0, .08);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .03), 0 16px 48px rgba(0, 0, 0, .08), 0 0 0 1px rgba(0, 0, 0, .02);--shadow-colored: 0 4px 20px rgba(79, 110, 247, .15);--shadow-glow: 0 0 20px rgba(79, 110, 247, .12);--radius-xs: 6px;--radius-sm: 8px;--radius: 12px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--space-xs: 4px;--space-sm: 8px;--space-1-5: 12px;--space-md: 16px;--space-2-5: 20px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--space-4xl: 80px;--gradient-income: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);--gradient-expense: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);--glow-accent: 0 0 0 3px rgba(79, 110, 247, .08), 0 8px 25px rgba(79, 110, 247, .12);--glow-success: 0 0 0 3px rgba(16, 185, 129, .08), 0 8px 25px rgba(16, 185, 129, .12);--glow-danger: 0 0 0 3px rgba(239, 68, 68, .08), 0 8px 25px rgba(239, 68, 68, .12);--glow-warning: 0 0 0 3px rgba(245, 158, 11, .08), 0 8px 25px rgba(245, 158, 11, .12);--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: 20px;--glass-shadow: 0 4px 24px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--icon-bg-size: 36px;--icon-bg-radius: var(--radius-sm);--gradient-text: linear-gradient(135deg, #4f6ef7 0%, #7c5cfc 50%, #a78bfa 100%);--stagger-delay: 60ms;--enter-duration: .4s;--enter-ease: cubic-bezier(.16, 1, .3, 1);--transition-fast: .2s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--transition-micro: .12s ease;--transition-hover: .18s cubic-bezier(.25, .1, .25, 1);--ease-spring: cubic-bezier(.16, 1, .3, 1);--ease-out-expo: cubic-bezier(.19, 1, .22, 1);--transition-spring: .4s cubic-bezier(.16, 1, .3, 1);--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--tracking-tighter: -.035em;--tracking-tight: -.025em;--tracking-snug: -.015em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-wider: .05em;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.5;--leading-relaxed: 1.65;--z-dropdown: 100;--z-fab: 900;--z-overlay: 1000;--z-modal: 1001;--z-overlay-high: 2000;--z-modal-high: 2001;--z-overlay-search: 3000;--z-modal-search: 3001;--z-overlay-split: 4000;--z-modal-split: 4001;--z-nav-overlay: 5000;--z-nav: 5001;--z-toast: 9000;--z-max: 10000;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--text-3xl: 28px;--text-4xl: 36px;--text-display: 42px;--chart-1: #ef4444;--chart-2: #10b981;--chart-3: #3b82f6;--chart-4: #f59e0b;--chart-5: #8b5cf6;--chart-6: #ec4899;--chart-7: #14b8a6;--chart-8: #f97316;--chart-9: #06b6d4;--chart-10: #84cc16;--chart-11: #eab308;--chart-12: #a855f7;--chart-13: #f43f5e;--chart-14: #0ea5e9;--chart-15: #22c55e;--chart-16: #fbbf24;--chart-17: #6366f1;--chart-18: #64748b}@media(max-width:768px){:root{--text-xs: 13px;--text-sm: 14px}}.tickets-analysis{margin-top:32px;padding:24px;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}.ticket-upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:40px;text-align:center;background:var(--bg-secondary);cursor:pointer;transition:all var(--transition-fast);margin-bottom:24px}.ticket-upload-zone:hover{border-color:var(--accent);background:var(--accent-light)}.ticket-upload-zone.dragover{border-color:var(--accent);background:var(--accent-light);transform:scale(1.02)}.btn-analyze-tickets{background:var(--gradient-primary);color:#fff;padding:14px 28px;font-size:15px;font-weight:600;border-radius:var(--radius-md);border:none;box-shadow:var(--shadow-colored);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all var(--transition-fast)}.btn-analyze-tickets:hover{transform:translateY(-1px);filter:brightness(1.08);box-shadow:var(--shadow-card-hover),0 4px 20px #4f6ef740}.ticket-upload-hint{margin:0;color:var(--text-secondary);font-size:14px}.ticket-upload-subhint{margin:4px 0 0;color:var(--text-secondary);font-size:11px;opacity:.7}.ticket-processing{text-align:center;padding:20px;margin-bottom:24px}.ticket-processing-text{margin:0;color:var(--text-secondary)}.ticket-processing-progress{margin-top:12px}.ticket-processing-count{margin:8px 0 0;font-size:12px;color:var(--text-secondary)}.progress-track{background:var(--border);border-radius:4px;height:6px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;width:0%;transition:width .3s ease;border-radius:4px}.tickets-list{display:grid;gap:16px;margin-top:16px}.ticket-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all var(--transition-fast)}.ticket-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.ticket-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.ticket-card-store{font-weight:600;font-size:16px;color:var(--text)}.ticket-card-date{font-size:var(--text-sm);color:var(--text-secondary)}.ticket-card-total{font-size:18px;font-weight:600;color:var(--accent);margin:8px 0}.ticket-card-items{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.ticket-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px}.ticket-item-name{flex:1;color:var(--text)}.ticket-item-details{font-size:var(--text-sm);color:var(--text-secondary);margin-left:8px}.ticket-item-price{font-weight:600;color:var(--text)}.ticket-card-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.ticket-analysis-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.ticket-analysis-card h4{margin:0 0 12px;font-size:16px;color:var(--text)}.price-comparison-table{width:100%;border-collapse:collapse;margin-top:12px}.price-comparison-table th,.price-comparison-table td{padding:10px;text-align:left;border-bottom:1px solid var(--border)}.price-comparison-table th{background:var(--bg);font-weight:600;font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase}.price-comparison-table td{font-size:14px}.price-best{color:var(--success);font-weight:600}.price-worst{color:var(--danger)}.recommendation-item{padding:12px;background:var(--bg);border-left:3px solid var(--accent);border-radius:var(--radius-sm);margin-bottom:12px}.recommendation-item h5{margin:0 0 6px;font-size:14px;color:var(--text)}.recommendation-item p{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.savings-badge{display:inline-block;padding:4px 8px;background:var(--success);color:var(--text-inverse);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;margin-left:8px}.skip-link{position:absolute;top:-100%;left:16px;z-index:var(--z-max);padding:8px 16px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-weight:600;font-size:14px;text-decoration:none;transition:top .2s ease}.skip-link:focus{top:8px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-page, var(--bg-secondary));color:var(--text);line-height:var(--leading-relaxed);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"cv02","cv03","cv04","cv11";min-height:100vh;overflow-x:hidden}h1,h2,h3,h4{text-wrap:balance}.container{max-width:1400px;margin:0 auto;padding:var(--space-xl) var(--space-lg)}@media(max-width:768px){.container{padding:var(--space-2-5) var(--space-md)}}header{background:var(--bg);border-radius:var(--radius-xl);padding:var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-md);border:1px solid var(--border);position:relative}header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}h1,h2,h3,h4{font-family:Plus Jakarta Sans,Inter,sans-serif}header h1{font-size:26px;font-weight:800;color:var(--text);letter-spacing:var(--tracking-tight);display:flex;align-items:center;gap:var(--space-1-5)}header h1 .icon{color:var(--accent)}header h1:before{content:"";display:none}.header-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.header-actions-collapsible{display:contents}.header-menu-toggle{display:none}@media(max-width:768px){.header-menu-toggle{display:flex;font-size:18px;padding:6px 10px}.header-actions-collapsible{display:none;position:absolute;top:100%;right:0;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:8px;flex-direction:column;gap:4px;z-index:var(--z-dropdown);min-width:200px}.header-actions-collapsible.open{display:flex}.header-actions-collapsible .btn-nav{justify-content:flex-start;width:100%;text-align:left}.header-actions{position:relative}}.btn-nav,.exchange-rate-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:8px 14px;min-height:44px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:6px;text-decoration:none;white-space:nowrap}.btn-nav:hover,.exchange-rate-btn:hover{background:var(--bg-tertiary);border-color:var(--border-hover);box-shadow:var(--shadow-xs);transform:translateY(-1px)}.btn-nav:active,.exchange-rate-btn:active{transform:scale(.97);transition:transform .1s ease}.btn-primary{width:100%;padding:14px 20px;background:var(--gradient-primary, var(--accent));color:#fff;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);letter-spacing:-.01em;position:relative;overflow:hidden;box-shadow:var(--shadow-colored, var(--shadow-sm))}.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:var(--shadow-card-hover),0 4px 20px #4f6ef740}.btn-primary:active{filter:brightness(.95);transform:scale(.98);transition:transform .1s ease,filter .1s ease}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent;white-space:nowrap;line-height:1.4}.btn.btn-primary{width:auto}.btn-secondary{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-hover);display:inline-flex;align-items:center;gap:6px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-hover);box-shadow:var(--shadow-xs),inset 0 1px #fff6;transform:translateY(-1px)}.btn-secondary:active{filter:brightness(.95);transform:scale(.98);transition:transform .1s ease,filter .1s ease}.btn-danger{background:var(--danger);color:var(--text-inverse);border:none;padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:6px;position:relative;overflow:hidden}.btn-danger:hover{background:var(--danger-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-danger:active{transform:scale(.97);transition:transform .1s ease}.btn-primary:after,.btn-danger:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease,opacity .4s ease;opacity:0;pointer-events:none}.btn-primary:active:after,.btn-danger:active:after{width:200px;height:200px;opacity:1;transition:width 0s,height 0s,opacity 0s}button:disabled,.btn:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.5;cursor:not-allowed;pointer-events:none;filter:grayscale(.3)}.btn-sm{padding:6px 12px;font-size:12px;border-radius:var(--radius-sm);gap:4px}.btn-md{padding:10px 18px;font-size:14px;border-radius:var(--radius);gap:6px}.btn-lg{padding:14px 24px;font-size:15px;border-radius:var(--radius-md);gap:8px}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:8px;width:36px;height:36px;border-radius:var(--radius);border:none;background:none;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);flex-shrink:0}.btn-icon:hover{background:var(--accent-subtle);color:var(--text)}.btn-icon.btn-icon-sm{width:28px;height:28px;padding:4px}.btn-icon.btn-icon-lg{width:44px;height:44px;padding:10px}.btn-icon.btn-icon-danger:hover{background:var(--danger-bg);color:var(--danger)}.btn-icon.btn-icon-primary:hover{background:var(--accent-light);color:var(--accent)}.d-none{display:none!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-block{display:block!important}.d-grid{display:grid!important}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-primary{color:var(--text)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.mt-0{margin-top:0}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-0{margin-bottom:0}.mb-xs{margin-bottom:var(--space-xs)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.p-0{padding:0}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.w-full{width:100%}.shrink-0{flex-shrink:0}.rounded{border-radius:var(--radius)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:9999px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.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}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.border{border:1px solid var(--border)}.border-b{border-bottom:1px solid var(--border)}.border-t{border-top:1px solid var(--border)}.balance-card{background:var(--gradient-hero);border-radius:var(--radius-lg);padding:0;text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);border:none;color:#fff}.balance-card-accent{display:none}.balance-card-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 20% 50%,rgba(255,255,255,.08) 0%,transparent 50%),radial-gradient(circle at 80% 30%,rgba(124,92,252,.15) 0%,transparent 40%);pointer-events:none}.balance-card-content{padding:var(--space-xl) var(--space-xl) var(--space-lg);position:relative}.balance-card-header{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:var(--space-xs)}.balance-card-icon{color:#ffffffb3;opacity:1}.balance-card-subtitle{font-size:var(--text-xs);font-weight:600;color:#ffffffa6;text-transform:uppercase;letter-spacing:.12em}.balance-amount{font-size:var(--text-4xl);font-weight:var(--font-extrabold);color:#fff;letter-spacing:var(--tracking-tight);position:relative;line-height:1.2;margin:var(--space-xs) 0;text-shadow:0 2px 16px rgba(0,0,0,.2)}.balance-card-footer{font-size:var(--text-xs);color:#ffffff8c;min-height:20px}.summary{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);margin-bottom:var(--space-lg)}.summary-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all .25s var(--ease-out-expo);position:relative;overflow:hidden;box-shadow:var(--shadow-xs),inset 0 1px #ffffff80}.summary-card.income{background:linear-gradient(135deg,rgba(16,185,129,.06) 0%,rgba(52,211,153,.03) 50%,var(--glass-bg) 100%);border-color:#10b9811f}.summary-card.expense{background:linear-gradient(135deg,rgba(239,68,68,.06) 0%,rgba(249,115,22,.03) 50%,var(--glass-bg) 100%);border-color:#ef44441f}.summary-card:before{display:none}.summary-card:after{display:none}.summary-card:hover{transform:translateY(-2px)}.summary-card.income:hover{box-shadow:var(--glow-success)}.summary-card.expense:hover{box-shadow:var(--glow-danger)}.summary-card h3{font-size:var(--text-xs);font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;position:relative;z-index:1}.summary-card .amount{font-size:var(--text-3xl);font-weight:800;letter-spacing:-.02em;position:relative;z-index:1}.summary-card.income .amount{color:var(--success)}.summary-card.expense .amount{color:var(--danger)}.summary-trend{margin-top:6px;min-height:22px}.trend-chip{display:inline-flex;align-items:center;gap:3px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;letter-spacing:.01em;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.trend-chip.trend-up{background:#10b9811f;color:#10b981}.trend-chip.trend-down{background:#ef44441f;color:#ef4444}section{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);margin-bottom:var(--space-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal);position:relative}section:hover{box-shadow:var(--shadow-md)}section h2{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--text);letter-spacing:var(--tracking-snug);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--space-sm)}section h2 .icon{display:inline-flex;align-items:center;justify-content:center;width:var(--icon-bg-size);height:var(--icon-bg-size);border-radius:var(--icon-bg-radius);background:var(--accent-light);color:var(--accent);flex-shrink:0}.budgets h2 .icon{background:#4f6ef71a;color:#4f6ef7}.savings-goals h2 .icon{background:#8b5cf61a;color:#8b5cf6}.recurrences h2 .icon{background:#f59e0b1a;color:#f59e0b}.statistics h2 .icon{background:#8b5cf61a;color:#8b5cf6}.projections h2 .icon{background:#06b6d41a;color:#06b6d4}.health-score h2 .icon{background:#ec48991a;color:#ec4899}.transactions h2 .icon{background:#4f6ef71a;color:#4f6ef7}.tickets-analysis h2 .icon,.insights-feed h2 .icon{background:#f59e0b1a;color:#f59e0b}section[data-section-id]:not(.statistics):not(.budget):not(.charts-section){content-visibility:auto;contain-intrinsic-size:auto 300px}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:var(--space-lg)}.app-page{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);grid-column:1 / -1}.app-page>section{margin-bottom:0;border-radius:var(--radius-lg);transition:box-shadow .3s ease}.app-page>.statistics,.app-page>.transactions,.app-page>.transaction-form,.app-page>.member-breakdown,.app-page>.tickets-analysis,.app-page>.budgets,.app-page>.category-rules,.app-page>.insights-feed{grid-column:1 / -1}.app-page>section:before{content:"";position:absolute;top:0;left:12px;right:12px;height:3px;border-radius:0 0 3px 3px;opacity:.7;transition:opacity var(--transition-normal)}.app-page>section:hover:before{opacity:1}.app-page>.budgets:before,.app-page>.transactions:before,.app-page>.statistics:before,.app-page>.transaction-form:before{background:var(--gradient-primary)}.app-page>.health-score:before{background:var(--gradient-success)}.app-page>.savings-goals:before{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.app-page>.recurrences:before{background:var(--gradient-warning)}.app-page>.projections:before{background:linear-gradient(90deg,#06b6d4,#22d3ee)}.app-page>.tickets-analysis:before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.app-page>.insights-feed:before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.app-page>.category-rules:before{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.app-page>section:hover{box-shadow:var(--shadow-md)}@media(max-width:900px){.app-page{grid-template-columns:1fr}}.page-tabs{display:flex;gap:4px;padding:4px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-lg);border:1px solid var(--border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.page-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:none;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.page-tab:hover{color:var(--text);background:var(--bg)}.page-tab.active{background:var(--bg);color:var(--accent);font-weight:700;box-shadow:var(--shadow-sm),inset 0 1px #ffffff80}.page-tab-icon{display:inline-flex;align-items:center}@media(max-width:768px){.page-tabs{display:none}}.section-header-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:var(--space-md);flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--border)}.section-header-row h2{margin:0;padding-bottom:0;border-bottom:none}.section-header-row .header-actions-group{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.stats-filter-hint{font-size:var(--text-sm);color:var(--text-secondary);padding:6px 12px;background:linear-gradient(135deg,var(--accent-light) 0%,rgba(79,110,247,.05) 100%);border:1px solid var(--accent);border-radius:var(--radius-sm);font-weight:500}.select-compact{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);font-size:var(--text-sm)}.app-page>section{animation:sectionEnter var(--enter-duration) var(--enter-ease) both}.app-page>section:nth-child(1){animation-delay:0ms}.app-page>section:nth-child(2){animation-delay:60ms}.app-page>section:nth-child(3){animation-delay:.12s}.app-page>section:nth-child(4){animation-delay:.18s}.app-page>section:nth-child(5){animation-delay:.24s}.app-page>section:nth-child(6){animation-delay:.3s}.app-page>section:nth-child(7){animation-delay:.36s}.app-page>section:nth-child(8){animation-delay:.42s}.app-page>section:nth-child(9){animation-delay:.48s}.app-page>section:nth-child(10){animation-delay:.54s}@keyframes sectionEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.quick-actions-bar{grid-column:1 / -1;display:flex;gap:var(--space-sm);padding:0}.quick-action-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md) var(--space-sm);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.quick-action-btn:hover{transform:translateY(-2px);box-shadow:var(--glow-accent);border-color:var(--accent);color:var(--accent)}.quick-action-btn:active{transform:scale(.96)}.quick-action-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--icon-bg-radius);transition:all var(--transition-fast)}.qa-add{background:linear-gradient(135deg,#4f6ef71f,#4f6ef70f);color:#4f6ef7}.qa-scan{background:linear-gradient(135deg,#f59e0b1f,#f59e0b0f);color:#f59e0b}.qa-budget{background:linear-gradient(135deg,#10b9811f,#10b9810f);color:#10b981}.qa-ai{background:linear-gradient(135deg,#8b5cf61f,#8b5cf60f);color:#8b5cf6}.quick-action-label{font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:var(--tracking-wide)}.budgets{background:var(--bg)}.budget-alerts{margin-top:16px}.budget-item{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;margin-bottom:12px;transition:all var(--transition-fast)}.budget-item:hover{border-color:var(--border-hover)}.budget-item:last-child{margin-bottom:0}.budget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.budget-name{font-size:14px;font-weight:600;color:var(--text)}.budget-amount{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.budget-progress-bar{height:10px;background:var(--bg-tertiary);border-radius:100px;overflow:hidden;margin-bottom:10px;position:relative}.budget-progress-fill{height:100%;background:var(--gradient-success);border-radius:100px;transition:width .8s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.budget-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:progressShimmer 2s ease-in-out infinite}.budget-progress-fill.warning{background:var(--gradient-warning)}.budget-progress-fill.danger{background:var(--gradient-danger)}.budget-status{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 8px;border-radius:var(--radius-sm);display:inline-block}.budget-status.safe{color:var(--success);background:var(--success-bg)}.budget-status.warning{color:var(--warning);background:var(--warning-bg)}.budget-status.danger{color:var(--danger);background:var(--danger-bg)}.projection-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.projection-card{background:var(--bg-secondary);border:1px solid var(--border);border-top:3px solid var(--primary);border-radius:var(--radius-md);padding:20px;transition:all var(--transition-fast);position:relative;overflow:hidden}.projection-card:hover{border-color:var(--border-hover);border-top-color:var(--primary);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.projection-label{font-size:var(--text-sm);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.projection-value{font-size:var(--text-3xl);font-weight:700;color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.recurrences p{color:var(--text-secondary);font-size:14px;line-height:1.6;margin-bottom:16px}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:3px var(--radius) var(--radius) 3px;padding:var(--space-2-5);transition:all var(--transition-fast);position:relative;overflow:hidden;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.stat-card:after{content:"";position:absolute;inset:0;background:var(--gradient-subtle);opacity:0;transition:opacity var(--transition-normal);pointer-events:none}.stat-card:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card:hover:after{opacity:1}.stat-card:active{transform:scale(.98);transition:transform .1s ease}.stat-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;position:relative;z-index:1}.charts-filter-menu{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px;box-shadow:var(--shadow-xs)}.chart-tabs-container{display:flex;background:var(--bg-secondary);border-radius:var(--radius-md);padding:3px;gap:2px;margin-bottom:var(--space-md);position:relative}.chart-tab-btn,.budget-chart-tab-btn{flex:1;padding:8px 14px;border:none;background:transparent;border-radius:calc(var(--radius-md) - 2px);font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;position:relative;z-index:1;white-space:nowrap}.chart-tab-btn:hover,.budget-chart-tab-btn:hover{color:var(--text)}.chart-tab-btn.active,.budget-chart-tab-btn.active{background:var(--bg);color:var(--accent);box-shadow:var(--shadow-sm);font-weight:var(--font-semibold)}.chart-view-mode-toggle{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);user-select:none;transition:all .2s}.chart-view-mode-toggle input[type=checkbox]{-webkit-appearance:none;appearance:none;width:32px;height:18px;background:var(--bg-tertiary);border-radius:9px;position:relative;cursor:pointer;transition:background var(--transition-fast);flex-shrink:0;border:1px solid var(--border);min-height:auto;min-width:auto}.chart-view-mode-toggle input[type=checkbox]:before{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--bg);border-radius:50%;transition:transform var(--transition-fast);box-shadow:var(--shadow-xs)}.chart-view-mode-toggle input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.chart-view-mode-toggle input[type=checkbox]:checked:before{transform:translate(14px)}.charts-label{font-size:14px;font-weight:600;color:var(--text)}.stats-period-controls{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.period-label{font-size:var(--text-sm);color:var(--text-secondary)}.custom-range-inputs{display:flex;align-items:center;gap:4px;font-size:var(--text-sm);color:var(--text-secondary)}.date-input-compact{padding:4px 6px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);font-size:var(--text-sm)}.chart-view-mode-toggle:hover{background:var(--accent-light)!important;border-color:var(--accent)!important}.chart-view-mode-toggle input[type=checkbox]:checked+span{font-weight:600;color:var(--accent)}.charts-container{display:grid;grid-template-columns:1fr;gap:20px;min-height:400px}.charts-container.show-all{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.chart-box{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-slow);min-height:350px;position:relative;overflow:visible;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--glass-shadow)}.chart-box:before{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:var(--gradient-subtle);opacity:.5;pointer-events:none;z-index:0}.chart-box>*{position:relative;z-index:1}.chart-item,.budget-chart-item{animation:fadeInUp .4s ease-out}.chart-item[style*="display: none"],.budget-chart-item[style*="display: none"]{animation:fadeOutUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}#budgetChartsContainer{grid-template-columns:1fr}#budgetChartsContainer .budget-chart-item[data-chart=budget-bar]{grid-column:1}.chart-box h3{font-size:14px;font-weight:600;color:var(--text);margin-bottom:20px}.chart-box canvas{max-width:100%;max-height:350px;width:100%}.pie-chart-legend{display:flex;flex-wrap:wrap;gap:6px 10px;padding-top:14px;justify-content:center}.pie-legend-item{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:12px;font-weight:500;color:var(--text-secondary);transition:all .15s ease}.pie-legend-item:hover{background:var(--bg-hover);color:var(--text)}.pie-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.income-summary-stats{margin-bottom:16px}.income-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.income-stat-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border)}.income-stat-value{font-size:15px;font-weight:700;color:var(--success);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.income-stat-label{font-size:11px;color:var(--text-secondary);text-align:center;line-height:1.2}@media(max-width:600px){.income-stat-row{grid-template-columns:repeat(2,1fr)}}.transaction-form{background:var(--bg)}.transaction-form form{display:grid;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:var(--text-sm);font-weight:600;color:var(--text);letter-spacing:var(--tracking-snug)}.form-group input,.form-group select{width:100%;padding:var(--space-1-5) var(--space-md);border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:15px;font-family:inherit;background:var(--bg);color:var(--text);transition:all .2s var(--ease-out-expo),box-shadow .15s ease}.form-group input::placeholder{color:var(--text-tertiary)}.form-group input:hover,.form-group select:hover{border-color:var(--border-hover)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-subtle),0 0 0 1.5px var(--accent);background:var(--bg)}.form-group input:user-invalid,.form-group select:user-invalid{border-color:var(--danger);box-shadow:0 0 0 3px #ef444426}.form-group input:user-valid,.form-group select:user-valid{border-color:var(--success)}.form-error{font-size:var(--text-sm);color:var(--danger);margin-top:-4px;display:none}.form-group input:user-invalid~.form-error,.form-group select:user-invalid~.form-error{display:block}.form-floating{position:relative;margin-bottom:var(--space-md)}.form-group.form-floating{gap:0}.form-floating input,.form-floating select,.form-floating textarea{padding:20px 12px 8px;font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text);width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-floating label{position:absolute;top:50%;left:12px;transform:translateY(-50%);font-size:var(--text-sm);color:var(--text-tertiary);pointer-events:none;transition:all .2s cubic-bezier(.4,0,.2,1);background:transparent;padding:0 4px}.form-floating input:focus+label,.form-floating input:not(:placeholder-shown)+label,.form-floating select:focus+label,.form-floating select:not([value=""])+label,.form-floating textarea:focus+label,.form-floating textarea:not(:placeholder-shown)+label{top:6px;transform:translateY(0);font-size:11px;color:var(--primary);font-weight:500;background:var(--bg)}.form-floating input:focus,.form-floating select:focus,.form-floating textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--accent-subtle),0 0 0 1.5px var(--accent);outline:none}.form-floating select+label{top:6px;transform:translateY(0);font-size:11px;color:var(--text-secondary);font-weight:500}.category-suggestion-chip{display:flex;align-items:center;gap:6px;margin-top:4px;padding:4px 8px;background:var(--accent-light, #e8f4fd);border:1px solid var(--accent);border-radius:16px;font-size:12px;animation:chipFadeIn .2s ease}.category-suggestion-chip .chip-text{color:var(--accent);font-weight:500}.category-suggestion-chip .chip-apply,.category-suggestion-chip .chip-dismiss{background:none;border:none;cursor:pointer;padding:2px 4px;font-size:13px;line-height:1;border-radius:50%;min-width:20px;min-height:20px;display:flex;align-items:center;justify-content:center}.category-suggestion-chip .chip-apply{color:var(--success)}.category-suggestion-chip .chip-dismiss{color:var(--text-secondary)}@keyframes chipFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.budget-preview{padding:10px 14px;border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border);margin-bottom:var(--space-md);animation:budgetPreviewIn .3s var(--enter-ease)}.budget-preview-bar{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;margin-bottom:6px}.budget-preview-fill{height:100%;border-radius:3px;transition:width .4s var(--ease-spring),background .3s ease;width:0}.budget-preview-fill.under{background:var(--success)}.budget-preview-fill.near{background:var(--warning)}.budget-preview-fill.over{background:var(--danger)}.budget-preview-text{font-size:12px;font-weight:600;color:var(--text-secondary)}.budget-preview-text .remaining{font-weight:700}.budget-preview-text .remaining.positive{color:var(--success)}.budget-preview-text .remaining.near{color:var(--warning)}.budget-preview-text .remaining.negative{color:var(--danger)}@keyframes budgetPreviewIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.transaction-list{display:flex;flex-direction:column;gap:0}.transaction-item{background:var(--bg);border:1px solid var(--border);border-bottom:none;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);transition:background .2s ease,box-shadow .2s ease;content-visibility:auto;contain-intrinsic-size:auto 64px;animation:fadeSlideIn var(--enter-duration) var(--enter-ease) both;animation-delay:calc(var(--item-index, 0) * var(--stagger-delay));position:relative}.transaction-date-group .transaction-item:first-of-type{border-radius:var(--radius-md) var(--radius-md) 0 0}.transaction-date-group .transaction-item:last-of-type{border-radius:0 0 var(--radius-md) var(--radius-md);border-bottom:1px solid var(--border)}.transaction-date-group .transaction-item:only-of-type{border-radius:var(--radius-md);border-bottom:1px solid var(--border)}.transaction-date-group .transaction-item+.transaction-item:after{content:"";position:absolute;top:0;left:60px;right:18px;height:.5px;background:var(--border);pointer-events:none}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.transaction-item:hover{background:var(--accent-subtle, rgba(79, 110, 247, .04));z-index:1}.transaction-category{font-size:var(--text-xs);color:var(--text-tertiary);display:inline-flex;align-items:center;gap:6px}.transaction-category:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--cat-color, var(--accent));vertical-align:middle}.transaction-amount{font-weight:700;font-size:var(--text-sm);padding:5px 14px;border-radius:20px;white-space:nowrap;margin-right:12px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.transaction-item .cat-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--cat-color, var(--bg-tertiary));color:#fff;font-size:17px;flex-shrink:0;position:relative;box-shadow:inset 0 -1px 2px #0000001a,0 2px 6px #0000000f}.transaction-item .tx-info{flex:1;min-width:0}.transaction-item .tx-desc{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.transaction-item .tx-meta{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:12px;color:var(--text-tertiary);line-height:1}.transaction-item .tx-category-name{font-weight:500;color:var(--text-secondary)}.transaction-item .tx-date{font-weight:400}.transaction-item .tx-amount{font-size:13px;font-weight:800;padding:6px 16px;border-radius:20px;white-space:nowrap;letter-spacing:-.01em;font-variant-numeric:tabular-nums;flex-shrink:0}.transaction-item.expense .tx-amount{color:var(--danger);background:linear-gradient(135deg,#ef444414,#f973160d);border:1px solid rgba(239,68,68,.1)}.transaction-item.income .tx-amount{color:var(--success);background:linear-gradient(135deg,#10b98114,#34d3990d);border:1px solid rgba(16,185,129,.1)}.transaction-currency{font-size:var(--text-xs);color:var(--text-tertiary);margin-left:4px;font-weight:500}.transaction-actions button,.delete-btn,.edit-btn,.split-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:var(--radius-sm);color:var(--text-light);transition:all .15s ease;display:inline-flex;align-items:center}@media(min-width:601px){.tx-actions-btns{opacity:0;transition:opacity .2s ease}.transaction-item:hover .tx-actions-btns{opacity:1}}.transaction-actions button:hover,.edit-btn:hover,.split-btn:hover{background:var(--bg-tertiary);color:var(--text)}.delete-btn:hover,.transaction-actions .delete-btn:hover{color:var(--danger);background:var(--danger-bg)}.empty-message{text-align:center;color:var(--text-secondary);font-size:14px;padding:32px 24px;background:var(--bg-secondary);border-radius:var(--radius);border:1px dashed var(--border);line-height:1.5}.attachment-indicator{display:inline-flex;align-items:center;gap:2px;margin-left:6px;vertical-align:middle;color:var(--text-secondary)}.attachment-thumb-mini{width:18px;height:18px;border-radius:3px;object-fit:cover;vertical-align:middle}.attachment-count{font-size:10px;color:var(--text-secondary)}.modal{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);padding:24px;animation:fadeIn .25s ease}.modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-overlay);opacity:0;pointer-events:none;transition:opacity .25s ease}.modal-overlay.visible,.modal-overlay.active{opacity:1;pointer-events:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg);border-radius:20px;padding:var(--space-xl);width:100%;max-width:500px;max-height:calc(85vh - env(safe-area-inset-bottom,0px));overflow-y:auto;box-shadow:0 24px 80px #00000026,0 4px 16px #0000000d,0 0 0 1px var(--border);border:none;animation:slideUp .35s var(--ease-spring);will-change:transform,opacity}@keyframes slideUp{0%{opacity:0;transform:scale(.97) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideDown{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(10px)}}.modal.modal-closing{animation:fadeOut .15s ease forwards}.modal.modal-closing .modal-content{animation:slideDown .15s ease forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.modal-content h2{font-size:18px;font-weight:800;color:var(--text);margin-bottom:8px;letter-spacing:var(--tracking-snug)}.user-menu-wrapper{position:relative;display:inline-block}.user-menu-wrapper *{box-sizing:border-box}.user-menu-btn{display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--bg);border:1px solid var(--border);border-radius:100px;cursor:pointer;transition:all var(--transition-fast);position:relative}.user-menu-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);transform:translateY(-1px);box-shadow:var(--shadow-xs)}.user-avatar-container{position:relative;width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--border);display:block;background:var(--bg-secondary)}.user-avatar-initial{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;border:2px solid rgba(255,255,255,.2);box-shadow:0 2px 8px #4f6ef733;flex-shrink:0}.user-name{font-size:14px;font-weight:500;color:var(--text);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.chevron{flex-shrink:0;color:var(--text-secondary);transition:transform var(--transition-fast)}.user-menu-btn:hover .chevron{color:var(--text)}.user-dropdown.visible~.user-menu-btn .chevron,.user-menu-btn:focus .chevron{transform:rotate(180deg)}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:all var(--transition-fast);z-index:var(--z-dropdown);overflow:hidden}.user-dropdown.visible{opacity:1;visibility:visible;transform:translateY(0)}.user-dropdown-header{padding:14px 16px;border-bottom:1px solid var(--border)}.user-email{font-size:var(--text-sm);color:var(--text-secondary)}.user-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:none;border:none;font-size:14px;font-weight:500;color:var(--text);cursor:pointer;transition:background var(--transition-fast)}.user-dropdown-item:hover{background:var(--accent-subtle)}.user-dropdown-item:active{transform:scale(.97);transition:transform .1s ease}@media(max-width:480px){.user-dropdown{position:fixed;top:60px;left:12px;right:12px;min-width:auto;width:auto}}.llm-provider-selector{position:relative}.llm-provider-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);transform:translateY(-1px);box-shadow:var(--shadow-xs)}.llm-provider-card:hover{background:var(--bg-hover)!important;transform:translate(4px)}.llm-provider-card.active{box-shadow:var(--shadow-sm)}.auth-loading{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:var(--z-max)}.auth-loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite}.auth-checking .container{visibility:hidden}.ai-config-banner{display:flex;align-items:center;gap:8px;padding:7px 14px;margin-bottom:12px;background:var(--accent-subtle);border-radius:100px;font-size:13px;color:var(--text-secondary);animation:fadeInDown .25s ease}.ai-config-banner-icon{flex-shrink:0;color:var(--accent);opacity:.65;display:flex}.ai-config-banner-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary);font-weight:400}.ai-config-banner-btn{flex-shrink:0;padding:3px 14px;font-size:12px;font-weight:600;border:none;border-radius:100px;background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;transition:filter var(--transition-fast)}.ai-config-banner-btn:hover{filter:brightness(1.12)}.ai-config-banner-close{flex-shrink:0;background:none;border:none;font-size:15px;cursor:pointer;color:var(--text-tertiary);padding:0 2px;line-height:1;opacity:.5;transition:opacity var(--transition-fast)}.ai-config-banner-close:hover{opacity:1}.ai-confidence-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:1px 6px;border-radius:10px;cursor:help;position:relative}.ai-confidence-badge.high{background:var(--success-bg);color:var(--success)}.ai-confidence-badge.medium{background:var(--warning-bg);color:var(--warning)}.ai-confidence-badge.low{background:var(--danger-bg);color:var(--danger)}.ai-reason-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:var(--text-xs);max-width:250px;z-index:100;box-shadow:var(--shadow-md);white-space:normal;pointer-events:none;opacity:0;transition:opacity .15s ease}.ai-confidence-badge:hover .ai-reason-tooltip,.ai-confidence-badge:focus .ai-reason-tooltip{opacity:1}@media(max-width:480px){.ai-config-banner-text{font-size:12px}}.transaction-filters{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border)}.filter-group{display:flex;flex-direction:column;gap:6px;min-width:150px}.filter-group label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.filter-group select,.filter-group input[type=date],.filter-group input[type=week]{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:14px;transition:all var(--transition-fast)}.filter-group select:focus,.filter-group input[type=date]:focus,.filter-group input[type=week]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-subtle),0 0 0 1.5px var(--accent)}.saved-filters-row{display:flex;align-items:center;gap:6px}.saved-filters-row select{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:14px;min-width:140px}.saved-filters-group .btn-icon{padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text);cursor:pointer;font-size:14px;line-height:1;transition:all var(--transition-fast);min-height:44px;min-width:44px}.saved-filters-group .btn-icon:hover{background:var(--bg-hover);border-color:var(--accent)}@media(max-width:768px){.container{padding:16px}header{padding:20px;border-radius:var(--radius-lg)}header h1{font-size:22px}.balance-card-content{padding:24px 16px}.balance-amount{font-size:40px}.summary{grid-template-columns:1fr}.summary-card .amount{font-size:28px}section{padding:20px;border-radius:var(--radius-lg)}.stats-cards{grid-template-columns:repeat(2,1fr)}.charts-container{grid-template-columns:1fr}.transaction-item{flex-direction:column;align-items:flex-start;gap:14px}.transaction-amount{margin-right:0}.modal-content{padding:24px;border-radius:var(--radius-lg)}.user-name{display:none}.user-menu-btn{padding:4px}}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:100px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}::selection{background:var(--accent-light);color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px var(--accent-subtle)}button:focus-visible,.btn-nav:focus-visible,.btn-primary:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px var(--accent-subtle)}.extraction-summary{padding:16px 20px;margin-bottom:16px;background:linear-gradient(135deg,var(--bg-secondary),var(--bg));border:1px solid var(--border);border-radius:12px}.extraction-store{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--text);margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.extraction-stats{display:flex;gap:20px;flex-wrap:wrap}.extraction-stat{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:80px}.extraction-stat-value{font-size:18px;font-weight:700;color:var(--text)}.extraction-stat.expense .extraction-stat-value{color:var(--danger)}.extraction-stat.income .extraction-stat-value{color:var(--success)}.extraction-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-weight:500}.ext-tx-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:10px;background:var(--bg);border:1px solid var(--border);margin-bottom:8px;transition:all .15s ease;border-left:3px solid var(--danger)}.ext-tx-card.income{border-left-color:var(--success)}.ext-tx-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000000f}.ext-tx-check{flex-shrink:0;margin-top:2px}.ext-tx-check input[type=checkbox]{display:none}.ext-tx-check-label{display:block;width:20px;height:20px;border:2px solid var(--border);border-radius:6px;cursor:pointer;position:relative;transition:all .15s ease;background:var(--bg)}.ext-tx-check input:checked+.ext-tx-check-label{background:var(--accent);border-color:var(--accent)}.ext-tx-check input:checked+.ext-tx-check-label:after{content:"";position:absolute;top:3px;left:6px;width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.ext-tx-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--bg-secondary);border-radius:10px}.ext-tx-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.ext-tx-row-main{display:flex;align-items:center;gap:12px}.ext-tx-desc{flex:1;min-width:0;padding:6px 10px;border:1px solid transparent;border-radius:6px;background:transparent;font-size:14px;font-weight:500;color:var(--text);transition:all .15s ease}.ext-tx-desc:hover,.ext-tx-desc:focus{border-color:var(--border);background:var(--bg-secondary)}.ext-tx-amount{display:flex;align-items:center;gap:4px;flex-shrink:0;font-weight:600}.ext-tx-amount.expense{color:var(--danger)}.ext-tx-amount.income{color:var(--success)}.ext-tx-amount-prefix{font-size:14px;font-weight:700}.ext-tx-amount .tx-amount{width:90px;padding:6px 8px;border:1px solid transparent;border-radius:6px;background:transparent;font-size:15px;font-weight:600;color:inherit;text-align:right;transition:all .15s ease;-moz-appearance:textfield}.ext-tx-amount .tx-amount::-webkit-inner-spin-button,.ext-tx-amount .tx-amount::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ext-tx-amount .tx-amount:hover,.ext-tx-amount .tx-amount:focus{border-color:var(--border);background:var(--bg-secondary)}.ext-tx-currency-select{padding:4px 6px;border:1px solid transparent;border-radius:6px;background:transparent;font-size:13px;font-weight:600;color:inherit;cursor:pointer;transition:all .15s ease}.ext-tx-currency-select:hover,.ext-tx-currency-select:focus{border-color:var(--border);background:var(--bg-secondary)}.ext-tx-row-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ext-tx-meta-group{display:flex;align-items:center;gap:6px}.ext-tx-cat-select,.ext-tx-type-select{padding:4px 8px;border:1px solid var(--border);border-radius:20px;background:var(--bg-secondary);font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.ext-tx-cat-select:hover,.ext-tx-cat-select:focus,.ext-tx-type-select:hover,.ext-tx-type-select:focus{border-color:var(--accent);color:var(--text)}.ext-tx-date{padding:4px 8px;border:1px solid var(--border);border-radius:20px;background:var(--bg-secondary);font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.ext-tx-date:hover,.ext-tx-date:focus{border-color:var(--accent);color:var(--text)}@media(max-width:600px){.extraction-stats{gap:12px}.extraction-stat{min-width:60px}.extraction-stat-value{font-size:15px}.ext-tx-card{padding:12px;gap:10px}.ext-tx-icon{display:none}.ext-tx-row-main{flex-direction:column;align-items:stretch;gap:8px}.ext-tx-desc{font-size:13px}.ext-tx-amount{justify-content:flex-end}.ext-tx-amount .tx-amount{width:80px;font-size:14px}.ext-tx-row-meta{gap:8px}.ext-tx-cat-select,.ext-tx-type-select,.ext-tx-date{font-size:11px;padding:3px 6px}}.hidden{display:none!important}.loading{opacity:.6;pointer-events:none}.form-row{display:flex;gap:16px;margin-bottom:16px}.form-row .form-group{margin-bottom:0}.flex-1{flex:1}.flex-2{flex:2}@media(max-width:600px){.form-row{flex-direction:column;gap:12px}}.exchange-rate-info{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-secondary, #f7f7f5);border:1px solid var(--border, rgba(55, 53, 47, .09));border-radius:var(--radius-md, 10px);margin-bottom:16px;font-size:14px;color:var(--text-secondary, #6b6b6b)}.exchange-rate-info .info-icon{font-size:18px}.exchange-rate-info strong{color:var(--text, #37352f);font-weight:600}.conversion-preview{margin-left:auto;font-weight:600;color:var(--accent, #0077ff)}.transaction-filters{display:flex;gap:12px;margin-bottom:20px;padding:16px;background:var(--bg-secondary, #f7f7f5);border-radius:var(--radius-md, 10px);border:1px solid var(--border, rgba(55, 53, 47, .09))}.transaction-filters .filter-group{display:flex;flex-direction:column;gap:6px;min-width:150px}.transaction-filters .filter-group label{font-size:var(--text-sm);font-weight:600;color:var(--text-tertiary, #9b9a97);text-transform:uppercase;letter-spacing:.05em}.transaction-filters .filter-group select{padding:8px 12px;border:1px solid var(--border, rgba(55, 53, 47, .09));border-radius:var(--radius-sm, 6px);font-size:14px;font-family:inherit;background:var(--bg, #ffffff);color:var(--text, #37352f);cursor:pointer;transition:all var(--transition-fast)}.transaction-filters .filter-group select:hover{border-color:var(--border-hover, rgba(55, 53, 47, .16))}.transaction-filters .filter-group select:focus{outline:none;border-color:var(--accent, #0077ff);box-shadow:0 0 0 3px #0077ff14}@media(max-width:500px){.transaction-filters{flex-direction:column}.transaction-filters .filter-group{width:100%}}.transaction-date-group{margin-bottom:20px}.transaction-date-group:last-child{margin-bottom:0}.transaction-date-header{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-tertiary);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:var(--space-md) var(--space-xs) var(--space-sm);margin-bottom:var(--space-xs);position:sticky;top:0;z-index:5;background:var(--bg-page, var(--bg-secondary));display:flex;align-items:center;justify-content:space-between}.transaction-item{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--bg);border:1px solid var(--border);margin-bottom:0;transition:background .2s ease,box-shadow .2s ease}.transaction-item:hover{box-shadow:none;border-left-width:1px;padding-left:18px}.transaction-item:last-child{margin-bottom:0}.transaction-info{flex:1;min-width:0}.transaction-description{font-size:14px;font-weight:600;color:var(--text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.transaction-category{font-size:var(--text-sm);color:var(--text-secondary);display:flex;align-items:center;gap:6px}.transaction-category:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary);margin-right:6px;vertical-align:middle;opacity:.6}.transaction-rate{font-size:var(--text-xs);color:var(--text-tertiary);background:var(--bg);padding:2px 8px;border-radius:100px;border:1px solid var(--border)}.transaction-amount-wrapper{text-align:right;min-width:100px}.transaction-amount{font-weight:700;font-size:var(--text-sm);padding:5px 14px;border-radius:20px;white-space:nowrap;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.transaction-item.income .transaction-amount{color:var(--success);background:var(--success-bg)}.transaction-item.expense .transaction-amount{color:var(--danger);background:var(--danger-bg)}.transaction-original{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:2px}.delete-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:var(--radius-sm);color:var(--text-light);transition:all .15s ease;display:inline-flex;align-items:center;flex-shrink:0}.delete-btn:hover{color:var(--danger);background:var(--danger-bg)}.selection-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--accent-light);border:1px solid var(--accent);border-radius:var(--radius-md);margin-bottom:16px;gap:16px}.selection-info{display:flex;align-items:center;gap:12px;font-weight:500;color:var(--text)}.selection-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-action{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm, 6px);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.btn-exclude{background:var(--warning-bg, rgba(217, 115, 13, .08));color:var(--warning);border-color:var(--warning)}.btn-exclude:hover{background:var(--warning);color:var(--text-inverse)}.btn-include{background:var(--success-bg, rgba(15, 123, 108, .08));color:var(--success);border-color:var(--success)}.btn-include:hover{background:var(--success);color:var(--text-inverse)}.btn-delete{background:var(--danger-bg, rgba(224, 62, 62, .08));color:var(--danger);border-color:var(--danger)}.btn-delete:hover{background:var(--danger);color:var(--text-inverse)}.batch-category-wrapper{display:inline-flex;align-items:center;gap:6px;position:relative}.btn-category{background:var(--accent-light, rgba(79, 110, 247, .08));color:var(--accent);border-color:var(--accent)}.btn-category:hover{background:var(--accent);color:var(--text-inverse)}.batch-category-select{padding:6px 10px;border:1px solid var(--accent);border-radius:var(--radius-sm, 6px);font-size:var(--text-sm);background:var(--bg, #fff);color:var(--text, #37352f);max-width:220px;cursor:pointer;transition:all var(--transition-fast)}.batch-category-select:focus{outline:none;box-shadow:0 0 0 3px var(--accent-light, rgba(79, 110, 247, .2))}.checkbox-container{display:flex;align-items:center;cursor:pointer;user-select:none;position:relative;padding-left:28px;min-height:44px}.checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;left:0;top:50%;transform:translateY(-50%);height:18px;width:18px;background-color:var(--bg, #ffffff);border:2px solid var(--border-hover, rgba(55, 53, 47, .16));border-radius:var(--radius-xs, 6px);transition:all var(--transition-fast)}.checkbox-container:hover .checkmark{border-color:var(--accent)}.checkbox-container input:checked~.checkmark{background-color:var(--accent);border-color:var(--accent)}.checkmark:after{content:"";position:absolute;display:none;left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-container input:checked~.checkmark:after{display:block}.select-all-container{padding-left:24px}.transaction-checkbox{flex-shrink:0;margin-right:4px}.categories-page{background:var(--bg-page);color:var(--text);min-height:100vh}.categories-page .container{max-width:700px;margin:0 auto;padding:var(--space-xl) var(--space-md)}.categories-header{margin-bottom:var(--space-xl)}.categories-header h1{font-size:var(--text-2xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);color:var(--text);margin-bottom:var(--space-xs)}.categories-subtitle{color:var(--text-tertiary);font-size:var(--text-sm);margin:0}.back-link{display:inline-flex;align-items:center;gap:var(--space-xs);text-decoration:none;color:var(--accent);font-weight:var(--font-medium);margin-bottom:var(--space-md);font-size:var(--text-sm);transition:all var(--transition-fast)}.back-link:hover{color:var(--accent-hover);gap:var(--space-sm)}.category-section{margin-bottom:var(--space-2xl)}.category-section-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--border)}.category-section-header h2{font-size:var(--text-lg);font-weight:var(--font-semibold);letter-spacing:var(--tracking-tight);color:var(--text);margin:0}.category-section-header.income{border-bottom-color:var(--success)}.category-section-header.expense{border-bottom-color:var(--danger)}.btn-add{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);margin:var(--space-sm) 0 var(--space-lg);background:var(--success);color:var(--text-inverse);border:none;border-radius:var(--radius-xl);padding:var(--space-sm) var(--space-lg);min-height:44px;font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.btn-add.expense{background:var(--danger)}.btn-add:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-add:active{transform:translateY(0)}.category-list{display:flex;flex-direction:column;gap:var(--space-sm)}.category-item{display:flex;align-items:center;justify-content:space-between;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);box-shadow:var(--glass-shadow);transition:all var(--transition-fast)}.category-item:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--border-hover)}.category-main{display:flex;align-items:center;gap:var(--space-md);min-width:0}.category-icon{font-size:1.5em;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-sm);flex-shrink:0}.category-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px var(--bg),0 0 0 3px currentColor}.category-name{font-weight:var(--font-medium);font-size:var(--text-base);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.category-actions button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-tertiary);transition:all var(--transition-fast)}.category-actions button[data-edit]:hover{background:var(--accent-light);color:var(--accent)}.category-actions button[data-delete]:hover{background:#ef444414;color:var(--danger)}.form-add-category{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);padding:var(--space-lg);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);margin-top:var(--space-sm);display:none;box-shadow:var(--glass-shadow);animation:slideUp .25s var(--ease-spring)}.form-add-category.visible{display:block}.category-form{margin:0}.category-form-row{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.category-form-row label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.category-form-row input,.category-form-row select{height:44px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--border);font-size:var(--text-base);background:var(--bg);color:var(--text);transition:all var(--transition-fast)}.category-form-row input:focus,.category-form-row select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.color-picker-input{width:44px!important;height:44px!important;padding:4px!important;cursor:pointer;border-radius:var(--radius-sm)!important}.category-form-actions{display:flex;gap:var(--space-sm);justify-content:flex-end;margin-top:var(--space-lg)}.empty-state-text{color:var(--text-tertiary);font-size:var(--text-sm);padding:var(--space-xl) 0;text-align:center}.loading-spinner-sm{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:600px){.categories-page .container{padding:var(--space-lg) var(--space-md)}.category-form-row{flex-direction:column;align-items:stretch}.category-item{padding:var(--space-sm) var(--space-md)}.category-form-actions{flex-direction:column-reverse}.category-form-actions button{width:100%;justify-content:center}}.transaction-checkbox .checkmark{position:relative;top:0;transform:none}.transaction-item.excluded{opacity:.5;background:repeating-linear-gradient(45deg,var(--bg-secondary),var(--bg-secondary) 10px,var(--bg-tertiary) 10px,var(--bg-tertiary) 20px)}.transaction-item.excluded .transaction-description{text-decoration:line-through}.excluded-badge{display:inline-block;font-size:10px;padding:2px 6px;background:var(--warning-bg, rgba(217, 115, 13, .08));color:var(--warning, #d9730d);border-radius:4px;margin-left:8px;font-weight:600;text-transform:uppercase}.transaction-item.selected{background:var(--accent-light, rgba(0, 119, 255, .08));border-color:var(--accent, #0077ff)}@media(max-width:600px){.selection-toolbar{flex-direction:column;gap:12px;padding:12px}.selection-info,.selection-actions{width:100%;justify-content:flex-start}.btn-action{padding:8px 10px;font-size:var(--text-sm)}.batch-category-wrapper{width:100%;flex-wrap:wrap}.batch-category-select{max-width:100%;width:100%}.transaction-item{flex-wrap:wrap;gap:12px}.transaction-checkbox{order:0;margin-right:8px}.transaction-info{flex:1 1 calc(100% - 40px);order:1}.transaction-amount-wrapper{order:2;text-align:left}.delete-btn{order:3;margin-left:auto}}input[type=date]{appearance:none;-webkit-appearance:none;background:var(--bg, #ffffff);cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;transition:opacity .15s}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.toast-container{position:fixed;top:20px;right:20px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;max-width:400px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-sm);color:var(--text);max-width:400px;position:relative;overflow:hidden;border-left:3px solid var(--text-secondary);opacity:0;transform:translate(120%) scale(.9);transition:all .4s var(--ease-spring);pointer-events:auto;cursor:pointer}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-info{border-left-color:var(--primary)}.toast-visible{opacity:1;transform:translate(0) scale(1)}.toast-hiding{opacity:0;transform:translate(120%) scale(.9);transition-duration:.25s}.toast-stacked-1{opacity:.85}.toast-stacked-2{opacity:.65}.toast-stacked-deep{opacity:.45}.toast-stacked-1.toast-visible,.toast-stacked-2.toast-visible,.toast-stacked-deep.toast-visible{transform:translate(0) scale(1)}.toast-progress{position:absolute;bottom:0;left:0;height:3px;border-radius:0 0 var(--radius-md) var(--radius-md);opacity:.3;animation:toastProgress linear forwards}.toast-success .toast-progress{background:var(--success)}.toast-error .toast-progress{background:var(--danger)}.toast-warning .toast-progress{background:var(--warning)}.toast-info .toast-progress{background:var(--primary)}@keyframes toastProgress{0%{width:100%}to{width:0%}}.toast-icon{flex-shrink:0;display:flex;align-items:center}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-warning .toast-icon{color:var(--warning)}.toast-info .toast-icon{color:var(--primary)}.toast-message{flex:1;line-height:1.4}.toast-action{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-size:var(--text-xs);color:var(--primary);cursor:pointer;font-weight:500;white-space:nowrap;transition:all var(--transition-fast)}.toast-action:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.toast-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:18px;padding:0 0 0 4px;line-height:1}.toast-close:hover{color:var(--text)}@media(max-width:480px){.toast-container{inset:auto 12px 80px;max-width:none}.toast{max-width:none;font-size:13px;padding:10px 14px}.toast-visible{transform:translateY(0) scale(1)}.toast-hiding{transform:translateY(40px) scale(.9)}}.transaction-date-group{content-visibility:auto;contain-intrinsic-size:auto 120px}.scope-toggle-group{margin-top:4px}.scope-toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary)}.scope-checkbox{-webkit-appearance:none;appearance:none;width:36px;min-width:36px;max-width:36px;height:20px;min-height:auto;background:var(--bg-tertiary);border-radius:10px;position:relative;cursor:pointer;transition:background var(--transition-fast);flex-shrink:0;border:1px solid var(--border)}.scope-checkbox:before{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--bg);border-radius:50%;transition:transform var(--transition-fast);box-shadow:var(--shadow-xs)}.scope-checkbox:checked{background:var(--accent);border-color:var(--accent)}.scope-checkbox:checked:before{transform:translate(16px)}.scope-badge-shared{font-size:var(--text-xs);margin-left:4px;opacity:.8}.cat-search-wrapper{position:relative}.cat-search-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;background:var(--bg);color:var(--text);box-sizing:border-box}.cat-search-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown)}.cat-search-option{padding:8px 12px;font-size:var(--text-sm);cursor:pointer;transition:background .1s}.cat-search-option:hover{background:var(--bg-hover)}.cat-search-empty{padding:12px;font-size:var(--text-sm);color:var(--text-secondary);text-align:center}.form-actions-row{display:flex;gap:8px;align-items:center}.form-actions-row .btn-primary{flex:1}.btn-template-save{padding:8px 12px!important;font-size:16px!important;min-width:40px}.template-select{padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text);font-size:var(--text-sm);max-width:160px;cursor:pointer}.input-error{border-color:var(--danger)!important;box-shadow:0 0 0 2px #e03e3e26}.inline-error{color:var(--danger);font-size:var(--text-sm);margin-top:4px;display:flex;align-items:center;gap:4px}.inline-error:before{content:"⚠";font-size:var(--text-xs)}.toast-action-btn-legacy-unused{display:none}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.modal-close{background:none;border:none;font-size:28px;color:var(--text-tertiary);cursor:pointer;padding:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .15s}.modal-close:hover{background:var(--bg-hover);color:var(--text)}.modal-body{flex:1;overflow-y:auto;padding:0 24px 24px}.modal-close-btn{background:none;border:none;font-size:28px;color:var(--text-tertiary);cursor:pointer;padding:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0}.modal-close-btn:hover{background:var(--bg-hover);color:var(--text)}.upload-zone:hover{border-color:var(--primary);background:var(--bg-secondary)}.extracted-transaction{transition:background var(--transition-normal)}.extracted-transaction:hover{background:var(--bg-secondary)}.tx-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--primary);min-width:44px;min-height:44px}@media(max-width:768px){.modal-content{max-width:95vw;padding:20px}.extracted-transaction>div>div{grid-template-columns:1fr!important}}@media(max-width:600px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast{max-width:none}}.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.btn-success-flash{background:var(--success)!important;color:var(--text-inverse)!important;transform:scale(1.05);transition:all .3s ease}.btn-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--text-inverse);border-radius:50%;animation:spin .8s linear infinite;margin-right:8px;vertical-align:middle}.loading-overlay{position:absolute;inset:0;background:#fffc;backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);z-index:10}[data-theme=dark] .loading-overlay{background:#121218cc}@media(prefers-color-scheme:dark){.loading-overlay{background:#121218cc}}.loading-overlay .loading-spinner{width:32px;height:32px;border-width:4px}.empty-state{text-align:center;padding:32px 24px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px dashed var(--border)}.empty-state-svg{width:120px;height:80px;margin:0 auto 12px;display:block;opacity:.8}@keyframes emptyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.widget-error{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--text-secondary);font-size:var(--text-sm);background:var(--bg-secondary);border-radius:var(--radius);border:1px dashed var(--border)}.widget-error-icon{color:var(--warning);flex-shrink:0}.widget-error-text{color:var(--text-secondary)}.widget-retry-btn{margin-left:4px;cursor:pointer}#resetFiltersBtn{background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);padding:10px 16px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:var(--shadow-xs)}#resetFiltersBtn:hover{background:var(--danger-bg);border-color:var(--danger);color:var(--danger);transform:translateY(-1px);box-shadow:var(--shadow-sm)}#resetFiltersBtn:active{transform:translateY(0)}.transaction-filters{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow-xs);position:relative}.transaction-filters:before{content:"🔍";position:absolute;top:-12px;left:20px;background:var(--bg);padding:4px 8px;font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-sm)}.filter-group{position:relative}.filter-group select:hover,.filter-group input[type=date]:hover,.filter-group input[type=week]:hover,.filter-group input[type=text]:hover{background:var(--bg-secondary);border-color:var(--border-hover)}.filter-search-group{flex:1;min-width:200px;max-width:400px}.filter-search-group input[type=text]{padding:8px 12px 8px 36px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:14px;transition:all var(--transition-fast);position:relative}.filter-search-group input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);background:var(--bg)}.filter-search-group{position:relative}.filter-search-group:before{content:"🔍";position:absolute;left:12px;bottom:8px;font-size:16px;color:var(--text-tertiary);pointer-events:none;z-index:1}.filter-search-group input[type=text]::placeholder{color:var(--text-tertiary);opacity:.7}.chart-box{position:relative;transition:all var(--transition-normal);box-shadow:var(--shadow-xs)}.chart-box:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px);border-color:var(--border-hover);border-bottom:2px solid var(--primary);margin-bottom:-1px}.chart-clickable:after{content:"👆 Cliquez sur une catégorie pour filtrer";position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:var(--text-xs);color:var(--text-tertiary);opacity:0;transition:opacity var(--transition-normal);pointer-events:none;background:var(--bg);padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);white-space:nowrap;z-index:10}.chart-clickable:hover:after{opacity:1}.chart-clickable canvas{cursor:pointer;transition:opacity var(--transition-fast)}.chart-clickable:hover canvas{opacity:.95}.stat-card{position:relative;overflow:hidden;box-shadow:var(--shadow-xs)}.stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--accent);opacity:0;transition:opacity var(--transition-fast)}.stat-card:hover:before{opacity:1}.stat-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-3px)}.stat-value{background:linear-gradient(135deg,var(--text) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}#budgetHistory{margin-top:32px;padding:24px;background:var(--bg);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-xs)}#budgetHistory h3{font-size:18px;font-weight:700;color:var(--text);margin-bottom:20px;display:flex;align-items:center;gap:8px}#budgetHistoryTable{overflow-x:auto}#budgetHistoryTable table{width:100%;border-collapse:collapse}#budgetHistoryTable thead{background:var(--bg-secondary)}#budgetHistoryTable th{text-align:left;padding:12px 16px;font-weight:600;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:2px solid var(--border)}#budgetHistoryTable td{padding:14px 16px;border-bottom:1px solid var(--border);transition:background var(--transition-fast)}#budgetHistoryTable tbody tr:hover{background:var(--bg-secondary)}#budgetHistoryTable tbody tr:last-child td{border-bottom:none}.stats-period-selector{background:var(--bg);padding:16px 20px;border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-xs)}.stats-period-selector>div:first-child{background:linear-gradient(135deg,var(--accent-light) 0%,rgba(79,110,247,.05) 100%);border:1px solid var(--accent);padding:10px 14px;border-radius:var(--radius-sm);font-weight:500}.month-comparison{background:var(--bg);padding:24px;border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-xs)}.month-comparison h3{font-size:16px;font-weight:700;color:var(--text);margin-bottom:16px;display:flex;align-items:center;gap:8px}.comparison-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.comparison-card{background:var(--bg-secondary);padding:20px;border-radius:var(--radius-md);border:1px solid var(--border);transition:all var(--transition-fast);position:relative;overflow:hidden}.comparison-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--accent) 0%,var(--accent-hover) 100%);opacity:0;transition:opacity var(--transition-fast)}.comparison-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--border-hover)}.comparison-card:hover:before{opacity:1}.comparison-avg-row{grid-column:1 / -1;background:var(--bg-secondary);border:1px dashed var(--border);border-radius:8px;padding:12px 16px;text-align:center}.comparison-avg-title{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.comparison-avg-items{display:flex;justify-content:center;gap:24px}.comparison-avg-item{font-size:14px;color:var(--text)}.btn-nav{position:relative;overflow:hidden}.btn-nav:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-nav:active:before{width:300px;height:300px}.transaction-category[data-action=edit-transaction]{position:relative;transition:all var(--transition-fast)}.transaction-category[data-action=edit-transaction]:hover{color:var(--accent-hover)!important;text-decoration:underline;transform:translate(2px)}.transaction-category[data-action=edit-transaction]:after{content:"✏️";opacity:0;margin-left:4px;transition:opacity var(--transition-fast);font-size:var(--text-sm)}.transaction-category[data-action=edit-transaction]:hover:after{opacity:1}#addCategoryInBudgetBtn{background:linear-gradient(135deg,var(--success) 0%,#0d9d8a 100%);color:var(--text-inverse);border:none;box-shadow:var(--shadow-sm);font-weight:600;transition:all var(--transition-fast)}#addCategoryInBudgetBtn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#0d9d8a 0%,var(--success) 100%)}#addCategoryInBudgetBtn:active{transform:translateY(0)}#addCategoryForm{animation:slideDownIn .3s ease;box-shadow:var(--shadow-sm)}@keyframes slideDownIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}#addCategoryForm input,#addCategoryForm select{transition:all var(--transition-fast)}#addCategoryForm input:focus,#addCategoryForm select:focus{border-color:var(--success);box-shadow:0 0 0 3px #0f7b6c1a}.expense-habits-section{background:linear-gradient(135deg,var(--bg) 0%,rgba(0,119,255,.02) 100%);border:2px solid var(--border);border-radius:var(--radius-md);padding:24px;box-shadow:0 8px 24px #00000014,0 0 0 1px #0077ff0d;margin-bottom:24px;position:relative;overflow:hidden}.expense-habits-section:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-dark),var(--accent));opacity:.6}.expense-habits-section h3{color:var(--text);margin:0;display:flex;align-items:center;gap:8px}.insights-scrollable-container{max-height:400px;overflow-y:auto;overflow-x:hidden;padding-right:8px;margin-top:16px;position:relative}.insights-scrollable-container::-webkit-scrollbar{width:8px}.insights-scrollable-container::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}.insights-scrollable-container::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px;transition:background var(--transition-normal)}.insights-scrollable-container::-webkit-scrollbar-thumb:hover{background:var(--accent-dark)}.insights-scrollable-container{scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg-secondary)}.insights-container{display:flex;flex-direction:column;gap:10px}.insight-card{transition:all var(--transition-slow);animation:slideIn .4s cubic-bezier(.16,1,.3,1);flex-shrink:0;position:relative;overflow:hidden;backdrop-filter:blur(10px)}.insight-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:inherit;opacity:.8;transition:width .3s}.insight-card:hover{transform:translate(6px) translateY(-2px);box-shadow:0 8px 24px #0000001f,0 0 0 1px #0077ff1a}.insight-card:hover:before{width:6px}.patterns-container,.recommendations-container,.predictions-container{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.pattern-card,.recommendation-card{transition:all var(--transition-slow);position:relative;overflow:hidden}.pattern-card:before,.recommendation-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s}.pattern-card:hover,.recommendation-card:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 8px 20px #0000001f}.pattern-card:hover:before,.recommendation-card:hover:before{left:100%}.recommendation-card{background:linear-gradient(135deg,var(--accent-light) 0%,rgba(0,119,255,.08) 100%)!important;border:2px solid var(--accent)!important;box-shadow:0 4px 12px #0077ff26!important}@keyframes slideIn{0%{opacity:0;transform:translateY(-15px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.insight-card,.pattern-card,.recommendation-card{animation:cardFadeIn .5s cubic-bezier(.16,1,.3,1) backwards}.insight-card:nth-child(1){animation-delay:.1s}.insight-card:nth-child(2){animation-delay:.2s}.insight-card:nth-child(3){animation-delay:.3s}.insight-card:nth-child(4){animation-delay:.4s}.insight-card:nth-child(5){animation-delay:.5s}#refreshInsightsBtn{font-size:var(--text-sm);padding:8px 16px;transition:all var(--transition-slow);flex-shrink:0;background:linear-gradient(135deg,var(--accent-light),rgba(0,119,255,.1));border:1px solid var(--accent);border-radius:var(--radius-sm);font-weight:500;position:relative;overflow:hidden}#refreshInsightsBtn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:var(--accent);transform:translate(-50%,-50%);transition:width .6s,height .6s;z-index:0}#refreshInsightsBtn:hover:not(:disabled){background:var(--accent);color:var(--text-inverse);transform:scale(1.05) translateY(-1px);box-shadow:0 4px 12px #0077ff4d;border-color:var(--accent-dark)}#refreshInsightsBtn:hover:not(:disabled):before{width:300px;height:300px}#refreshInsightsBtn:active:not(:disabled){transform:scale(1.02)}#refreshInsightsBtn:disabled{opacity:.5;cursor:not-allowed;transform:none}#refreshInsightsBtn span{position:relative;z-index:1}.scroll-indicator{text-align:center;padding:8px;margin-top:8px;opacity:.7;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}.insights-scrollable-container:not(.can-scroll)~.scroll-indicator{display:none!important}.chat-messages{scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg-secondary);background:linear-gradient(180deg,var(--bg-secondary) 0%,rgba(255,255,255,.02) 100%)}.chat-messages::-webkit-scrollbar{width:10px}.chat-messages::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:8px;margin:8px 0}.chat-messages::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent) 0%,var(--accent-dark) 100%);border-radius:8px;border:2px solid var(--bg-secondary);transition:all .2s}.chat-messages::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--accent-dark) 0%,var(--accent) 100%);border:2px solid var(--accent-light)}.chat-message{word-wrap:break-word;animation:messageSlideIn .4s cubic-bezier(.16,1,.3,1);position:relative;backdrop-filter:blur(10px)}.chat-message.user-message{box-shadow:0 4px 12px #0077ff26;border:none!important}.chat-message.ai-message{box-shadow:0 4px 12px #00000014}.chat-message:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,#ffffff1a,#fff0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:xor;pointer-events:none}.chat-message ul{list-style-type:disc;margin:10px 0;padding-left:24px;line-height:1.8}.chat-message li{margin:6px 0;position:relative}.chat-message li::marker{color:var(--accent)}.chat-message strong{color:var(--accent);font-weight:700;background:linear-gradient(135deg,var(--accent-light),rgba(0,119,255,.1));padding:2px 6px;border-radius:4px;display:inline-block}.chat-message em{font-style:italic;color:var(--accent);font-weight:500}.quick-question-btn{transition:all var(--transition-slow);position:relative;overflow:hidden;color:var(--text)}.quick-question-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:var(--accent-light);transform:translate(-50%,-50%);transition:width .6s,height .6s}.quick-question-btn:hover{background:var(--accent-light)!important;border-color:var(--accent)!important;transform:translateY(-2px);box-shadow:0 4px 12px #07f3}.quick-question-btn:hover:before{width:300px;height:300px}.quick-question-btn:active{transform:translateY(0) scale(.98)}#chatInput{transition:all var(--transition-slow);border:2px solid var(--border);background:var(--bg);box-shadow:0 2px 8px #0000000d}#chatInput:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #0077ff1a,0 4px 16px #0077ff26;transform:translateY(-1px)}#chatInput::placeholder{color:var(--text-secondary);opacity:.6}.loading-message{opacity:.8;position:relative}.loading-message:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{left:-100%}to{left:100%}}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}#aiChatModal .modal-content{box-shadow:0 20px 60px #0000004d;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(20px)}#aiChatModal .modal-header{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:var(--text-inverse);padding:20px 24px;border-radius:var(--radius-md) var(--radius-md) 0 0;box-shadow:0 4px 12px #07f3}#aiChatModal .modal-header h2{color:var(--text-inverse);margin:0;font-weight:600;display:flex;align-items:center;gap:12px}#aiChatModal .modal-close{color:var(--text-inverse);font-size:28px;opacity:.9;transition:all .2s}#aiChatModal .modal-close:hover{opacity:1;transform:rotate(90deg) scale(1.1)}#sendChatMessage{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:var(--text-inverse);border:none;box-shadow:0 4px 12px #0077ff4d;transition:all .3s;font-weight:600}#sendChatMessage:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #07f6}#aiChatModal .chat-message{word-wrap:break-word;overflow-wrap:break-word;hyphens:auto;min-width:0;box-sizing:border-box}#aiChatModal .chat-message>div{word-wrap:break-word;overflow-wrap:break-word;max-width:100%}#aiChatModal .chat-messages{word-wrap:break-word;overflow-wrap:break-word}#aiChatModal .chat-message h1,#aiChatModal .chat-message h2,#aiChatModal .chat-message h3{margin:12px 0 8px;font-weight:600;line-height:1.4;word-wrap:break-word;overflow-wrap:break-word}#aiChatModal .chat-message ul{margin:8px 0;padding-left:20px;word-wrap:break-word;overflow-wrap:break-word}#aiChatModal .chat-message li{margin:4px 0;word-wrap:break-word;overflow-wrap:break-word}#aiChatModal .chat-message strong{font-weight:600;word-wrap:break-word;overflow-wrap:break-word}#aiChatModal .chat-message em{font-style:italic;word-wrap:break-word;overflow-wrap:break-word}#sendChatMessage:active:not(:disabled){transform:translateY(0)}#sendChatMessage:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.transaction-filters{flex-direction:column}.transaction-filters:before{display:none}#resetFiltersBtn{width:100%;justify-content:center}.chart-box:after{display:none}.comparison-cards{grid-template-columns:1fr}#budgetHistoryTable{font-size:var(--text-sm)}#budgetHistoryTable th,#budgetHistoryTable td{padding:8px 12px}}.insights-feed-container{display:flex;flex-direction:column;gap:8px}.insight-card{display:flex;align-items:flex-start;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-md);background:var(--insight-bg);border:1px solid var(--insight-border);border-left:2.5px solid var(--insight-accent, var(--accent));border-radius:var(--radius);transition:all var(--transition-fast);animation:insightSlideIn .4s var(--enter-ease) var(--insight-delay, 0ms) both;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:var(--shadow-xs)}.insight-card:hover{transform:translate(4px);box-shadow:var(--shadow-sm);border-left-width:3px;background:var(--accent-subtle, rgba(79, 110, 247, .04))}.insight-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--insight-bg);color:var(--insight-accent);flex-shrink:0;border:1px solid var(--insight-border);box-shadow:0 1px 3px #0000000a}.insight-content{flex:1;min-width:0}.insight-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:2px}.insight-message{font-size:12px;color:var(--text-secondary);line-height:1.4}.insights-empty{text-align:center;padding:20px;color:var(--text-tertiary)}.insights-empty-icon{margin-bottom:8px;color:var(--success);opacity:.6}.insights-empty p{font-size:13px;font-weight:500}@keyframes insightSlideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.budget-envelopes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-1-5);margin-bottom:var(--space-md)}.budget-envelope{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:18px 20px;transition:all .25s var(--ease-out-expo);position:relative;overflow:hidden;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-xs)}.budget-envelope:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.budget-envelope-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.budget-envelope-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.budget-envelope-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.budget-envelope-amounts{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-sm)}.budget-envelope-spent{font-size:var(--text-xl);font-weight:var(--font-extrabold);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums}.budget-envelope-limit{font-size:var(--text-sm);color:var(--text-tertiary);font-weight:var(--font-medium);font-variant-numeric:tabular-nums}.budget-envelope-bar{height:7px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;margin-bottom:var(--space-xs)}.budget-envelope-fill{height:100%;border-radius:3px;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.budget-envelope-remaining{font-size:var(--text-xs);font-weight:var(--font-semibold);display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:100px;background:var(--bg-tertiary);font-variant-numeric:tabular-nums}.budget-envelope .rollover-badge{font-size:10px;margin-left:4px}.budget-envelope.state-ok .budget-envelope-spent{color:var(--success)}.budget-envelope.state-ok .budget-envelope-fill{background:linear-gradient(90deg,#10b981,#34d399);box-shadow:0 0 8px #10b9814d}.budget-envelope.state-ok .budget-envelope-remaining{color:var(--success);background:var(--success-bg)}.budget-envelope.state-warn .budget-envelope-spent{color:var(--warning)}.budget-envelope.state-warn .budget-envelope-fill{background:linear-gradient(90deg,#f59e0b,#fbbf24);box-shadow:0 0 8px #f59e0b4d}.budget-envelope.state-warn .budget-envelope-remaining{color:var(--warning);background:var(--warning-bg)}.budget-envelope.state-danger .budget-envelope-spent{color:var(--danger)}.budget-envelope.state-danger .budget-envelope-fill{background:linear-gradient(90deg,#ef4444,#f97316);box-shadow:0 0 8px #ef44444d}.budget-envelope.state-danger .budget-envelope-remaining{color:var(--danger);background:var(--danger-bg)}.budget-envelope.state-danger{border-color:#ef444433;background:#ef444408}.budget-envelope-total{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-md);transition:all var(--transition-fast)}.budget-envelope-total:hover{box-shadow:var(--shadow-xs);border-color:var(--border-hover)}.budget-envelope-total-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wider);white-space:nowrap}.budget-envelope-total-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.budget-envelope-total-fill{height:100%;border-radius:4px;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.budget-envelope-total-pct{font-size:var(--text-base);font-weight:var(--font-bold);white-space:nowrap;font-variant-numeric:tabular-nums}[data-theme=dark] .budget-envelope:hover{box-shadow:0 4px 12px #0000004d}[data-theme=dark] .budget-envelope.state-danger{border-color:#ef44444d;background:#ef44440f}[data-theme=dark] .budget-envelope-total{background:var(--bg-secondary);border-color:var(--border)}@media(max-width:480px){body{font-size:14px}.container{padding:12px}header{padding:12px 14px;margin-bottom:10px;border-radius:14px}header h1{font-size:18px}.section-header-row{gap:8px;margin-bottom:10px}.balance-card{border-radius:12px}.balance-card-content{padding:18px 16px 14px}.balance-card-subtitle{font-size:10px}.nav-buttons{width:100%;justify-content:center;flex-wrap:wrap;gap:8px}.btn-nav{padding:10px 14px;font-size:var(--text-sm);min-height:44px}#llmProviderSelector{width:100%;justify-content:center}#llmProviderSelector .provider-options{position:fixed;bottom:0;left:0;right:0;border-radius:16px 16px 0 0;max-height:60vh;overflow-y:auto}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:12px}.stat-card .value{font-size:20px}.stat-card .label{font-size:var(--text-xs)}#transactionForm{grid-template-columns:1fr;gap:12px}#transactionForm input,#transactionForm select,#transactionForm button{min-height:48px;font-size:16px}.transaction-item{flex-wrap:nowrap;padding:10px 8px;gap:6px}.transaction-item .checkbox-container{padding-left:26px;min-height:44px}.transaction-item .checkmark{width:20px;height:20px}.transaction-item .tx-info{flex:1;min-width:0;overflow:hidden}.transaction-item .tx-meta{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.transaction-item .tx-meta>span{white-space:nowrap}.transaction-item .tx-amount{flex-shrink:0;font-size:13px;padding:3px 10px}.transaction-item .transaction-original{display:none}.transaction-item .tx-actions-wrapper{flex-shrink:0}.chart-container{height:250px}.chart-box{padding:12px;min-height:auto}.chart-box canvas{max-height:280px}.chart-box h3{font-size:13px;margin-bottom:12px}.charts-filter-menu{padding:10px 12px}.charts-filter-menu .flex-center{flex-direction:column;align-items:stretch;gap:10px}.charts-label{font-size:13px;text-align:left}.chart-tabs-container{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0}.chart-tabs-container::-webkit-scrollbar{display:none}.chart-tab-btn{padding:7px 10px;font-size:12px;flex:0 0 auto}.stats-period-controls{width:100%;gap:6px}.stats-period-controls .select-compact{flex:1;min-width:0}.custom-range-inputs{width:100%}.date-input-compact{flex:1;min-width:0}.chart-view-mode-toggle{align-self:flex-start}.charts-container{min-height:auto}.charts-container.show-all{grid-template-columns:1fr}.budget-charts-tabs-container{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.budget-charts-tabs-container::-webkit-scrollbar{display:none}.budget-chart-tab-btn{padding:7px 10px;font-size:12px;flex:0 0 auto}.header-actions-group{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;padding-bottom:4px}.header-actions-group::-webkit-scrollbar{display:none}.header-actions-group .btn-nav{flex-shrink:0;font-size:12px;padding:8px 10px;white-space:nowrap}.stats-filter-hint{display:none}.stats-cards{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;overflow:hidden}.stat-card{padding:12px 10px;min-width:0;overflow:hidden}.stat-label{font-size:10px;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:26px;letter-spacing:.03em}.stat-value{font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comparison-cards-grid,.comparison-cards{grid-template-columns:1fr 1fr;gap:8px;overflow:hidden}.comparison-cards-grid>*,.comparison-cards>*{min-width:0;overflow:hidden}.modal-content{width:95%;max-height:calc(90vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));margin:16px;border-radius:16px}.modal-content h2{font-size:18px}.ticket-upload-zone{padding:24px 16px}.ticket-upload-zone h3{font-size:16px}.ticket-card{padding:12px}.ticket-card-header{flex-direction:column;align-items:flex-start;gap:8px}.analysis-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.analysis-tabs::-webkit-scrollbar{display:none}.analysis-tab{white-space:nowrap;padding:10px 12px;font-size:var(--text-sm)}.analysis-summary{grid-template-columns:1fr 1fr;gap:8px}.summary-card{padding:14px}.summary-card{padding:14px 12px}.summary-card h3{font-size:9px;margin-bottom:4px;letter-spacing:.08em}.summary-card .amount{font-size:19px}.summary-trend{margin-top:4px}.trend-chip{font-size:10px;padding:1px 6px}.summary{grid-template-columns:repeat(2,1fr)!important;gap:8px;margin-bottom:10px}.balance-amount{font-size:28px}.dashboard-grid{gap:10px}section{padding:16px;margin-bottom:0;border-radius:14px;overflow-x:hidden;max-width:100%}section h2 .icon{font-size:16px}section *{min-width:0}.transaction-filters{gap:8px}.transaction-filters select{flex:1;min-width:0}.btn-group{display:grid!important;grid-template-columns:1fr 1fr;gap:6px;width:100%}.btn-group .btn-nav{width:100%;justify-content:center;text-align:center}.quick-actions-bar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quick-action-btn{padding:12px 6px}.quick-action-icon{width:36px;height:36px}.projection-cards{grid-template-columns:1fr 1fr;gap:8px}.projection-card{padding:14px;min-width:0}.projection-label{font-size:10px}.projection-value{font-size:20px}.budget-envelopes-grid{grid-template-columns:1fr}.budget-item{padding:12px}.budget-name{font-size:13px}.budget-amount{font-size:12px}#budgetHistory h3{font-size:14px;line-height:1.4}#budgetHistory .chart-box{margin-bottom:12px}.chart-box canvas{max-height:220px}.rules-add-form{flex-direction:column!important}.rules-add-form .rules-input{width:100%}.transaction-form form{gap:6px}.form-row{flex-direction:column;gap:0;margin-bottom:0}.form-row .flex-2,.form-row .flex-1{flex:none;width:100%}.form-floating{margin-bottom:4px}.form-floating input,.form-floating select,.form-floating textarea{padding:22px 12px 6px;min-height:48px}.form-floating label{font-size:10px}.form-group:not(.form-floating){gap:4px;margin-bottom:6px}.form-group:not(.form-floating) label{font-size:12px}.form-actions-row{gap:8px;margin-top:4px}.form-actions-row .btn-primary{flex:1;padding:12px 16px}.scope-toggle-group{margin-bottom:4px}.scope-toggle-text{font-size:13px}.subsection-title,.subsection-title-lg,.subsection-title-flex,section h3,.chart-subtitle{font-size:13px;overflow-wrap:break-word;word-break:break-word}table{display:table;width:max-content;min-width:100%;font-size:11px;border-collapse:collapse}table th,table td{white-space:nowrap;padding:8px 6px}#budgetHistoryTable{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -14px;padding:0 14px}#budgetHistoryTable::-webkit-scrollbar{display:none}#budgetHistoryTable table{min-width:440px}#budgetHistoryTable th{font-size:10px;font-weight:700;letter-spacing:.03em;color:var(--text-tertiary);padding:6px;border-bottom:2px solid var(--border)}#budgetHistoryTable td{padding:10px 6px;font-size:12px;border-bottom:1px solid var(--border)}.member-stats-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap}.member-stats-tabs::-webkit-scrollbar{display:none}.member-stats-tabs .tab-btn{flex-shrink:0;white-space:nowrap;font-size:12px}.member-summary-grid{grid-template-columns:1fr 1fr;gap:8px}.insights-scrollable-container{max-height:300px}.statistics .chart-controls,.statistics .charts-toggle{gap:8px}.statistics label{font-size:13px}.transaction-form .btn-group,.import-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:6px}.import-actions .btn-nav,.transaction-form .btn-group .btn-nav{font-size:11px;padding:8px 6px;text-align:center;justify-content:center;width:100%}.template-select{font-size:12px;max-width:140px}.exchange-rate-info{font-size:11px;padding:8px 10px;gap:6px}.expense-habits-section h3{font-size:14px}.expense-habits-section .flex-between{flex-direction:column;align-items:flex-start;gap:8px}.section-desc{font-size:13px}.month-comparison h3,.savings-advice-section h3{font-size:14px}.cat-icon{width:34px;height:34px;font-size:14px}.tx-desc{font-size:13px}.tx-meta{font-size:11px}.insight-card{padding:12px 14px}.insight-icon{width:30px;height:30px}.insight-card .insight-text{font-size:13px;line-height:1.5}.budget-preview{padding:8px 12px;margin-bottom:6px}.empty-state{padding:24px 16px}.empty-state-svg{width:80px;height:54px}.empty-state-icon{width:40px;height:40px}.empty-state h3{font-size:15px}.empty-state p{font-size:13px}section[data-section-id]{contain-intrinsic-size:auto 150px}section h2{font-size:15px;padding:0 0 6px;gap:6px}.section-header-row{flex-direction:column;align-items:stretch;padding-bottom:6px;gap:6px}.section-header-row h2{border-bottom:none;padding-bottom:0}.card,.section-card{padding:14px;border-radius:12px}.dashboard-grid{padding-bottom:80px}.savings-modal{width:100%!important;max-height:100vh!important;border-radius:0!important;margin:0}.page-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;padding:0 8px}.page-tabs::-webkit-scrollbar{display:none}.page-tab{white-space:nowrap;font-size:13px;padding:8px 14px}}@media(min-width:481px)and (max-width:768px){.container{padding:16px}header{padding:16px 20px}.summary{grid-template-columns:repeat(2,1fr)!important}.stats-grid{grid-template-columns:repeat(3,1fr)}#transactionForm{grid-template-columns:1fr 1fr}.modal-content{width:90%;max-width:600px}.analysis-summary{grid-template-columns:repeat(4,1fr)}}@media(hover:none)and (pointer:coarse){button,.btn-nav,select{min-height:44px;min-width:44px}.tx-actions-toggle{min-width:36px;min-height:36px;padding:4px 6px}.btn-nav:hover,.ticket-card:hover{transform:none}.transaction-item:hover{box-shadow:none;border-left:1px solid var(--border);padding-left:var(--space-md)}.btn-nav:active{transform:scale(.98);opacity:.9}.transaction-item:active,.ticket-card:active{background:var(--bg-hover)}.transactions-list,.tickets-list,.chat-messages{-webkit-overflow-scrolling:touch}button,.btn-nav,.tab,.analysis-tab{-webkit-user-select:none;user-select:none}}@supports (padding: env(safe-area-inset-top)){header{padding-top:max(16px,env(safe-area-inset-top));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.container{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(16px,env(safe-area-inset-bottom))}.modal-content{margin-bottom:max(16px,env(safe-area-inset-bottom))}#llmProviderSelector .provider-options{padding-bottom:max(16px,env(safe-area-inset-bottom))}}@media(max-height:500px)and (orientation:landscape){header{padding:8px 16px}header h1{font-size:18px}.modal-content{max-height:95vh;margin:8px}.chart-container{height:200px}}.section-hidden{opacity:0;transform:translateY(24px)}.section-visible{animation:sectionReveal .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes sectionReveal{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.section-hidden{opacity:1;transform:none}.section-visible{animation:none;opacity:1;transform:none}}.skeleton{position:relative;overflow:hidden;background:var(--bg-tertiary)!important;border-radius:var(--radius-md);color:transparent!important;pointer-events:none;user-select:none;border:none!important}.skeleton *{visibility:hidden}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,var(--bg-hover) 50%,transparent 100%);animation:skeletonShimmer 1.5s ease-in-out infinite}@keyframes skeletonShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton-text{height:14px;background:var(--bg-tertiary);border-radius:4px;margin-bottom:8px}.skeleton-text.short{width:40%}.skeleton-text.medium{width:65%}.skeleton-text.long{width:90%}.skeleton-circle{width:40px;height:40px;border-radius:50%;background:var(--bg-tertiary);flex-shrink:0}.skeleton-card{height:80px;background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:12px}.skeleton-row{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:8px}.skeleton-content{flex:1;display:flex;flex-direction:column;gap:6px}.skeleton-chart{padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);min-height:200px}.skeleton-chart-bars{display:flex;align-items:flex-end;gap:8px;height:160px;padding:0 8px}.skeleton-chart-bar{flex:1;background:var(--bg-tertiary);border-radius:4px 4px 0 0;min-width:20px}.skeleton-modal{background:var(--bg-secondary);border-radius:var(--radius-md)}.text-xs{font-size:var(--text-xs)!important}.text-sm{font-size:var(--text-sm)!important}.text-base{font-size:var(--text-base)!important}.text-md{font-size:var(--text-md)!important}.text-lg{font-size:var(--text-lg)!important}.text-xl{font-size:var(--text-xl)!important}.heading-display{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:var(--text-display);font-weight:var(--font-extrabold);letter-spacing:var(--tracking-tighter);line-height:1.15}.heading-lg{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:var(--text-3xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.heading-md{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:var(--text-xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-snug);line-height:1.3}.heading-sm{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:var(--text-lg);font-weight:var(--font-semibold);letter-spacing:-.01em;line-height:var(--leading-snug)}.text-mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.text-gradient{background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.empty-state{text-align:center;padding:32px 24px}.empty-state-svg{display:block;margin:0 auto 8px;width:100px;height:68px}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;margin-bottom:12px;color:var(--text-tertiary);opacity:.5}.empty-state-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px}.empty-state-subtitle,.empty-state-message{font-size:13px;color:var(--text-tertiary);line-height:1.5;margin-bottom:16px;max-width:300px;margin-left:auto;margin-right:auto}.empty-state-action{margin-top:16px}.empty-state-cta{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.empty-state-cta:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:var(--shadow-colored)}.pos-relative{position:relative}.flex-center{display:flex;align-items:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.self-end{align-self:flex-end}.align-center{align-items:center}.w-fit{width:fit-content}.ml-auto{margin-left:auto}.mx-auto{margin-left:auto;margin-right:auto}.section-desc{color:var(--text-secondary);font-size:14px;margin-bottom:16px;line-height:var(--leading-relaxed);max-width:480px}.chart-subtitle{font-size:14px;font-weight:600;margin-bottom:16px;color:var(--text-secondary)}.chart-subtitle-sm{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--text-secondary)}.subsection-title{margin:0;font-size:16px}.subsection-title-flex{margin:0;font-size:16px;display:flex;align-items:center;gap:8px}.subsection-title-lg{margin:0;font-size:18px}.btn-nav-sm{font-size:12px;padding:6px 12px}.chart-full-span{grid-column:1 / -1}.scroll-hint-text{font-size:11px;color:var(--text-secondary)}.btn-success-filled{background:var(--success);color:#fff}.btn-accent-filled{background:var(--accent);color:#fff}.centered-container{text-align:center;margin-top:20px}.modal-field-input{width:100%;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.modal-field-label{display:block;margin-bottom:4px;font-size:12px;color:var(--text-secondary)}.comparison-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.chart-height-280{height:280px}@media(prefers-color-scheme:dark){:root{--bg: #0f0f17;--bg-secondary: #16161f;--bg-tertiary: #1e1e2d;--card-bg: #16161f;--bg-hover: rgba(255, 255, 255, .06);--bg-page: #0b0b12;--text: #eaeaf0;--text-secondary: #b0b0c8;--text-tertiary: #a0a0b8;--text-light: #50506a;--accent: #6b8aff;--accent-hover: #5a78f0;--accent-dark: #4f6ef7;--primary: #6b8aff;--primary-color: #6b8aff;--balance-gradient-end: #1a1a40;--border: rgba(255, 255, 255, .05);--border-hover: rgba(255, 255, 255, .1);--gradient-primary: linear-gradient(135deg, #6b8aff 0%, #a78bfa 100%);--gradient-hero: linear-gradient(145deg, #0a0a18 0%, #12123a 40%, #3045a8 100%);--gradient-subtle: linear-gradient(135deg, rgba(107, 138, 255, .06) 0%, rgba(167, 139, 250, .03) 100%);--shadow-colored: 0 4px 20px rgba(107, 138, 255, .12);--shadow-glow: 0 0 20px rgba(107, 138, 255, .08);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .03);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .04);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .04);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .4), 0 16px 48px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .04);--gradient-income: linear-gradient(135deg, rgba(16, 185, 129, .12), rgba(52, 211, 153, .06));--gradient-expense: linear-gradient(135deg, rgba(239, 68, 68, .12), rgba(249, 115, 22, .06));--glow-success: 0 0 0 3px rgba(52, 211, 153, .1), 0 8px 25px rgba(16, 185, 129, .15);--glow-danger: 0 0 0 3px rgba(248, 113, 113, .1), 0 8px 25px rgba(239, 68, 68, .15);--glow-accent: 0 0 0 3px rgba(107, 138, 255, .1), 0 8px 25px rgba(107, 138, 255, .15);--gradient-text: linear-gradient(135deg, #6b8aff 0%, #a78bfa 50%, #c4b5fd 100%);--accent-light: rgba(107, 138, 255, .1);--danger-hover: #b91c1c;--glass-bg: rgba(15, 15, 23, .8);--glass-border: rgba(255, 255, 255, .04);--glass-shadow: 0 4px 24px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--accent-subtle: rgba(107, 138, 255, .06);--success-subtle: rgba(52, 211, 153, .06);--danger-subtle: rgba(248, 113, 113, .06)}.stat-card,.chart-box,.modal-content,.ticket-card,.transaction-item{background:var(--bg-secondary);border-color:var(--border)}.modal-content{border:none;box-shadow:0 24px 80px #00000080,0 4px 16px #0000004d,0 0 0 1px #ffffff0f}input,select,textarea{background:#ffffff08;border-color:var(--border);color:var(--text)}section{border:1px solid rgba(255,255,255,.04)}input::placeholder{color:var(--text-tertiary)}.savings-goal-card{background:var(--bg-secondary);border-color:var(--border)}.savings-goal-card.completed{background:#0f7b6c1a}.savings-progress-bar{background:var(--bg-tertiary)}.savings-modal,.savings-modal-overlay{background:var(--bg-secondary)}.savings-modal,.savings-icon-btn{border-color:var(--border)}.savings-icon-btn.active{background:var(--accent-light)}.budget-total-summary{background:var(--bg-secondary);border-color:var(--border)}.budget-total-summary.warning{background:#d9730d1a;border-left-color:var(--warning)}.budget-total-summary.danger{background:#e03e3e1a;border-left-color:var(--danger)}.budget-alert-badge{background:var(--danger)}.tag-input-wrapper{background:var(--bg-tertiary);border-color:var(--border)}.tag-suggestion-dropdown{background:var(--bg-secondary);border-color:var(--border)}.tag-suggestion-item:hover{background:var(--accent-light)}.tag-pill{background:var(--accent)}.tag-pill-sm{background:var(--accent-light);color:var(--accent)}.split-modal{background:var(--bg-secondary);border-color:var(--border)}.split-modal-header,.split-modal-footer{border-color:var(--border)}.split-line input,.split-line select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}.split-badge{background:var(--bg-tertiary);color:var(--text-secondary)}.split-summary.valid{background:#0f7b6c1f;border-color:#0f7b6c4d}.split-summary.invalid{background:#e03e3e1f;border-color:#e03e3e4d}.split-add-line-btn{border-color:var(--border);color:var(--text-secondary)}.quick-fab-form{background:var(--bg-secondary);border-color:var(--border)}.quick-fab-form-body input,.quick-fab-form-body select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}.quick-fab-type-toggle{border-color:var(--border)}.quick-fab-type-btn{background:var(--bg-tertiary);color:var(--text-secondary)}.csv-wizard-modal{background:var(--bg-secondary);border-color:var(--border)}.csv-step-num{background:var(--bg-tertiary);border-color:var(--border);color:var(--text-secondary)}.csv-step-line{background:var(--border)}.csv-upload-zone{background:var(--bg-tertiary);border-color:var(--border)}.csv-wizard-footer{border-color:var(--border)}.csv-wizard-select,.csv-map-select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}.csv-preview-mini th,.csv-preview-table th{background:var(--bg-tertiary)}.csv-preview-mini,.csv-preview-table-wrap{border-color:var(--border)}.csv-preview-table-wrap:after{background:linear-gradient(to top,var(--bg-secondary),transparent)}.csv-dupe-row{background:#d9730d1a!important}.adv-search-modal{background:var(--bg-secondary)}.adv-search-input-wrap{border-color:var(--border)}.adv-search-kbd,.adv-search-filters{background:var(--bg-tertiary);border-color:var(--border)}.adv-filter-row input,.adv-filter-row select{background:var(--bg-secondary);border-color:var(--border);color:var(--text)}.adv-result-item:hover,.adv-result-item:focus{background:#ffffff0a}.report-modal{background:var(--bg-secondary)}.report-card{background:var(--bg-tertiary);border-color:var(--border)}.report-card.income{background:#0f7b6c14;border-color:#0f7b6c33}.report-card.expense{background:#e03e3e14;border-color:#e03e3e33}.report-card.savings{background:var(--accent-subtle);border-color:#6b8aff33}.report-cat-bar-wrap{background:var(--bg-tertiary)}.savings-advice-section{background:var(--bg-secondary);border-color:var(--border)}.savings-potential-banner{background:linear-gradient(135deg,#0f7b6c2e,#34d39914);border-color:#0f7b6c59}.savings-potential-banner strong{color:#34d399}.savings-tip{background:var(--bg-tertiary);border-color:var(--border);box-shadow:none}.savings-cat-bar-wrap{background:#ffffff14}.upcoming-widget{background:var(--bg-secondary);border-color:var(--border)}.upcoming-item{border-color:#ffffff0d}.upcoming-date-badge{background:var(--accent-light)}.upcoming-date-badge.upcoming-tomorrow{background:#d9730d26}.onboarding-overlay{background:var(--bg)}.onboarding-card{background:var(--bg-secondary);border-color:var(--border)}.onboarding-input,.onboarding-select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}.onboarding-tips{background:var(--bg-tertiary);border-color:var(--border)}.onboarding-currency-btn{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}.onboarding-currency-btn.selected{background:var(--accent);border-color:var(--accent);color:#fff}.dashboard-edit-mode section[data-section-id]{outline-color:var(--accent)}.nav-sidebar{background:var(--bg-secondary);border-right-color:var(--border)}.nav-sidebar-overlay{background:#000000a6}.nav-sidebar-item:hover{background:var(--accent-subtle)}.pricing-card{background:var(--bg-secondary);border-color:var(--border)}.pricing-card:hover{box-shadow:var(--shadow-card-hover)}.pricing-later-btn{border-color:var(--border)}.ticket-upload-zone,.ticket-analysis-card{background:var(--bg-secondary);border-color:var(--border)}.price-comparison-table th{background:var(--bg-tertiary)}.drag-handle{background:var(--bg-secondary);border-color:var(--border);color:var(--text-secondary)}.drag-handle:hover{background:var(--accent);color:#fff}.section-drop-target{background:#0077ff0d}.budget-progress-bar,.csv-progress-bar-wrap{background:var(--bg-tertiary)}.category-rules-section,.member-breakdown-section{background:var(--bg-secondary);border-color:var(--border)}.rule-item,.rule-suggestion{background:var(--bg-tertiary);border-color:var(--border)}.trend-summary-table{background:var(--bg-secondary)}.trend-badge{background:var(--bg-tertiary)}.year-review-modal .modal-content{background:var(--bg)}.year-review-card,.year-review-highlight{background:var(--bg-secondary);border-color:var(--border)}.year-category-bar-bg{background:var(--bg-tertiary)}.calendar-grid{background:var(--bg-secondary);border-color:var(--border)}.calendar-cell{background:var(--bg);border-color:var(--border)}.calendar-cell.weekend{background:var(--bg-secondary)}.calendar-popover,.daily-allowance-card{background:var(--bg-secondary);border-color:var(--border)}.daily-gauge-inner{background:var(--bg-secondary)}.health-score{background:var(--bg-secondary);border-color:var(--border)}.health-gauge-inner{background:var(--bg-secondary)}.health-factor-bar-bg{background:var(--bg-tertiary)}.subscriptions{background:var(--bg-secondary);border-color:var(--border)}.subs-summary-card,.subs-item{background:var(--bg-tertiary);border-color:var(--border)}.subs-frequency,.page-tabs{background:var(--bg-secondary);border-color:var(--border)}.page-tab{color:var(--text-secondary)}.page-tab:hover{background:var(--bg-tertiary);color:var(--text)}.page-tab.active{background:var(--bg-tertiary);color:var(--accent);box-shadow:none}.quick-action-btn{background:var(--bg-secondary);border-color:var(--border)}.quick-action-btn:hover{background:var(--bg-tertiary);border-color:var(--accent)}.budget-envelope{background:var(--bg-secondary);border-color:var(--border)}.budget-envelope.state-danger{background:#ef44440f;border-color:#ef444426}.budget-envelope-bar,.budget-total-bar{background:var(--bg-tertiary)}.insight-card{border-color:var(--insight-border)}.budget-preview{background:var(--bg-secondary);border-color:var(--border)}.budget-preview-bar{background:var(--bg-tertiary)}.trend-chip.trend-up{background:#34d39926;color:#34d399}.trend-chip.trend-down{background:#f8717126;color:#f87171}.cat-icon:after{background:#00000026}.empty-state-cta{background:var(--gradient-primary)}.category-item{background:var(--bg-secondary);border-color:var(--border)}.category-icon{background:var(--bg-tertiary)}.form-add-category{background:var(--bg-secondary);border-color:var(--border)}.category-suggestion-chip{background:#6b8aff26;border-color:#6b8aff40}.category-suggestion-chip .chip-text{color:#8fa3ff}}[data-theme=dark]{--bg: #121218;--bg-secondary: #1a1a24;--bg-tertiary: #24243a;--card-bg: #1a1a24;--bg-hover: rgba(255, 255, 255, .06);--bg-page: #0e0e16;--text: #f0f0f8;--text-secondary: #a0a0b8;--text-tertiary: #8888a8;--text-light: #50506a;--accent: #6b8aff;--accent-hover: #5a78f0;--accent-dark: #4f6ef7;--primary: #6b8aff;--primary-color: #6b8aff;--balance-gradient-end: #1a1a40;--border: rgba(255, 255, 255, .07);--border-hover: rgba(255, 255, 255, .14);--gradient-primary: linear-gradient(135deg, #6b8aff 0%, #a78bfa 100%);--gradient-hero: linear-gradient(135deg, #0e0e20 0%, #1a1a50 50%, #4f6ef7 100%);--gradient-subtle: linear-gradient(135deg, rgba(107, 138, 255, .06) 0%, rgba(167, 139, 250, .03) 100%);--shadow-colored: 0 4px 20px rgba(107, 138, 255, .12);--shadow-glow: 0 0 20px rgba(107, 138, 255, .08);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--gradient-income: linear-gradient(135deg, rgba(16, 185, 129, .12), rgba(52, 211, 153, .06));--gradient-expense: linear-gradient(135deg, rgba(239, 68, 68, .12), rgba(249, 115, 22, .06));--glow-success: 0 0 0 3px rgba(52, 211, 153, .1), 0 8px 25px rgba(16, 185, 129, .15);--glow-danger: 0 0 0 3px rgba(248, 113, 113, .1), 0 8px 25px rgba(239, 68, 68, .15);--glow-accent: 0 0 0 3px rgba(107, 138, 255, .1), 0 8px 25px rgba(107, 138, 255, .15);--gradient-text: linear-gradient(135deg, #6b8aff 0%, #a78bfa 50%, #c4b5fd 100%);--accent-light: rgba(107, 138, 255, .1);--danger-hover: #b91c1c;--chart-1: #f87171;--chart-2: #34d399;--chart-3: #60a5fa;--chart-4: #fbbf24;--chart-5: #a78bfa;--chart-6: #f472b6;--chart-7: #2dd4bf;--chart-8: #fb923c;--chart-9: #22d3ee;--chart-10: #a3e635;--chart-11: #facc15;--chart-12: #c084fc;--chart-13: #fb7185;--chart-14: #38bdf8;--chart-15: #4ade80;--chart-16: #fde047;--chart-17: #818cf8;--chart-18: #94a3b8;--glass-bg: rgba(18, 18, 24, .75);--glass-border: rgba(255, 255, 255, .06);--glass-shadow: 0 4px 24px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2)}[data-theme=dark] .stat-card,[data-theme=dark] .chart-box,[data-theme=dark] .modal-content,[data-theme=dark] .ticket-card,[data-theme=dark] .transaction-item{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .balance-card{background:var(--bg-secondary);border-color:var(--border);box-shadow:var(--shadow-sm)}[data-theme=dark] .modal-content{border:1px solid rgba(255,255,255,.06)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-theme=dark] input::placeholder{color:var(--text-tertiary)}[data-theme=dark] .savings-goal-card{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .savings-goal-card.completed{background:#0f7b6c1a}[data-theme=dark] .savings-progress-bar{background:var(--bg-tertiary)}[data-theme=dark] .savings-modal,[data-theme=dark] .savings-modal-overlay{background:var(--bg-secondary)}[data-theme=dark] .savings-modal,[data-theme=dark] .savings-icon-btn{border-color:var(--border)}[data-theme=dark] .savings-icon-btn.active{background:var(--accent-light)}[data-theme=dark] .btn-secondary{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-theme=dark] .btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-hover)}[data-theme=dark] .btn-danger{background:#c93535}[data-theme=dark] .btn-danger:hover{background:#b02e2e}[data-theme=dark] .btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-colored)}[data-theme=dark] .btn-primary:hover{filter:brightness(1.1);box-shadow:0 6px 24px #6b8aff40}[data-theme=dark] .modal-overlay{background:#0009}[data-theme=dark] .modal-close-btn{color:var(--text-secondary)}[data-theme=dark] .modal-close-btn:hover{background:#ffffff14;color:var(--text)}[data-theme=dark] .savings-modal-actions{border-top-color:var(--border)}[data-theme=dark] .nw-type-btn.active{background:var(--primary);color:#fff}[data-theme=dark] .budget-total-summary{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .budget-total-summary.warning{background:#d9730d1a;border-left-color:var(--warning)}[data-theme=dark] .budget-total-summary.danger{background:#e03e3e1a;border-left-color:var(--danger)}[data-theme=dark] .budget-alert-badge{background:var(--danger)}[data-theme=dark] .tag-input-wrapper{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .tag-suggestion-dropdown{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .tag-suggestion-item:hover{background:var(--accent-light)}[data-theme=dark] .tag-pill{background:var(--accent)}[data-theme=dark] .tag-pill-sm{background:var(--accent-light);color:var(--accent)}[data-theme=dark] .split-modal{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .split-modal-header,[data-theme=dark] .split-modal-footer{border-color:var(--border)}[data-theme=dark] .split-line input,[data-theme=dark] .split-line select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-theme=dark] .split-badge{background:var(--bg-tertiary);color:var(--text-secondary)}[data-theme=dark] .split-summary.valid{background:#0f7b6c1f;border-color:#0f7b6c4d}[data-theme=dark] .split-summary.invalid{background:#e03e3e1f;border-color:#e03e3e4d}[data-theme=dark] .split-add-line-btn{border-color:var(--border);color:var(--text-secondary)}[data-theme=dark] .quick-fab-form{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .quick-fab-form-body input,[data-theme=dark] .quick-fab-form-body select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-theme=dark] .quick-fab-type-toggle{border-color:var(--border)}[data-theme=dark] .quick-fab-type-btn{background:var(--bg-tertiary);color:var(--text-secondary)}[data-theme=dark] .csv-wizard-modal{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .csv-step-num{background:var(--bg-tertiary);border-color:var(--border);color:var(--text-secondary)}[data-theme=dark] .csv-step-line{background:var(--border)}[data-theme=dark] .csv-upload-zone{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .csv-wizard-footer{border-color:var(--border)}[data-theme=dark] .csv-wizard-select,[data-theme=dark] .csv-map-select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-theme=dark] .csv-preview-mini th,[data-theme=dark] .csv-preview-table th{background:var(--bg-tertiary)}[data-theme=dark] .csv-preview-mini,[data-theme=dark] .csv-preview-table-wrap{border-color:var(--border)}[data-theme=dark] .csv-preview-table-wrap:after{background:linear-gradient(to top,var(--bg-secondary),transparent)}[data-theme=dark] .csv-dupe-row{background:#d9730d1a!important}[data-theme=dark] .adv-search-modal{background:var(--bg-secondary)}[data-theme=dark] .adv-search-input-wrap{border-color:var(--border)}[data-theme=dark] .adv-search-kbd,[data-theme=dark] .adv-search-filters{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .adv-filter-row input,[data-theme=dark] .adv-filter-row select{background:var(--bg-secondary);border-color:var(--border);color:var(--text)}[data-theme=dark] .adv-result-item:hover,[data-theme=dark] .adv-result-item:focus{background:#ffffff0a}[data-theme=dark] .report-modal{background:var(--bg-secondary)}[data-theme=dark] .report-card{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .report-card.income{background:#0f7b6c14;border-color:#0f7b6c33}[data-theme=dark] .report-card.expense{background:#e03e3e14;border-color:#e03e3e33}[data-theme=dark] .report-card.savings{background:var(--accent-subtle);border-color:#6b8aff33}[data-theme=dark] .report-cat-bar-wrap{background:var(--bg-tertiary)}[data-theme=dark] .savings-advice-section{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .savings-potential-banner{background:linear-gradient(135deg,#0f7b6c2e,#34d39914);border-color:#0f7b6c59}[data-theme=dark] .savings-potential-banner strong{color:#34d399}[data-theme=dark] .savings-tip{background:var(--bg-tertiary);border-color:var(--border);box-shadow:none}[data-theme=dark] .savings-cat-bar-wrap{background:#ffffff14}[data-theme=dark] .upcoming-widget{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .upcoming-item{border-color:#ffffff0d}[data-theme=dark] .upcoming-date-badge{background:var(--accent-light)}[data-theme=dark] .upcoming-date-badge.upcoming-tomorrow{background:#d9730d26}[data-theme=dark] .onboarding-overlay{background:var(--bg)}[data-theme=dark] .onboarding-card{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .onboarding-input,[data-theme=dark] .onboarding-select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-theme=dark] .onboarding-tips{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .onboarding-currency-btn{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-theme=dark] .onboarding-currency-btn.selected{background:var(--accent);border-color:var(--accent);color:#fff}[data-theme=dark] .dashboard-edit-mode section[data-section-id]{outline-color:var(--accent)}[data-theme=dark] .drag-handle{background:var(--bg-secondary);border-color:var(--border);color:var(--text-secondary)}[data-theme=dark] .drag-handle:hover{background:var(--accent);color:#fff}[data-theme=dark] .section-drop-target{background:var(--accent-subtle)}[data-theme=dark] .budget-progress-bar,[data-theme=dark] .csv-progress-bar-wrap{background:var(--bg-tertiary)}[data-theme=dark] .category-rules-section,[data-theme=dark] .member-breakdown-section{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .rule-item,[data-theme=dark] .rule-suggestion{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .trend-summary-table{background:var(--bg-secondary)}[data-theme=dark] .trend-badge{background:var(--bg-tertiary)}[data-theme=dark] .year-review-modal .modal-content{background:var(--bg)}[data-theme=dark] .year-review-card,[data-theme=dark] .year-review-highlight{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .year-category-bar-bg{background:var(--bg-tertiary)}[data-theme=dark] .calendar-grid{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .calendar-cell{background:var(--bg);border-color:var(--border)}[data-theme=dark] .calendar-cell.weekend{background:var(--bg-secondary)}[data-theme=dark] .calendar-popover,[data-theme=dark] .daily-allowance-card{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .daily-gauge-inner{background:var(--bg-secondary)}[data-theme=dark] .health-score{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .health-gauge-inner{background:var(--bg-secondary)}[data-theme=dark] .health-factor-bar-bg{background:var(--bg-tertiary)}[data-theme=dark] .subscriptions{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .subs-summary-card,[data-theme=dark] .subs-item{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .subs-frequency{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .household-panel-overlay .household-panel{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .hp-member-card,[data-theme=dark] .hp-invite-result{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .member-summary-card{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .contribution-bar-track{background:var(--bg-tertiary)}[data-theme=dark] .page-tabs{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .page-tab{color:var(--text-secondary)}[data-theme=dark] .page-tab:hover{background:var(--bg-tertiary);color:var(--text)}[data-theme=dark] .page-tab.active{background:var(--bg-tertiary);color:var(--accent);box-shadow:none}[data-theme=dark] .quick-action-btn{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .quick-action-btn:hover{background:var(--bg-tertiary);border-color:var(--accent)}[data-theme=dark] .budget-envelope{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .budget-envelope.state-danger{background:#ef44440f;border-color:#ef444426}[data-theme=dark] .budget-envelope-bar,[data-theme=dark] .budget-total-bar{background:var(--bg-tertiary)}[data-theme=dark] .budget-preview{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .budget-preview-bar{background:var(--bg-tertiary)}[data-theme=dark] .trend-chip.trend-up{background:#34d39926;color:#34d399}[data-theme=dark] .trend-chip.trend-down{background:#f8717126;color:#f87171}[data-theme=dark] .cat-icon:after{background:#00000026}[data-theme=dark] .empty-state-cta{background:var(--gradient-primary)}[data-theme=light]{--bg: #ffffff;--bg-secondary: #f8f9fb;--bg-tertiary: #f0f1f5;--card-bg: #ffffff;--bg-hover: rgba(0, 0, 0, .03);--bg-page: #f3f4f8;--text: #1a1a2e;--text-secondary: #4a4d5e;--text-tertiary: #6e7180;--text-light: #717584;--accent: #4f6ef7;--accent-hover: #3d5bd9;--accent-dark: #3350c4;--primary: #4f6ef7;--primary-color: #4f6ef7;--balance-gradient-end: #2d2b55;--border: rgba(0, 0, 0, .08);--border-hover: rgba(0, 0, 0, .16);--gradient-primary: linear-gradient(135deg, #4f6ef7 0%, #7c5cfc 100%);--gradient-hero: linear-gradient(135deg, #1a1a2e 0%, #2d2b55 50%, #4f6ef7 100%);--gradient-subtle: linear-gradient(135deg, rgba(79, 110, 247, .05) 0%, rgba(124, 92, 252, .03) 100%);--shadow-colored: 0 4px 20px rgba(79, 110, 247, .15);--shadow-glow: 0 0 20px rgba(79, 110, 247, .12);--shadow-xs: 0 1px 3px rgba(0, 0, 0, .06);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .07), 0 4px 12px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 8px 24px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08), 0 16px 48px rgba(0, 0, 0, .12)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(display-mode:standalone){header{padding-top:max(20px,env(safe-area-inset-top))}}@media(prefers-contrast:high){:root{--border: rgba(0, 0, 0, .3);--text-secondary: #444}button,.btn-nav{border:2px solid currentColor}}.category-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.category-item{display:flex;align-items:center;background:var(--bg-secondary, rgba(255, 255, 255, .13));border-radius:12px;padding:10px 14px;justify-content:space-between;box-shadow:0 2px 8px #00000005;border:1px solid var(--border)}.category-main{display:flex;align-items:center;gap:10px}.category-icon{font-size:1.6em}.category-color-dot{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border, #eee);display:inline-block}.category-name{font-size:1.07em;font-weight:500;margin-left:4px;color:var(--text)}.category-actions{display:flex;gap:6px}.category-actions button{background:none;border:none;color:var(--accent);font-size:1em;padding:3px 6px;border-radius:5px;cursor:pointer;transition:background var(--transition-fast)}.category-actions button:hover{background:var(--accent-light)}[data-theme=dark] .category-item{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .category-icon{background:var(--bg-tertiary)}[data-theme=dark] .form-add-category{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .category-suggestion-chip{background:#6b8aff26;border-color:#6b8aff40}[data-theme=dark] .category-suggestion-chip .chip-text{color:#8fa3ff}.budget-alert-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:11px;background:var(--danger, #e74c3c);color:var(--text-inverse);font-size:var(--text-sm);font-weight:700;margin-left:8px;padding:0 6px;vertical-align:middle;animation:budgetAlertPulse 2s ease-in-out infinite}@keyframes budgetAlertPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.tag-input-container{position:relative}.tag-input-wrapper{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 8px;border:1px solid var(--border, #ddd);border-radius:var(--radius, 8px);background:var(--card-bg, #fff);min-height:38px;cursor:text}.tag-input-wrapper:focus-within{border-color:var(--accent, #6366f1);box-shadow:0 0 0 2px #6366f126}.tag-input-tags{display:flex;flex-wrap:wrap;gap:4px}.tag-pill{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:12px;background:var(--accent, #6366f1);color:var(--text-inverse);font-size:var(--text-sm);font-weight:500;white-space:nowrap}.tag-pill-sm{padding:1px 6px;font-size:10px;border-radius:8px;background:var(--accent-light, rgba(99, 102, 241, .15));color:var(--accent, #6366f1)}.tag-pill-remove{background:none;border:none;color:#fffc;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;margin-left:2px}.tag-pill-remove:hover{color:var(--text-inverse)}.tag-input-field{border:none;outline:none;background:transparent;font-size:var(--text-sm);flex:1;min-width:80px;color:var(--text, #333)}.tag-suggestion-dropdown{position:absolute;top:100%;left:0;right:0;z-index:var(--z-dropdown);background:var(--card-bg, #fff);border:1px solid var(--border, #ddd);border-radius:var(--radius, 8px);box-shadow:0 4px 12px #0000001a;max-height:160px;overflow-y:auto;margin-top:4px}.tag-suggestion-item{padding:8px 12px;cursor:pointer;font-size:var(--text-sm);color:var(--text, #333)}.tag-suggestion-item:hover{background:var(--accent-light, rgba(99, 102, 241, .1))}.transaction-tags{display:inline-flex;gap:3px;margin-left:6px;vertical-align:middle}.split-badge{display:inline-block;padding:1px 6px;border-radius:8px;background:var(--warning-bg, #fef3c7);color:var(--warning, #d97706);font-size:10px;font-weight:600;margin-left:4px;vertical-align:middle}.quick-fab{position:fixed;bottom:24px;right:24px;width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--accent, #0077ff),#5b9cf6);color:var(--text-inverse);font-size:28px;font-weight:300;border:none;cursor:pointer;box-shadow:0 4px 20px #0077ff59;z-index:calc(var(--z-fab) + 1);transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;display:flex;align-items:center;justify-content:center;animation:fabEntrance .5s cubic-bezier(.34,1.56,.64,1) both}@keyframes fabEntrance{0%{transform:scale(0) rotate(-90deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.quick-fab:hover{transform:scale(1.12);box-shadow:0 6px 28px #0077ff73}.quick-fab.quick-fab-active{transform:rotate(45deg);background:var(--text-secondary, #6b6b6b);box-shadow:0 4px 16px #0003}.quick-fab-overlay{position:fixed;inset:0;background:#0000004d;z-index:var(--z-fab);opacity:0;pointer-events:none;transition:opacity .2s}.quick-fab-overlay.visible{opacity:1;pointer-events:auto}.quick-fab-form{position:fixed;bottom:96px;right:24px;width:320px;max-width:calc(100vw - 48px);background:var(--bg, #fff);border-radius:var(--radius-lg, 16px);box-shadow:var(--shadow-lg, 0 8px 32px rgba(0,0,0,.15));border:1px solid var(--border, rgba(55,53,47,.09));z-index:calc(var(--z-fab) + 2);transform:translateY(24px) scale(.92);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .2s}.quick-fab-form.visible{transform:translateY(0) scale(1);opacity:1;pointer-events:auto}.quick-fab-form-header{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 8px}.quick-fab-form-header h3{margin:0;font-size:16px;color:var(--text, #333)}.quick-fab-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-secondary, #888);padding:0 4px}.quick-fab-form-body{padding:8px 16px 16px;display:flex;flex-direction:column;gap:10px}.quick-fab-form-body input,.quick-fab-form-body select{padding:10px 12px;border:1px solid var(--border, #ddd);border-radius:var(--radius, 8px);font-size:14px;background:var(--card-bg, #fff);color:var(--text, #333)}.quick-fab-type-toggle{display:flex;gap:0;border-radius:var(--radius, 8px);overflow:hidden;border:1px solid var(--border, #ddd)}.quick-fab-type-btn{flex:1;padding:8px;border:none;background:var(--card-bg, #fff);cursor:pointer;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary, #888);transition:all .2s}.quick-fab-type-btn.active{background:var(--accent, #0077ff);color:var(--text-inverse)}.quick-fab-type-btn.active[data-type=income]{background:var(--success, #0f7b6c)}.quick-fab-type-btn.active[data-type=expense]{background:var(--danger, #e03e3e)}.quick-fab-submit{padding:12px;border:none;border-radius:var(--radius, 8px);background:linear-gradient(135deg,var(--accent, #6366f1),#8b5cf6);color:var(--text-inverse);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.quick-fab-submit:hover{opacity:.9}.quick-fab-submit:disabled{opacity:.5;cursor:not-allowed}.csv-wizard-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-overlay-high);opacity:0;pointer-events:none;transition:opacity .25s}.csv-wizard-overlay.visible{opacity:1;pointer-events:auto}.csv-wizard-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:720px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);background:var(--card-bg, #fff);border-radius:16px;box-shadow:0 16px 48px #0003;z-index:var(--z-modal-high);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:transform .25s ease,opacity .2s;overflow:hidden;will-change:transform,opacity}.csv-wizard-modal.visible{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}.csv-wizard-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 12px}.csv-wizard-header h2{margin:0;font-size:18px}.csv-wizard-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary, #888);padding:0 4px}.csv-wizard-stepper{display:flex;align-items:center;justify-content:center;gap:0;padding:8px 24px 16px}.csv-step{display:flex;align-items:center;gap:6px}.csv-step-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--bg-secondary, #f5f5f5);color:var(--text-secondary, #888);font-size:var(--text-sm);font-weight:600;border:2px solid var(--border, #ddd);transition:all .3s ease;box-shadow:var(--shadow-xs, 0 1px 2px rgba(0,0,0,.04))}.csv-step.active .csv-step-num{background:var(--accent, #6366f1);color:var(--text-inverse);border-color:var(--accent, #6366f1)}.csv-step.completed .csv-step-num{background:var(--success, #22c55e);color:var(--text-inverse);border-color:var(--success, #22c55e)}.csv-step-label{font-size:var(--text-sm);color:var(--text-secondary, #888);font-weight:500}.csv-step.active .csv-step-label{color:var(--accent, #6366f1);font-weight:600}.csv-step-line{width:32px;height:2px;background:var(--border, #ddd);margin:0 4px;transition:background .3s}.csv-step.completed+.csv-step-line,.csv-step-line.done{background:var(--success, #0f7b6c)}.csv-wizard-body{flex:1;overflow-y:auto;padding:0 24px 16px}.csv-wizard-footer{display:flex;justify-content:space-between;padding:12px 24px 20px;border-top:1px solid var(--border, #eee)}.csv-upload-zone{border:2px dashed var(--border, #ddd);border-radius:var(--radius-md, 12px);padding:48px 24px;text-align:center;background:var(--bg-secondary, #fafafa);cursor:pointer;transition:all .3s ease}.csv-upload-zone:hover,.csv-upload-zone.dragover{border-color:var(--accent, #0077ff);background:var(--accent-light, rgba(0,119,255,.05));animation:csvDragPulse 1.5s ease-in-out infinite}@keyframes csvDragPulse{0%,to{border-color:var(--accent, #0077ff)}50%{border-color:var(--accent-hover, #0062d1)}}.csv-upload-zone .csv-upload-icon{font-size:42px;margin-bottom:8px;display:block}.csv-upload-zone h3{margin:0 0 4px;font-size:16px;color:var(--text, #37352f)}.csv-upload-zone p{margin:0;color:var(--text-secondary, #6b6b6b);font-size:var(--text-sm)}.csv-preview-table-wrap{position:relative}.csv-preview-table-wrap:after{content:"";position:absolute;bottom:0;left:0;right:0;height:30px;background:linear-gradient(to top,var(--bg, #fff),transparent);pointer-events:none;border-radius:0 0 8px 8px}.csv-wizard-profile-bar{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.csv-wizard-select{padding:6px 10px;border:1px solid var(--border, #ddd);border-radius:var(--radius-sm, 6px);background:var(--bg-secondary, #fafafa);font-size:var(--text-sm);color:var(--text, #333)}.csv-mapping-grid{display:flex;flex-direction:column;gap:10px}.csv-mapping-row{display:flex;align-items:center;gap:12px}.csv-mapping-row label{width:120px;font-size:var(--text-sm);font-weight:500}.csv-map-select{flex:1;padding:8px 10px;border:1px solid var(--border, #ddd);border-radius:var(--radius-sm, 6px);background:var(--card-bg, #fff);font-size:var(--text-sm)}.csv-preview-mini{overflow-x:auto;border:1px solid var(--border, #eee);border-radius:8px}.csv-preview-mini table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.csv-preview-mini th,.csv-preview-mini td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--border, #eee);white-space:nowrap}.csv-preview-mini th{background:var(--bg-secondary, #f5f5f5);font-weight:600}.csv-preview-table-wrap{overflow-x:auto;max-height:360px;overflow-y:auto;border:1px solid var(--border, #eee);border-radius:8px}.csv-preview-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.csv-preview-table th,.csv-preview-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border, #eee)}.csv-preview-table th{background:var(--bg-secondary, #f5f5f5);font-weight:600;position:sticky;top:0;z-index:1}.csv-dupe-row{background:#eab30814!important}.csv-dupe-row td:first-child:after{content:"⚠️";margin-left:4px}.csv-excluded-row{opacity:.4;text-decoration:line-through}.csv-progress-bar-wrap{width:100%;max-width:400px;height:8px;background:var(--border, #eee);border-radius:4px;overflow:hidden;margin:16px auto 0}.csv-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent, #6366f1),#8b5cf6);border-radius:4px;width:0%;transition:width .3s ease}@media(max-width:600px){.csv-wizard-modal{width:100vw;max-width:100vw;max-height:100vh;border-radius:0;top:0;left:0;transform:none}.csv-wizard-modal.visible{transform:none}.csv-step-label{display:none}}.savings-goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.savings-goal-card{background:var(--card-bg, #fff);border:1px solid var(--border, #eee);border-radius:var(--radius-md, 12px);padding:18px;cursor:pointer;transition:transform var(--transition-normal, .2s),box-shadow var(--transition-normal, .2s);border-left:4px solid var(--goal-color, #6366f1);position:relative;overflow:hidden}.savings-goal-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md, 0 4px 16px rgba(0,0,0,.08))}.savings-goal-card.completed{background:var(--success-bg, rgba(15,123,108,.06));border-left-color:var(--success, #0f7b6c);opacity:1}.savings-goal-card.completed:after{content:"✨";position:absolute;top:10px;right:12px;font-size:18px;animation:goalSparkle 2s ease-in-out infinite}@keyframes goalSparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2) rotate(10deg)}}.savings-goal-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.savings-goal-icon{font-size:26px;line-height:1}.savings-goal-name{font-size:14px;font-weight:600;color:var(--text, #333);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.savings-goal-badge{font-size:14px}.savings-progress-bar{height:10px;background:var(--bg-tertiary, #f0f0ee);border-radius:100px;overflow:hidden;margin-top:8px}.savings-progress-fill{height:100%;background:linear-gradient(90deg,var(--success),#86efac);border-radius:100px;transition:width .8s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.savings-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:progressShimmer 2s ease-in-out infinite}@keyframes progressShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.savings-goal-amounts{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-secondary, #888)}.savings-modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-overlay-high);opacity:0;pointer-events:none;transition:opacity .25s}.savings-modal-overlay.visible{opacity:1;pointer-events:auto}.savings-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);background:var(--card-bg, #fff);border-radius:16px;box-shadow:0 16px 48px #0003;z-index:var(--z-modal-high);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:transform .25s ease,opacity .2s;will-change:transform,opacity;overflow:hidden}.savings-modal.visible{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}.savings-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 12px}.savings-modal-header h2{margin:0;font-size:18px}.savings-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary, #888)}.savings-modal-body{flex:1;overflow-y:auto;padding:0 24px 24px}.savings-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.savings-icon-picker{display:flex;gap:6px;flex-wrap:wrap}.savings-icon-btn{width:36px;height:36px;border-radius:8px;border:2px solid var(--border, #eee);background:transparent;font-size:18px;cursor:pointer;transition:all .15s}.savings-icon-btn.active{border-color:var(--accent, #6366f1);background:var(--accent-light, rgba(99,102,241,.1))}.upcoming-widget{border:1px solid var(--border, #eee);border-radius:var(--radius-md, 12px);padding:14px 18px;background:var(--bg-secondary, #f7f7f5)}.upcoming-items{display:flex;flex-direction:column;gap:8px}.upcoming-item{display:flex;align-items:center;gap:12px;padding:10px 6px;border-bottom:1px solid var(--border, rgba(55,53,47,.06));transition:transform var(--transition-fast, .15s),background var(--transition-fast, .15s);border-radius:var(--radius-sm, 6px);margin:0 -6px}.upcoming-item:hover{transform:translate(4px);background:var(--bg-hover, rgba(0,0,0,.02))}.upcoming-item:last-child{border-bottom:none;padding-bottom:0}.upcoming-date-badge{background:var(--accent-light, rgba(0,119,255,.08));color:var(--accent, #0077ff);padding:5px 12px;border-radius:var(--radius-xl, 24px);font-size:var(--text-xs);font-weight:600;white-space:nowrap;min-width:64px;text-align:center}.upcoming-date-badge.upcoming-tomorrow{background:var(--warning-bg, rgba(217,115,13,.1));color:var(--warning, #d9730d);font-weight:700}.upcoming-info{flex:1;display:flex;flex-direction:column}.upcoming-name{font-size:var(--text-sm);font-weight:500;color:var(--text, #333)}.upcoming-detail{font-size:var(--text-xs);color:var(--text-secondary, #888)}.upcoming-amount{font-size:var(--text-sm);font-weight:600;white-space:nowrap}.upcoming-amount.income{color:var(--success, #22c55e)}.upcoming-amount.expense{color:var(--danger, #e74c3c)}.detected-patterns{display:flex;flex-direction:column;gap:6px}.detected-pattern-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-secondary);border:1px dashed var(--border);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.detected-pattern-item:hover{border-color:var(--accent);background:var(--bg-hover)}.detected-pattern-info{flex:1;display:flex;flex-direction:column;gap:2px}.detected-pattern-name{font-weight:500;font-size:14px}.detected-pattern-meta{font-size:var(--text-xs);color:var(--text-secondary)}.detected-pattern-amount{font-weight:600;font-size:14px;white-space:nowrap}.detected-pattern-amount.income{color:var(--success)}.detected-pattern-amount.expense{color:var(--danger)}.detected-pattern-add{padding:4px 10px;font-size:16px;font-weight:700;border:1px solid var(--accent);border-radius:var(--radius-sm);background:transparent;color:var(--accent);cursor:pointer;transition:all var(--transition-fast)}.detected-pattern-add:hover{background:var(--accent);color:var(--text-inverse)}.filters-toggle-btn{display:none;width:100%;padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;margin-bottom:8px;text-align:left}.filters-badge{background:var(--accent);color:var(--text-inverse);font-size:var(--text-xs);font-weight:600;padding:1px 7px;border-radius:10px;margin-left:6px}@media(max-width:768px){.filters-toggle-btn{display:block}.transaction-filters{display:none}.transaction-filters.filters-open{display:flex}}.tx-actions-wrapper{position:relative;display:flex;gap:8px}.tx-actions-toggle{display:none;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:16px;cursor:pointer;color:var(--text)}.tx-actions-btns{display:flex;gap:8px}@media(max-width:600px){.tx-actions-toggle{display:flex;align-items:center}.tx-actions-btns{display:none;position:absolute;right:0;top:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:6px;gap:4px;z-index:var(--z-dropdown);flex-direction:column}.tx-actions-btns.open{display:flex}.tx-actions-btns button{padding:6px 12px;font-size:14px;white-space:nowrap}}.kpi-snapshot{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 20px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border)}.kpi-item{text-align:center;padding:8px 4px}.kpi-label{font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.kpi-value{font-size:18px;font-weight:700;color:var(--text);line-height:1.2}.kpi-trend{font-size:var(--text-xs);font-weight:600;margin-top:2px;display:inline-block}.kpi-trend-up{color:var(--success)}.kpi-trend-down{color:var(--danger)}@media(max-width:600px){.kpi-snapshot{grid-template-columns:repeat(2,1fr);gap:8px;padding:12px}.kpi-value{font-size:15px}}.debt-settlement-tip{background:linear-gradient(135deg,#6366f114,#6366f108);border:1px solid rgba(99,102,241,.25);border-radius:var(--radius-sm);padding:12px;margin-bottom:10px}.debt-settlement-header{display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:var(--text-sm);margin-bottom:4px}.debt-settlement-badge{font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:10px;background:var(--success);color:var(--text-inverse)}.debt-settlement-desc{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.debt-simplified{border-left:3px solid var(--accent)}.heatmap-wrapper{padding:4px 0}.heatmap-month-label{font-size:var(--text-sm);font-weight:600;text-transform:capitalize;margin-bottom:10px;color:var(--text)}.heatmap-grid{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px}.heatmap-day-label{display:flex;align-items:center;font-size:var(--text-xs);color:var(--text-secondary);font-weight:500;padding-right:4px}.heatmap-cell{aspect-ratio:1;border-radius:3px;display:flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;cursor:default;position:relative;transition:transform .15s ease}.heatmap-cell:hover:not(.heatmap-empty){transform:scale(1.15);z-index:2}.heatmap-cell-day{font-size:10px;font-weight:500;color:var(--text-secondary);pointer-events:none}.heatmap-cell:not(.heatmap-empty) .heatmap-cell-day{color:var(--text)}.heatmap-empty{background:transparent!important}.heatmap-today{outline:2px solid var(--accent);outline-offset:-1px}.heatmap-legend{display:flex;align-items:center;gap:4px;margin-top:12px;justify-content:flex-end}.heatmap-legend-label{font-size:var(--text-xs);color:var(--text-secondary)}.heatmap-legend-cell{width:14px;height:14px;border-radius:2px}.budget-utilization-grid{margin-top:16px}.budget-util-title{font-size:15px;font-weight:600;margin:0 0 12px;color:var(--text)}.budget-util-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.budget-util-card{background:var(--bg-secondary);border-radius:var(--radius-sm);padding:12px;text-align:center;border:1px solid var(--border);transition:transform .15s}.budget-util-card:hover{transform:translateY(-2px)}.budget-util-safe{border-left:3px solid var(--success)}.budget-util-caution{border-left:3px solid #f59e0b}.budget-util-warning{border-left:3px solid #f97316}.budget-util-danger{border-left:3px solid var(--danger)}.budget-util-icon{font-size:22px;margin-bottom:4px}.budget-util-name{font-size:var(--text-sm);font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}.budget-util-bar-bg{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-bottom:4px}.budget-util-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.budget-util-bar-fill.budget-util-safe{background:var(--success)}.budget-util-bar-fill.budget-util-caution{background:#f59e0b}.budget-util-bar-fill.budget-util-warning{background:#f97316}.budget-util-bar-fill.budget-util-danger{background:var(--danger)}.budget-util-pct{font-size:16px;font-weight:700;color:var(--text)}.budget-util-remaining{font-size:var(--text-xs);color:var(--text-secondary);margin-top:2px}@media(max-width:480px){.budget-util-cards{grid-template-columns:repeat(2,1fr)}}.adv-search-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-overlay-search);opacity:0;pointer-events:none;transition:opacity .15s}.adv-search-overlay.visible{opacity:1;pointer-events:auto}.adv-search-modal{position:fixed;top:15%;left:50%;transform:translate(-50%) translateY(-10px);width:580px;max-width:calc(100vw - 32px);max-height:70vh;background:var(--card-bg, #fff);border-radius:16px;box-shadow:0 16px 48px #00000040;z-index:var(--z-modal-search);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:transform .2s ease,opacity .15s;overflow:hidden;will-change:transform,opacity}.adv-search-modal.visible{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.adv-search-input-wrap{display:flex;align-items:center;gap:10px;padding:18px 20px;border-bottom:1px solid var(--border, #eee)}.adv-search-icon{font-size:20px;color:var(--text-secondary, #6b6b6b)}.adv-search-input-wrap input{flex:1;border:none;outline:none;font-size:18px;background:transparent;color:var(--text, #37352f);font-weight:500}.adv-search-input-wrap input::placeholder{color:var(--text-tertiary, #9b9a97);font-weight:400}.adv-search-kbd{padding:2px 6px;border-radius:4px;background:var(--bg-secondary, #f0f0f0);font-size:10px;color:var(--text-secondary, #888);border:1px solid var(--border, #ddd)}.adv-search-toggle-filters{background:none;border:none;color:var(--accent, #6366f1);font-size:var(--text-sm);cursor:pointer;padding:6px 16px;text-align:left}.adv-search-filters{display:flex;flex-direction:column;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border, #eee);background:var(--bg-secondary, #fafafa)}.adv-filter-row{display:flex;align-items:center;gap:8px;font-size:var(--text-sm)}.adv-filter-row label{width:60px;font-weight:500;color:var(--text-secondary, #888)}.adv-filter-row input,.adv-filter-row select{flex:1;padding:6px 8px;border:1px solid var(--border, #ddd);border-radius:6px;font-size:var(--text-sm);background:var(--card-bg, #fff);color:var(--text, #333)}.adv-search-results{flex:1;overflow-y:auto;padding:8px 0}.adv-search-hint{text-align:center;color:var(--text-tertiary, #9b9a97);font-size:14px;padding:40px 24px}.adv-search-hint:before{content:"🔍";display:block;font-size:32px;margin-bottom:10px;opacity:.5}.adv-result-item{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;cursor:pointer;transition:background var(--transition-fast, .15s);outline:none;border-left:3px solid transparent}.adv-result-item:hover,.adv-result-item:focus{background:var(--bg-hover, rgba(0,0,0,.03));border-left-color:var(--accent, #0077ff)}.adv-result-item:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-light, rgba(0,119,255,.15))}.adv-result-left{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.adv-result-desc{font-size:14px;font-weight:500;color:var(--text, #333);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adv-result-meta{font-size:var(--text-xs);color:var(--text-secondary, #888);display:flex;align-items:center;gap:4px}.adv-result-amount{font-size:14px;font-weight:600;white-space:nowrap;margin-left:12px}.adv-result-amount.income{color:var(--success, #22c55e)}.adv-result-amount.expense{color:var(--danger, #e74c3c)}.report-modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-overlay-high);opacity:0;pointer-events:none;transition:opacity .25s}.report-modal-overlay.visible{opacity:1;pointer-events:auto}.report-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:640px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);background:var(--card-bg, #fff);border-radius:16px;box-shadow:0 16px 48px #0003;z-index:var(--z-modal-high);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:transform .25s ease,opacity .2s;overflow:hidden;will-change:transform,opacity}.report-modal.visible{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}.report-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 12px}.report-modal-header h2{margin:0;font-size:18px}.report-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary, #888);padding:4px 8px;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm, 6px);flex-shrink:0;z-index:10;position:relative}.report-modal-nav{display:flex;justify-content:space-between;align-items:center;padding:4px 24px 14px}.report-modal-nav .btn-nav{padding:6px 14px;border-radius:var(--radius-xl, 24px);font-size:var(--text-sm)}.report-month-label{font-size:16px;font-weight:700;color:var(--text, #37352f);letter-spacing:-.01em}.report-modal-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 24px 24px;min-width:0}.report-summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.report-card{padding:18px;border-radius:var(--radius-md, 10px);background:var(--bg-secondary, #f7f7f5);border:1px solid var(--border, #eee);transition:transform var(--transition-fast, .15s)}.report-card:hover{transform:translateY(-1px)}.report-card.income{background:linear-gradient(135deg,var(--success-bg, rgba(15,123,108,.06)),var(--bg-secondary, #f7f7f5));border-color:#0f7b6c26}.report-card.expense{background:linear-gradient(135deg,var(--danger-bg, rgba(224,62,62,.06)),var(--bg-secondary, #f7f7f5));border-color:#e03e3e26}.report-card.savings{background:linear-gradient(135deg,var(--accent-light, rgba(0,119,255,.06)),var(--bg-secondary, #f7f7f5));border-color:#0077ff26}.report-card-label{font-size:.7rem;color:var(--text-secondary, #6b6b6b);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em;font-weight:500}.report-card-value{font-size:1.6rem;font-weight:700}.report-card.income .report-card-value{color:var(--success, #0f7b6c)}.report-card.expense .report-card-value{color:var(--danger, #e03e3e)}.report-card.savings .report-card-value{color:var(--accent, #0077ff)}.report-card-meta{font-size:var(--text-xs);color:var(--text-secondary, #888);margin-top:4px;display:block}.report-section{margin-bottom:20px;overflow:visible;min-width:0}.report-section h3{font-size:14px;margin:0 0 12px;color:var(--text, #333)}.report-category-list{display:flex;flex-direction:column;gap:8px}.report-category-row{display:flex;align-items:center;gap:8px}.report-cat-name{width:100px;font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-cat-bar-wrap{flex:1;height:8px;background:var(--bg-secondary, #f0f0f0);border-radius:4px;overflow:hidden}.report-cat-bar{height:100%;background:var(--accent, #6366f1);border-radius:4px;transition:width .3s ease}.report-cat-amount{font-size:var(--text-sm);font-weight:600;width:70px;text-align:right}.report-cat-pct{font-size:var(--text-xs);color:var(--text-secondary, #888);width:35px;text-align:right}@media(max-width:600px){.report-summary-cards{grid-template-columns:1fr}.adv-search-modal{width:100vw;max-width:100vw;top:0;border-radius:0;transform:translate(-50%)}.adv-search-modal.visible{transform:translate(-50%)}}.onboarding-overlay{position:fixed;inset:0;background:var(--bg, #fff);z-index:var(--z-max);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:24px 0;opacity:0;transition:opacity .4s ease}.onboarding-overlay.visible{opacity:1}.onboarding-card{background:var(--card-bg, #fff);border-radius:20px;padding:48px 40px;max-width:520px;width:90%;text-align:center;box-shadow:0 20px 60px #0000001f;border:1px solid var(--border, #e5e7eb);margin:auto}.onboarding-card h2{font-size:28px;margin-bottom:8px;font-weight:700}.onboarding-card p{color:var(--text-secondary, #888);font-size:15px;margin-bottom:24px;line-height:1.5}.onboarding-dots{display:flex;gap:10px;justify-content:center;margin-bottom:32px;position:relative}.onboarding-dot{width:10px;height:10px;border-radius:50%;background:var(--border, #e5e7eb);transition:background .3s,transform .3s;position:relative;z-index:1}.onboarding-dot.active{background:var(--accent, #0077ff);transform:scale(1.3);animation:onboardingDotBounce .4s cubic-bezier(.34,1.56,.64,1)}.onboarding-dot.done{background:var(--success, #0f7b6c)}@keyframes onboardingDotBounce{0%{transform:scale(.6)}60%{transform:scale(1.4)}to{transform:scale(1.3)}}.onboarding-input{width:100%;padding:14px 16px;border-radius:12px;border:2px solid var(--border, #e5e7eb);background:var(--bg-secondary, #f9fafb);font-size:16px;text-align:center;margin-bottom:12px;transition:border-color .2s}.onboarding-input:focus{outline:none;border-color:var(--accent, #6366f1)}.onboarding-select{width:100%;padding:14px 16px;border-radius:12px;border:2px solid var(--border, #e5e7eb);background:var(--bg-secondary, #f9fafb);font-size:16px;text-align:center;margin-bottom:12px;appearance:none;cursor:pointer}.onboarding-actions{display:flex;gap:12px;justify-content:center;margin-top:24px}.onboarding-actions .btn-primary{padding:14px 32px;font-size:16px;border-radius:12px}.onboarding-actions .btn-nav{padding:14px 24px;font-size:14px;border-radius:12px}.onboarding-emoji{font-size:64px;margin-bottom:16px}.onboarding-tips{text-align:left;margin:16px 0;padding:16px;border-radius:12px;background:var(--bg-secondary, #f9fafb);border:1px solid var(--border, #e5e7eb)}.onboarding-tips li{padding:6px 0;font-size:14px;color:var(--text-secondary, #888);list-style:none}.onboarding-tips li strong{color:var(--text, #1a1a2e)}.onboarding-step-indicator{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:28px}.onboarding-step-indicator .step-num{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;background:var(--bg-tertiary, #f0f0ee);color:var(--text-tertiary, #9b9a97);border:2px solid var(--border, #e5e7eb);transition:all .3s ease}.onboarding-step-indicator .step-num.active{background:var(--accent, #0077ff);color:var(--text-inverse);border-color:var(--accent, #0077ff);box-shadow:0 0 0 4px var(--accent-light, rgba(0,119,255,.15))}.onboarding-step-indicator .step-num.done{background:var(--success, #0f7b6c);color:var(--text-inverse);border-color:var(--success, #0f7b6c)}.onboarding-step-indicator .step-line{width:40px;height:2px;background:var(--border, #e5e7eb);transition:background .3s}.onboarding-step-indicator .step-line.done{background:var(--success, #0f7b6c)}.onboarding-currency-options{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:16px 0}.onboarding-currency-btn{padding:10px 20px;border-radius:24px;border:2px solid var(--border, #e5e7eb);background:var(--bg, #fff);font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;color:var(--text, #37352f)}.onboarding-currency-btn:hover{border-color:var(--accent, #0077ff);background:var(--accent-light, rgba(0,119,255,.06))}.onboarding-currency-btn.selected{border-color:var(--accent, #0077ff);background:var(--accent, #0077ff);color:var(--text-inverse)}.onboarding-skip{background:none;border:none;color:var(--text-secondary, #6b6b6b);font-size:14px;cursor:pointer;text-decoration:none;transition:color var(--transition-normal);padding:8px 16px}.onboarding-skip:hover{color:var(--text, #37352f);text-decoration:underline}.onboarding-template-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.onboarding-template-card{padding:14px;border-radius:12px;border:2px solid var(--border, #e5e7eb);background:var(--bg, #fff);cursor:pointer;text-align:center;transition:all .2s}.onboarding-template-card:hover{border-color:var(--accent, #0077ff);background:var(--accent-light, rgba(0,119,255,.06))}.onboarding-template-card.selected{border-color:var(--accent, #0077ff);background:var(--accent, #0077ff);color:var(--text-inverse, #fff)}.onboarding-template-card.selected .onboarding-template-desc{opacity:.85}.onboarding-template-icon{font-size:28px;margin-bottom:4px}.onboarding-template-name{font-weight:600;font-size:14px}.onboarding-template-desc{font-size:12px;opacity:.7;margin-top:2px}.onboarding-budget-list{max-height:320px;overflow-y:auto;margin:16px 0;border:1px solid var(--border, #e5e7eb);border-radius:12px}.onboarding-budget-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border, #e5e7eb);transition:opacity .2s}.onboarding-budget-row:last-child{border-bottom:none}.onboarding-budget-row.disabled{opacity:.4}.onboarding-budget-toggle{width:18px;height:18px;accent-color:var(--accent, #0077ff);cursor:pointer;flex-shrink:0}.onboarding-budget-cat{flex:1;font-size:14px;font-weight:500;white-space:nowrap}.onboarding-budget-amount{width:90px;padding:6px 8px;border-radius:8px;border:1px solid var(--border, #e5e7eb);text-align:right;font-size:14px;background:var(--bg, #fff)}.onboarding-budget-amount:focus{outline:none;border-color:var(--accent, #0077ff)}.onboarding-budget-amount:disabled{background:var(--bg-secondary, #f9fafb);cursor:not-allowed}.onboarding-budget-percent{font-size:12px;color:var(--text-secondary, #888);min-width:36px;text-align:right}.onboarding-summary-bar{padding:14px 16px;border-radius:12px;margin-top:12px;background:var(--bg-secondary, #f9fafb);border:1px solid var(--border, #e5e7eb)}.onboarding-summary-amounts{display:flex;justify-content:space-between;font-size:14px;margin-bottom:8px}.onboarding-summary-progress{height:6px;border-radius:3px;background:var(--border, #e5e7eb);overflow:hidden}.onboarding-summary-fill{height:100%;border-radius:3px;background:var(--accent, #0077ff);transition:width .3s}.onboarding-summary-fill.over{background:var(--danger, #ef4444)}@media(max-width:480px){.onboarding-template-grid{grid-template-columns:1fr}.onboarding-budget-list{max-height:260px}.onboarding-budget-amount{width:80px}}.split-modal-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-overlay-split);opacity:0;transition:opacity .25s}.split-modal-overlay.visible{opacity:1}.split-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-45%) scale(.95);background:var(--card-bg, #fff);border-radius:var(--radius-lg, 16px);max-width:560px;width:92%;max-height:80vh;overflow-y:auto;z-index:var(--z-modal-split);box-shadow:var(--shadow-lg, 0 16px 48px rgba(0,0,0,.2));border:1px solid var(--border, #e5e7eb);opacity:0;transition:opacity .25s,transform .3s cubic-bezier(.34,1.56,.64,1);will-change:transform,opacity}.split-modal.visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.split-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 12px;border-bottom:1px solid var(--border, #e5e7eb)}.split-modal-header h2{font-size:18px;margin:0}.split-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary, #888);padding:4px 8px;border-radius:8px;transition:background var(--transition-normal)}.split-modal-close:hover{background:var(--bg-secondary, #f5f5f5)}.split-modal-body{padding:16px 24px}.split-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:12px 24px 20px;border-top:1px solid var(--border, #e5e7eb)}.split-line{display:grid;grid-template-columns:1fr 100px 1fr auto;gap:8px;margin-bottom:10px;align-items:center;padding-left:12px;border-left:3px solid var(--accent-light, rgba(0,119,255,.15));border-radius:2px;transition:border-color var(--transition-fast, .15s)}.split-line:hover{border-left-color:var(--accent, #0077ff)}.split-line input,.split-line select{padding:10px 12px;border-radius:var(--radius-sm, 8px);border:1px solid var(--border, #e5e7eb);background:var(--bg-secondary, #f9fafb);font-size:var(--text-sm);transition:border-color var(--transition-fast, .15s)}.split-line input:focus,.split-line select:focus{outline:none;border-color:var(--accent, #0077ff);box-shadow:0 0 0 3px var(--accent-light, rgba(0,119,255,.08))}.split-remove-btn{background:none;border:none;color:var(--danger, #ef4444);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:8px;transition:background var(--transition-normal)}.split-remove-btn:hover{background:var(--danger-bg, #fef2f2)}.split-summary{padding:10px 14px;border-radius:var(--radius-sm, 8px);font-size:var(--text-sm);font-weight:500;margin-top:8px;text-align:center;transition:all var(--transition-fast, .15s)}.split-summary.valid{background:var(--success-bg, rgba(15,123,108,.06));color:var(--success, #0f7b6c);border:1px solid var(--success, #0f7b6c)}.split-summary.invalid{background:var(--danger-bg, rgba(224,62,62,.06));color:var(--danger, #e03e3e);border:1px solid var(--danger, #e03e3e)}.split-add-line-btn{width:100%;padding:10px;border:2px dashed var(--border, #e5e7eb);border-radius:var(--radius-sm, 8px);background:transparent;cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary, #6b6b6b);transition:all var(--transition-fast, .15s);margin-top:4px}.split-add-line-btn:hover{border-color:var(--accent, #0077ff);color:var(--accent, #0077ff);background:var(--accent-light, rgba(0,119,255,.04))}.split-badge{display:inline-flex;align-items:center;gap:2px;font-size:10px;padding:2px 6px;border-radius:4px;background:var(--bg-secondary, #f0f0f5);color:var(--text-secondary, #888);margin-left:6px;vertical-align:middle}.split-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast);display:inline-flex;align-items:center}.split-btn:hover{background:var(--bg-secondary);color:var(--text)}.transaction-item[data-split-group]{border-left:3px solid var(--accent, #6366f1)}.savings-advice-section{background:var(--card-bg, #fff);border-radius:12px;padding:20px;border:1px solid var(--border, #e5e7eb)}.savings-potential-banner{display:flex;align-items:center;gap:14px;padding:18px 22px;border-radius:var(--radius-md, 12px);background:linear-gradient(135deg,var(--success-bg, rgba(15,123,108,.08)),rgba(52,211,153,.05));border:1px solid rgba(15,123,108,.2);margin-bottom:18px;font-size:14px;font-weight:500}.savings-potential-banner strong{font-size:1.5rem;font-weight:700;color:var(--success, #0f7b6c);display:block;margin-top:4px}.savings-potential-icon{font-size:32px;flex-shrink:0}.savings-tips-list{display:flex;flex-direction:column;gap:8px}.savings-tip{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--radius-md, 10px);font-size:var(--text-sm);line-height:1.5;background:var(--bg, #fff);border:1px solid var(--border, #e5e7eb);box-shadow:var(--shadow-xs, 0 1px 2px rgba(0,0,0,.04));transition:transform var(--transition-fast, .15s),box-shadow var(--transition-fast, .15s)}.savings-tip:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm, 0 2px 8px rgba(0,0,0,.06))}.savings-tip-high{border-left:3px solid var(--danger, #ef4444)}.savings-tip-medium{border-left:3px solid var(--warning, #f59e0b)}.savings-tip-low{border-left:3px solid var(--success, #22c55e)}.savings-tip-info{border-left:3px solid var(--accent, #6366f1)}.savings-tip-icon{font-size:16px;flex-shrink:0;margin-top:1px}.savings-tip-text{flex:1;color:var(--text, #1a1a2e)}.savings-category-analysis{margin-top:4px}.savings-cat-row{display:grid;grid-template-columns:100px 1fr 90px;gap:10px;align-items:center;padding:6px 0;font-size:var(--text-sm)}.savings-cat-name{font-weight:600;color:var(--text, #37352f);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}.savings-cat-bar-wrap{position:relative;height:8px;border-radius:4px;background:var(--bg-secondary, #f0f0f5)}.savings-cat-bar{position:absolute;top:0;left:0;height:100%;border-radius:4px;background:var(--accent, #6366f1);transition:width .4s ease}.savings-cat-row.over .savings-cat-bar{background:var(--danger, #ef4444)}.savings-cat-row.warning .savings-cat-bar{background:var(--warning, #f59e0b)}.savings-cat-row.under .savings-cat-bar{background:var(--success, #22c55e)}.savings-cat-benchmark{position:absolute;top:-2px;left:100%;width:2px;height:12px;background:var(--text-secondary, #888)}.savings-cat-values{font-size:var(--text-xs);color:var(--text-secondary, #888);text-align:right;white-space:nowrap}.dashboard-edit-mode section[data-section-id]{position:relative;outline:2px dashed var(--accent, #6366f1);outline-offset:4px;border-radius:12px;transition:outline-color .2s}.dashboard-edit-mode section[data-section-id]:hover{outline-color:var(--success, #22c55e)}.drag-handle{position:absolute;top:-14px;left:50%;transform:translate(-50%);background:var(--bg, #fff);color:var(--text-secondary, #6b6b6b);font-size:var(--text-xs);font-weight:600;padding:4px 16px;border-radius:var(--radius-xl, 24px);cursor:grab;z-index:10;user-select:none;white-space:nowrap;border:1px solid var(--border, rgba(55,53,47,.09));box-shadow:var(--shadow-sm, 0 2px 8px rgba(0,0,0,.06));transition:all var(--transition-fast, .15s)}.drag-handle:hover{background:var(--accent, #0077ff);color:var(--text-inverse);border-color:var(--accent, #0077ff);box-shadow:0 2px 12px #0077ff4d}.drag-handle:active{cursor:grabbing;transform:translate(-50%) scale(.95)}.section-dragging{opacity:.6;box-shadow:var(--shadow-lg, 0 8px 32px rgba(0,0,0,.1));transform:scale(1.01);transition:opacity .2s,transform .2s}.section-drop-target{outline:2px dashed var(--accent, #0077ff)!important;outline-offset:4px;background:var(--accent-light, rgba(0,119,255,.03))}.budget-total-summary{background:var(--bg, #fff);border:1px solid var(--border, #e5e7eb);border-left:4px solid var(--success, #0f7b6c);border-radius:var(--radius-md, 12px);padding:18px 22px;margin-bottom:18px;transition:border-color var(--transition-normal, .2s),background var(--transition-normal, .2s)}.budget-total-summary.warning{border-left-color:var(--warning, #d9730d);background:var(--warning-bg, rgba(217,115,13,.04))}.budget-total-summary.danger{border-left-color:var(--danger, #e03e3e);background:var(--danger-bg, rgba(224,62,62,.04))}.budget-total-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.budget-total-label{font-size:.72rem;font-weight:600;color:var(--text-secondary, #6b6b6b);text-transform:uppercase;letter-spacing:.06em}.budget-total-amount{font-size:1.1rem;font-weight:700;color:var(--text, #37352f)}.budget-total-bar{height:10px!important;border-radius:5px!important}.budget-total-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.budget-total-pct{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary, #6b6b6b)}.budget-total-remaining{font-size:1.15rem;font-weight:700}.budget-total-remaining.positive{color:var(--success, #0f7b6c)}.budget-total-remaining.negative{color:var(--danger, #e03e3e)}.budget-progress-bar,.savings-progress-bar,.report-cat-bar-wrap,.savings-cat-bar-wrap{height:10px;border-radius:100px}.savings-goals h3,.upcoming-widget h4,.savings-advice-section h3,.report-section h3{font-weight:600;font-size:1.05rem;letter-spacing:-.01em;color:var(--text, #37352f);margin-bottom:12px}.no-goals-msg,.upcoming-empty,.adv-search-hint,.savings-advice-empty{text-align:center;color:var(--text-tertiary, #9b9a97);padding:32px 16px;font-size:14px;line-height:1.6}.budget-alert-badge,.split-badge,.tag-pill-sm{font-size:10px;padding:2px 7px;border-radius:10px;font-weight:600;vertical-align:middle}.savings-modal input:focus,.report-modal-body input:focus,.csv-wizard-body input:focus,.csv-wizard-body select:focus,.split-modal-body input:focus,.split-modal-body select:focus{outline:none;border-color:var(--accent, #0077ff);box-shadow:0 0 0 3px var(--accent-light, rgba(0,119,255,.08))}.savings-modal-close:hover,.report-modal-close:hover,.csv-wizard-close:hover,.split-modal-close:hover{background:var(--bg-hover, rgba(0,0,0,.03));border-radius:var(--radius-sm, 6px)}@media(max-width:600px){.onboarding-card{padding:32px 20px}.onboarding-card h2{font-size:22px}.split-line{grid-template-columns:1fr 80px}.split-line select{grid-column:1 / -1}.savings-cat-row{grid-template-columns:80px 1fr 70px}.drag-handle{font-size:10px;padding:2px 10px}.budget-total-header,.budget-total-footer{flex-direction:column;gap:4px;align-items:flex-start}}.rollover-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm, 6px);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em}.rollover-badge.positive{background:#51cf661f;color:var(--success)}.rollover-badge.negative{background:#ff6b6b1f;color:var(--danger)}.rollover-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm, 6px);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast, .15s);white-space:nowrap}.rollover-toggle:hover{border-color:var(--accent);color:var(--text)}.rollover-toggle input[type=checkbox]{cursor:pointer;accent-color:var(--accent)}.category-rules{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius, 12px);padding:24px}.rules-input{flex:1;min-width:150px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);font-size:13px}.rule-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm, 6px);margin-bottom:6px;transition:all var(--transition-fast, .15s)}.rule-item:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000000f}.rule-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.rule-pattern{font-weight:600;color:var(--accent);font-size:var(--text-sm);background:var(--accent-light, rgba(79, 110, 247, .08));padding:2px 8px;border-radius:var(--radius-xs, 6px)}.rule-arrow{color:var(--text-secondary);font-size:14px}.rule-category{font-size:var(--text-sm);color:var(--text);font-weight:500}.rule-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}.rule-match-count{font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg);padding:2px 8px;border-radius:10px;border:1px solid var(--border)}.btn-icon-sm{background:none;border:none;cursor:pointer;padding:4px;border-radius:var(--radius-sm, 6px);transition:all var(--transition-fast, .15s);font-size:14px;opacity:.6;min-height:44px;min-width:44px}.btn-icon-sm:hover{opacity:1;background:#ff6b6b1a}.rule-suggestion{transition:all var(--transition-fast, .15s)}.rule-suggestion:hover{background:var(--bg-hover, rgba(0, 0, 0, .03))!important}.trends-summary{display:flex;flex-wrap:wrap;gap:8px;padding-top:8px}.trend-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:var(--text-sm);font-weight:500;background:var(--bg-secondary);border:1px solid var(--border);transition:all var(--transition-fast, .15s)}.trend-badge:hover{border-color:var(--accent)}.trend-up{color:var(--danger);background:#ff6b6b14;border-color:#ff6b6b33}.trend-down{color:var(--success);background:#51cf6614;border-color:#51cf6633}.trend-stable{color:var(--text-secondary)}.member-breakdown{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius, 12px);padding:24px}.member-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.member-legend-item{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm, 6px);font-size:var(--text-sm);transition:all var(--transition-fast, .15s)}.member-legend-item:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000000f}.member-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.member-name{font-weight:600;color:var(--text)}.member-amount{font-weight:500;color:var(--text)}.member-percent{font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:8px}@media(max-width:600px){.rules-add-form{flex-direction:column}.rule-item{flex-direction:column;gap:8px;align-items:flex-start}.rule-meta{width:100%;justify-content:space-between}.member-legend{flex-direction:column}.member-legend-item{width:100%}.trends-summary{flex-direction:column}}.year-review-modal{max-width:700px}.year-review-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:24px}.year-review-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius, 12px);padding:16px;text-align:center;transition:all var(--transition-fast, .15s)}.year-review-card:hover{border-color:var(--accent);box-shadow:0 4px 12px #00000014}.year-card-label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:6px}.year-card-value{font-size:22px;font-weight:700;margin-bottom:4px}.year-card-change{font-size:var(--text-xs);color:var(--text-secondary)}.year-card-change.positive{color:var(--success)}.year-card-change.negative{color:var(--danger)}.year-review-highlights{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.year-highlight{display:flex;align-items:center;gap:10px;flex:1;min-width:200px;padding:12px 16px;border-radius:var(--radius-sm, 6px);background:var(--bg-secondary);border:1px solid var(--border)}.year-highlight.good{border-left:3px solid var(--success)}.year-highlight.bad{border-left:3px solid var(--warning)}.highlight-icon{font-size:24px}.year-highlight div{display:flex;flex-direction:column;gap:2px}.year-highlight strong{font-size:var(--text-sm);color:var(--text)}.year-highlight span{font-size:var(--text-sm);color:var(--text-secondary)}.year-review-section{margin-bottom:24px}.year-review-section h3{font-size:15px;font-weight:600;margin-bottom:12px;color:var(--text)}.year-categories-list{display:flex;flex-direction:column;gap:6px}.year-category-row{display:grid;grid-template-columns:120px 1fr 80px 40px;align-items:center;gap:8px;padding:6px 0}.year-cat-name{font-size:var(--text-sm);font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.year-cat-bar-container{height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden}.year-cat-bar{height:100%;background:linear-gradient(90deg,var(--accent),rgba(79,110,247,.6));border-radius:4px;transition:width .5s ease}.year-cat-amount{font-size:var(--text-sm);font-weight:600;text-align:right;color:var(--text)}.year-cat-pct{font-size:var(--text-xs);color:var(--text-secondary);text-align:right}.year-merchants-list{display:flex;flex-direction:column;gap:4px}.year-merchant-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm, 6px)}.year-merchant-rank{font-size:var(--text-sm);font-weight:700;color:var(--accent);min-width:24px}.year-merchant-name{flex:1;font-size:var(--text-sm);font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.year-merchant-count{font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg);padding:2px 6px;border-radius:8px}.year-merchant-amount{font-size:var(--text-sm);font-weight:600;color:var(--text)}.year-monthly-grid{display:flex;gap:4px;align-items:flex-end;padding:8px 0;overflow-x:auto}.year-month-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:40px}.year-month-bars{display:flex;gap:2px;align-items:flex-end;height:70px}.year-month-bar{width:12px;border-radius:3px 3px 0 0;min-height:2px;transition:height .5s ease}.year-month-bar.income{background:var(--success)}.year-month-bar.expense{background:var(--danger)}.year-month-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase}.calendar-header{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}.calendar-title{font-size:18px;font-weight:600;color:var(--text);min-width:180px;text-align:center}.calendar-nav-btn{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm, 6px);padding:6px 12px;cursor:pointer;font-size:14px;color:var(--text);transition:all var(--transition-fast, .15s)}.calendar-nav-btn:hover{border-color:var(--accent);background:var(--accent-light, rgba(79, 110, 247, .08))}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius, 12px);overflow:hidden}.calendar-day-header{padding:8px 4px;text-align:center;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;color:var(--text-secondary);background:var(--bg-secondary)}.calendar-cell{padding:8px 6px;min-height:64px;background:var(--bg);display:flex;flex-direction:column;gap:2px;cursor:default;transition:all var(--transition-fast, .15s)}.calendar-cell.empty{background:var(--bg-secondary);opacity:.5}.calendar-cell.today{border:2px solid var(--accent);border-radius:2px}.calendar-cell.weekend{background:var(--bg-tertiary, rgba(0, 0, 0, .02))}.calendar-cell.has-data{cursor:pointer}.calendar-cell.has-data:hover{background:var(--accent-light, rgba(79, 110, 247, .06))}.calendar-day-number{font-size:var(--text-sm);font-weight:600;color:var(--text)}.calendar-day-amount{font-size:10px;font-weight:600}.calendar-day-amount.positive{color:var(--success)}.calendar-day-amount.negative{color:var(--danger)}.calendar-day-dots{display:flex;gap:2px;align-items:center}.calendar-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.calendar-dot-more{font-size:9px;color:var(--text-secondary)}.calendar-popover{position:absolute;z-index:var(--z-dropdown);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius, 12px);box-shadow:0 8px 24px #00000026;width:280px;max-height:300px;overflow-y:auto;padding:12px}.calendar-popover-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.calendar-popover-header strong{font-size:14px;color:var(--text)}.calendar-popover-close{background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-secondary);padding:2px}.calendar-popover-summary{display:flex;gap:12px;margin-bottom:8px}.popover-income{font-size:var(--text-sm);font-weight:600;color:var(--success)}.popover-expense{font-size:var(--text-sm);font-weight:600;color:var(--danger)}.calendar-tx-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.calendar-tx-item:last-child{border-bottom:none}.calendar-tx-desc{flex:1;font-size:var(--text-sm);color:var(--text);min-width:100px}.calendar-tx-amount{font-size:var(--text-sm);font-weight:600}.calendar-tx-amount.positive{color:var(--success)}.calendar-tx-amount.negative{color:var(--danger)}.calendar-tx-cat{font-size:10px;background:var(--bg-secondary);padding:1px 6px;border-radius:6px;color:var(--text-secondary)}.daily-allowance-card{display:flex;align-items:center;gap:24px;padding:20px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius, 12px)}.daily-gauge{position:relative;width:100px;height:100px;border-radius:50%;background:conic-gradient(var(--gauge-color, var(--success)) 0deg,var(--gauge-color, var(--success)) var(--gauge-angle, 0deg),var(--bg, #f5f5f5) var(--gauge-angle, 0deg));display:flex;align-items:center;justify-content:center;flex-shrink:0}.daily-gauge-inner{width:76px;height:76px;border-radius:50%;background:var(--bg-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center}.daily-amount{font-size:16px;font-weight:700;color:var(--text)}.daily-label{font-size:var(--text-xs);color:var(--text-secondary)}.daily-info{flex:1;display:flex;flex-direction:column;gap:6px}.daily-info-row{display:flex;justify-content:space-between;align-items:center}.daily-info-label{font-size:var(--text-sm);color:var(--text-secondary)}.daily-info-value{font-size:var(--text-sm);font-weight:600;color:var(--text)}.daily-info-row.subtle .daily-info-label,.daily-info-row.subtle .daily-info-value{font-size:var(--text-xs);color:var(--text-secondary);font-weight:400}.daily-allowance-empty{text-align:center;padding:16px}@media(max-width:600px){.year-review-cards{grid-template-columns:repeat(2,1fr)}.year-review-highlights{flex-direction:column}.year-category-row{grid-template-columns:80px 1fr 60px 30px;font-size:var(--text-sm)}.year-monthly-grid{overflow-x:auto}.calendar-cell{min-height:44px;padding:4px}.calendar-day-amount{font-size:9px}.calendar-day-dots{display:none}.daily-allowance-card{flex-direction:column;align-items:center;text-align:center}.daily-info{width:100%}}.health-score{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius, 12px);padding:24px}.health-score-widget{display:flex;align-items:center;gap:24px}.health-gauge{position:relative;width:110px;height:110px;border-radius:50%;background:conic-gradient(var(--health-color, var(--success)) 0deg,var(--health-color, var(--success)) var(--health-angle, 0deg),var(--bg-secondary, #f5f5f5) var(--health-angle, 0deg));display:flex;align-items:center;justify-content:center;flex-shrink:0}.health-gauge-inner{width:86px;height:86px;border-radius:50%;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center}.health-score-number{font-size:28px;font-weight:800;color:var(--text);line-height:1}.health-score-label{font-size:var(--text-xs);color:var(--text-secondary)}.health-details{flex:1}.health-level{font-size:16px;font-weight:700;margin-bottom:4px}.health-summary{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:16px;line-height:1.4}.health-factors{display:flex;flex-direction:column;gap:8px}.health-factor-row{display:grid;grid-template-columns:120px 1fr 30px;align-items:center;gap:10px}.health-factor-label{font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap}.health-factor-bar-bg{height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden}.health-factor-bar{height:100%;border-radius:3px;transition:width .6s ease}.health-factor-score{font-size:var(--text-sm);font-weight:600;text-align:right;color:var(--text)}.health-factor-weight{font-size:11px;color:var(--text-tertiary);font-weight:400}.health-factor-detail{display:flex;flex-direction:column;gap:4px;padding:6px 10px;margin:-2px 0 4px;background:var(--bg-secondary);border-radius:6px;animation:fadeInDown .2s ease}.health-factor-detail-text{font-size:12px;color:var(--text-secondary)}.health-factor-tip{font-size:12px;color:var(--accent);font-weight:500}.subscriptions{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius, 12px);padding:24px}.subs-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px}.subs-summary-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm, 6px);padding:12px;text-align:center}.subs-summary-label{display:block;font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:4px}.subs-summary-value{display:block;font-size:18px;font-weight:700;color:var(--text)}.subs-summary-value.positive{color:var(--success)}.subs-summary-value.negative{color:var(--danger)}.subs-inactive-warning{padding:10px 14px;background:#ffa94d1a;border:1px solid rgba(255,169,77,.3);border-radius:var(--radius-sm, 6px);font-size:var(--text-sm);color:var(--warning);margin-bottom:16px}.subs-list{display:flex;flex-direction:column;gap:6px}.subs-item{padding:12px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm, 6px);transition:all var(--transition-fast, .15s)}.subs-item:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000000f}.subs-item.inactive{opacity:.65;border-left:3px solid var(--warning)}.subs-item-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.subs-desc{font-size:14px;font-weight:600;color:var(--text)}.subs-frequency{font-size:var(--text-xs);background:var(--bg);padding:2px 8px;border-radius:8px;color:var(--text-secondary);border:1px solid var(--border)}.subs-item-details{display:flex;align-items:center;gap:10px}.subs-category{font-size:var(--text-xs);color:var(--text-secondary)}.subs-monthly{font-size:var(--text-sm);font-weight:600;color:var(--text);margin-left:auto}.subs-badge-inactive{font-size:10px;background:#ffa94d26;color:var(--warning);padding:2px 6px;border-radius:6px;font-weight:600}@media(max-width:600px){.health-score-widget{flex-direction:column;align-items:center;text-align:center}.health-factor-row{grid-template-columns:80px 1fr 24px;gap:6px}.subs-summary{grid-template-columns:repeat(2,1fr)}.subs-item-main{flex-direction:column;align-items:flex-start;gap:4px}.subs-item-details{flex-wrap:wrap}}@media print{.sidebar,.mobile-header,.fab-container,.toast-container,.modal-overlay,.report-modal-overlay,#transactionForm,.filters-container,.selection-toolbar,.load-more-container,#loadMoreContainer,.btn-nav,.btn-icon,button,.user-menu,.chart-tabs,.scroll-indicator,footer{display:none!important}body{background:#fff!important;color:#000!important;font-size:12pt}.main-content{margin:0!important;padding:0!important;max-width:100%!important}.dashboard-grid{display:block!important}.dashboard-section{break-inside:avoid;page-break-inside:avoid;margin-bottom:16pt;box-shadow:none!important;border:1px solid #ccc}.summary-card,.stat-card,.transaction-item{background:#fff!important;box-shadow:none!important;border:1px solid #ddd}.transaction-list{max-height:none!important;overflow:visible!important}.transaction-item{page-break-inside:avoid}canvas{max-width:100%!important;height:auto!important}a[href]:after{content:" (" attr(href) ")";font-size:10pt;color:#666}.summary-row{display:flex!important;flex-wrap:wrap;gap:8pt}section,.dashboard-section,.chart-box,.budget-alert-item,.comparison-card,.projection-card{break-inside:avoid;page-break-inside:avoid}h2,h3,h4{page-break-after:avoid}*{animation:none!important;transition:none!important}.transaction-amount{color:#000!important}.transaction-amount.income,.upcoming-amount.income{color:#16a34a!important}.transaction-amount.expense,.upcoming-amount.expense{color:#dc2626!important}.nav-sidebar,.nav-sidebar-overlay,.quick-transaction-fab,.adv-search-overlay,.onboarding-overlay,header,#llmProviderSelector,.modal,.modal-overlay,.premium-gate{display:none!important}.transaction-checkbox,.edit-btn,.delete-btn,.split-btn{display:none!important}}.pricing-modal{max-width:960px!important;width:95vw;padding:32px;position:relative}.pricing-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:28px;cursor:pointer;color:var(--text-secondary);line-height:1;padding:4px 8px;border-radius:var(--radius-sm)}.pricing-close:hover{background:var(--bg-secondary)}.pricing-title{text-align:center;font-size:24px;margin-bottom:8px}.pricing-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:28px;font-size:15px}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.pricing-card{background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius-lg);padding:24px 20px;display:flex;flex-direction:column;position:relative;transition:transform .2s,box-shadow .2s}.pricing-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.pricing-card-recommended{border-color:var(--accent);box-shadow:var(--shadow-colored)}.pricing-card-current{border-color:var(--success)}.pricing-recommended-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--accent);color:var(--text-inverse);font-size:var(--text-sm);font-weight:600;padding:4px 14px;border-radius:20px;white-space:nowrap}.pricing-card-header{text-align:center;margin-bottom:20px}.pricing-card-header h3{font-size:20px;margin:0 0 8px}.pricing-current-badge{display:inline-block;background:var(--success-bg, rgba(34,197,94,.1));color:var(--success);font-size:var(--text-sm);font-weight:600;padding:2px 10px;border-radius:12px;margin-bottom:8px}.pricing-price{margin-top:8px}.pricing-amount{font-size:36px;font-weight:700;color:var(--text)}.pricing-period{font-size:14px;color:var(--text-secondary)}.pricing-feature-list{list-style:none;padding:0;margin:0 0 20px;flex:1}.pricing-feature-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:var(--text-sm);color:var(--text);border-bottom:1px solid var(--border-light, rgba(0,0,0,.04))}.pricing-feature-item:last-child{border-bottom:none}.pricing-check{font-size:14px;flex-shrink:0}.pricing-cross{color:var(--text-tertiary, #bbb);font-size:14px;flex-shrink:0}.pricing-value{font-weight:600;color:var(--accent);flex-shrink:0;min-width:50px}.pricing-btn{width:100%;padding:12px;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.pricing-btn-premium{background:var(--accent);color:var(--text-inverse)}.pricing-btn-premium:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:var(--shadow-colored)}.pricing-btn-pro{background:var(--gradient-warning);color:var(--text-inverse)}.pricing-btn-pro:hover{filter:brightness(1.08);transform:translateY(-1px)}.pricing-btn-current{background:var(--bg-tertiary, var(--border));color:var(--text-secondary);cursor:default}.pricing-later-btn{display:block;width:100%;padding:10px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;cursor:pointer}.pricing-later-btn:hover{background:var(--bg-secondary)}@media(max-width:768px){.pricing-grid{grid-template-columns:1fr;gap:16px}.pricing-modal{padding:20px 16px}}.premium-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:var(--text-sm);font-weight:600;white-space:nowrap}.premium-badge.tier-premium{background:linear-gradient(135deg,var(--accent-light),var(--accent-subtle));color:var(--accent);border:1px solid rgba(79,110,247,.2)}.premium-badge.tier-pro{background:linear-gradient(135deg,var(--warning-bg),var(--warning-subtle));color:var(--warning);border:1px solid rgba(245,158,11,.25)}.tier-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:var(--text-xs);font-weight:600;margin-top:4px}.tier-free{background:var(--bg-secondary);color:var(--text-secondary)}.tier-premium{background:linear-gradient(135deg,var(--accent-light),var(--accent-subtle));color:var(--accent)}.tier-pro{background:linear-gradient(135deg,var(--warning-bg),var(--warning-subtle));color:var(--warning)}.premium-gate{position:relative;min-height:150px;border-radius:var(--radius-md);overflow:hidden}.premium-gate-preview{filter:blur(4px);opacity:.5;pointer-events:none;user-select:none}.premium-gate-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(var(--bg-rgb, 255,255,255),.7);border-radius:var(--radius-md);text-align:center;padding:20px;gap:8px}[data-theme=dark] .premium-gate-overlay{background:#14161ccc}.premium-gate-icon{font-size:32px;margin-bottom:4px}.premium-gate-overlay h4{margin:0;font-size:16px;color:var(--text)}.premium-gate-overlay p{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.premium-gate-btn{margin-top:8px;padding:8px 20px;background:var(--accent);color:var(--text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:opacity .2s}.premium-gate-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.usage-overview{background:var(--bg);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border)}.usage-bars{display:flex;flex-direction:column;gap:16px}.usage-bar-item{display:flex;flex-direction:column;gap:6px}.usage-bar-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm)}.usage-bar-label{font-weight:500;color:var(--text)}.usage-bar-count{color:var(--text-secondary);font-size:var(--text-sm)}.usage-bar-track{height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden}.usage-bar-fill{height:100%;border-radius:4px;transition:width .4s ease;min-width:2px}.usage-bar-fill.usage-green{background:var(--success)}.usage-bar-fill.usage-yellow{background:var(--warning)}.usage-bar-fill.usage-red{background:var(--danger)}.usage-bar-remaining{font-size:var(--text-xs);color:var(--text-tertiary, #999)}.usage-upgrade-hint{margin-top:12px;text-align:center}.usage-upgrade-btn{padding:8px 16px;background:var(--accent);color:var(--text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer}.usage-upgrade-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.household-panel-overlay{z-index:var(--z-modal);display:flex;align-items:center;justify-content:center}.household-panel{position:relative;inset:auto;background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none;display:flex;flex-direction:column;padding:0;max-width:640px;width:95vw;max-height:85vh;overflow-y:auto;border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:none}.household-panel-body{padding:0 24px 24px}.household-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);padding:0 24px;margin-bottom:20px}.household-tab{padding:12px 20px;background:none;border:none;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s}.household-tab:hover{color:var(--text-primary)}.household-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.hp-member-list{display:flex;flex-direction:column;gap:12px}.hp-member-card{background:var(--bg-secondary, var(--bg));border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;position:relative}.hp-member-main{display:flex;align-items:center;gap:12px}.hp-member-avatar{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:var(--text-inverse);flex-shrink:0}.hp-member-info{flex:1;min-width:0}.hp-member-name{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.hp-member-email{font-size:var(--text-sm);color:var(--text-secondary);margin-top:2px}.hp-badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600;text-transform:uppercase}.hp-badge-self{background:var(--primary-color);color:var(--text-inverse)}.hp-badge-creator{background:#ffa94d;color:var(--text-inverse)}.hp-role-badge{font-size:var(--text-xs);padding:3px 8px;border-radius:6px;font-weight:600}.hp-role-admin{background:var(--warning-bg);color:var(--warning)}.hp-role-editor{background:var(--success-bg);color:var(--success)}.hp-role-viewer{background:var(--bg-tertiary);color:var(--text-secondary)}.hp-role-select{padding:4px 8px;border-radius:6px;border:1px solid var(--border);font-size:var(--text-sm);background:var(--bg)}.hp-member-contribution{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);font-size:var(--text-sm)}.hp-contribution-input-row{display:flex;align-items:center;gap:4px}.hp-contribution-input{width:60px;padding:4px 8px;border-radius:6px;border:1px solid var(--border);text-align:center;font-size:14px;font-weight:600;background:var(--bg)}.hp-contribution-unit{font-weight:600;color:var(--text-secondary)}.hp-contribution-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.hp-contribution-total{font-size:14px;flex:1}.hp-contribution-total.hp-warning{color:var(--danger)}.hp-warning-text{color:var(--danger);font-size:var(--text-sm)}.hp-remove-btn{position:absolute;top:8px;right:8px;background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-secondary);padding:4px 8px;border-radius:4px}.hp-remove-btn:hover{background:var(--danger-bg);color:var(--danger)}.hp-invite-section{margin-bottom:20px}.hp-invite-section h3,.hp-pending-section h3,.hp-settings-section h3{font-size:16px;margin-bottom:12px}.hp-invite-method-tabs{display:flex;gap:8px;margin-bottom:16px}.hp-method-btn{padding:8px 14px;border-radius:8px;border:1px solid var(--border-hover);background:var(--bg-secondary);font-size:var(--text-sm);cursor:pointer;transition:all .2s;color:var(--text)}.hp-method-btn:hover{border-color:var(--accent);background:var(--accent-light)}.hp-method-btn.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.hp-invite-form{display:flex;flex-direction:column;gap:12px}.hp-invite-role-row{display:flex;align-items:center;gap:8px;font-size:var(--text-sm)}.hp-email-field{margin-top:4px}.hp-invite-result{margin-top:16px;padding:16px;background:var(--bg-secondary, #f8f9fa);border-radius:var(--radius-lg);border:1px solid var(--border)}.hp-code-display{display:flex;align-items:center;gap:12px;justify-content:center}.hp-code-value{font-family:monospace;font-size:28px;font-weight:700;letter-spacing:6px;color:var(--accent)}.hp-code-hint{font-size:var(--text-sm);color:var(--text-secondary);margin-top:8px;text-align:center}.hp-link-display{display:flex;gap:8px}.hp-link-display .input-field{flex:1;font-size:var(--text-sm)}.hp-email-sent{font-size:14px;text-align:center}.hp-divider{border:none;border-top:1px solid var(--border);margin:20px 0}.hp-pending-list{display:flex;flex-direction:column;gap:8px}.hp-invitation-card{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary, #f8f9fa)}.hp-inv-info{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}.hp-inv-method{font-size:16px}.hp-inv-target{font-size:var(--text-sm);font-weight:500}.hp-inv-expires{font-size:var(--text-xs);color:var(--text-secondary)}.hp-revoke-btn{padding:4px 10px;font-size:var(--text-xs);background:none;border:1px solid var(--danger);color:var(--danger);border-radius:4px;cursor:pointer}.hp-revoke-btn:hover{background:var(--danger-bg)}.hp-empty{color:var(--text-secondary);font-size:var(--text-sm);text-align:center;padding:16px;font-style:italic}.hp-settings-section{margin-bottom:24px}.hp-setting-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:14px}.hp-setting-row label{font-weight:500;min-width:100px}.hp-name-edit-row{display:flex;gap:8px;flex:1}.hp-name-edit-row .input-field{flex:1}.hp-danger-zone{border:1px solid var(--danger);border-radius:var(--radius-lg);padding:16px}.hp-danger-hint{font-size:var(--text-sm);color:var(--text-secondary);margin-top:8px}.hp-join-row{display:flex;gap:8px}.hp-join-row .input-field{flex:1;font-size:16px;letter-spacing:4px;font-weight:700}.member-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:20px}.member-summary-card{background:var(--bg-secondary, var(--bg));border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:10px}.member-card-header{display:flex;align-items:center;gap:10px}.member-card-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:var(--text-inverse);flex-shrink:0}.member-card-name{font-weight:600;font-size:14px}.member-card-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}.member-metric{display:flex;flex-direction:column;gap:2px}.member-metric-label{font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.member-metric-value{font-size:16px;font-weight:700}.member-metric-value.income{color:var(--success, #51CF66)}.member-metric-value.expense{color:var(--danger, #FF6B6B)}.member-metric-value.balance{color:var(--primary-color)}.member-contribution-bar{margin-top:4px}.contribution-bar-track{height:8px;background:var(--border);border-radius:4px;overflow:hidden;position:relative}.contribution-bar-expected{position:absolute;top:0;left:0;height:100%;background:var(--text-secondary);opacity:.3;border-radius:4px}.contribution-bar-actual{position:absolute;top:0;left:0;height:100%;background:var(--primary-color);border-radius:4px;transition:width .3s ease}.contribution-bar-label{font-size:var(--text-xs);color:var(--text-secondary);margin-top:4px;display:flex;justify-content:space-between}.member-stats-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.member-stats-tabs .tab-btn{padding:10px 16px;background:none;border:none;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:color .2s,border-color .2s}.member-stats-tabs .tab-btn:hover{color:var(--text-primary)}.member-stats-tabs .tab-btn.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.member-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--accent-light, rgba(99, 102, 241, .12));color:var(--primary-color);font-size:10px;font-weight:700;margin-left:6px;vertical-align:middle;flex-shrink:0}.split-mode-selector{display:flex;gap:8px;margin-bottom:20px}.split-mode-btn{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s;color:var(--text);text-align:center}.split-mode-btn:hover{border-color:var(--primary-color);background:var(--accent-light, rgba(99, 102, 241, .06))}.split-mode-btn.active{background:var(--primary-color);color:var(--text-inverse);border-color:var(--primary-color)}.split-summary-cards{display:flex;gap:12px;margin-bottom:20px}.split-member-card{flex:1;padding:16px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-secondary, var(--bg));display:flex;flex-direction:column;gap:8px}.split-member-card .smc-header{display:flex;align-items:center;gap:10px}.split-member-card .smc-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:var(--text-inverse);flex-shrink:0}.split-member-card .smc-name{font-weight:600;font-size:14px}.split-member-card .smc-amount{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.split-member-card .smc-percents{display:flex;gap:12px;font-size:var(--text-xs);color:var(--text-secondary)}.split-member-card .smc-percent-real{font-weight:600;color:var(--primary-color)}.split-member-card .smc-percent-target{font-weight:500}.split-member-card .smc-income-row{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:var(--text-sm)}.split-member-card .smc-income-input{width:90px;padding:4px 8px;border-radius:6px;border:1px solid var(--border);text-align:right;font-size:14px;font-weight:600;background:var(--bg)}.split-settlement{padding:16px;border-radius:var(--radius-lg);background:var(--accent-light, rgba(99, 102, 241, .06));border:1px solid var(--primary-color);margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.split-settlement .settlement-text{font-size:14px;font-weight:600}.split-settlement .settlement-amount{font-size:20px;font-weight:700;color:var(--primary-color)}.split-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.split-chart-box{background:var(--bg-secondary, var(--bg));border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.split-chart-box h4{font-size:13px;font-weight:600;margin-bottom:12px;color:var(--text-secondary)}.split-ai-section{margin-bottom:20px}.split-ai-result{margin-top:12px;padding:16px;border-radius:var(--radius-lg);background:var(--bg-secondary, var(--bg));border:1px solid var(--border);font-size:14px;line-height:1.6}.split-ai-result h4{font-size:13px;font-weight:600;margin:12px 0 6px;color:var(--text-secondary)}.split-ai-result ul{margin:0;padding-left:18px}.split-ai-result li{margin-bottom:4px}.split-history{max-height:200px;overflow-y:auto}.split-history-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:var(--text-sm)}.split-history-item:last-child{border-bottom:none}.split-history-date{color:var(--text-secondary);font-size:var(--text-xs);min-width:60px}.split-history-detail{flex:1}.split-history-amount{font-weight:700;color:var(--primary-color)}.split-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;display:flex;align-items:center;gap:8px}@media(max-width:600px){.split-summary-cards{flex-direction:column}.split-charts{grid-template-columns:1fr}.split-settlement{flex-direction:column;text-align:center}}.budget-income-section{background:var(--accent-light);padding:16px;border-radius:var(--radius-sm);margin-bottom:20px;border:1px solid var(--accent)}.budget-add-category-form{background:var(--bg-secondary);padding:16px;border-radius:var(--radius-sm);margin-bottom:20px;border:1px solid var(--border)}.budget-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.budget-template-card{background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all var(--transition-fast);text-align:center}.budget-template-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.budget-template-card.selected{border-color:var(--accent);background:var(--accent-light)}.budget-template-icon{font-size:32px;margin-bottom:8px}.budget-template-name{font-weight:600;font-size:15px;color:var(--text);margin-bottom:4px}.budget-template-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4}[data-theme=dark] .budget-template-card{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .budget-template-card.selected{background:var(--accent-light)}.calendar-cell.heatmap-0{background:var(--bg)}.calendar-cell.heatmap-1{background:#22c55e14}.calendar-cell.heatmap-2{background:#eab3081a}.calendar-cell.heatmap-3{background:#f9731624}.calendar-cell.heatmap-4{background:#ef444429}.calendar-cell.heatmap-5{background:#ef444447}[data-theme=dark] .calendar-cell.heatmap-1{background:#22c55e1f}[data-theme=dark] .calendar-cell.heatmap-2{background:#eab30824}[data-theme=dark] .calendar-cell.heatmap-3{background:#f973162e}[data-theme=dark] .calendar-cell.heatmap-4{background:#ef444438}[data-theme=dark] .calendar-cell.heatmap-5{background:#ef444459}.heatmap-legend{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--text-secondary);margin-top:8px}.heatmap-legend-block{width:14px;height:14px;border-radius:3px;border:1px solid var(--border)}.heatmap-toggle-btn{font-size:var(--text-sm);padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.heatmap-toggle-btn.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.forecast-confidence{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);font-weight:600;padding:4px 12px;border-radius:20px;background:color-mix(in srgb,var(--success) 12%,transparent);margin-left:auto}.forecast-categories{padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border);margin-top:16px}.forecast-categories h5{margin:0 0 12px;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.forecast-category-bar{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border-light, rgba(0,0,0,.04))}.forecast-category-bar:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.bill-paid{opacity:.6;text-decoration:line-through;border-left:3px solid var(--success)!important}.bill-checkbox{display:flex;align-items:center;cursor:pointer;margin-right:4px}.bill-checkbox input{display:none}.bill-check-icon{font-size:16px}.bill-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:50%;background:var(--danger);color:var(--text-inverse);font-size:var(--text-xs);font-weight:700;padding:0 4px;margin-left:6px}.btn-snooze{background:none;border:1px solid var(--border);border-radius:6px;padding:4px 6px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;transition:all .2s;flex-shrink:0}.btn-snooze:hover{background:var(--surface-hover);color:var(--text-primary)}.bill-summary-bar{display:flex;align-items:center;gap:6px;background:var(--danger-bg, rgba(239, 68, 68, .08));color:var(--danger);padding:8px 12px;border-radius:8px;font-size:13px;font-weight:500;margin-bottom:12px}.auto-cat-badge{display:inline-flex;align-items:center;gap:2px;font-size:10px;font-weight:600;color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent);padding:1px 5px;border-radius:4px;margin-left:4px}[data-theme=dark] .forecast-categories{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .bill-badge{background:var(--danger)}[data-theme=dark] .auto-cat-badge{color:var(--primary);background:color-mix(in srgb,var(--primary) 20%,transparent)}.debt-card{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;transition:all var(--transition-fast)}.debt-card:hover{border-color:var(--primary)}.debt-settled{opacity:.5;text-decoration:line-through;border-left:3px solid var(--success)}.debt-pending{border-left:3px solid var(--warning)}.debt-matrix{display:grid;gap:8px;margin:12px 0}.account-card{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:6px}.account-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);padding:2px 6px;border-radius:4px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}.account-balance{font-weight:600;font-size:14px}.net-worth-card{text-align:center;padding:16px;background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border)}.net-worth-gauge{display:flex;height:8px;border-radius:4px;overflow:hidden;margin:12px 0}.net-worth-gauge .assets-bar{background:var(--success)}.net-worth-gauge .liabilities-bar{background:var(--danger)}.merchant-card{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:6px;transition:border-color var(--transition-fast)}.merchant-card:hover{border-color:var(--primary)}.merchant-frequency-badge{font-size:10px;padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--text-secondary) 12%,transparent)}[data-theme=dark] .debt-card,[data-theme=dark] .account-card,[data-theme=dark] .merchant-card{background:var(--bg);border-color:var(--border)}[data-theme=dark] .net-worth-card{background:var(--bg-secondary);border-color:var(--border)}.scheduled-tx-card{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg);border:2px dashed var(--border);border-radius:var(--radius);margin-bottom:6px;opacity:.8}.scheduled-tx-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,transparent);padding:1px 6px;border-radius:4px}.nw-type-btn.active{background:var(--primary);color:var(--text-inverse);border-color:var(--primary)}.attachment-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:16px;text-align:center;cursor:pointer;transition:border-color var(--transition-fast);color:var(--text-secondary);font-size:var(--text-sm)}.attachment-zone:hover{border-color:var(--primary)}.attachment-zone.dragover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 5%,transparent)}.attachment-thumb{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:var(--bg-secondary);border-radius:var(--radius);font-size:var(--text-sm);margin:4px}.attachment-badge{display:inline-flex;font-size:var(--text-sm);cursor:pointer;margin-left:2px}.sync-indicator{display:none;align-items:center;gap:4px;font-size:var(--text-sm);color:var(--warning);padding:2px 8px;border-radius:12px;background:color-mix(in srgb,var(--warning) 12%,transparent)}.bill-reminder-badge{background:var(--danger);color:#fff;font-size:11px;padding:2px 7px;border-radius:10px;font-weight:600;cursor:pointer}.sync-indicator.syncing{animation:pulse 1.5s ease-in-out infinite}.scheduled-report-config{display:flex;flex-wrap:wrap;gap:12px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border);margin-top:12px}.scheduled-report-config select,.scheduled-report-config input{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg);font-size:var(--text-sm);color:var(--text)}[data-theme=dark] .scheduled-tx-card{background:var(--bg);border-color:var(--border)}[data-theme=dark] .attachment-zone{border-color:var(--border)}[data-theme=dark] .scheduled-report-config,[data-theme=dark] .household-panel{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .projection-card{border-top-color:var(--primary)}[data-theme=dark] .forecast-confidence{background:color-mix(in srgb,var(--success) 15%,transparent)}[data-theme=dark] .forecast-category-bar{border-bottom-color:#ffffff0f}[data-theme=dark] .hp-role-admin{background:#ffa94d26;color:#ffa94d}[data-theme=dark] .hp-role-editor{background:#51cf6626;color:#51cf66}[data-theme=dark] .hp-role-viewer{background:#a8a8b026;color:var(--text-secondary)}[data-theme=dark] .hp-badge-creator{background:#ffa94d33;color:#ffa94d}[data-theme=dark] .hp-badge-self{background:#07f3;color:#6ba3ff}[data-theme=dark] .hp-method-btn{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text)}[data-theme=dark] .hp-method-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}[data-theme=dark] .hp-role-select,[data-theme=dark] .hp-contribution-input{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text)}[data-theme=dark] .hp-remove-btn:hover,[data-theme=dark] .hp-revoke-btn:hover{background:#e03e3e26}[data-theme=dark] .hp-revoke-btn{border-color:#e03e3e80}[data-theme=dark] .hp-invite-result,[data-theme=dark] .hp-invitation-card{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=dark] .hp-danger-zone{border-color:#e03e3e66}[data-theme=dark] .input-field{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text)}@media(max-width:640px){.household-panel{max-width:100vw;width:100vw;max-height:100vh;border-radius:0;position:relative;inset:auto}.projection-cards{grid-template-columns:1fr 1fr;gap:10px}.projection-card{padding:14px}.projection-value{font-size:22px}.household-tabs{padding:0 16px}.household-panel-body{padding:0 16px 16px}.hp-member-main{flex-wrap:wrap}.member-summary-grid{grid-template-columns:1fr}.member-stats-tabs{gap:0}.member-stats-tabs .tab-btn{padding:8px 12px;font-size:var(--text-sm)}.budget-template-grid{grid-template-columns:1fr 1fr}.savings-modal-actions{flex-direction:column;gap:8px}.savings-modal-actions .btn,.savings-modal-actions .btn-danger,.savings-modal-actions .btn-secondary,.savings-modal-actions .btn-primary{width:100%;justify-content:center}.modal-body{padding:0 16px 16px}}.nav-toggle{font-size:20px;padding:4px 8px;line-height:1;border:none;background:transparent;color:var(--text);cursor:pointer;border-radius:6px;transition:background .2s}.nav-toggle:hover{background:var(--bg-secondary)}.nav-sidebar{position:fixed;left:-300px;top:0;bottom:0;width:280px;z-index:var(--z-nav);background:var(--bg);border-right:1px solid var(--border);transition:left .3s var(--ease-out-expo);overflow-y:auto;box-shadow:var(--shadow-lg)}.nav-sidebar.open{left:0}.nav-sidebar-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-nav-overlay);display:none;transition:opacity .3s}.nav-sidebar-overlay.visible{display:block}.nav-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid var(--border)}.nav-sidebar-title{font-size:16px;font-weight:700;color:var(--text)}.nav-sidebar-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary);padding:0 4px;line-height:1;border-radius:4px;transition:color .2s,background .2s}.nav-sidebar-close:hover{color:var(--danger);background:var(--bg-secondary)}.nav-sidebar-list{list-style:none;padding:8px 0;margin:0}.nav-sidebar-item{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;color:var(--text);font-size:14px;transition:background .15s;border-left:3px solid transparent}.nav-sidebar-item:hover{background:var(--accent-subtle);border-left-color:var(--accent);color:var(--accent)}.nav-sidebar-item:active{transform:scale(.97);transition:transform .1s ease}.nav-sidebar-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.nav-sidebar-label{flex:1}.settings-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:20px;overflow-x:auto;-webkit-overflow-scrolling:touch}.settings-tab{padding:10px 16px;border:none;background:none;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:color .2s,border-color .2s}.settings-tab:hover{color:var(--text);background:var(--accent-subtle)}.settings-tab:active{transform:scale(.97);transition:transform .1s ease}.settings-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.settings-section{margin-bottom:16px}.settings-section-title{font-size:var(--text-base);font-weight:600;margin-bottom:12px;color:var(--text)}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-row-label{font-size:var(--text-sm);color:var(--text)}.settings-row-value{font-size:var(--text-sm);color:var(--text-secondary)}.settings-row .btn-nav{padding:6px 12px;font-size:var(--text-sm)}.icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex-shrink:0;line-height:1}.icon svg{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.icon-xs{font-size:14px}.icon-sm{font-size:16px}.icon-md{font-size:20px}.icon-lg{font-size:24px}.icon-xl{font-size:32px}.section-header-row .icon,h3 .icon,h4 .icon{margin-right:6px;opacity:.8}.btn-nav .icon,.btn-primary .icon,.btn-secondary .icon,.btn-danger .icon{margin-right:4px}.toast .icon{flex-shrink:0}.tx-actions-btns .icon{font-size:16px}.nav-sidebar-icon .icon{font-size:18px}.bottom-nav{display:none}@media(max-width:768px){.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:64px;background:#ffffffd9;border-top:1px solid var(--border);z-index:var(--z-fab);padding:4px 8px env(safe-area-inset-bottom,0);justify-content:space-around;align-items:center;box-shadow:0 -1px #0000000a,0 -4px 16px #0000000a;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 12px;border:none;background:none;cursor:pointer;color:var(--text-tertiary);transition:color var(--transition-fast),transform var(--transition-fast);border-radius:var(--radius-sm);min-width:48px;-webkit-tap-highlight-color:transparent}.bottom-nav-item:active{transform:scale(.92)}.bottom-nav-item.active{color:var(--accent);font-weight:var(--font-semibold)}.bottom-nav-item.active .bottom-nav-icon{background:var(--accent-light);border-radius:var(--radius-sm);padding:2px 10px}.bottom-nav-icon{display:flex;align-items:center;justify-content:center;height:24px}.bottom-nav-label{font-size:10px;font-weight:var(--font-medium);line-height:1;white-space:nowrap}.bottom-nav-add{position:relative;color:var(--text-inverse)!important;background:linear-gradient(135deg,var(--accent),#7c5cfc);width:52px;height:52px;border-radius:16px;margin-top:-20px;box-shadow:0 4px 16px #4f6ef74d;padding:0;min-width:unset}.bottom-nav-add:active{transform:scale(.88)}.bottom-nav-add .bottom-nav-icon{height:auto}body.has-bottom-nav .quick-fab{display:none!important}body.has-bottom-nav{padding-bottom:72px}}@media(max-width:768px)and (prefers-color-scheme:dark){.bottom-nav{background:#0f0f17e6}}.ptr-indicator{position:fixed;top:-48px;left:0;right:0;height:48px;display:flex;align-items:center;justify-content:center;z-index:var(--z-fab);opacity:0;transition:transform .3s var(--ease-spring),opacity .2s;pointer-events:none}.ptr-content{display:flex;align-items:center;gap:8px;padding:8px 20px;background:var(--bg);border-radius:100px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.ptr-icon{display:flex;color:var(--accent);transition:transform .15s ease}.ptr-text{font-size:13px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.ptr-ready .ptr-icon{color:var(--success)}.ptr-refreshing .ptr-icon{animation:ptrSpin .8s linear infinite}@keyframes ptrSpin{to{transform:rotate(360deg)}}@media(min-width:769px){.ptr-indicator{display:none}}@media(max-width:768px){.transaction-item{position:relative;overflow:hidden}.swipe-inner{position:relative;z-index:2;background:var(--bg);transition:transform .3s var(--ease-spring);display:flex;align-items:center;padding:0;gap:inherit;flex:1;min-width:0}.swipe-action{position:absolute;top:0;bottom:0;width:80px;display:flex;align-items:center;justify-content:center;z-index:1;opacity:0;transition:opacity .15s ease}.swipe-action-left{left:0;background:var(--accent)}.swipe-action-right{right:0;background:var(--danger)}.swipe-action-btn{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border:none;background:none;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent}.transaction-item.swiping{z-index:10}}@media(min-width:769px){.swipe-action{display:none!important}}.today-summary{grid-column:1 / -1}.today-card{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:var(--radius);background:var(--bg-secondary);border:1px solid var(--border);border-left:4px solid var(--text-secondary);transition:all var(--transition-fast)}.today-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-hover)}.today-card[data-status=good]{border-left-color:var(--success)}.today-card[data-status=warning]{border-left-color:var(--warning)}.today-card[data-status=danger]{border-left-color:var(--danger)}.today-header{display:flex;align-items:center;gap:8px}.today-title{font-weight:600;font-size:15px}.today-date{margin-left:auto;font-size:var(--text-sm);color:var(--text-secondary)}.today-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:12px}.today-stat{text-align:center}.today-stat-value{display:block;font-weight:700;font-size:18px;font-variant-numeric:tabular-nums}.today-stat-label{font-size:var(--text-xs);color:var(--text-secondary)}.today-stat-cat{font-size:13px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 auto}.today-remaining-good{color:var(--success)}.today-remaining-warning{color:var(--warning)}.today-remaining-danger{color:var(--danger)}.monthly-goal-card{padding:16px;background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border);border-left:4px solid var(--success)}.monthly-goal-card[data-status=danger]{border-left-color:var(--danger)}.monthly-goal-card[data-status=warning]{border-left-color:var(--warning)}.monthly-goal-header{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;margin-bottom:12px}.monthly-goal-bar{height:12px;background:var(--bg-tertiary, #eee);border-radius:6px;position:relative;overflow:visible;margin-bottom:8px}.monthly-goal-bar-fill{height:100%;border-radius:6px;transition:width .5s ease}.monthly-goal-bar-ideal{position:absolute;top:-4px;width:2px;height:20px;background:var(--text-secondary);border-radius:1px}.monthly-goal-stats{display:flex;justify-content:space-between;font-size:var(--text-sm);margin-bottom:8px}.monthly-goal-pct{font-weight:700}.monthly-goal-details{display:grid;grid-template-columns:1fr 1fr;gap:4px;font-size:var(--text-xs);color:var(--text-secondary)}.monthly-goal-setup{padding:12px;text-align:center}.celebration-overlay{position:fixed;inset:0;pointer-events:none;z-index:var(--z-toast)}.celebration-check{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:var(--gradient-success);display:flex;align-items:center;justify-content:center;color:#fff;z-index:var(--z-toast);pointer-events:none;animation:celebrationPop .6s var(--enter-ease) forwards;box-shadow:0 8px 32px #10b98166}@keyframes celebrationPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}70%{transform:translate(-50%,-50%) scale(.95)}85%{transform:translate(-50%,-50%) scale(1.02)}to{opacity:0;transform:translate(-50%,-50%) scale(1) translateY(-20px)}}.confetti-particle{position:fixed;width:8px;height:8px;border-radius:2px;pointer-events:none;z-index:var(--z-toast);animation:confettiFall var(--confetti-duration, 1.2s) var(--confetti-delay, 0s) ease-out forwards}@keyframes confettiFall{0%{opacity:1;transform:translate(var(--confetti-x, 0),var(--confetti-y-start, 0)) rotate(0) scale(1)}to{opacity:0;transform:translate(calc(var(--confetti-x, 0) + var(--confetti-drift, 0px)),calc(var(--confetti-y-start, 0) + 120px)) rotate(var(--confetti-rotate, 360deg)) scale(.3)}}.streak-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700;background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#78350f;box-shadow:0 2px 8px #f59e0b40;animation:streakPulse 2s ease-in-out infinite;white-space:nowrap}.streak-badge .streak-fire{font-size:14px;line-height:1}.streak-badge.streak-cold{background:var(--bg-tertiary);color:var(--text-tertiary);box-shadow:none;animation:none}@keyframes streakPulse{0%,to{box-shadow:0 2px 8px #f59e0b40}50%{box-shadow:0 2px 16px #f59e0b73}}.budget-impact-flash{position:fixed;bottom:80px;left:50%;transform:translate(-50%);padding:10px 20px;border-radius:var(--radius);font-size:13px;font-weight:600;z-index:var(--z-toast);pointer-events:none;animation:impactSlideUp .4s var(--enter-ease) forwards,impactFadeOut .3s ease 2s forwards;white-space:nowrap}.budget-impact-flash.under-budget{background:#10b981f2;color:#fff;box-shadow:0 4px 20px #10b9814d}.budget-impact-flash.over-budget{background:#ef4444f2;color:#fff;box-shadow:0 4px 20px #ef44444d}.budget-impact-flash.near-budget{background:#f59e0bf2;color:#fff;box-shadow:0 4px 20px #f59e0b4d}@keyframes impactSlideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes impactFadeOut{to{opacity:0;transform:translate(-50%) translateY(-10px)}}[data-section-id=healthScore],[data-section-id=savingsGoalsSection],#monthlyGoalContainer,#budgetUtilizationGrid,.budget-chart-tab-btn[data-chart=budget-waterfall],.budget-chart-tab-btn[data-chart=budget-radar],.budget-chart-tab-btn[data-chart=budget-donut]{display:none!important}.stats-cards .stat-card:nth-child(1),.stats-cards .stat-card:nth-child(2){display:none!important}#openQuarterlyReportBtn,#openYearReviewBtn,#exportXLSXBtn,.chart-tab-btn[data-chart=bar],.chart-tab-btn[data-chart=trends],.chart-tab-btn[data-chart=cumulative],.chart-tab-btn[data-chart=heatmap],.chart-tab-btn[data-chart=income],[data-section-id=memberBreakdown]{display:none!important}.drp-overlay{position:fixed;inset:0;background:#00000073;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;animation:drpFadeIn .2s ease;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}@keyframes drpFadeIn{0%{opacity:0}to{opacity:1}}.drp-container{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl, 0 20px 60px rgba(0,0,0,.3));width:95%;max-width:620px;animation:drpSlideUp .25s ease;overflow:hidden}@keyframes drpSlideUp{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.drp-header{padding:var(--space-md) var(--space-2-5) var(--space-1-5);border-bottom:1px solid var(--border)}.drp-selection{display:flex;align-items:center;gap:var(--space-sm);justify-content:center}.drp-sel-btn{flex:1;max-width:200px;padding:var(--space-sm) var(--space-1-5);border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;text-align:center;transition:all .2s ease}.drp-sel-btn.active{border-color:var(--accent);background:var(--accent-light, rgba(99, 102, 241, .08))}.drp-sel-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:2px}.drp-sel-date{display:block;font-size:15px;font-weight:600;color:var(--text)}.drp-arrow{color:var(--text-tertiary);font-size:18px;flex-shrink:0}.drp-calendars{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xs);padding:var(--space-1-5) var(--space-md)}.drp-cal{padding:var(--space-xs) var(--space-xs)}.drp-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm);min-height:32px}.drp-cal-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text);text-align:center}.drp-nav-btn{width:30px;height:30px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer;font-size:16px;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all .15s}.drp-nav-btn:hover{background:var(--bg-hover, var(--bg-tertiary));color:var(--text);border-color:var(--border-hover)}.drp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:4px}.drp-weekdays span{font-size:11px;font-weight:600;color:var(--text-tertiary);padding:4px 0;text-transform:uppercase}.drp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.drp-day{aspect-ratio:1;border:none;background:transparent;border-radius:50%;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;position:relative;min-width:0;padding:0}.drp-day:hover:not(:disabled):not(.drp-empty){background:var(--bg-hover, var(--bg-tertiary))}.drp-day.drp-empty{cursor:default}.drp-day.drp-today{font-weight:700;color:var(--accent)}.drp-day.drp-today:after{content:"";position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent)}.drp-day.drp-start,.drp-day.drp-end{background:var(--accent);color:#fff;font-weight:700}.drp-day.drp-start.drp-today:after,.drp-day.drp-end.drp-today:after{background:#fff}.drp-day.drp-in-range{background:var(--accent-light, rgba(99, 102, 241, .12));border-radius:4px;color:var(--accent);font-weight:600}.drp-day.drp-future{color:var(--text-tertiary);opacity:.4;cursor:not-allowed}.drp-presets{display:flex;gap:var(--space-xs);padding:0 var(--space-md) var(--space-1-5);flex-wrap:wrap;justify-content:center}.drp-preset{padding:var(--space-xs) var(--space-1-5);border:1px solid var(--border);border-radius:100px;background:var(--bg-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.drp-preset:hover{background:var(--accent-light, rgba(99, 102, 241, .08));border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.drp-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-1-5) var(--space-md);border-top:1px solid var(--border)}.drp-cancel{padding:8px 20px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.drp-cancel:hover{background:var(--bg-hover, var(--bg-tertiary));color:var(--text)}.drp-confirm{padding:8px 24px;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.drp-confirm:hover:not(:disabled){filter:brightness(1.1)}.drp-confirm:disabled{opacity:.4;cursor:not-allowed}@media(max-width:560px){.drp-container{max-width:100%;width:100%;max-height:90vh;overflow-y:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin-top:auto}.drp-overlay{align-items:flex-end}.drp-calendars{grid-template-columns:1fr}}html{scroll-behavior:smooth}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}::selection{background:#4f6ef733;color:var(--text)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#0003}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#fff3}.transaction-item{position:relative}.transaction-item:before{content:"";position:absolute;left:0;top:20%;height:50%;width:2.5px;border-radius:0 3px 3px 0;background:var(--accent);opacity:0;transition:opacity .25s cubic-bezier(.16,1,.3,1)}.transaction-item:hover:before{opacity:1}.transaction-item.income:hover:before{background:var(--success)}.transaction-item.expense:hover:before{background:var(--danger)}.transaction-item:hover .cat-icon{transform:scale(1.08);transition:transform .3s cubic-bezier(.16,1,.3,1)}.tx-amount,.transaction-amount{font-variant-numeric:tabular-nums;transition:all .25s cubic-bezier(.16,1,.3,1)}.transaction-item:hover .tx-amount,.transaction-item:hover .transaction-amount{transform:scale(1.04)}.btn-nav:active,.btn-primary:active,.btn-secondary:active,.btn-submit:active,.btn-icon:active{transition:transform .08s ease}.section{position:relative;overflow:hidden}.section:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-primary);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}.section:hover:after{transform:scaleX(1)}.summary-card .amount,.balance-amount{font-variant-numeric:tabular-nums}.balance-card{position:relative;overflow:hidden}.balance-card:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.03) 45%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.03) 55%,transparent 60%);transform:translate(-100%) rotate(0);transition:none;pointer-events:none}.balance-card:hover:after{animation:cardShimmer 1.6s ease forwards}@keyframes cardShimmer{to{transform:translate(60%) rotate(0)}}.budget-envelope .progress-fill{transition:width .8s cubic-bezier(.34,1.56,.64,1)}.budget-envelope:hover .budget-envelope-fill{filter:brightness(1.1)}.modal-content,.savings-modal-content{position:relative}.modal-content:before,.savings-modal-content:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);pointer-events:none;z-index:1}.quick-actions .action-btn:hover{box-shadow:0 0 0 4px var(--accent-light),var(--shadow-sm)}.tag{transition:all .2s cubic-bezier(.16,1,.3,1)}.tag:hover{transform:translateY(-1px);filter:brightness(1.1)}.trend-chip{animation:chipBounce .5s cubic-bezier(.34,1.56,.64,1) both}@keyframes chipBounce{0%{opacity:0;transform:scale(.8) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.page-tab{position:relative}.page-tab:after{content:"";position:absolute;bottom:-2px;left:50%;width:0;height:2.5px;background:var(--accent);border-radius:2.5px;transition:all .3s cubic-bezier(.16,1,.3,1);transform:translate(-50%)}.page-tab.active:after{width:60%}.empty-state-icon,.empty-message svg{animation:gentleFloat 3s ease-in-out infinite}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.form-group:focus-within label{color:var(--accent);transition:color .2s ease}.toast-notification{animation:toastEnter .5s cubic-bezier(.16,1,.3,1) both}@keyframes toastEnter{0%{opacity:0;transform:translate(24px) scale(.9);filter:blur(4px)}to{opacity:1;transform:translate(0) scale(1);filter:blur(0)}}.app-page.active{animation:pageEnter .35s var(--ease-spring) both}@keyframes pageEnter{0%{opacity:0;transform:translateY(6px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media(prefers-reduced-motion:reduce){.transaction-item:before,.section:after,.balance-card:after,.modal-content:before{display:none}.trend-chip,.toast-notification,.app-page.active{animation:none}}
