: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: #c17a4f;--accent-hover: #a86840;--accent-dark: #8a5333;--accent-light: rgba(193, 122, 79, .08);--accent-subtle: rgba(193, 122, 79, .04);--primary: #c17a4f;--primary-color: #c17a4f;--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;--success-rgb: 16, 185, 129;--danger-rgb: 239, 68, 68;--warning-rgb: 245, 158, 11;--accent-rgb: 193, 122, 79;--info-rgb: 59, 130, 246;--gradient-primary: linear-gradient(135deg, #c17a4f 0%, #d4a574 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;--touch-target-min: 44px;--input-height: 44px;--input-height-lg: 56px;--btn-height: 44px;--modal-width-sm: 400px;--modal-width-md: 500px;--modal-width-lg: 640px;--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, #c17a4f 0%, #d4a574 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}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--gold: #d4a574;--gold-light: #f9f1e8;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--bg-page: var(--paper);--card-bg: #ffffff;--bg-hover: rgba(43, 37, 32, .04);--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-light: var(--ink-fade);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-dark: #8a5333;--accent-light: #f4e8df;--accent-subtle: #fdf8f4;--primary: #c17a4f;--primary-color: #c17a4f;--primary-hover: #a86840;--primary-light: #f4e8df;--primary-subtle: #fdf8f4;--accent-rgb: 193, 122, 79;--info-rgb: 193, 122, 79;--success: #5f8f6f;--success-bg: #e8f2ec;--success-subtle: rgba(95, 143, 111, .08);--success-rgb: 95, 143, 111;--danger: #c25a4f;--danger-hover: #a84a40;--danger-bg: #fceae8;--danger-subtle: rgba(194, 90, 79, .08);--danger-rgb: 194, 90, 79;--warning: #d4a574;--warning-bg: #f9f1e8;--warning-subtle: rgba(212, 165, 116, .08);--warning-rgb: 212, 165, 116;--shadow-xs: 0 1px 2px rgba(43, 37, 32, .06);--shadow-sm: 0 2px 4px rgba(43, 37, 32, .08), 0 1px 2px rgba(43, 37, 32, .04);--shadow-md: 0 4px 8px rgba(43, 37, 32, .1), 0 2px 4px rgba(43, 37, 32, .06);--shadow-lg: 0 8px 16px rgba(43, 37, 32, .12), 0 4px 8px rgba(43, 37, 32, .08);--shadow-card: 0 2px 8px rgba(43, 37, 32, .06);--shadow-card-hover: 0 4px 16px rgba(43, 37, 32, .1);--shadow-colored: 0 4px 20px rgba(193, 122, 79, .18);--shadow-glow: 0 0 20px rgba(193, 122, 79, .12);--glow-accent: 0 0 0 3px rgba(193, 122, 79, .08), 0 8px 25px rgba(193, 122, 79, .12);--glow-success: 0 0 0 3px rgba(95, 143, 111, .08), 0 8px 25px rgba(95, 143, 111, .12);--glow-danger: 0 0 0 3px rgba(194, 90, 79, .08), 0 8px 25px rgba(194, 90, 79, .12);--glow-warning: 0 0 0 3px rgba(212, 165, 116, .08), 0 8px 25px rgba(212, 165, 116, .12);--glass-bg: rgba(250, 248, 243, .75);--glass-border: rgba(43, 37, 32, .08);--glass-shadow: 0 4px 24px rgba(43, 37, 32, .08), 0 1px 2px rgba(43, 37, 32, .04);--gradient-primary: linear-gradient(135deg, #c17a4f 0%, #d4a574 100%);--gradient-success: linear-gradient(135deg, #5f8f6f 0%, #7fa88f 100%);--gradient-danger: linear-gradient(135deg, #c25a4f 0%, #d4735f 100%);--gradient-warning: linear-gradient(135deg, #d4a574 0%, #e4b584 100%);--gradient-warm: linear-gradient(135deg, #faf8f3 0%, #f5f2ea 100%);--gradient-hero: linear-gradient( 145deg, #2b2520 0%, #5a5349 40%, #c17a4f 100% );--gradient-subtle: linear-gradient( 135deg, rgba(193, 122, 79, .05) 0%, rgba(212, 165, 116, .03) 100% );--gradient-mesh: radial-gradient( at 20% 80%, rgba(193, 122, 79, .06) 0%, transparent 50% ), radial-gradient(at 80% 20%, rgba(212, 165, 116, .04) 0%, transparent 50%);--gradient-card-shine: linear-gradient( 135deg, rgba(255, 255, 255, .4) 0%, rgba(255, 255, 255, 0) 60% );--gradient-income: linear-gradient(135deg, #e8f2ec 0%, #d4e6da 100%);--gradient-expense: linear-gradient(135deg, #fceae8 0%, #f4cec8 100%);--gradient-text: linear-gradient( 135deg, #c17a4f 0%, #d4a574 50%, #8a5333 100% );--balance-gradient-end: #2b2520;--radius-xs: 4px;--radius-sm: 6px;--radius: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "Fira Code", "JetBrains Mono", ui-monospace, monospace;--chart-1: #c17a4f;--chart-2: #5f8f6f;--chart-3: #7a4554;--chart-4: #d4a574;--chart-5: #6a7a4a;--chart-6: #c25a4f;--chart-7: #7a9a7a;--chart-8: #a86840;--chart-9: #8a8479;--chart-10: #d4735f;--chart-11: #c4a574;--chart-12: #6a655d;--chart-13: #a85a4f;--chart-14: #7fa88f;--chart-15: #c4a58a;--chart-16: #8a5333;--chart-17: #9a8474;--chart-18: #4a453d}html[data-theme=foyer]{color-scheme:light;background:var(--paper)}html[data-theme=foyer] body{background:var(--paper);color:var(--ink-1)}html[data-theme=foyer] .app-page:not([data-theme]){color:var(--ink-1)}html[data-theme=foyer] .feature-icon.budgia-feature-icon{width:72px;height:72px;min-width:72px;min-height:72px;max-width:72px;max-height:72px;margin-bottom:1rem;background:#f8f3e3;background-image:none;border:1px solid rgba(43,37,32,.08);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;padding:10px;box-shadow:0 1px 2px #2b25200a;font-size:0}html[data-theme=foyer] .feature-icon.budgia-feature-icon img.budgia-icon{width:48px;height:48px;max-width:48px;max-height:48px;display:block;object-fit:contain}[data-theme=foyer][data-mode=dark],[data-theme=foyer].dark{--paper: #1a1714;--paper-dark: #151210;--paper-darker: #0f0d0b;--ink-1: #f0ece6;--ink-2: #c8c3bb;--ink-3: #9a948b;--ink-fade: #6a655d;--primary: #d4a574;--primary-hover: #e4b584;--primary-light: rgba(212, 165, 116, .15);--primary-subtle: rgba(212, 165, 116, .08);--accent: #d4a574;--accent-hover: #e4b584;--accent-light: rgba(212, 165, 116, .15);--accent-subtle: rgba(212, 165, 116, .08);--card-bg: rgba(255, 255, 255, .03);--bg-hover: rgba(255, 255, 255, .06);--border: rgba(255, 255, 255, .1);--border-hover: rgba(255, 255, 255, .2);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .4);--shadow-md: 0 4px 8px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .6);--shadow-card: 0 2px 8px rgba(0, 0, 0, .4);--shadow-card-hover: 0 4px 16px rgba(0, 0, 0, .5);--glass-bg: rgba(26, 23, 20, .75);--glass-border: rgba(255, 255, 255, .08);--gradient-primary: linear-gradient(135deg, #c17a4f 0%, #d4a574 100%);--gradient-success: linear-gradient(135deg, #5f8f6f 0%, #7fa88f 100%);--gradient-danger: linear-gradient(135deg, #c25a4f 0%, #d4735f 100%);--gradient-warning: linear-gradient(135deg, #d4a574 0%, #e4b584 100%);--gradient-warm: linear-gradient(135deg, #1a1714 0%, #221d18 100%);--gradient-hero: linear-gradient( 145deg, #2b2520 0%, #5a5349 40%, #c17a4f 100% );--gradient-subtle: linear-gradient( 135deg, rgba(193, 122, 79, .08) 0%, rgba(212, 165, 116, .04) 100% );--gradient-card-shine: linear-gradient( 135deg, rgba(255, 255, 255, .06) 0%, rgba(255, 255, 255, 0) 60% );--gradient-income: linear-gradient( 135deg, rgba(95, 143, 111, .18) 0%, rgba(95, 143, 111, .08) 100% );--gradient-expense: linear-gradient( 135deg, rgba(196, 90, 90, .18) 0%, rgba(196, 90, 90, .08) 100% )}[data-theme=foyer][data-mode=light]{--gradient-primary: linear-gradient(135deg, #c17a4f 0%, #d4a574 100%);--gradient-success: linear-gradient(135deg, #5f8f6f 0%, #7fa88f 100%);--gradient-danger: linear-gradient(135deg, #c25a4f 0%, #d4735f 100%);--gradient-warning: linear-gradient(135deg, #d4a574 0%, #e4b584 100%);--gradient-warm: linear-gradient(135deg, #faf8f3 0%, #f5f2ea 100%);--gradient-hero: linear-gradient( 145deg, #2b2520 0%, #5a5349 40%, #c17a4f 100% );--gradient-subtle: linear-gradient( 135deg, rgba(193, 122, 79, .05) 0%, rgba(212, 165, 116, .03) 100% );--gradient-card-shine: linear-gradient( 135deg, rgba(255, 255, 255, .4) 0%, rgba(255, 255, 255, 0) 60% );--gradient-income: linear-gradient(135deg, #e8f2ec 0%, #d4e6da 100%);--gradient-expense: linear-gradient(135deg, #f5e1de 0%, #ecd0cc 100%);--accent: #c17a4f;--accent-hover: #a86840;--accent-dark: #8e5733;--primary: #c17a4f;--primary-color: #c17a4f}[data-theme=foyer][data-grain=on]:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:10000;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.5' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E")}[data-theme=foyer] .display-serif{font-family:var(--font-display);font-weight:400;letter-spacing:-.02em}[data-theme=foyer] .editorial-serif{font-family:var(--font-serif);font-style:italic}.foyer-ornament-host{position:relative;isolation:isolate}.foyer-ornament{position:absolute;display:block;pointer-events:none;user-select:none;opacity:.92;z-index:0;background-repeat:no-repeat;background-position:center;background-size:contain;filter:drop-shadow(2px 8px 12px rgba(42,31,20,.15));transition:opacity .4s ease}.foyer-ornament-host>*:not(.foyer-ornament){position:relative;z-index:1}.foyer-ornament-slot-tl{top:40px;left:40px;width:220px;height:380px}.foyer-ornament-slot-tr{top:40px;right:40px;width:220px;height:380px}.foyer-ornament-slot-bl{bottom:40px;left:40px;width:220px;height:380px}.foyer-ornament-slot-br{bottom:40px;right:40px;width:280px;height:340px}.foyer-ornament-plume{background-image:var( --foyer-asset-plume, url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 380'%3E%3Cdefs%3E%3CradialGradient id='iw' cx='0.3' cy='0.3'%3E%3Cstop offset='0%25' stop-color='%233d2b1f' stop-opacity='0.9'/%3E%3Cstop offset='70%25' stop-color='%231a0f08' stop-opacity='0.95'/%3E%3Cstop offset='100%25' stop-color='%230d0603' stop-opacity='0.98'/%3E%3C/radialGradient%3E%3CradialGradient id='is' cx='0.5' cy='0.5'%3E%3Cstop offset='0%25' stop-color='%230a0502' stop-opacity='1'/%3E%3Cstop offset='100%25' stop-color='%23000000' stop-opacity='1'/%3E%3C/radialGradient%3E%3ClinearGradient id='qs' x1='0%25' y1='0%25' x2='0%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23b49664' stop-opacity='0.5'/%3E%3Cstop offset='50%25' stop-color='%23a08255' stop-opacity='0.44'/%3E%3Cstop offset='100%25' stop-color='%2378593c' stop-opacity='0.38'/%3E%3C/linearGradient%3E%3ClinearGradient id='vl' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23be9c6e' stop-opacity='0.32'/%3E%3Cstop offset='50%25' stop-color='%23aa8c5a' stop-opacity='0.27'/%3E%3Cstop offset='100%25' stop-color='%2396784b' stop-opacity='0.19'/%3E%3C/linearGradient%3E%3ClinearGradient id='vr' x1='100%25' y1='0%25' x2='0%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23c8aa78' stop-opacity='0.35'/%3E%3Cstop offset='50%25' stop-color='%23b49664' stop-opacity='0.31'/%3E%3Cstop offset='100%25' stop-color='%23a08255' stop-opacity='0.21'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- paper sheet underneath --%3E%3Crect x='5' y='260' width='150' height='100' rx='2' fill='rgba(250,247,237,0.85)' stroke='rgba(140,110,70,0.15)' stroke-width='1' transform='rotate(-4 80 310)'/%3E%3Cline x1='15' y1='275' x2='140' y2='270' stroke='rgba(140,110,70,0.08)' stroke-width='0.5' transform='rotate(-4 80 310)'/%3E%3Cline x1='15' y1='290' x2='140' y2='285' stroke='rgba(140,110,70,0.08)' stroke-width='0.5' transform='rotate(-4 80 310)'/%3E%3Cline x1='15' y1='305' x2='140' y2='300' stroke='rgba(140,110,70,0.08)' stroke-width='0.5' transform='rotate(-4 80 310)'/%3E%3Cline x1='15' y1='320' x2='140' y2='315' stroke='rgba(140,110,70,0.08)' stroke-width='0.5' transform='rotate(-4 80 310)'/%3E%3Cline x1='15' y1='335' x2='140' y2='330' stroke='rgba(140,110,70,0.08)' stroke-width='0.5' transform='rotate(-4 80 310)'/%3E%3C!-- inkwell body --%3E%3Crect x='25' y='300' width='68' height='58' rx='5' fill='url(%23iw)'/%3E%3Crect x='28' y='303' width='10' height='28' rx='3' fill='rgba(255,240,200,0.08)'/%3E%3Cellipse cx='59' cy='332' rx='30' ry='12' fill='url(%23is)'/%3E%3Crect x='43' y='280' width='32' height='24' rx='4' fill='rgba(40,28,16,0.8)'/%3E%3Crect x='49' y='270' width='22' height='14' rx='3' fill='rgba(50,38,22,0.75)'/%3E%3C!-- scattered coins --%3E%3Cellipse cx='90' cy='345' rx='8' ry='6' fill='rgba(180,140,80,0.35)' transform='rotate(-15 90 345)'/%3E%3Cellipse cx='105' cy='350' rx='7' ry='5' fill='rgba(160,120,70,0.3)' transform='rotate(20 105 350)'/%3E%3Cellipse cx='78' cy='355' rx='6' ry='4' fill='rgba(140,100,60,0.25)' transform='rotate(-5 78 355)'/%3E%3C!-- quill shaft --%3E%3Cpath d='M 110 360 Q 105 280 108 200 Q 110 120 112 40' stroke='url(%23qs)' stroke-width='3.5' fill='none' stroke-linecap='round'/%3E%3Cpath d='M 112 40 L 109 50 L 112 48 L 115 50 Z' fill='rgba(60,40,20,0.85)'/%3E%3C!-- left vane --%3E%3Cpath d='M 110 40 Q 60 80 65 140 Q 70 180 80 220 Q 90 260 100 300 L 108 200 Q 110 120 112 40 Z' fill='url(%23vl)' stroke='rgba(140,110,70,0.2)' stroke-width='0.8'/%3E%3C!-- right vane --%3E%3Cpath d='M 112 40 Q 160 75 155 135 Q 150 175 140 215 Q 130 255 118 295 L 108 200 Q 110 120 112 40 Z' fill='url(%23vr)' stroke='rgba(150,120,75,0.25)' stroke-width='0.8'/%3E%3C!-- barb lines left --%3E%3Cpath d='M 108 60 Q 75 90 78 125' stroke='rgba(120,90,60,0.15)' stroke-width='0.7' fill='none'/%3E%3Cpath d='M 105 85 Q 68 120 72 160' stroke='rgba(120,90,60,0.12)' stroke-width='0.7' fill='none'/%3E%3Cpath d='M 103 110 Q 65 150 68 190' stroke='rgba(120,90,60,0.1)' stroke-width='0.7' fill='none'/%3E%3Cpath d='M 100 140 Q 70 180 75 220' stroke='rgba(120,90,60,0.08)' stroke-width='0.7' fill='none'/%3E%3C!-- barb lines right --%3E%3Cpath d='M 113 60 Q 148 88 145 123' stroke='rgba(130,100,65,0.15)' stroke-width='0.7' fill='none'/%3E%3Cpath d='M 115 85 Q 152 118 148 158' stroke='rgba(130,100,65,0.12)' stroke-width='0.7' fill='none'/%3E%3Cpath d='M 116 110 Q 155 148 150 188' stroke='rgba(130,100,65,0.1)' stroke-width='0.7' fill='none'/%3E%3Cpath d='M 115 140 Q 148 178 142 218' stroke='rgba(130,100,65,0.08)' stroke-width='0.7' fill='none'/%3E%3C/svg%3E") )}.foyer-ornament-envelopes{background-image:var( --foyer-asset-envelopes, url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 340'%3E%3Cdefs%3E%3ClinearGradient id='eg1' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23f8f2e5'/%3E%3Cstop offset='100%25' stop-color='%23ede4d0'/%3E%3C/linearGradient%3E%3ClinearGradient id='eg2' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23faf6ea'/%3E%3Cstop offset='100%25' stop-color='%23f0e8d5'/%3E%3C/linearGradient%3E%3ClinearGradient id='bg' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23f0e8d0'/%3E%3Cstop offset='100%25' stop-color='%23e8dcb8'/%3E%3C/linearGradient%3E%3CradialGradient id='ws' cx='0.35' cy='0.35'%3E%3Cstop offset='0%25' stop-color='%23d4723a' stop-opacity='0.9'/%3E%3Cstop offset='60%25' stop-color='%23b85c28' stop-opacity='0.95'/%3E%3Cstop offset='100%25' stop-color='%238c4119' stop-opacity='0.85'/%3E%3C/radialGradient%3E%3C/defs%3E%3C!-- bottom envelope (tilted +9) --%3E%3Crect x='30' y='160' width='220' height='140' rx='3' fill='url(%23eg1)' stroke='rgba(140,110,70,0.22)' stroke-width='1.2' transform='rotate(9 140 230)'/%3E%3Cpath d='M 30 160 L 140 215 L 250 160' stroke='rgba(140,110,70,0.18)' stroke-width='1' fill='rgba(245,235,210,0.5)' transform='rotate(9 140 230)'/%3E%3C!-- middle envelope (tilted -5) --%3E%3Crect x='20' y='140' width='225' height='145' rx='3' fill='url(%23eg1)' stroke='rgba(140,110,70,0.24)' stroke-width='1.2' transform='rotate(-5 132 212)'/%3E%3Cpath d='M 20 140 L 132 218 L 245 140' stroke='rgba(140,110,70,0.2)' stroke-width='1' fill='rgba(245,235,210,0.55)' transform='rotate(-5 132 212)'/%3E%3C!-- top envelope (straight) --%3E%3Crect x='25' y='125' width='230' height='148' rx='3' fill='url(%23eg2)' stroke='rgba(140,110,70,0.28)' stroke-width='1.3'/%3E%3Cpath d='M 25 125 L 140 205 L 255 125' stroke='rgba(140,110,70,0.22)' stroke-width='1.2' fill='rgba(245,235,210,0.6)'/%3E%3Cpath d='M 25 273 L 140 200 L 255 273' stroke='rgba(140,110,70,0.18)' stroke-width='0.9' fill='none'/%3E%3C!-- wax seal --%3E%3Ccircle cx='140' cy='202' r='14' fill='url(%23ws)'/%3E%3Ccircle cx='140' cy='202' r='11' fill='none' stroke='rgba(140,65,25,0.4)' stroke-width='0.8'/%3E%3Ctext x='140' y='207' text-anchor='middle' font-size='11' fill='rgba(255,240,210,0.75)' font-family='Georgia,serif' font-style='italic' font-weight='bold'%3EB%3C/text%3E%3C!-- banknotes --%3E%3Crect x='70' y='15' width='180' height='65' rx='3' fill='url(%23bg)' stroke='rgba(120,100,55,0.15)' stroke-width='0.8' opacity='0.5' transform='rotate(-7 160 47)'/%3E%3Crect x='75' y='30' width='185' height='68' rx='3' fill='url(%23bg)' stroke='rgba(120,100,55,0.18)' stroke-width='0.9' opacity='0.7' transform='rotate(3 167 64)'/%3E%3Crect x='81' y='36' width='173' height='56' rx='2' fill='none' stroke='rgba(120,100,55,0.12)' stroke-width='0.6' transform='rotate(3 167 64)'/%3E%3Crect x='65' y='50' width='190' height='70' rx='3' fill='url(%23bg)' stroke='rgba(120,100,55,0.22)' stroke-width='1' transform='rotate(-5 160 85)'/%3E%3Crect x='71' y='56' width='178' height='58' rx='2' fill='none' stroke='rgba(120,100,55,0.15)' stroke-width='0.7' transform='rotate(-5 160 85)'/%3E%3Ctext x='130' y='95' font-size='28' fill='rgba(80,65,35,0.28)' font-family='Georgia,serif' font-weight='bold' transform='rotate(-5 130 95)'%3E20%3C/text%3E%3Ctext x='195' y='95' font-size='28' fill='rgba(80,65,35,0.28)' font-family='Georgia,serif' font-weight='bold' transform='rotate(-5 195 95)'%3E20%3C/text%3E%3C!-- twine cross --%3E%3Cline x1='50' y1='190' x2='230' y2='190' stroke='rgba(140,100,45,0.6)' stroke-width='2.5'/%3E%3Cline x1='140' y1='110' x2='140' y2='270' stroke='rgba(140,100,45,0.6)' stroke-width='2.5'/%3E%3Cellipse cx='125' cy='190' rx='10' ry='7' fill='rgba(140,100,45,0.5)' transform='rotate(-30 125 190)'/%3E%3Cellipse cx='155' cy='190' rx='10' ry='7' fill='rgba(140,100,45,0.5)' transform='rotate(30 155 190)'/%3E%3Ccircle cx='140' cy='190' r='5' fill='rgba(120,80,35,0.7)'/%3E%3C/svg%3E") )}.foyer-ornament-book{background-image:var( --foyer-asset-book, url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cdefs%3E%3ClinearGradient id='bl' x1='0%25' y1='0%25' x2='100%25' y2='0%25'%3E%3Cstop offset='0%25' stop-color='rgba(160,130,85,0.35)'/%3E%3Cstop offset='100%25' stop-color='rgba(180,150,100,0.28)'/%3E%3C/linearGradient%3E%3ClinearGradient id='br' x1='100%25' y1='0%25' x2='0%25' y2='0%25'%3E%3Cstop offset='0%25' stop-color='rgba(160,130,85,0.32)'/%3E%3Cstop offset='100%25' stop-color='rgba(180,150,100,0.25)'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M 30 50 Q 30 40 40 40 L 88 40 L 88 145 L 40 145 Q 30 145 30 135 Z' fill='url(%23bl)' stroke='rgba(100,70,35,0.4)' stroke-width='1.6'/%3E%3Cpath d='M 150 50 Q 150 40 140 40 L 92 40 L 92 145 L 140 145 Q 150 145 150 135 Z' fill='url(%23br)' stroke='rgba(100,70,35,0.35)' stroke-width='1.6'/%3E%3Cpath d='M 90 40 L 90 145' stroke='rgba(80,55,25,0.5)' stroke-width='2'/%3E%3Cpath d='M 42 60 L 84 60 M 42 72 L 84 72 M 42 84 L 84 84 M 42 96 L 80 96 M 42 108 L 84 108 M 42 120 L 78 120' stroke='rgba(80,55,25,0.2)' stroke-width='1' fill='none'/%3E%3Cpath d='M 96 60 L 138 60 M 96 72 L 138 72 M 96 84 L 138 84 M 96 96 L 134 96 M 96 108 L 138 108 M 96 120 L 132 120' stroke='rgba(80,55,25,0.17)' stroke-width='1' fill='none'/%3E%3Cpath d='M 42 40 Q 60 30 90 32 Q 120 30 138 40' stroke='rgba(100,70,35,0.3)' stroke-width='1.2' fill='none'/%3E%3C!-- bookmark ribbon --%3E%3Cpath d='M 105 40 L 105 62 L 100 57 L 95 62 L 95 40' fill='%23b85c28' stroke='%238c4119' stroke-width='0.9'/%3E%3Cellipse cx='90' cy='150' rx='52' ry='5' fill='rgba(42,31,20,0.1)'/%3E%3C/svg%3E") )}.foyer-ornament-papers{background-image:var( --foyer-asset-papers, url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cdefs%3E%3ClinearGradient id='pg1' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23faf6ea'/%3E%3Cstop offset='100%25' stop-color='%23ede4d0'/%3E%3C/linearGradient%3E%3ClinearGradient id='pg2' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23f8f2e5'/%3E%3Cstop offset='100%25' stop-color='%23e8dcc0'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- paper 1 back (tilted -10) --%3E%3Cg transform='translate(20,45) rotate(-10)'%3E%3Crect width='80' height='100' rx='2' fill='url(%23pg1)' stroke='rgba(140,110,70,0.22)' stroke-width='1'/%3E%3Cpath d='M12 22 L60 20' stroke='rgba(140,110,70,0.4)' stroke-width='0.7'/%3E%3Cpath d='M12 32 L65 30' stroke='rgba(140,110,70,0.35)' stroke-width='0.7'/%3E%3Cpath d='M12 42 L52 40' stroke='rgba(140,110,70,0.3)' stroke-width='0.7'/%3E%3Cpath d='M12 52 L62 50' stroke='rgba(140,110,70,0.28)' stroke-width='0.7'/%3E%3Cpath d='M12 62 L45 60' stroke='rgba(140,110,70,0.25)' stroke-width='0.7'/%3E%3Cpath d='M12 72 L58 70' stroke='rgba(140,110,70,0.22)' stroke-width='0.7'/%3E%3Cpath d='M12 82 L50 80' stroke='rgba(140,110,70,0.2)' stroke-width='0.7'/%3E%3C/g%3E%3C!-- paper 2 front (tilted +6) --%3E%3Cg transform='translate(60,60) rotate(6)'%3E%3Crect width='90' height='108' rx='2' fill='url(%23pg2)' stroke='rgba(140,110,70,0.28)' stroke-width='1.1'/%3E%3C!-- signature-like scribble --%3E%3Cpath d='M 14 22 Q 22 14 34 24 Q 48 30 62 22 Q 68 18 76 24' stroke='rgba(90,60,30,0.55)' stroke-width='1.1' fill='none' stroke-linecap='round'/%3E%3Cpath d='M14 38 L70 36' stroke='rgba(140,110,70,0.35)' stroke-width='0.6'/%3E%3Cpath d='M14 48 L66 46' stroke='rgba(140,110,70,0.32)' stroke-width='0.6'/%3E%3Cpath d='M14 58 L72 56' stroke='rgba(140,110,70,0.3)' stroke-width='0.6'/%3E%3Cpath d='M14 68 L58 66' stroke='rgba(140,110,70,0.28)' stroke-width='0.6'/%3E%3Cpath d='M14 78 L68 76' stroke='rgba(140,110,70,0.25)' stroke-width='0.6'/%3E%3Cpath d='M14 88 L52 86' stroke='rgba(140,110,70,0.22)' stroke-width='0.6'/%3E%3C!-- terracotta check mark --%3E%3Cpath d='M 62 96 L 70 104 L 82 88' stroke='%23b85c28' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E") )}.foyer-ornament-ink{background-image:var( --foyer-asset-ink, url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cdefs%3E%3CradialGradient id='iw2' cx='0.3' cy='0.3'%3E%3Cstop offset='0%25' stop-color='%233d2b1f' stop-opacity='0.9'/%3E%3Cstop offset='100%25' stop-color='%230d0603' stop-opacity='0.95'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect x='30' y='60' width='60' height='48' rx='5' fill='url(%23iw2)'/%3E%3Crect x='33' y='63' width='8' height='22' rx='2' fill='rgba(255,240,200,0.08)'/%3E%3Cellipse cx='60' cy='84' rx='25' ry='9' fill='%23000'/%3E%3Crect x='46' y='44' width='28' height='18' rx='3' fill='rgba(40,28,16,0.85)'/%3E%3Crect x='52' y='32' width='16' height='12' rx='2' fill='%23b85c28' stroke='%238c4119' stroke-width='0.8'/%3E%3C/svg%3E") )}.foyer-ornament-sm{width:150px!important;height:220px!important}.foyer-ornament-lg{width:280px!important;height:420px!important}.foyer-ornament-envelopes.foyer-ornament-lg{width:320px!important;height:380px!important}.foyer-ornament-book.foyer-ornament-lg,.foyer-ornament-papers.foyer-ornament-lg{width:240px!important;height:240px!important}.foyer-ornament-subtle{opacity:.55}.foyer-ornament-soft{opacity:.8}.foyer-ornament-present{opacity:1}.foyer-ornament-flip{transform:scaleX(-1)}.foyer-paper-grain{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");background-repeat:repeat;background-size:300px 300px;mix-blend-mode:overlay;opacity:.03}.foyer-paper-textured{position:relative;background-color:#faf8f3}.foyer-paper-textured:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");background-repeat:repeat;background-size:300px 300px;opacity:.03;mix-blend-mode:overlay}.foyer-divider{display:block;width:100%;max-width:180px;height:18px;margin:1rem auto;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 18' fill='none' stroke='%232a1f14' stroke-width='0.9' stroke-linecap='round' stroke-linejoin='round' opacity='0.55'%3E%3Cpath d='M10 9 L65 9'/%3E%3Cpath d='M115 9 L170 9'/%3E%3Ccircle cx='90' cy='9' r='2.8' fill='%23b85c28' stroke='none'/%3E%3Cpath d='M82 9 L78 5'/%3E%3Cpath d='M82 9 L78 13'/%3E%3Cpath d='M98 9 L102 5'/%3E%3Cpath d='M98 9 L102 13'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain}.foyer-section-divider{display:block;height:1px;background:linear-gradient(to right,transparent,rgba(42,31,20,.15),transparent);border:none;margin:0 auto}@media(max-width:768px){.foyer-ornament-slot-tl,.foyer-ornament-slot-tr,.foyer-ornament-slot-bl,.foyer-ornament-slot-br{width:140px;height:220px;top:auto;bottom:20px}.foyer-ornament-slot-tl,.foyer-ornament-slot-bl{left:12px}.foyer-ornament-slot-tr,.foyer-ornament-slot-br{right:12px}.foyer-ornament-lg{width:160px!important;height:240px!important}.foyer-ornament-envelopes.foyer-ornament-lg{width:180px!important;height:220px!important}.foyer-ornament-book.foyer-ornament-lg,.foyer-ornament-papers.foyer-ornament-lg{width:140px!important;height:140px!important}.foyer-ornament{opacity:.55}}@media(max-width:480px){.foyer-ornament-slot-tl,.foyer-ornament-slot-tr,.foyer-ornament-slot-bl{display:none}.foyer-ornament-slot-br{width:110px;height:140px;bottom:8px;right:8px;opacity:.45}}@media(prefers-reduced-motion:reduce){.foyer-ornament{transition:none}}@media(prefers-contrast:more){.foyer-ornament{display:none}}.foyer-ornament-no-shadow{filter:none}.onboarding-overlay[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-dark: #8a5333;--accent-light: rgba(193, 122, 79, .08);--accent-subtle: rgba(193, 122, 79, .04);--primary: #c17a4f;--primary-hover: #a86840;--success: #5f8f6f;--success-bg: #e8f2ec;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;background:var(--paper);font-family:var(--font-sans);color:var(--ink-1)}.onboarding-overlay[data-theme=foyer]:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 60% 50% at 20% 0%,rgba(193,122,79,.08) 0%,transparent 55%),radial-gradient(ellipse 50% 45% at 90% 20%,rgba(212,165,116,.06) 0%,transparent 55%)}.onboarding-overlay[data-theme=foyer] .onboarding-card{position:relative;z-index:1;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 2px 12px #2b25200f,0 8px 32px #2b252014;padding:3rem 2.75rem}.onboarding-overlay[data-theme=foyer] .onboarding-card h2{font-family:var(--font-display);font-weight:400;font-size:clamp(1.75rem,3.5vw,2.25rem);color:var(--ink-1);letter-spacing:-.02em;line-height:1.15;margin-bottom:12px}.onboarding-overlay[data-theme=foyer] .onboarding-card p{font-family:var(--font-serif);font-size:1.05rem;font-style:italic;color:var(--ink-2);line-height:1.55}.onboarding-overlay[data-theme=foyer] .onboarding-emoji{font-size:56px;margin-bottom:20px;filter:saturate(.85)}.onboarding-overlay[data-theme=foyer] .onboarding-dots{counter-reset:chapter;display:flex!important;gap:.85rem!important;align-items:baseline!important;justify-content:center;margin-bottom:1.4rem}.onboarding-overlay[data-theme=foyer] .onboarding-dot{width:auto!important;height:auto!important;background:transparent!important;border-radius:0!important;counter-increment:chapter;font-family:var(--font-display);font-weight:400;font-size:.78rem;letter-spacing:.08em;color:var(--ink-fade);line-height:1;position:relative;padding-bottom:4px;transition:color .25s ease,border-color .25s ease}.onboarding-overlay[data-theme=foyer] .onboarding-dot:before{content:counter(chapter,upper-roman)}.onboarding-overlay[data-theme=foyer] .onboarding-dot:not(:last-child):after{content:" ·";margin-left:.85rem;color:var(--ink-fade);opacity:.5}.onboarding-overlay[data-theme=foyer] .onboarding-dot.done{color:var(--ink-2)}.onboarding-overlay[data-theme=foyer] .onboarding-dot.active{color:var(--primary);border-bottom:1.5px solid var(--primary)}.onboarding-overlay[data-theme=foyer] .onboarding-step-indicator .step-num{background:var(--paper-dark);color:var(--ink-3);border:2px solid var(--border);font-family:var(--font-display);font-weight:500}.onboarding-overlay[data-theme=foyer] .onboarding-step-indicator .step-num.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 0 0 4px #c17a4f1f}.onboarding-overlay[data-theme=foyer] .onboarding-step-indicator .step-num.done{background:var(--success);color:#fff;border-color:var(--success)}.onboarding-overlay[data-theme=foyer] .onboarding-step-indicator .step-line.done{background:var(--success)}.onboarding-overlay[data-theme=foyer] .onboarding-input,.onboarding-overlay[data-theme=foyer] .onboarding-select{background:var(--paper);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);color:var(--ink-1);padding:12px 16px}.onboarding-overlay[data-theme=foyer] .onboarding-input:focus,.onboarding-overlay[data-theme=foyer] .onboarding-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #c17a4f26;outline:none}.onboarding-overlay[data-theme=foyer] .onboarding-actions .btn-primary,.onboarding-overlay[data-theme=foyer] .btn-primary{background:var(--primary);color:#fff;border:none;border-radius:8px;font-family:var(--font-sans);font-weight:500;box-shadow:0 2px 8px #c17a4f33;transition:all .2s ease;padding:14px 28px}.onboarding-overlay[data-theme=foyer] .onboarding-actions .btn-primary:hover,.onboarding-overlay[data-theme=foyer] .btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 16px #c17a4f4d;transform:translateY(-1px)}.onboarding-overlay[data-theme=foyer] .onboarding-actions .btn-nav{background:transparent;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:14px 20px}.onboarding-overlay[data-theme=foyer] .onboarding-actions .btn-nav:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.onboarding-overlay[data-theme=foyer] .onboarding-skip{color:var(--ink-3);background:transparent;border:none;font-family:var(--font-sans);font-size:.875rem;cursor:pointer;text-decoration:underline;margin-top:16px;transition:color .2s}.onboarding-overlay[data-theme=foyer] .onboarding-skip:hover{color:var(--primary)}.onboarding-overlay[data-theme=foyer] .import-choice-btn{border:1px solid var(--border);background:#fff;color:var(--ink-1);font-family:var(--font-sans);border-radius:10px;transition:border-color .2s ease,background .2s ease}.onboarding-overlay[data-theme=foyer] .import-choice-btn:hover{border-color:var(--primary);background:var(--primary-subtle);transform:none;box-shadow:none}.onboarding-overlay[data-theme=foyer] .import-hint{color:var(--ink-3);font-family:var(--font-sans);font-style:normal}.onboarding-overlay[data-theme=foyer] .import-hint strong{color:var(--ink-1)}.onboarding-overlay[data-theme=foyer] .onboarding-bank-guide summary{color:var(--primary);font-family:var(--font-sans)}.onboarding-overlay[data-theme=foyer] .bank-item{border-bottom:1px solid var(--border);font-family:var(--font-sans)}.onboarding-overlay[data-theme=foyer] .bank-name{color:var(--ink-1)}.onboarding-overlay[data-theme=foyer] .bank-steps{color:var(--ink-2)}.onboarding-overlay[data-theme=foyer] .bank-item-tip{background:var(--primary-subtle)}.onboarding-overlay[data-theme=foyer] .onboarding-tips{background:var(--paper-dark);border:1px solid var(--border);border-radius:10px;font-family:var(--font-sans)}.onboarding-overlay[data-theme=foyer] .onboarding-tips li{color:var(--ink-2)}.onboarding-overlay[data-theme=foyer] .onboarding-tips li strong{color:var(--ink-1)}.onboarding-overlay[data-theme=foyer] .onboarding-template-card{background:#fff;border:1px solid var(--border);border-radius:10px;transition:border-color .2s ease,background .2s ease;font-family:var(--font-sans)}.onboarding-overlay[data-theme=foyer] .onboarding-template-card:hover{border-color:var(--primary);background:var(--primary-subtle);transform:none;box-shadow:none}.onboarding-overlay[data-theme=foyer] .onboarding-template-card.selected{border-color:var(--primary);background:var(--primary-subtle);box-shadow:inset 3px 0 0 var(--primary)}.onboarding-overlay[data-theme=foyer] .onboarding-template-name{font-family:var(--font-display);font-weight:600;color:var(--ink-1)}.onboarding-overlay[data-theme=foyer] .onboarding-template-desc{color:var(--ink-2);font-family:var(--font-sans);font-style:normal}.onboarding-overlay[data-theme=foyer] .onboarding-budget-list{border:1px solid var(--border);border-radius:10px;background:#fff}.onboarding-overlay[data-theme=foyer] .onboarding-budget-cat{color:var(--ink-1);font-family:var(--font-sans);font-weight:500;border-bottom:1px solid var(--border)}.onboarding-overlay[data-theme=foyer] .onboarding-budget-amount{color:var(--primary);font-family:var(--font-display);font-weight:600}.onboarding-overlay[data-theme=foyer] .onboarding-budget-percent{color:var(--ink-3);font-family:var(--font-sans)}.onboarding-overlay[data-theme=foyer] .onboarding-summary-bar{background:var(--paper-darker);border-radius:999px;overflow:hidden}.onboarding-overlay[data-theme=foyer] .onboarding-summary-progress{background:var(--primary)}.onboarding-overlay[data-theme=foyer] .onboarding-summary-amounts{color:var(--ink-2);font-family:var(--font-sans)}.onboarding-overlay[data-theme=foyer] .onboarding-currency-btn{border:1.5px solid var(--border);background:#fff;color:var(--ink-1);font-family:var(--font-sans);transition:all .2s}.onboarding-overlay[data-theme=foyer] .onboarding-currency-btn:hover{border-color:var(--primary);background:var(--primary-subtle)}.onboarding-overlay[data-theme=foyer] .onboarding-currency-btn.selected{border-color:var(--primary);background:var(--primary);color:#fff}@media(max-width:480px){.onboarding-overlay[data-theme=foyer] .onboarding-card{padding:2rem 1.5rem;border-radius:12px}.onboarding-overlay[data-theme=foyer] .onboarding-card h2{font-size:1.5rem}}.nav-sidebar[data-theme=foyer],.nav-sidebar-overlay[data-theme=foyer],.bottom-nav[data-theme=foyer],.quick-fab[data-theme=foyer],.quick-fab-overlay[data-theme=foyer],.quick-fab-form[data-theme=foyer],.empty-state[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .08);--accent-subtle: rgba(193, 122, 79, .04);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--danger: #c25a4f;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif}.nav-sidebar[data-theme=foyer]{background:var(--paper);border-right:1px solid var(--border);box-shadow:2px 0 24px #2b252014;font-family:var(--font-sans);color:var(--ink-1)}.nav-sidebar[data-theme=foyer] .nav-sidebar-header{border-bottom:1px solid var(--border)}.nav-sidebar[data-theme=foyer] .nav-sidebar-title{font-family:var(--font-display);font-weight:600;color:var(--ink-1);letter-spacing:-.01em}.nav-sidebar[data-theme=foyer] .nav-sidebar-close{color:var(--ink-3);background:transparent;border:none;transition:color .2s,background .2s}.nav-sidebar[data-theme=foyer] .nav-sidebar-close:hover{color:var(--primary);background:var(--paper-dark)}.nav-sidebar[data-theme=foyer] .nav-sidebar-item{color:var(--ink-2);font-family:var(--font-sans);font-weight:500;border-radius:8px;transition:background .2s,color .2s}.nav-sidebar[data-theme=foyer] .nav-sidebar-item:hover{background:var(--paper-dark);color:var(--ink-1)}.nav-sidebar[data-theme=foyer] .nav-sidebar-item.active{background:var(--primary-subtle);color:var(--primary);font-weight:600}.nav-sidebar[data-theme=foyer] .nav-sidebar-item.active svg{color:var(--primary);stroke:var(--primary)}.nav-sidebar-overlay[data-theme=foyer]{background:#2b252047;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.bottom-nav[data-theme=foyer]{background:#faf8f3f2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);box-shadow:0 -2px 16px #2b25200f;font-family:var(--font-sans)}.bottom-nav[data-theme=foyer] .bottom-nav-item{color:var(--ink-3);background:transparent;border:none;transition:color .2s}.bottom-nav[data-theme=foyer] .bottom-nav-item:hover{color:var(--ink-1)}.bottom-nav[data-theme=foyer] .bottom-nav-item.active{color:var(--primary)}.bottom-nav[data-theme=foyer] .bottom-nav-item.active .bottom-nav-icon svg{color:var(--primary);stroke:var(--primary)}.bottom-nav[data-theme=foyer] .bottom-nav-label{font-family:var(--font-sans);font-weight:500;font-size:11px;letter-spacing:0}.bottom-nav[data-theme=foyer] .bottom-nav-add{color:#fff}.bottom-nav[data-theme=foyer] .bottom-nav-add .bottom-nav-icon{background:var(--primary);color:#fff;box-shadow:0 4px 12px #c17a4f4d;transition:background .2s,transform .15s}.bottom-nav[data-theme=foyer] .bottom-nav-add:active .bottom-nav-icon,.bottom-nav[data-theme=foyer] .bottom-nav-add:hover .bottom-nav-icon{background:var(--primary-hover)}.bottom-nav[data-theme=foyer] .bottom-nav-add .bottom-nav-icon svg{stroke:#fff;color:#fff}.quick-fab[data-theme=foyer]{background:var(--primary);color:#fff;box-shadow:0 6px 20px #c17a4f59;border:none;transition:background .2s,transform .2s,box-shadow .2s}.quick-fab[data-theme=foyer]:hover{background:var(--primary-hover);box-shadow:0 8px 28px #c17a4f73;transform:translateY(-2px)}.quick-fab[data-theme=foyer] svg{stroke:#fff;color:#fff}.quick-fab[data-theme=foyer].quick-fab-active{background:var(--primary-hover)}.quick-fab-overlay[data-theme=foyer]{background:#2b252052;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.quick-fab-form[data-theme=foyer]{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 32px #2b25201f;font-family:var(--font-sans);color:var(--ink-1)}.quick-fab-form[data-theme=foyer] h3,.quick-fab-form[data-theme=foyer] h2{font-family:var(--font-display);color:var(--ink-1);font-weight:500}.quick-fab-form[data-theme=foyer] label{color:var(--ink-2);font-family:var(--font-sans);font-weight:500}.quick-fab-form[data-theme=foyer] input,.quick-fab-form[data-theme=foyer] select,.quick-fab-form[data-theme=foyer] textarea{background:var(--paper);border:1px solid var(--border);color:var(--ink-1);font-family:var(--font-sans);border-radius:8px}.quick-fab-form[data-theme=foyer] input:focus,.quick-fab-form[data-theme=foyer] select:focus,.quick-fab-form[data-theme=foyer] textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #c17a4f26;outline:none}.quick-fab-form[data-theme=foyer] .btn-primary,.quick-fab-form[data-theme=foyer] button[type=submit]{background:var(--primary);color:#fff;border:none;border-radius:8px;font-family:var(--font-sans);font-weight:500;transition:background .2s}.quick-fab-form[data-theme=foyer] .btn-primary:hover,.quick-fab-form[data-theme=foyer] button[type=submit]:hover{background:var(--primary-hover)}.empty-state[data-theme=foyer]{color:var(--ink-2);font-family:var(--font-sans);padding:2.5rem 1.5rem;text-align:center}.empty-state[data-theme=foyer] .empty-state-icon{color:var(--primary);opacity:.85}.empty-state[data-theme=foyer] .empty-state-icon svg{stroke:var(--primary);color:var(--primary)}.empty-state[data-theme=foyer] .empty-state-title{font-family:var(--font-display);font-weight:500;color:var(--ink-1);font-size:1.25rem;letter-spacing:-.01em;margin-bottom:.5rem}.empty-state[data-theme=foyer] .empty-state-message{font-family:var(--font-serif);font-style:italic;color:var(--ink-2);font-size:1rem;line-height:1.55;max-width:420px;margin:0 auto 1.5rem}.empty-state[data-theme=foyer] .empty-state-action{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.empty-state[data-theme=foyer] .empty-state-cta{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:.7rem 1.25rem;font-family:var(--font-sans);font-weight:500;font-size:.95rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:background .2s,transform .15s,box-shadow .2s;box-shadow:0 2px 8px #c17a4f33}.empty-state[data-theme=foyer] .empty-state-cta:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 16px #c17a4f4d}.empty-state[data-theme=foyer] .empty-state-cta svg{stroke:#fff;color:#fff}.empty-state[data-theme=foyer] .btn-nav{background:transparent;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;padding:.7rem 1.25rem;font-family:var(--font-sans);font-weight:500;font-size:.95rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:all .2s}.empty-state[data-theme=foyer] .btn-nav:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.empty-state[data-theme=foyer] .empty-state-svg{opacity:.9}.section-header-row.align-start[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .08);--accent-light: rgba(193, 122, 79, .1);--accent-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;padding-bottom:.5rem}.section-header-row.align-start[data-theme=foyer] h1{font-family:var(--font-display);font-weight:500;color:var(--ink-1);font-size:clamp(1.35rem,2.2vw,1.65rem);letter-spacing:-.015em;display:inline-flex;align-items:center;gap:.5rem;margin:0}.section-header-row.align-start[data-theme=foyer] h1 .icon,.section-header-row.align-start[data-theme=foyer] h1 .icon-lg{color:var(--primary)}.section-header-row.align-start[data-theme=foyer] h1 .icon svg,.section-header-row.align-start[data-theme=foyer] h1 .icon-lg svg{color:var(--primary);stroke:var(--primary)}.section-header-row.align-start[data-theme=foyer] .header-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;position:relative;font-family:var(--font-sans)}.section-header-row.align-start[data-theme=foyer] #navSidebarToggle.btn-nav,.section-header-row.align-start[data-theme=foyer] #headerMenuToggle.btn-nav,.section-header-row.align-start[data-theme=foyer] #openAIChatBtn.btn-nav,.section-header-row.align-start[data-theme=foyer] #openTicketsAnalysisBtn.btn-nav{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:10px;padding:.5rem .65rem;font-family:var(--font-sans);font-size:.85rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-width:40px;min-height:40px;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;box-shadow:0 1px 2px #2b252008}.section-header-row.align-start[data-theme=foyer] #navSidebarToggle.btn-nav:hover,.section-header-row.align-start[data-theme=foyer] #headerMenuToggle.btn-nav:hover,.section-header-row.align-start[data-theme=foyer] #openAIChatBtn.btn-nav:hover,.section-header-row.align-start[data-theme=foyer] #openTicketsAnalysisBtn.btn-nav:hover{background:var(--paper-dark);border-color:var(--primary);color:var(--primary)}.section-header-row.align-start[data-theme=foyer] #navSidebarToggle.btn-nav:active,.section-header-row.align-start[data-theme=foyer] #headerMenuToggle.btn-nav:active{background:var(--accent-light);transform:scale(.97)}.section-header-row.align-start[data-theme=foyer] #navSidebarToggle .icon svg,.section-header-row.align-start[data-theme=foyer] #headerMenuToggle .icon svg,.section-header-row.align-start[data-theme=foyer] #openAIChatBtn .icon svg,.section-header-row.align-start[data-theme=foyer] #openTicketsAnalysisBtn .icon svg{color:currentColor;stroke:currentColor}.section-header-row.align-start[data-theme=foyer] #currentRateDisplay{align-items:center;gap:.25rem;background:var(--warning-bg);color:var(--ink-1);border:1px solid rgba(212,165,116,.35);border-radius:999px;padding:.2rem .65rem;font-family:var(--font-display);font-weight:600;font-size:.78rem;font-variant-numeric:tabular-nums}.section-header-row.align-start[data-theme=foyer] #currentRateDisplay:before{content:"CHF→EUR";font-family:var(--font-sans);font-weight:600;font-size:.65rem;color:var(--warning);letter-spacing:.04em;text-transform:uppercase;margin-right:.2rem}.section-header-row.align-start[data-theme=foyer] #exchangeRateBtn{background:#fff;color:var(--ink-2);border:1px solid var(--border);border-radius:10px;padding:.35rem .55rem;font-family:var(--font-sans);font-size:.8rem;font-weight:500;align-items:center;gap:.3rem;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease;min-width:36px;min-height:36px;box-shadow:0 1px 2px #2b252008}.section-header-row.align-start[data-theme=foyer] #exchangeRateBtn:hover{background:var(--warning-bg);border-color:var(--warning);color:var(--warning)}@media(max-width:768px){.section-header-row.align-start[data-theme=foyer] #headerActionsCollapsible.open,.section-header-row.align-start[data-theme=foyer] .header-actions-collapsible.open{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 28px #2b25201f;padding:.5rem;gap:.3rem}.section-header-row.align-start[data-theme=foyer] #headerActionsCollapsible.open .btn-nav,.section-header-row.align-start[data-theme=foyer] .header-actions-collapsible.open .btn-nav{width:100%;justify-content:flex-start;text-align:left;background:transparent;border:none;border-radius:8px;box-shadow:none;padding:.5rem .75rem;min-height:40px}.section-header-row.align-start[data-theme=foyer] #headerActionsCollapsible.open .btn-nav:hover,.section-header-row.align-start[data-theme=foyer] .header-actions-collapsible.open .btn-nav:hover{background:var(--paper-dark);color:var(--primary);border-color:transparent}}@media(max-width:640px){.section-header-row.align-start[data-theme=foyer] h1{font-size:1.25rem}.section-header-row.align-start[data-theme=foyer] #navSidebarToggle.btn-nav,.section-header-row.align-start[data-theme=foyer] #headerMenuToggle.btn-nav{padding:.45rem .55rem;min-width:38px;min-height:38px}}#userMenu[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .08);--accent: #c17a4f;--accent-dark: #a86840;--accent-light: rgba(193, 122, 79, .1);--accent-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif}#userMenu[data-theme=foyer] .user-menu-btn{background:#fff;border:1px solid var(--border);border-radius:999px;padding:4px 10px 4px 4px;gap:.5rem;font-family:var(--font-sans);cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease;box-shadow:0 1px 2px #2b252008}#userMenu[data-theme=foyer] .user-menu-btn:hover{background:var(--paper-dark);border-color:var(--border-hover);transform:translateY(-1px);box-shadow:0 3px 10px #2b25200f}#userMenu[data-theme=foyer] .user-avatar{border:2px solid var(--paper-dark);background:var(--paper-dark)}#userMenu[data-theme=foyer] .user-avatar-initial{background:var(--primary);background-image:linear-gradient(135deg,var(--primary) 0%,var(--accent-dark) 100%);color:#fff;border:2px solid rgba(255,255,255,.92);box-shadow:0 2px 8px #c17a4f38;font-family:var(--font-display);font-weight:600;font-size:.92rem;letter-spacing:-.02em}#userMenu[data-theme=foyer] .user-name{color:var(--ink-1);font-family:var(--font-display);font-weight:500;font-size:.88rem;letter-spacing:-.005em;max-width:150px}#userMenu[data-theme=foyer] .chevron{color:var(--ink-3)}#userMenu[data-theme=foyer] .user-menu-btn:hover .chevron{color:var(--primary)}#userMenu[data-theme=foyer] .user-menu-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-subtle),0 1px 2px #2b252008;border-color:var(--primary)}#userMenu[data-theme=foyer] .user-dropdown{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 32px #2b252024;min-width:240px;font-family:var(--font-sans);color:var(--ink-1);padding:.3rem 0;overflow:hidden}#userMenu[data-theme=foyer] .user-dropdown-header{padding:.85rem 1rem;border-bottom:1px solid var(--border);background:var(--paper-dark);display:flex;flex-direction:column;gap:.3rem}#userMenu[data-theme=foyer] .user-email{color:var(--ink-2);font-family:var(--font-sans);font-size:.8rem;font-weight:500;word-break:break-word}#userMenu[data-theme=foyer] .tier-badge{padding:2px 10px;border-radius:999px;font-family:var(--font-sans);font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-top:0;align-self:flex-start}#userMenu[data-theme=foyer] .tier-badge.tier-free{background:var(--paper-darker);color:var(--ink-2);background-image:none}#userMenu[data-theme=foyer] .tier-badge.tier-premium{background:var(--accent-light);color:var(--primary);background-image:none}#userMenu[data-theme=foyer] .tier-badge.tier-pro{background:var(--warning-bg);color:var(--warning);background-image:none}#userMenu[data-theme=foyer] .user-dropdown-item{color:var(--ink-1);font-family:var(--font-sans);font-size:.87rem;font-weight:500;padding:.55rem 1rem;gap:.65rem;cursor:pointer;transition:background .15s ease,color .15s ease}#userMenu[data-theme=foyer] .user-dropdown-item svg{color:var(--ink-3);stroke:var(--ink-3);flex-shrink:0;transition:color .15s ease,stroke .15s ease}#userMenu[data-theme=foyer] .user-dropdown-item:hover{background:var(--paper-dark);color:var(--primary)}#userMenu[data-theme=foyer] .user-dropdown-item:hover svg{color:var(--primary);stroke:var(--primary)}#userMenu[data-theme=foyer] .user-dropdown-item:active{background:var(--accent-light)}#userMenu[data-theme=foyer] #deleteAllTransactionsBtn svg{color:var(--danger);stroke:var(--danger)}#userMenu[data-theme=foyer] #deleteAllTransactionsBtn:hover{background:var(--danger-bg);color:var(--danger)}#userMenu[data-theme=foyer] #deleteAllTransactionsBtn:hover svg{color:var(--danger);stroke:var(--danger)}#userMenu[data-theme=foyer] #logoutBtn:hover{background:var(--paper-dark);color:var(--ink-1)}#userMenu[data-theme=foyer] #logoutBtn:hover svg{color:var(--ink-1);stroke:var(--ink-1)}#userMenu[data-theme=foyer] .user-dropdown-divider{height:1px;background:var(--border);margin:.3rem 0;border:none}#userMenu[data-theme=foyer] #themeSelect,#userMenu[data-theme=foyer] #languageSelect{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:8px;padding:.35rem .55rem;font-family:var(--font-sans);font-size:.82rem;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease}#userMenu[data-theme=foyer] #themeSelect:hover,#userMenu[data-theme=foyer] #languageSelect:hover{border-color:var(--border-hover)}#userMenu[data-theme=foyer] #themeSelect:focus,#userMenu[data-theme=foyer] #languageSelect:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}#userMenu[data-theme=foyer]>a.btn-nav{background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:10px;padding:.5rem 1rem;font-family:var(--font-sans);font-weight:500;font-size:.88rem;text-decoration:none;display:inline-flex;align-items:center;gap:.3rem;box-shadow:0 1px 2px #c17a4f33;transition:background .18s ease,border-color .18s ease}#userMenu[data-theme=foyer]>a.btn-nav:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}@media(max-width:480px){#userMenu[data-theme=foyer] .user-dropdown{border-radius:16px;min-width:auto;box-shadow:0 16px 40px #2b25202e}}@media(max-width:640px){#userMenu[data-theme=foyer] .user-menu-btn{padding:3px 8px 3px 3px;gap:.4rem}#userMenu[data-theme=foyer] .user-name{max-width:100px;font-size:.82rem}#userMenu[data-theme=foyer] .user-avatar,#userMenu[data-theme=foyer] .user-avatar-initial{width:28px;height:28px;font-size:.82rem}}.page-tabs[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--primary: #c17a4f;--primary-hover: #a86840;--accent-light: rgba(193, 122, 79, .1);--accent-subtle: rgba(193, 122, 79, .06);--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, sans-serif;background:transparent;border:none;border-bottom:1px solid rgba(43,37,32,.08);border-radius:0;padding:.15rem 0 .85rem;display:flex;gap:2rem;box-shadow:none;margin-bottom:1.5rem;position:relative;counter-reset:chapter}.page-tabs[data-theme=foyer]:before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,rgba(193,122,79,.35) 0%,rgba(193,122,79,.35) 12%,transparent 14%);pointer-events:none}.page-tabs[data-theme=foyer] .page-tab{background:transparent;color:var(--ink-3);border:none;border-radius:0;padding:.25rem 0 .5rem;font-family:var(--font-serif, "Fraunces", Georgia, serif);font-size:.92rem;font-weight:400;letter-spacing:0;cursor:pointer;display:inline-flex;align-items:baseline;gap:.5rem;transition:color .18s ease,border-color .18s ease;position:relative;counter-increment:chapter}.page-tabs[data-theme=foyer] .page-tab:before{content:counter(chapter,upper-roman) ". ";font-family:var(--font-serif, "Fraunces", Georgia, serif);font-style:italic;font-size:.75rem;color:var(--ink-3);opacity:.7;letter-spacing:.05em;min-width:1.8em;text-align:right}.page-tabs[data-theme=foyer] .page-tab:hover{color:var(--ink-1);background:transparent}.page-tabs[data-theme=foyer] .page-tab:hover:before{opacity:1;color:var(--primary)}.page-tabs[data-theme=foyer] .page-tab.active{background:transparent;color:var(--ink-1);box-shadow:none;font-weight:500}.page-tabs[data-theme=foyer] .page-tab.active:before{color:var(--primary);opacity:1}.page-tabs[data-theme=foyer] .page-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-.9rem;height:2px;background:var(--primary);border-radius:1px}.page-tabs[data-theme=foyer] .page-tab.active:hover{background:transparent;color:var(--ink-1)}.page-tabs[data-theme=foyer] .page-tab-icon{display:none}.tickets-analysis[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--primary: #c17a4f;--primary-hover: #a86840;--accent-light: rgba(193, 122, 79, .1);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, sans-serif;font-family:var(--font-sans);color:var(--ink-1)}.tickets-analysis[data-theme=foyer] .section-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.tickets-analysis[data-theme=foyer] h2{font-family:var(--font-display);font-weight:500;font-size:clamp(1.25rem,2vw,1.5rem);color:var(--ink-1);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.55rem;margin:0}.tickets-analysis[data-theme=foyer] h2 .icon svg{color:var(--primary);stroke:var(--primary)}.tickets-analysis[data-theme=foyer] .section-desc{color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.92rem;line-height:1.55;margin-bottom:1.25rem}.tickets-analysis[data-theme=foyer] .btn-nav{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:10px;padding:.5rem .85rem;font-family:var(--font-sans);font-size:.85rem;font-weight:500;transition:background .18s ease,border-color .18s ease,color .18s ease}.tickets-analysis[data-theme=foyer] .btn-nav:hover{background:var(--paper-dark);border-color:var(--primary);color:var(--primary)}.tickets-analysis[data-theme=foyer] .ticket-upload-zone{background:#fff;border:1.5px dashed var(--border-hover);border-radius:14px;padding:2.5rem 1.5rem;text-align:center;color:var(--ink-2);transition:border-color .18s ease,background .18s ease;cursor:pointer}.tickets-analysis[data-theme=foyer] .ticket-upload-zone:hover{border-color:var(--primary);background:var(--paper-dark)}.tickets-analysis[data-theme=foyer] .ticket-upload-zone .icon svg{color:var(--primary);stroke:var(--primary)}.tickets-analysis[data-theme=foyer] .subsection-title-lg{font-family:var(--font-display);font-weight:500;color:var(--ink-1);font-size:1.05rem;margin:.75rem 0 .4rem;letter-spacing:-.005em}.tickets-analysis[data-theme=foyer] .ticket-upload-hint,.tickets-analysis[data-theme=foyer] .ticket-upload-subhint{color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.85rem}.tickets-analysis[data-theme=foyer] .ticket-processing{background:var(--paper-dark);border:1px solid var(--border);border-radius:12px;padding:1.5rem;text-align:center;margin:1rem 0}.tickets-analysis[data-theme=foyer] .ticket-processing-text{color:var(--ink-2);font-family:var(--font-sans);margin-top:.75rem}.tickets-analysis[data-theme=foyer] .tickets-analysis-section{background:#fff;border:1px solid var(--border);border-radius:14px;padding:1.25rem;margin-top:1rem;box-shadow:0 1px 2px #2b252008}@media(max-width:640px){.page-tabs[data-theme=foyer]{width:100%;overflow-x:auto}.page-tabs[data-theme=foyer] .page-tab{flex-shrink:0;font-size:.8rem;padding:.45rem .75rem}.tickets-analysis[data-theme=foyer] .ticket-upload-zone{padding:1.75rem 1rem}}.savings-modal-overlay[data-theme=foyer],.savings-modal[data-theme=foyer],#toastContainer[data-theme=foyer],.toast-container[data-theme=foyer],#insightsFeedContainer[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .08);--accent-subtle: rgba(193, 122, 79, .04);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--danger: #c25a4f;--danger-bg: #fceae8;--warning: #d4a574;--warning-bg: #f9f1e8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif}.savings-modal-overlay[data-theme=foyer]{background:#2b252052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.savings-modal[data-theme=foyer]{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px #2b252026;color:var(--ink-1);font-family:var(--font-sans)}.savings-modal[data-theme=foyer] h2,.savings-modal[data-theme=foyer] h3,.savings-modal[data-theme=foyer] .savings-modal-title,.savings-modal[data-theme=foyer] .modal-title{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em}.savings-modal[data-theme=foyer] .savings-modal-header,.savings-modal[data-theme=foyer] .modal-header{border-bottom:1px solid var(--border)}.savings-modal[data-theme=foyer] .savings-modal-close,.savings-modal[data-theme=foyer] .modal-close{color:var(--ink-3);background:transparent;border:none;border-radius:8px;transition:color .2s,background .2s}.savings-modal[data-theme=foyer] .savings-modal-close:hover,.savings-modal[data-theme=foyer] .modal-close:hover{color:var(--primary);background:var(--paper-dark)}.savings-modal[data-theme=foyer] p,.savings-modal[data-theme=foyer] .savings-modal-description{color:var(--ink-2);font-family:var(--font-sans)}.savings-modal[data-theme=foyer] .modal-subtitle,.savings-modal[data-theme=foyer] .savings-modal-subtitle{font-family:var(--font-serif);font-style:italic;color:var(--ink-2)}.savings-modal[data-theme=foyer] .settings-tab,.savings-modal[data-theme=foyer] .modal-tab,.savings-modal[data-theme=foyer] .tab-btn{background:transparent;border:none;color:var(--ink-3);font-family:var(--font-sans);font-weight:500;padding:.6rem 1rem;cursor:pointer;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.savings-modal[data-theme=foyer] .settings-tab:hover,.savings-modal[data-theme=foyer] .modal-tab:hover,.savings-modal[data-theme=foyer] .tab-btn:hover{color:var(--ink-1)}.savings-modal[data-theme=foyer] .settings-tab.active,.savings-modal[data-theme=foyer] .modal-tab.active,.savings-modal[data-theme=foyer] .tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.savings-modal[data-theme=foyer] label{color:var(--ink-2);font-family:var(--font-sans);font-weight:500}.savings-modal[data-theme=foyer] input[type=text],.savings-modal[data-theme=foyer] input[type=email],.savings-modal[data-theme=foyer] input[type=password],.savings-modal[data-theme=foyer] input[type=number],.savings-modal[data-theme=foyer] input[type=url],.savings-modal[data-theme=foyer] input[type=search],.savings-modal[data-theme=foyer] input[type=date],.savings-modal[data-theme=foyer] select,.savings-modal[data-theme=foyer] textarea{background:var(--paper);border:1px solid var(--border);border-radius:8px;color:var(--ink-1);font-family:var(--font-sans);padding:.7rem .9rem;transition:border-color .2s,box-shadow .2s}.savings-modal[data-theme=foyer] input:focus,.savings-modal[data-theme=foyer] select:focus,.savings-modal[data-theme=foyer] textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #c17a4f26;outline:none}.savings-modal[data-theme=foyer] input::placeholder,.savings-modal[data-theme=foyer] textarea::placeholder{color:var(--ink-fade)}.savings-modal[data-theme=foyer] .btn-primary,.savings-modal[data-theme=foyer] button[type=submit]{background:var(--primary);color:#fff;border:none;border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;box-shadow:0 2px 8px #c17a4f33;transition:background .2s,transform .15s,box-shadow .2s;cursor:pointer}.savings-modal[data-theme=foyer] .btn-primary:hover,.savings-modal[data-theme=foyer] button[type=submit]:hover{background:var(--primary-hover);box-shadow:0 4px 16px #c17a4f4d;transform:translateY(-1px)}.savings-modal[data-theme=foyer] .btn-secondary,.savings-modal[data-theme=foyer] .btn-nav{background:transparent;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;transition:all .2s;cursor:pointer}.savings-modal[data-theme=foyer] .btn-secondary:hover,.savings-modal[data-theme=foyer] .btn-nav:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.savings-modal[data-theme=foyer] .btn-danger{background:var(--danger);color:#fff;border:none;border-radius:8px;font-family:var(--font-sans);font-weight:500;transition:background .2s}.savings-modal[data-theme=foyer] .btn-danger:hover{background:#a84a40}.savings-modal[data-theme=foyer] .settings-row,.savings-modal[data-theme=foyer] .savings-row,.savings-modal[data-theme=foyer] .member-row,.savings-modal[data-theme=foyer] .list-row{border-bottom:1px solid var(--border);color:var(--ink-1)}.savings-modal[data-theme=foyer] .settings-row-label{color:var(--ink-2);font-family:var(--font-sans)}.savings-modal[data-theme=foyer] .settings-row-value,.savings-modal[data-theme=foyer] .member-name{color:var(--ink-1);font-family:var(--font-sans);font-weight:500}.savings-modal[data-theme=foyer] input[type=checkbox]:checked{accent-color:var(--primary)}.savings-modal[data-theme=foyer] .toggle-switch.active,.savings-modal[data-theme=foyer] input[type=checkbox][role=switch]:checked{background-color:var(--primary)}.savings-modal[data-theme=foyer] .badge,.savings-modal[data-theme=foyer] .member-role,.savings-modal[data-theme=foyer] .role-badge{background:var(--primary-subtle);color:var(--primary-hover);border-radius:100px;padding:.2rem .65rem;font-family:var(--font-sans);font-weight:500;font-size:.8rem}.savings-modal[data-theme=foyer] .savings-modal-actions,.savings-modal[data-theme=foyer] .modal-footer,.savings-modal[data-theme=foyer] .modal-actions{border-top:1px solid var(--border)}#toastContainer[data-theme=foyer] .toast,.toast-container[data-theme=foyer] .toast{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:10px;box-shadow:0 4px 16px #2b25201a;font-family:var(--font-sans)}#toastContainer[data-theme=foyer] .toast-success,.toast-container[data-theme=foyer] .toast-success{border-left-color:var(--success)}#toastContainer[data-theme=foyer] .toast-error,.toast-container[data-theme=foyer] .toast-error{border-left-color:var(--danger)}#toastContainer[data-theme=foyer] .toast-warning,.toast-container[data-theme=foyer] .toast-warning{border-left-color:var(--warning)}#toastContainer[data-theme=foyer] .toast-info,.toast-container[data-theme=foyer] .toast-info{border-left-color:var(--primary)}#toastContainer[data-theme=foyer] .toast-icon,.toast-container[data-theme=foyer] .toast-icon{color:var(--ink-2)}#toastContainer[data-theme=foyer] .toast-success .toast-icon,.toast-container[data-theme=foyer] .toast-success .toast-icon{color:var(--success)}#toastContainer[data-theme=foyer] .toast-error .toast-icon,.toast-container[data-theme=foyer] .toast-error .toast-icon{color:var(--danger)}#toastContainer[data-theme=foyer] .toast-warning .toast-icon,.toast-container[data-theme=foyer] .toast-warning .toast-icon{color:var(--warning)}#toastContainer[data-theme=foyer] .toast-info .toast-icon,.toast-container[data-theme=foyer] .toast-info .toast-icon{color:var(--primary)}#toastContainer[data-theme=foyer] .toast-message,.toast-container[data-theme=foyer] .toast-message{color:var(--ink-1);font-family:var(--font-sans)}#toastContainer[data-theme=foyer] .toast-action,.toast-container[data-theme=foyer] .toast-action{background:var(--primary);color:#fff;border:none;border-radius:6px;padding:.3rem .7rem;font-family:var(--font-sans);font-weight:500;cursor:pointer;transition:background .2s}#toastContainer[data-theme=foyer] .toast-action:hover,.toast-container[data-theme=foyer] .toast-action:hover{background:var(--primary-hover)}#toastContainer[data-theme=foyer] .toast-close,.toast-container[data-theme=foyer] .toast-close{color:var(--ink-3);background:transparent;border:none;transition:color .2s}#toastContainer[data-theme=foyer] .toast-close:hover,.toast-container[data-theme=foyer] .toast-close:hover{color:var(--primary)}#toastContainer[data-theme=foyer] .toast-progress,.toast-container[data-theme=foyer] .toast-progress{background:var(--primary);opacity:.4}#insightsFeedContainer[data-theme=foyer] .insight-card{background:#fff;border:1px solid var(--border);border-left:2.5px solid var(--primary);color:var(--ink-1);font-family:var(--font-sans);box-shadow:0 1px 3px #2b25200d;backdrop-filter:none;-webkit-backdrop-filter:none}#insightsFeedContainer[data-theme=foyer] .insight-card:hover{background:var(--primary-subtle);box-shadow:0 2px 8px #2b252014;border-left-width:3px}#insightsFeedContainer[data-theme=foyer] .insight-icon{background:var(--primary-subtle);color:var(--primary)}#insightsFeedContainer[data-theme=foyer] .insight-icon svg{stroke:var(--primary);color:var(--primary)}#insightsFeedContainer[data-theme=foyer] .insight-title{font-family:var(--font-display);font-weight:600;color:var(--ink-1);letter-spacing:-.005em}#insightsFeedContainer[data-theme=foyer] .insight-message{color:var(--ink-2);font-family:var(--font-sans)}#insightsFeedContainer[data-theme=foyer] .insights-empty{color:var(--ink-3);font-family:var(--font-sans);text-align:center;padding:1.5rem 1rem}#insightsFeedContainer[data-theme=foyer] .insights-empty-icon{color:var(--primary);opacity:.7}#insightsFeedContainer[data-theme=foyer] .insights-empty-icon svg{stroke:var(--primary);color:var(--primary)}#transactionEditModal[data-theme=foyer],.split-modal[data-theme=foyer],.split-modal-overlay[data-theme=foyer],#recurrenceModal[data-theme=foyer],#aiExtractionModal[data-theme=foyer],#aiChatModal[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .08);--accent-subtle: rgba(193, 122, 79, .04);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--danger: #c25a4f;--danger-bg: #fceae8;--warning: #d4a574;--warning-bg: #f9f1e8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif}#transactionEditModal[data-theme=foyer],#recurrenceModal[data-theme=foyer],#aiExtractionModal[data-theme=foyer],#aiChatModal[data-theme=foyer]{background:#2b252052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-family:var(--font-sans)}#transactionEditModal[data-theme=foyer] .modal-content,#recurrenceModal[data-theme=foyer] .modal-content,#aiExtractionModal[data-theme=foyer] .modal-content,#aiChatModal[data-theme=foyer] .modal-content{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px #2b252026;color:var(--ink-1)}#transactionEditModal[data-theme=foyer] .modal-header,#recurrenceModal[data-theme=foyer] .modal-header,#aiExtractionModal[data-theme=foyer] .modal-header,#aiChatModal[data-theme=foyer] .modal-header{background:#fff;color:var(--ink-1);border-bottom:1px solid var(--border)}#transactionEditModal[data-theme=foyer] .modal-header h2,#recurrenceModal[data-theme=foyer] .modal-header h2,#recurrenceModal[data-theme=foyer] #recurrenceModalTitle,#aiExtractionModal[data-theme=foyer] .modal-header h2,#aiChatModal[data-theme=foyer] .modal-header h2{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em}#transactionEditModal[data-theme=foyer] .modal-close,#recurrenceModal[data-theme=foyer] .modal-close,#aiExtractionModal[data-theme=foyer] .modal-close,#aiChatModal[data-theme=foyer] .modal-close{color:var(--ink-3);background:transparent;border:none;border-radius:8px;transition:color .2s,background .2s}#transactionEditModal[data-theme=foyer] .modal-close:hover,#recurrenceModal[data-theme=foyer] .modal-close:hover,#aiExtractionModal[data-theme=foyer] .modal-close:hover,#aiChatModal[data-theme=foyer] .modal-close:hover{color:var(--primary);background:var(--paper-dark)}#transactionEditModal[data-theme=foyer] .modal-body,#recurrenceModal[data-theme=foyer] .modal-body,#aiExtractionModal[data-theme=foyer] .modal-body,#aiChatModal[data-theme=foyer] .modal-body{background:#fff;color:var(--ink-1)}#transactionEditModal[data-theme=foyer] p,#recurrenceModal[data-theme=foyer] p,#aiExtractionModal[data-theme=foyer] p,#aiChatModal[data-theme=foyer] p{color:var(--ink-2);font-family:var(--font-sans)}#transactionEditModal[data-theme=foyer] label,#recurrenceModal[data-theme=foyer] label,#aiExtractionModal[data-theme=foyer] label,#aiChatModal[data-theme=foyer] label{color:var(--ink-2);font-family:var(--font-sans);font-weight:500}#transactionEditModal[data-theme=foyer] input[type=text],#transactionEditModal[data-theme=foyer] input[type=email],#transactionEditModal[data-theme=foyer] input[type=number],#transactionEditModal[data-theme=foyer] input[type=date],#transactionEditModal[data-theme=foyer] input[type=url],#transactionEditModal[data-theme=foyer] select,#transactionEditModal[data-theme=foyer] textarea,#recurrenceModal[data-theme=foyer] input[type=text],#recurrenceModal[data-theme=foyer] input[type=number],#recurrenceModal[data-theme=foyer] input[type=date],#recurrenceModal[data-theme=foyer] select,#recurrenceModal[data-theme=foyer] textarea,#aiExtractionModal[data-theme=foyer] input[type=text],#aiExtractionModal[data-theme=foyer] input[type=number],#aiExtractionModal[data-theme=foyer] input[type=date],#aiExtractionModal[data-theme=foyer] input[type=file],#aiExtractionModal[data-theme=foyer] select,#aiExtractionModal[data-theme=foyer] textarea,#aiChatModal[data-theme=foyer] input[type=text],#aiChatModal[data-theme=foyer] input[type=search],#aiChatModal[data-theme=foyer] textarea{background:var(--paper);border:1px solid var(--border);border-radius:8px;color:var(--ink-1);font-family:var(--font-sans);padding:.7rem .9rem;transition:border-color .2s,box-shadow .2s}#transactionEditModal[data-theme=foyer] input:focus,#transactionEditModal[data-theme=foyer] select:focus,#transactionEditModal[data-theme=foyer] textarea:focus,#recurrenceModal[data-theme=foyer] input:focus,#recurrenceModal[data-theme=foyer] select:focus,#recurrenceModal[data-theme=foyer] textarea:focus,#aiExtractionModal[data-theme=foyer] input:focus,#aiExtractionModal[data-theme=foyer] select:focus,#aiExtractionModal[data-theme=foyer] textarea:focus,#aiChatModal[data-theme=foyer] input:focus,#aiChatModal[data-theme=foyer] textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #c17a4f26;outline:none}#transactionEditModal[data-theme=foyer] .btn-primary,#recurrenceModal[data-theme=foyer] .btn-primary,#aiExtractionModal[data-theme=foyer] .btn-primary,#aiChatModal[data-theme=foyer] .btn-primary,#transactionEditModal[data-theme=foyer] button[type=submit],#recurrenceModal[data-theme=foyer] button[type=submit],#aiExtractionModal[data-theme=foyer] button[type=submit],#aiChatModal[data-theme=foyer] button[type=submit]{background:var(--primary);color:#fff;border:none;border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;box-shadow:0 2px 8px #c17a4f33;transition:background .2s,transform .15s,box-shadow .2s;cursor:pointer}#transactionEditModal[data-theme=foyer] .btn-primary:hover,#recurrenceModal[data-theme=foyer] .btn-primary:hover,#aiExtractionModal[data-theme=foyer] .btn-primary:hover,#aiChatModal[data-theme=foyer] .btn-primary:hover,#transactionEditModal[data-theme=foyer] button[type=submit]:hover,#recurrenceModal[data-theme=foyer] button[type=submit]:hover,#aiExtractionModal[data-theme=foyer] button[type=submit]:hover,#aiChatModal[data-theme=foyer] button[type=submit]:hover{background:var(--primary-hover);box-shadow:0 4px 16px #c17a4f4d;transform:translateY(-1px)}#transactionEditModal[data-theme=foyer] .btn-nav,#recurrenceModal[data-theme=foyer] .btn-nav,#aiExtractionModal[data-theme=foyer] .btn-nav,#aiChatModal[data-theme=foyer] .btn-nav,#transactionEditModal[data-theme=foyer] .btn-secondary,#recurrenceModal[data-theme=foyer] .btn-secondary,#aiExtractionModal[data-theme=foyer] .btn-secondary,#aiChatModal[data-theme=foyer] .btn-secondary{background:transparent;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;transition:all .2s;cursor:pointer}#transactionEditModal[data-theme=foyer] .btn-nav:hover,#recurrenceModal[data-theme=foyer] .btn-nav:hover,#aiExtractionModal[data-theme=foyer] .btn-nav:hover,#aiChatModal[data-theme=foyer] .btn-nav:hover,#transactionEditModal[data-theme=foyer] .btn-secondary:hover,#recurrenceModal[data-theme=foyer] .btn-secondary:hover,#aiExtractionModal[data-theme=foyer] .btn-secondary:hover,#aiChatModal[data-theme=foyer] .btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}#transactionEditModal[data-theme=foyer] input[type=checkbox]:checked,#recurrenceModal[data-theme=foyer] input[type=checkbox]:checked,#aiExtractionModal[data-theme=foyer] input[type=checkbox]:checked,#aiChatModal[data-theme=foyer] input[type=checkbox]:checked{accent-color:var(--primary)}#aiChatModal[data-theme=foyer] .chat-messages{background:var(--paper-dark);color:var(--ink-1);border-radius:12px;font-family:var(--font-sans)}#aiChatModal[data-theme=foyer] .chat-message{font-family:var(--font-sans);color:var(--ink-1)}#aiChatModal[data-theme=foyer] .chat-message.user-message,#aiChatModal[data-theme=foyer] .user-message{background:var(--primary);color:#fff;border-radius:14px 14px 4px}#aiChatModal[data-theme=foyer] .chat-message.ai-message,#aiChatModal[data-theme=foyer] .ai-message{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:14px 14px 14px 4px}#aiChatModal[data-theme=foyer] .chat-message.loading-message,#aiChatModal[data-theme=foyer] .loading-message{color:var(--ink-3)}#aiChatModal[data-theme=foyer] .chat-input-container{background:#fff;border-top:1px solid var(--border)}#aiChatModal[data-theme=foyer] .quick-question-btn{background:transparent;border:none;border-bottom:1px solid transparent;color:var(--ink-2);border-radius:0;font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:400;font-size:.88rem;padding:.2rem 0;margin:0 .85rem .4rem 0;transition:color .15s ease,border-color .15s ease;cursor:pointer;box-shadow:none}#aiChatModal[data-theme=foyer] .quick-question-btn:hover{border-color:transparent;border-bottom-color:var(--primary);color:var(--primary);background:transparent}#aiChatModal[data-theme=foyer] #aiChatUsageBadge{background:transparent;border:none;border-radius:0;padding:0;color:var(--ink-3);font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:400;font-size:.78rem;box-shadow:none}#aiChatModal[data-theme=foyer] .loading-spinner{border-color:var(--border);border-top-color:var(--primary)}#aiExtractionModal[data-theme=foyer] .upload-zone,#aiExtractionModal[data-theme=foyer] .attachment-zone{background:var(--paper);border:2px dashed var(--border);border-radius:12px;color:var(--ink-2);font-family:var(--font-sans);transition:all .2s}#aiExtractionModal[data-theme=foyer] .upload-zone:hover,#aiExtractionModal[data-theme=foyer] .attachment-zone:hover{border-color:var(--primary);background:var(--primary-subtle)}#aiExtractionModal[data-theme=foyer] .extraction-stats{background:var(--paper-dark);border:1px solid var(--border);border-radius:10px}#aiExtractionModal[data-theme=foyer] .extraction-stat-label{color:var(--ink-3);font-family:var(--font-sans)}#aiExtractionModal[data-theme=foyer] .extraction-stat-value{color:var(--primary);font-family:var(--font-display);font-weight:600}#aiExtractionModal[data-theme=foyer] .ext-tx-row-main,#aiExtractionModal[data-theme=foyer] .ext-tx-body{background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--ink-1);font-family:var(--font-sans)}#aiExtractionModal[data-theme=foyer] .ext-tx-row-meta,#aiExtractionModal[data-theme=foyer] .ext-tx-amount-prefix{color:var(--ink-3)}#aiExtractionModal[data-theme=foyer] .ext-tx-check-label{color:var(--ink-2);font-family:var(--font-sans)}#aiExtractionModal[data-theme=foyer] .attachment-thumb{border:1px solid var(--border);border-radius:8px}#aiExtractionModal[data-theme=foyer] .att-preview-link{color:var(--primary);font-family:var(--font-sans)}#aiExtractionModal[data-theme=foyer] .att-preview-link:hover{color:var(--primary-hover)}#aiExtractionModal[data-theme=foyer] .ai-config-section{background:var(--paper-dark);border:1px solid var(--border);border-radius:10px}#aiExtractionModal[data-theme=foyer] .ai-reason-tooltip{background:var(--ink-1);color:#fff;border-radius:6px;font-family:var(--font-sans)}#transactionEditModal[data-theme=foyer] .form-row{gap:.85rem}#transactionEditModal[data-theme=foyer] .transaction-edit-inline-error{color:var(--danger);font-family:var(--font-sans)}#transactionEditModal[data-theme=foyer] .exchange-rate-info{color:var(--ink-3);font-family:var(--font-sans);background:var(--paper-dark);border-radius:6px;padding:.35rem .6rem}#transactionEditModal[data-theme=foyer] .info-icon{color:var(--primary)}#recurrenceModal[data-theme=foyer] fieldset{border:1px solid var(--border);border-radius:10px;background:var(--paper-dark)}#recurrenceModal[data-theme=foyer] legend{color:var(--ink-2);font-family:var(--font-sans);font-weight:500;padding:0 .4rem}.split-modal-overlay[data-theme=foyer]{background:#2b252052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.split-modal[data-theme=foyer]{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px #2b252026;color:var(--ink-1);font-family:var(--font-sans)}.split-modal[data-theme=foyer] .split-modal-header{border-bottom:1px solid var(--border);background:#fff}.split-modal[data-theme=foyer] .split-modal-header h2,.split-modal[data-theme=foyer] #splitModal-title{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em}.split-modal[data-theme=foyer] .split-modal-close{color:var(--ink-3);background:transparent;border:none;border-radius:8px;transition:color .2s,background .2s}.split-modal[data-theme=foyer] .split-modal-close:hover{color:var(--primary);background:var(--paper-dark)}.split-modal[data-theme=foyer] .split-modal-body{background:#fff;color:var(--ink-1)}.split-modal[data-theme=foyer] .split-original{background:var(--paper-dark);border:1px solid var(--border);border-radius:10px;color:var(--ink-1)}.split-modal[data-theme=foyer] .split-lines{border-top:1px solid var(--border)}.split-modal[data-theme=foyer] .split-line{background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0;color:var(--ink-1);padding:.6rem 0;position:relative}.split-modal[data-theme=foyer] .split-line:before{content:"";position:absolute;left:-.5rem;top:50%;transform:translateY(-50%);width:2px;height:1.1em;background:var(--primary);opacity:.55;border-radius:1px}.split-modal[data-theme=foyer] .split-summary{background:transparent;border:none;border-left:2px solid var(--primary);border-radius:0;padding:.5rem 0 .5rem .85rem;color:var(--ink-2);font-family:var(--font-serif);font-style:italic;font-size:.95rem}.split-modal[data-theme=foyer] .split-summary.invalid{border-left-color:var(--danger);color:var(--danger);background:transparent}.split-modal[data-theme=foyer] .split-summary.valid{border-left-color:var(--success);color:var(--success);background:transparent}.split-modal[data-theme=foyer] .split-original{background:var(--paper);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:10px;padding:.75rem 1rem;font-family:var(--font-sans);color:var(--ink-1)}.split-modal[data-theme=foyer] .split-desc,.split-modal[data-theme=foyer] .split-cat,.split-modal[data-theme=foyer] .split-amount{background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--ink-1);font-family:var(--font-sans)}.split-modal[data-theme=foyer] .split-desc:focus,.split-modal[data-theme=foyer] .split-cat:focus,.split-modal[data-theme=foyer] .split-amount:focus{border-color:var(--primary);box-shadow:0 0 0 3px #c17a4f26;outline:none}.split-modal[data-theme=foyer] .split-remove-btn{color:var(--danger);background:transparent;border:1px solid var(--border);border-radius:8px;transition:all .2s}.split-modal[data-theme=foyer] .split-remove-btn:hover{background:var(--danger-bg);border-color:var(--danger)}.split-modal[data-theme=foyer] .split-add-line-btn{background:var(--primary-subtle);color:var(--primary);border:1px dashed var(--primary);border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.6rem 1rem;cursor:pointer;transition:all .2s}.split-modal[data-theme=foyer] .split-add-line-btn:hover{background:var(--primary);color:#fff;border-style:solid}.split-modal[data-theme=foyer] .split-modal-footer{border-top:1px solid var(--border);background:#fff}.split-modal[data-theme=foyer] .btn-primary{background:var(--primary);color:#fff;border:none;border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;box-shadow:0 2px 8px #c17a4f33;transition:all .2s;cursor:pointer}.split-modal[data-theme=foyer] .btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 16px #c17a4f4d;transform:translateY(-1px)}.split-modal[data-theme=foyer] .btn-nav,.split-modal[data-theme=foyer] .btn-secondary{background:transparent;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;transition:all .2s}.split-modal[data-theme=foyer] .btn-nav:hover,.split-modal[data-theme=foyer] .btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.csv-wizard-overlay[data-theme=foyer],.csv-wizard-modal[data-theme=foyer],.modal-overlay[data-theme=foyer],.pdf-import-modal[data-theme=foyer],.report-modal-overlay[data-theme=foyer],.report-modal[data-theme=foyer],#importHistoryModal[data-theme=foyer],#aiSettingsModal[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .08);--accent-subtle: rgba(193, 122, 79, .04);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--danger: #c25a4f;--danger-bg: #fceae8;--warning: #d4a574;--warning-bg: #f9f1e8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif}#importHistoryModal[data-theme=foyer],#aiSettingsModal[data-theme=foyer]{background:#2b252052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-family:var(--font-sans)}#importHistoryModal[data-theme=foyer] .modal-content,#aiSettingsModal[data-theme=foyer] .modal-content{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px #2b252026;color:var(--ink-1)}#importHistoryModal[data-theme=foyer] .modal-header,#aiSettingsModal[data-theme=foyer] .modal-header{background:#fff;color:var(--ink-1);border-bottom:1px solid var(--border)}#importHistoryModal[data-theme=foyer] .modal-header h2,#aiSettingsModal[data-theme=foyer] .modal-header h2{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em}#importHistoryModal[data-theme=foyer] .modal-close,#aiSettingsModal[data-theme=foyer] .modal-close{color:var(--ink-3);background:transparent;border:none;border-radius:8px;transition:color .2s,background .2s}#importHistoryModal[data-theme=foyer] .modal-close:hover,#aiSettingsModal[data-theme=foyer] .modal-close:hover{color:var(--primary);background:var(--paper-dark)}#importHistoryModal[data-theme=foyer] .modal-body,#aiSettingsModal[data-theme=foyer] .modal-body{background:#fff;color:var(--ink-1)}#importHistoryModal[data-theme=foyer] label,#aiSettingsModal[data-theme=foyer] label{color:var(--ink-2);font-family:var(--font-sans);font-weight:500}#importHistoryModal[data-theme=foyer] input,#importHistoryModal[data-theme=foyer] select,#importHistoryModal[data-theme=foyer] textarea,#aiSettingsModal[data-theme=foyer] input,#aiSettingsModal[data-theme=foyer] select,#aiSettingsModal[data-theme=foyer] textarea{background:var(--paper);border:1px solid var(--border);border-radius:8px;color:var(--ink-1);font-family:var(--font-sans);padding:.7rem .9rem;transition:border-color .2s,box-shadow .2s}#importHistoryModal[data-theme=foyer] input:focus,#importHistoryModal[data-theme=foyer] select:focus,#importHistoryModal[data-theme=foyer] textarea:focus,#aiSettingsModal[data-theme=foyer] input:focus,#aiSettingsModal[data-theme=foyer] select:focus,#aiSettingsModal[data-theme=foyer] textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #c17a4f26;outline:none}#importHistoryModal[data-theme=foyer] .btn-primary,#aiSettingsModal[data-theme=foyer] .btn-primary,#importHistoryModal[data-theme=foyer] button[type=submit],#aiSettingsModal[data-theme=foyer] button[type=submit]{background:var(--primary);color:#fff;border:none;border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;box-shadow:0 2px 8px #c17a4f33;transition:background .2s,transform .15s,box-shadow .2s;cursor:pointer}#importHistoryModal[data-theme=foyer] .btn-primary:hover,#aiSettingsModal[data-theme=foyer] .btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 16px #c17a4f4d;transform:translateY(-1px)}#importHistoryModal[data-theme=foyer] .btn-nav,#importHistoryModal[data-theme=foyer] .btn-secondary,#aiSettingsModal[data-theme=foyer] .btn-nav,#aiSettingsModal[data-theme=foyer] .btn-secondary{background:transparent;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;transition:all .2s;cursor:pointer}#importHistoryModal[data-theme=foyer] .btn-nav:hover,#importHistoryModal[data-theme=foyer] .btn-secondary:hover,#aiSettingsModal[data-theme=foyer] .btn-nav:hover,#aiSettingsModal[data-theme=foyer] .btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}#importHistoryModal[data-theme=foyer] input[type=checkbox]:checked,#aiSettingsModal[data-theme=foyer] input[type=checkbox]:checked{accent-color:var(--primary)}#importHistoryModal[data-theme=foyer] .import-item{background:#fff;border:1px solid var(--border);border-radius:10px;color:var(--ink-1);font-family:var(--font-sans);transition:border-color .2s,background .2s}#importHistoryModal[data-theme=foyer] .import-item:hover{border-color:var(--primary);background:var(--primary-subtle)}#importHistoryModal[data-theme=foyer] #noImports{color:var(--ink-3);font-family:var(--font-sans);text-align:center}#importHistoryModal[data-theme=foyer] #importsLoading{color:var(--ink-2)}#importHistoryModal[data-theme=foyer] .loading-spinner{border-color:var(--border);border-top-color:var(--primary)}.csv-wizard-overlay[data-theme=foyer]{background:#2b252052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.csv-wizard-modal[data-theme=foyer]{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px #2b252026;color:var(--ink-1);font-family:var(--font-sans)}.csv-wizard-modal[data-theme=foyer] .csv-wizard-header{background:#fff;border-bottom:1px solid var(--border)}.csv-wizard-modal[data-theme=foyer] .csv-wizard-header h2,.csv-wizard-modal[data-theme=foyer] h2,.csv-wizard-modal[data-theme=foyer] h3{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em}.csv-wizard-modal[data-theme=foyer] .csv-wizard-close{color:var(--ink-3);background:transparent;border:none;border-radius:8px;transition:color .2s,background .2s}.csv-wizard-modal[data-theme=foyer] .csv-wizard-close:hover{color:var(--primary);background:var(--paper-dark)}.csv-wizard-modal[data-theme=foyer] .csv-wizard-body{background:#fff;color:var(--ink-1)}.csv-wizard-modal[data-theme=foyer] p{color:var(--ink-2);font-family:var(--font-sans)}.csv-wizard-modal[data-theme=foyer] label{color:var(--ink-2);font-family:var(--font-sans);font-weight:500}.csv-wizard-modal[data-theme=foyer] .csv-wizard-stepper{gap:0}.csv-wizard-modal[data-theme=foyer] .csv-step-num{background:var(--paper-dark);color:var(--ink-3);border:2px solid var(--border);font-family:var(--font-display);font-weight:600}.csv-wizard-modal[data-theme=foyer] .csv-step-num.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 0 0 4px #c17a4f1f}.csv-wizard-modal[data-theme=foyer] .csv-step-num.done{background:var(--success);color:#fff;border-color:var(--success)}.csv-wizard-modal[data-theme=foyer] .csv-step-line{background:var(--border)}.csv-wizard-modal[data-theme=foyer] .csv-step-line.done{background:var(--success)}.csv-wizard-modal[data-theme=foyer] .csv-step-label{color:var(--ink-3);font-family:var(--font-sans);font-weight:500}.csv-wizard-modal[data-theme=foyer] .csv-step-label.active{color:var(--primary)}.csv-wizard-modal[data-theme=foyer] .csv-upload-zone{background:var(--paper);border:2px dashed var(--border);border-radius:12px;color:var(--ink-2);font-family:var(--font-sans);transition:all .2s}.csv-wizard-modal[data-theme=foyer] .csv-upload-zone:hover{border-color:var(--primary);background:var(--primary-subtle)}.csv-wizard-modal[data-theme=foyer] .csv-mapping-grid{background:var(--paper-dark);border:1px solid var(--border);border-radius:10px}.csv-wizard-modal[data-theme=foyer] .csv-mapping-row{border-bottom:1px solid var(--border);color:var(--ink-1);font-family:var(--font-sans)}.csv-wizard-modal[data-theme=foyer] .csv-map-select,.csv-wizard-modal[data-theme=foyer] .csv-wizard-select{background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--ink-1);font-family:var(--font-sans);padding:.5rem .8rem}.csv-wizard-modal[data-theme=foyer] .csv-map-select:focus,.csv-wizard-modal[data-theme=foyer] .csv-wizard-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #c17a4f26;outline:none}.csv-wizard-modal[data-theme=foyer] .csv-preview-table-wrap,.csv-wizard-modal[data-theme=foyer] .csv-preview-mini{background:#fff;border:1px solid var(--border);border-radius:10px;color:var(--ink-1);font-family:var(--font-sans)}.csv-wizard-modal[data-theme=foyer] .csv-preview-table th,.csv-wizard-modal[data-theme=foyer] .csv-preview-table td{border-bottom:1px solid var(--border);color:var(--ink-1)}.csv-wizard-modal[data-theme=foyer] .csv-preview-table th{background:var(--paper-dark);color:var(--ink-2);font-family:var(--font-sans);font-weight:600}.csv-wizard-modal[data-theme=foyer] .csv-row-check:checked{accent-color:var(--primary)}.csv-wizard-modal[data-theme=foyer] .csv-progress-bar-wrap{background:var(--paper-darker);border-radius:999px;overflow:hidden}.csv-wizard-modal[data-theme=foyer] .csv-progress-bar{background:var(--primary)}.csv-wizard-modal[data-theme=foyer] .csv-wizard-profile-bar{background:var(--paper-dark);border:1px solid var(--border);border-radius:10px;color:var(--ink-2);font-family:var(--font-sans)}.csv-wizard-modal[data-theme=foyer] .csv-wizard-footer{background:#fff;border-top:1px solid var(--border)}.csv-wizard-modal[data-theme=foyer] .btn-primary{background:var(--primary);color:#fff;border:none;border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;box-shadow:0 2px 8px #c17a4f33;transition:all .2s;cursor:pointer}.csv-wizard-modal[data-theme=foyer] .btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 16px #c17a4f4d;transform:translateY(-1px)}.csv-wizard-modal[data-theme=foyer] .btn-nav,.csv-wizard-modal[data-theme=foyer] .btn-secondary{background:transparent;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.7rem 1.25rem;transition:all .2s}.csv-wizard-modal[data-theme=foyer] .btn-nav:hover,.csv-wizard-modal[data-theme=foyer] .btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.modal-overlay[data-theme=foyer]{background:#2b252052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.pdf-import-modal[data-theme=foyer]{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px #2b252026;color:var(--ink-1);font-family:var(--font-sans)}.pdf-import-modal[data-theme=foyer] h2,.pdf-import-modal[data-theme=foyer] h3{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em}.pdf-import-modal[data-theme=foyer] p,.pdf-import-modal[data-theme=foyer] label{color:var(--ink-2);font-family:var(--font-sans)}.pdf-import-modal[data-theme=foyer] input[type=text],.pdf-import-modal[data-theme=foyer] input[type=file],.pdf-import-modal[data-theme=foyer] input[type=number],.pdf-import-modal[data-theme=foyer] select,.pdf-import-modal[data-theme=foyer] textarea{background:var(--paper);border:1px solid var(--border);border-radius:8px;color:var(--ink-1);font-family:var(--font-sans)}.pdf-import-modal[data-theme=foyer] input:focus,.pdf-import-modal[data-theme=foyer] select:focus,.pdf-import-modal[data-theme=foyer] textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #c17a4f26;outline:none}.pdf-import-modal[data-theme=foyer] .btn-primary{background:var(--primary);color:#fff;border:none;border-radius:8px;font-family:var(--font-sans);font-weight:500;box-shadow:0 2px 8px #c17a4f33;transition:all .2s}.pdf-import-modal[data-theme=foyer] .btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 16px #c17a4f4d}.pdf-import-modal[data-theme=foyer] .btn-nav,.pdf-import-modal[data-theme=foyer] .btn-secondary{background:transparent;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);transition:all .2s}.pdf-import-modal[data-theme=foyer] .btn-nav:hover,.pdf-import-modal[data-theme=foyer] .btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.pdf-import-modal[data-theme=foyer] .loading-spinner{border-color:var(--border);border-top-color:var(--primary)}.report-modal-overlay[data-theme=foyer]{background:#2b252052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.report-modal[data-theme=foyer]{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px #2b252026;color:var(--ink-1);font-family:var(--font-sans)}.report-modal[data-theme=foyer] .report-modal-header{background:#fff;border-bottom:1px solid var(--border)}.report-modal[data-theme=foyer] .report-modal-header h2,.report-modal[data-theme=foyer] h2,.report-modal[data-theme=foyer] h3{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em}.report-modal[data-theme=foyer] .report-modal-close{color:var(--ink-3);background:transparent;border:none;border-radius:8px;transition:color .2s,background .2s}.report-modal[data-theme=foyer] .report-modal-close:hover{color:var(--primary);background:var(--paper-dark)}.report-modal[data-theme=foyer] .report-modal-body{background:#fff;color:var(--ink-1)}.report-modal[data-theme=foyer] .report-modal-nav{background:var(--paper-dark);border-bottom:1px solid var(--border);color:var(--ink-1)}.report-modal[data-theme=foyer] .report-modal-nav button{background:transparent;border:1px solid var(--border);color:var(--ink-2);border-radius:8px;font-family:var(--font-sans);font-weight:500;transition:all .2s;cursor:pointer}.report-modal[data-theme=foyer] .report-modal-nav button:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.report-modal[data-theme=foyer] .report-month-label{color:var(--ink-1);font-family:var(--font-display);font-weight:600}.report-modal[data-theme=foyer] .report-summary-cards{gap:.75rem}.report-modal[data-theme=foyer] .report-card-label{color:var(--ink-3);font-family:var(--font-sans);font-weight:500}.report-modal[data-theme=foyer] .report-card-value{color:var(--ink-1);font-family:var(--font-display);font-weight:600}.report-modal[data-theme=foyer] .report-card-meta{color:var(--ink-3);font-family:var(--font-sans)}.report-modal[data-theme=foyer] .report-section{background:var(--paper-dark);border:1px solid var(--border);border-radius:12px;color:var(--ink-1)}.report-modal[data-theme=foyer] .report-category-list{background:#fff;border:1px solid var(--border);border-radius:10px}.report-modal[data-theme=foyer] .report-category-row{border-bottom:1px solid var(--border);color:var(--ink-1);font-family:var(--font-sans)}.report-modal[data-theme=foyer] .report-cat-name{color:var(--ink-1);font-family:var(--font-sans);font-weight:500}.report-modal[data-theme=foyer] .report-cat-amount{color:var(--primary);font-family:var(--font-display);font-weight:600}.report-modal[data-theme=foyer] .report-cat-pct{color:var(--ink-3);font-family:var(--font-sans)}.report-modal[data-theme=foyer] .report-cat-bar-wrap{background:var(--paper-darker);border-radius:999px;overflow:hidden}.report-modal[data-theme=foyer] .report-cat-bar{background:var(--primary)}.report-modal[data-theme=foyer] .skeleton-chart-bars,.report-modal[data-theme=foyer] .skeleton-chart-bar{background:var(--paper-dark)}.savings-modal[data-theme=foyer] .savings-icon-picker{background:var(--paper-dark);border:1px solid var(--border);border-radius:10px}.savings-modal[data-theme=foyer] .savings-icon-picker button,.savings-modal[data-theme=foyer] .savings-icon-picker .icon{background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--ink-1);transition:all .2s;cursor:pointer}.savings-modal[data-theme=foyer] .savings-icon-picker button:hover,.savings-modal[data-theme=foyer] .savings-icon-picker button.selected{border-color:var(--primary);background:var(--primary-subtle);color:var(--primary)}.savings-modal[data-theme=foyer] .savings-progress-bar{background:var(--paper-darker);border-radius:999px;overflow:hidden}.savings-modal[data-theme=foyer] .savings-progress-fill{background:var(--primary)}.savings-modal[data-theme=foyer] .savings-detail-progress{color:var(--ink-2);font-family:var(--font-sans)}.savings-modal[data-theme=foyer] .savings-contribution-form{background:var(--paper-dark);border:1px solid var(--border);border-radius:12px;padding:1rem}.savings-modal[data-theme=foyer] .savings-contributions-list{background:#fff;border:1px solid var(--border);border-radius:10px}.savings-modal[data-theme=foyer] .savings-contributions-list>*{border-bottom:1px solid var(--border)}#budgetModal[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .1);--accent-subtle: rgba(193, 122, 79, .06);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;background:#2b252052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-family:var(--font-sans)}#budgetModal[data-theme=foyer] .modal-content{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px #2b252026;color:var(--ink-1);padding:1.75rem;max-width:760px;font-family:var(--font-sans)}#budgetModal[data-theme=foyer] .modal-content>h2{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.55rem;font-size:clamp(1.2rem,1.8vw,1.45rem);margin-top:0}#budgetModal[data-theme=foyer] .modal-content>h2 .icon svg{color:var(--primary);stroke:var(--primary)}#budgetModal[data-theme=foyer] .section-desc{color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.92rem;line-height:1.55}#budgetModal[data-theme=foyer] .budget-income-section{background:var(--paper-dark);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:2px 12px 12px 2px;padding:1rem 1.15rem;margin-bottom:1.25rem}#budgetModal[data-theme=foyer] .budget-income-section label[for=monthlyIncome]{color:var(--ink-1);font-family:var(--font-sans);font-weight:600;font-size:.88rem;display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.35rem}#budgetModal[data-theme=foyer] .budget-income-section label[for=monthlyIncome] .icon svg{color:var(--primary);stroke:var(--primary)}#budgetModal[data-theme=foyer] .budget-income-section .text-sm{color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.85rem;line-height:1.5}#budgetModal[data-theme=foyer] #monthlyIncome{background:#fff;border:1px solid var(--border);border-radius:10px;color:var(--ink-1);font-family:var(--font-display);font-weight:600;font-size:1.05rem;padding:.6rem .75rem;font-variant-numeric:tabular-nums;transition:border-color .18s ease,box-shadow .18s ease}#budgetModal[data-theme=foyer] #monthlyIncome:hover{border-color:var(--border-hover)}#budgetModal[data-theme=foyer] #monthlyIncome:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}#budgetModal[data-theme=foyer] #saveMonthlyIncomeBtn,#budgetModal[data-theme=foyer] .btn-nav.btn-accent-filled{background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:10px;padding:.6rem 1rem;font-family:var(--font-sans);font-weight:600;font-size:.88rem;transition:background .18s ease,border-color .18s ease;box-shadow:0 1px 2px #c17a4f33}#budgetModal[data-theme=foyer] #saveMonthlyIncomeBtn:hover,#budgetModal[data-theme=foyer] .btn-nav.btn-accent-filled:hover{background:var(--primary-hover);border-color:var(--primary-hover)}#budgetModal[data-theme=foyer] #budgetTotalWarning{font-family:var(--font-sans);font-size:.82rem;margin-top:.55rem;padding:.45rem .7rem;border-radius:8px;line-height:1.4}#budgetModal[data-theme=foyer] #budgetTotalWarning:not([data-inline-style*="display: none"])[style*=color]{background:var(--warning-bg);border:1px solid rgba(212,165,116,.35)}#budgetModal[data-theme=foyer] #addCategoryInBudgetBtn{background:#fff;color:var(--success);border:1px solid rgba(95,143,111,.35);border-radius:10px;padding:.55rem .95rem;font-family:var(--font-sans);font-weight:500;font-size:.87rem;display:inline-flex;align-items:center;gap:.35rem;transition:background .18s ease,color .18s ease,border-color .18s ease;box-shadow:0 1px 2px #2b252008}#budgetModal[data-theme=foyer] #addCategoryInBudgetBtn:hover{background:var(--success-bg);border-color:var(--success);color:var(--success)}#budgetModal[data-theme=foyer] #addCategoryInBudgetBtn .icon svg{color:currentColor;stroke:currentColor}#budgetModal[data-theme=foyer] .budget-add-category-form{background:var(--paper-dark);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:1rem}#budgetModal[data-theme=foyer] .budget-add-category-form h3{color:var(--ink-1);font-family:var(--font-display);font-weight:500;letter-spacing:-.005em;margin-top:0}#budgetModal[data-theme=foyer] .modal-field-label{color:var(--ink-2);font-family:var(--font-sans);font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.3rem;display:block}#budgetModal[data-theme=foyer] .modal-field-input{background:#fff;border:1px solid var(--border);border-radius:10px;color:var(--ink-1);font-family:var(--font-sans);font-size:.88rem;padding:.55rem .7rem;transition:border-color .18s ease,box-shadow .18s ease;width:100%;box-sizing:border-box}#budgetModal[data-theme=foyer] .modal-field-input:hover{border-color:var(--border-hover)}#budgetModal[data-theme=foyer] .modal-field-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}#budgetModal[data-theme=foyer] #newCategoryColor{border:1px solid var(--border);border-radius:10px;cursor:pointer;background:#fff}#budgetModal[data-theme=foyer] #saveNewCategoryBtn,#budgetModal[data-theme=foyer] .btn-nav.btn-success-filled{background:var(--success);color:#fff;border:1px solid var(--success);border-radius:10px;padding:.5rem .9rem;font-family:var(--font-sans);font-weight:600;font-size:.85rem}#budgetModal[data-theme=foyer] #saveNewCategoryBtn:hover,#budgetModal[data-theme=foyer] .btn-nav.btn-success-filled:hover{background:#527c60;border-color:#527c60}#budgetModal[data-theme=foyer] #cancelNewCategoryBtn{background:#fff;color:var(--ink-2);border:1px solid var(--border);border-radius:10px;padding:.5rem .9rem;font-family:var(--font-sans);font-weight:500;font-size:.85rem}#budgetModal[data-theme=foyer] #cancelNewCategoryBtn:hover{border-color:var(--border-hover);background:var(--paper-dark);color:var(--ink-1)}#budgetModal[data-theme=foyer] #budgetFormList{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1rem}#budgetModal[data-theme=foyer] .budget-form-item{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.8rem .95rem;transition:border-color .18s ease,box-shadow .18s ease;display:flex;flex-direction:column;gap:.5rem}#budgetModal[data-theme=foyer] .budget-form-item:hover{border-color:var(--border-hover);box-shadow:0 2px 8px #2b25200a}#budgetModal[data-theme=foyer] .budget-form-header{display:flex;align-items:center;gap:.5rem}#budgetModal[data-theme=foyer] .budget-form-header input[type=checkbox]{accent-color:var(--primary);width:1rem;height:1rem;cursor:pointer}#budgetModal[data-theme=foyer] .budget-form-label{color:var(--ink-1);font-family:var(--font-display);font-weight:500;font-size:.95rem;letter-spacing:-.005em;flex:1;display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}#budgetModal[data-theme=foyer] .budget-form-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}#budgetModal[data-theme=foyer] .budget-form-input{background:var(--paper);border:1px solid var(--border);border-radius:8px;color:var(--ink-1);font-family:var(--font-display);font-weight:600;font-size:.95rem;padding:.4rem .6rem;width:120px;text-align:right;font-variant-numeric:tabular-nums;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}#budgetModal[data-theme=foyer] .budget-form-input:hover{border-color:var(--border-hover)}#budgetModal[data-theme=foyer] .budget-form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--accent-subtle);background:#fff;outline:none}#budgetModal[data-theme=foyer] .budget-form-input:disabled{background:var(--paper-dark);color:var(--ink-fade);cursor:not-allowed}#budgetModal[data-theme=foyer] .rollover-toggle{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink-2);font-family:var(--font-sans);font-size:.78rem;cursor:pointer;padding:.25rem .55rem;background:var(--paper-dark);border:1px solid var(--border);border-radius:999px;transition:border-color .18s ease,background .18s ease}#budgetModal[data-theme=foyer] .rollover-toggle:hover{border-color:var(--border-hover);background:var(--paper-darker)}#budgetModal[data-theme=foyer] .rollover-toggle input[type=checkbox]{accent-color:var(--primary);width:.85rem;height:.85rem;cursor:pointer}#budgetModal[data-theme=foyer] .rollover-toggle:has(input:disabled){opacity:.55;cursor:not-allowed}#budgetModal[data-theme=foyer] .budget-form-controls [data-action=save-budget].btn-nav{background:#fff;color:var(--primary);border:1px solid var(--primary);border-radius:8px;padding:.4rem .85rem;font-family:var(--font-sans);font-weight:500;font-size:.82rem;cursor:pointer;transition:background .18s ease,color .18s ease;margin-left:auto}#budgetModal[data-theme=foyer] .budget-form-controls [data-action=save-budget].btn-nav:hover{background:var(--primary);color:#fff}#budgetModal[data-theme=foyer] .budget-form-controls [data-action=save-budget].btn-nav:disabled{background:var(--paper-dark);color:var(--ink-fade);border-color:var(--border);cursor:not-allowed}#budgetModal[data-theme=foyer] .skeleton-row{background:linear-gradient(90deg,var(--paper-dark) 0%,var(--paper-darker) 50%,var(--paper-dark) 100%);border-radius:12px;border:1px solid var(--border)}#budgetModal[data-theme=foyer] .btn-primary[data-action=close-budget-manager]{background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:10px;padding:.65rem 1.25rem;font-family:var(--font-sans);font-weight:600;font-size:.9rem;width:100%;transition:background .18s ease;box-shadow:0 1px 2px #c17a4f33}#budgetModal[data-theme=foyer] .btn-primary[data-action=close-budget-manager]:hover{background:var(--primary-hover);border-color:var(--primary-hover)}@media(max-width:640px){#budgetModal[data-theme=foyer] .modal-content{padding:1.1rem;border-radius:14px}#budgetModal[data-theme=foyer] .budget-form-controls{justify-content:space-between}#budgetModal[data-theme=foyer] .budget-form-input{flex:1 1 auto;width:auto;min-width:100px}#budgetModal[data-theme=foyer] .budget-form-controls [data-action=save-budget].btn-nav{margin-left:0;flex-basis:100%}}#importHistoryModal[data-theme=foyer] .modal-content{background:var(--paper, #faf8f3);border:1px solid rgba(43,37,32,.12);border-radius:14px;box-shadow:0 1px 4px #2b25200a,0 12px 36px #2b252014;font-family:var(--font-sans, system-ui);color:var(--ink, #2b2520)}#importHistoryModal[data-theme=foyer] .modal-header{border-bottom:1px solid rgba(43,37,32,.08)}#importHistoryModal[data-theme=foyer] .modal-header h2{font-family:var(--font-display, Georgia, serif);font-weight:600;font-size:22px;letter-spacing:-.01em;color:var(--ink, #2b2520);display:flex;align-items:center;gap:10px}#importHistoryModal[data-theme=foyer] .modal-header h2 svg{color:var(--accent, #c17a4f)}#importHistoryModal[data-theme=foyer] .modal-close{color:var(--text-secondary);font-size:22px;background:none;border:none}#importHistoryModal[data-theme=foyer] .modal-close:hover{color:var(--accent, #c17a4f)}#importHistoryModal[data-theme=foyer] .import-item{background:#fff \!important;border:1px solid rgba(43,37,32,.1) \!important;border-radius:12px \!important;padding:18px 20px \!important;box-shadow:0 1px 2px #2b252008;transition:border-color .18s ease,box-shadow .18s ease}#importHistoryModal[data-theme=foyer] .import-item:hover{border-color:rgba(193,122,79,.35) \!important;box-shadow:0 1px 2px #2b25200a,0 6px 18px #2b25200d}#importHistoryModal[data-theme=foyer] .import-item>div>div>div:first-child{font-family:var(--font-display, Georgia, serif) \!important;font-weight:500 \!important;font-size:15px \!important;letter-spacing:-.005em;color:var(--ink, #2b2520)}#importHistoryModal[data-theme=foyer] .revoke-import-btn{background:transparent \!important;color:var(--accent, #c17a4f) \!important;border:1px solid rgba(193,122,79,.35) \!important;border-radius:8px;font-family:var(--font-sans, system-ui);font-size:13px;font-weight:500;cursor:pointer;transition:background .16s ease,border-color .16s ease}#importHistoryModal[data-theme=foyer] .revoke-import-btn:hover{background:#c17a4f0f \!important;border-color:var(--accent, #c17a4f) \!important}#importHistoryModal[data-theme=foyer] #importsLoading p,#importHistoryModal[data-theme=foyer] #noImports p{color:var(--text-secondary)}[data-theme=foyer] .tag-input-container,.tag-input-container[data-theme=foyer]{font-family:var(--font-sans, system-ui)}[data-theme=foyer] .tag-input-wrapper{background:#fff;border:1px solid rgba(43,37,32,.16);border-radius:10px;padding:6px 10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;transition:border-color .16s ease,box-shadow .16s ease}[data-theme=foyer] .tag-input-wrapper:focus-within{border-color:#c17a4f8c;box-shadow:0 0 0 3px #c17a4f1a}[data-theme=foyer] .tag-input-tags{display:contents}[data-theme=foyer] .tag-pill{display:inline-flex;align-items:center;gap:6px;background:#c17a4f14;color:var(--accent, #c17a4f);border:1px solid rgba(193,122,79,.25);border-radius:999px;padding:3px 6px 3px 10px;font-size:12px;font-weight:500;letter-spacing:.01em}[data-theme=foyer] .tag-pill-remove{background:transparent;border:none;color:var(--accent, #c17a4f);cursor:pointer;font-size:16px;line-height:1;padding:0 4px;border-radius:999px;transition:background .14s ease}[data-theme=foyer] .tag-pill-remove:hover{background:#c17a4f26}[data-theme=foyer] .tag-input-field{flex:1;min-width:120px;border:none;outline:none;background:transparent;color:var(--ink, #2b2520);font-family:var(--font-sans, system-ui);font-size:14px;padding:4px 2px}[data-theme=foyer] .tag-input-field::placeholder{color:var(--text-tertiary, #a8a39a);font-style:italic}[data-theme=foyer] .tag-suggestion-dropdown{margin-top:6px;background:#fff;border:1px solid rgba(43,37,32,.12);border-radius:10px;box-shadow:0 1px 2px #2b252008,0 8px 24px #2b252014;overflow:hidden;max-height:220px;overflow-y:auto}[data-theme=foyer] .tag-suggestion-item{padding:8px 12px;font-size:13px;color:var(--ink, #2b2520);cursor:pointer;transition:background .14s ease;border-bottom:1px solid rgba(43,37,32,.05)}[data-theme=foyer] .tag-suggestion-item:last-child{border-bottom:none}[data-theme=foyer] .tag-suggestion-item:hover{background:#c17a4f0f;color:var(--accent, #c17a4f)}[data-theme=foyer] .calendar-header,.calendar-view-container[data-theme=foyer] .calendar-header{display:flex;align-items:center;gap:10px;padding:10px 4px 18px}[data-theme=foyer] .calendar-title{flex:1;text-align:center;font-family:var(--font-display, Georgia, serif);font-weight:500;font-size:18px;letter-spacing:-.005em;color:var(--ink, #2b2520);margin:0}[data-theme=foyer] .calendar-nav-btn{background:transparent;border:1px solid rgba(43,37,32,.12);border-radius:8px;color:var(--ink, #2b2520);padding:6px 10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .14s ease,border-color .14s ease}[data-theme=foyer] .calendar-nav-btn:hover{background:#c17a4f0f;border-color:#c17a4f59}[data-theme=foyer] .heatmap-toggle-btn{background:transparent;border:1px solid rgba(43,37,32,.12);border-radius:8px;color:var(--text-secondary);font-family:var(--font-display, Georgia, serif);font-size:18px;width:34px;height:34px;cursor:pointer;transition:color .14s ease,border-color .14s ease}[data-theme=foyer] .heatmap-toggle-btn.active{color:var(--accent, #c17a4f);border-color:#c17a4f73}[data-theme=foyer] .heatmap-legend{display:flex;align-items:center;gap:6px;padding:0 4px 12px;font-size:11px;color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase}[data-theme=foyer] .heatmap-legend-block{width:12px;height:12px;border-radius:3px;border:1px solid rgba(43,37,32,.06)}[data-theme=foyer] .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#2b252014;border:1px solid rgba(43,37,32,.08);border-radius:12px;overflow:hidden}[data-theme=foyer] .calendar-day-header{background:#c17a4f0a;padding:8px 4px;text-align:center;font-family:var(--font-sans, system-ui);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}[data-theme=foyer] .calendar-cell{background:#fff;min-height:76px;padding:6px;position:relative;display:flex;flex-direction:column;font-family:var(--font-sans, system-ui);transition:background .14s ease}[data-theme=foyer] .calendar-cell.empty{background:#faf8f380}[data-theme=foyer] .calendar-cell.weekend:not(.empty){background:#faf8f399}[data-theme=foyer] .calendar-cell.has-data{cursor:pointer}[data-theme=foyer] .calendar-cell.has-data:hover{background:#c17a4f0d}[data-theme=foyer] .calendar-cell.today{background:#c17a4f14}[data-theme=foyer] .calendar-cell.today .calendar-day-number{color:var(--accent, #c17a4f);font-weight:600}[data-theme=foyer] .calendar-day-number{font-family:var(--font-display, Georgia, serif);font-weight:500;font-size:13px;color:var(--ink, #2b2520);line-height:1;margin-bottom:4px}[data-theme=foyer] .calendar-day-amount{font-size:11px;font-weight:500;letter-spacing:-.01em}[data-theme=foyer] .calendar-day-amount.positive{color:#5f8f6f}[data-theme=foyer] .calendar-day-amount.negative{color:#c45a5a}[data-theme=foyer] .calendar-day-dots{display:flex;gap:3px;margin-top:auto}[data-theme=foyer] .calendar-dot{width:4px;height:4px;border-radius:50%;background:var(--accent, #c17a4f);opacity:.55}[data-theme=foyer] .calendar-dot-more{font-size:9px;color:var(--text-tertiary, #a8a39a);font-weight:500}[data-theme=foyer] .calendar-popover{position:absolute;z-index:50;background:#fff;border:1px solid rgba(43,37,32,.12);border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px #2b25200a,0 12px 32px #2b25201a;min-width:280px;max-width:320px;font-family:var(--font-sans, system-ui)}[data-theme=foyer] .calendar-popover-header{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-display, Georgia, serif);font-weight:500;font-size:14px;color:var(--ink, #2b2520);margin-bottom:8px}[data-theme=foyer] .calendar-popover-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:14px;padding:2px 4px}[data-theme=foyer] .calendar-popover-close:hover{color:var(--accent, #c17a4f)}[data-theme=foyer] .calendar-popover-summary{display:flex;gap:10px;padding:6px 0 10px;border-bottom:1px solid rgba(43,37,32,.08);margin-bottom:8px;font-size:13px;font-weight:500}[data-theme=foyer] .popover-income{color:#5f8f6f}[data-theme=foyer] .popover-expense{color:#c45a5a}[data-theme=foyer] .calendar-popover-list{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}[data-theme=foyer] .calendar-tx-item{display:grid;grid-template-columns:1fr auto;gap:4px 10px;font-size:12px;padding:6px 0;border-bottom:1px solid rgba(43,37,32,.05)}[data-theme=foyer] .calendar-tx-item:last-child{border-bottom:none}[data-theme=foyer] .calendar-tx-desc{color:var(--ink, #2b2520);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-theme=foyer] .calendar-tx-amount.positive{color:#5f8f6f;font-weight:500}[data-theme=foyer] .calendar-tx-amount.negative{color:#c45a5a;font-weight:500}[data-theme=foyer] .calendar-tx-cat{grid-column:1 / -1;font-size:10px;color:var(--text-tertiary, #a8a39a);text-transform:uppercase;letter-spacing:.06em}#todaySummaryContainer[data-theme=foyer],#monthlyGoalContainer[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .08);--accent-subtle: rgba(193, 122, 79, .06);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--warning: #d4a574;--danger: #c25a4f;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;font-family:var(--font-sans)}#todaySummaryContainer[data-theme=foyer] .today-card{background:#fff;border:1px solid rgba(43,37,32,.1);border-radius:12px;box-shadow:0 1px 3px #2b25200a;transition:border-color .2s ease,box-shadow .2s ease;position:relative}#todaySummaryContainer[data-theme=foyer] .today-card:before{content:"";position:absolute;top:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.28),transparent)}#todaySummaryContainer[data-theme=foyer] .today-card:hover{box-shadow:0 2px 10px #2b25200d;border-color:#2b25202e}#todaySummaryContainer[data-theme=foyer] .today-header{color:var(--ink-1)}#todaySummaryContainer[data-theme=foyer] .today-header svg{color:var(--primary);stroke:var(--primary)}#todaySummaryContainer[data-theme=foyer] .today-title{font-family:var(--font-display);font-weight:600;color:var(--ink-1);letter-spacing:-.005em}#todaySummaryContainer[data-theme=foyer] .today-date{color:var(--ink-3);font-family:var(--font-sans);font-weight:500}#todaySummaryContainer[data-theme=foyer] .today-stats{gap:16px}#todaySummaryContainer[data-theme=foyer] .today-stat-value{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em}#todaySummaryContainer[data-theme=foyer] .today-stat-label{color:var(--ink-3);font-family:var(--font-display);font-style:italic;font-weight:400;font-size:.78rem;letter-spacing:0;text-transform:none}#todaySummaryContainer[data-theme=foyer] .today-stat-cat{font-family:var(--font-sans);font-weight:600;color:var(--ink-1);font-size:13px}#todaySummaryContainer[data-theme=foyer] .today-remaining-good{color:var(--success)}#todaySummaryContainer[data-theme=foyer] .today-remaining-warning{color:var(--warning)}#todaySummaryContainer[data-theme=foyer] .today-remaining-danger{color:var(--danger)}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-card{background:#fff;border:1px solid rgba(43,37,32,.1);border-radius:12px;padding:18px;box-shadow:0 1px 3px #2b25200a;position:relative}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-card:before{content:"";position:absolute;top:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.28),transparent)}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-header{color:var(--ink-1);font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:-.005em}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-header svg{color:var(--primary);stroke:var(--primary)}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-header .btn-nav{background:transparent;color:var(--ink-3);border:1px solid var(--border);border-radius:6px;padding:.25rem .5rem;font-family:var(--font-sans);font-weight:500;transition:all .2s;cursor:pointer}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-header .btn-nav:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-bar{background:var(--paper-darker);border-radius:999px;height:10px;overflow:visible}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-bar-fill{border-radius:999px}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-bar-ideal{background:var(--ink-3)}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-stats{color:var(--ink-2);font-family:var(--font-sans)}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-pct{font-family:var(--font-display);font-weight:600;color:var(--primary)}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-details{color:var(--ink-3);font-family:var(--font-sans)}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-details strong{color:var(--ink-1);font-weight:600}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-setup{background:var(--paper-dark);border:1px solid var(--border);border-radius:10px;color:var(--ink-2);font-family:var(--font-sans)}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-setup .btn-nav{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:.55rem 1rem;font-family:var(--font-sans);font-weight:500;box-shadow:0 2px 8px #c17a4f33;transition:all .2s;cursor:pointer;margin-top:.5rem}#monthlyGoalContainer[data-theme=foyer] .monthly-goal-setup .btn-nav:hover{background:var(--primary-hover);box-shadow:0 4px 16px #c17a4f4d;transform:translateY(-1px)}.savings-goals[data-theme=foyer],#savingsGoalsContainer[data-theme=foyer],.recurrences[data-theme=foyer],#recurrencesContainer[data-theme=foyer],#upcomingRecurrencesContainer[data-theme=foyer],#dashboardDetectedRecurrences[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .08);--accent-subtle: rgba(193, 122, 79, .06);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif}.savings-goals[data-theme=foyer],.recurrences[data-theme=foyer]{font-family:var(--font-sans);color:var(--ink-1)}.savings-goals[data-theme=foyer] h2,.recurrences[data-theme=foyer] h2{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em}.savings-goals[data-theme=foyer] h2 .icon svg,.recurrences[data-theme=foyer] h2 .icon svg{color:var(--primary);stroke:var(--primary)}.savings-goals[data-theme=foyer] .section-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.recurrences[data-theme=foyer] .section-desc{color:var(--ink-3);font-family:var(--font-serif);font-style:italic}.savings-goals[data-theme=foyer]>.btn-nav,.recurrences[data-theme=foyer]>.btn-nav,.savings-goals[data-theme=foyer] .section-header-row .btn-nav{background:transparent;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);font-weight:500;padding:.55rem 1rem;transition:all .2s;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}.savings-goals[data-theme=foyer]>.btn-nav:hover,.recurrences[data-theme=foyer]>.btn-nav:hover,.savings-goals[data-theme=foyer] .section-header-row .btn-nav:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.savings-goals[data-theme=foyer] .btn-nav .icon svg,.recurrences[data-theme=foyer] .btn-nav .icon svg{stroke:currentColor;color:currentColor}.savings-goals[data-theme=foyer] .empty-message,.recurrences[data-theme=foyer] .empty-message{color:var(--ink-3);font-family:var(--font-sans);font-style:italic;text-align:center;padding:1rem}#savingsGoalsContainer[data-theme=foyer]{font-family:var(--font-sans);color:var(--ink-1)}#savingsGoalsContainer[data-theme=foyer] .savings-goals-grid{display:flex;flex-direction:column;gap:0;background:#fff;border:1px solid var(--border);border-radius:4px;padding:0;position:relative;box-shadow:0 1px 2px #2b252008;overflow:hidden}#savingsGoalsContainer[data-theme=foyer] .savings-goals-grid:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.3),transparent);pointer-events:none;z-index:1}#savingsGoalsContainer[data-theme=foyer] .savings-goal-card{background:transparent;border:none;border-top:1px solid rgba(43,37,32,.06);border-radius:0;padding:1rem 1.5rem .95rem;box-shadow:none;transition:background .15s ease;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"icon  header  amounts" ".     bar     bar";column-gap:1rem;row-gap:.45rem;align-items:baseline}#savingsGoalsContainer[data-theme=foyer] .savings-goal-card:first-child{border-top:none}#savingsGoalsContainer[data-theme=foyer] .savings-goal-card:hover{border-color:#2b25200f;box-shadow:none;transform:none;background:#c17a4f06}#savingsGoalsContainer[data-theme=foyer] .savings-goal-card.completed{border-left:none;border-top:1px solid rgba(95,143,111,.25)}#savingsGoalsContainer[data-theme=foyer] .savings-goal-header{grid-area:header;display:flex;flex-direction:column;align-items:flex-start;gap:0;margin-bottom:0}#savingsGoalsContainer[data-theme=foyer] .savings-goal-icon{grid-area:icon;font-size:20px;flex-shrink:0;align-self:start;margin-top:.1rem}#savingsGoalsContainer[data-theme=foyer] .savings-goal-name{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.005em;font-size:1rem}#savingsGoalsContainer[data-theme=foyer] .savings-goal-badge{background:transparent;color:var(--success);border:none;border-radius:0;padding:0;font-family:var(--font-serif, "Fraunces", Georgia, serif);font-style:italic;font-weight:400;font-size:.78rem;letter-spacing:0;margin-top:2px}#savingsGoalsContainer[data-theme=foyer] .savings-goal-amounts{grid-area:amounts;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:0;color:var(--ink-3);font-family:var(--font-serif, "Fraunces", Georgia, serif);font-style:italic;font-size:.78rem;margin-bottom:0;text-align:right;line-height:1.2}#savingsGoalsContainer[data-theme=foyer] .savings-goal-amounts strong{font-family:var(--font-display);font-weight:500;font-style:normal;color:var(--ink-1);font-size:1rem;letter-spacing:-.01em}#savingsGoalsContainer[data-theme=foyer] .savings-progress-bar{grid-area:bar;background:var(--paper-darker);border-radius:1px;height:4px;overflow:hidden}#savingsGoalsContainer[data-theme=foyer] .savings-progress-fill{background:var(--primary);height:100%;border-radius:1px;transition:width .4s ease}#savingsGoalsContainer[data-theme=foyer] .savings-goal-card.completed .savings-progress-fill{background:var(--success)}#recurrencesContainer[data-theme=foyer]{font-family:var(--font-sans);color:var(--ink-1);background:#fff;border:1px solid var(--border);border-radius:4px;padding:0;position:relative;box-shadow:0 1px 2px #2b252008;overflow:hidden}#recurrencesContainer[data-theme=foyer]:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.3),transparent);pointer-events:none;z-index:1}#recurrencesContainer[data-theme=foyer] .budget-item{background:transparent;border:none;border-top:1px solid rgba(43,37,32,.06);border-radius:0;padding:.85rem 1.25rem;margin-bottom:0;transition:background .15s ease;display:grid;grid-template-columns:1fr auto auto;align-items:baseline;column-gap:1.25rem}#recurrencesContainer[data-theme=foyer] .budget-item:first-child{border-top:none}#recurrencesContainer[data-theme=foyer] .budget-item:hover{border-color:#2b25200f;background:#c17a4f06;box-shadow:none}#recurrencesContainer[data-theme=foyer] .budget-header{display:contents}#recurrencesContainer[data-theme=foyer] .budget-name{grid-column:1;font-family:var(--font-display);font-weight:500;color:var(--ink-1);font-size:.95rem}#recurrencesContainer[data-theme=foyer] .budget-amount{grid-column:2;font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em;font-size:.95rem;text-align:right}#recurrencesContainer[data-theme=foyer] .budget-amount.income{color:var(--success)}#recurrencesContainer[data-theme=foyer] .budget-amount.expense{color:var(--ink-1)}#recurrencesContainer[data-theme=foyer] .budget-meta,#recurrencesContainer[data-theme=foyer] .recurrence-meta{grid-column:1 / -1;font-family:var(--font-serif, "Fraunces", Georgia, serif);font-style:italic;font-size:.78rem;color:var(--ink-3);margin-top:2px}#recurrencesContainer[data-theme=foyer] .budget-actions,#recurrencesContainer[data-theme=foyer] .recurrence-actions{grid-column:3;display:inline-flex;gap:.85rem;align-items:baseline}#recurrencesContainer[data-theme=foyer] .budget-item button,#recurrencesContainer[data-theme=foyer] .budget-actions button,#recurrencesContainer[data-theme=foyer] .recurrence-actions button{background:transparent!important;border:none!important;border-bottom:1px solid transparent!important;border-radius:0!important;padding:0!important;color:var(--ink-3)!important;font-family:var(--font-serif, "Fraunces", Georgia, serif)!important;font-style:italic!important;font-size:.8rem!important;font-weight:400!important;box-shadow:none!important;cursor:pointer;transition:color .15s ease,border-color .15s ease;grid-column:3;justify-self:end;margin-left:.85rem}#recurrencesContainer[data-theme=foyer] .budget-item button .icon,#recurrencesContainer[data-theme=foyer] .budget-actions button .icon,#recurrencesContainer[data-theme=foyer] .recurrence-actions button .icon{display:none!important}#recurrencesContainer[data-theme=foyer] .budget-item button:hover,#recurrencesContainer[data-theme=foyer] .budget-actions button:hover,#recurrencesContainer[data-theme=foyer] .recurrence-actions button:hover{color:var(--primary)!important;border-bottom-color:var(--primary)!important}#upcomingRecurrencesContainer[data-theme=foyer]{font-family:var(--font-sans)}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-title{font-family:var(--font-display, Georgia, serif);font-weight:500;font-size:1rem;letter-spacing:-.005em;color:var(--ink-1, #2b2520);margin:0 0 .35rem;display:flex;align-items:center;gap:.5rem}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-title svg{color:var(--accent, #c17a4f)}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-helper{font-family:"Instrument Serif",var(--font-display, Georgia, serif);font-style:italic;font-size:.875rem;color:var(--ink-3, #6e655e);margin:0 0 .85rem;letter-spacing:.005em}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-quiet{position:relative;padding:.6rem .75rem .7rem 1rem;background:var(--paper, #faf8f3);border-left:2px solid rgba(193,122,79,.45);border-radius:0}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-quiet-title{font-family:var(--font-display, Georgia, serif);font-weight:500;font-size:.95rem;color:var(--ink-1, #2b2520);margin:0 0 .3rem;display:flex;align-items:center;gap:.45rem;letter-spacing:-.005em}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-quiet-title svg{color:var(--accent, #c17a4f);opacity:.7}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-quiet-msg{font-family:"Instrument Serif",var(--font-display, Georgia, serif);font-style:italic;font-size:.9rem;color:var(--ink-3, #6e655e);margin:0;line-height:1.45;letter-spacing:.005em}#upcomingRecurrencesContainer.upcoming-empty-hidden{display:none!important}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-items{display:flex;flex-direction:column;gap:.4rem}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-item{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;background:#fff;border:1px solid var(--border);border-radius:10px;transition:all .2s ease}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-item:hover{border-color:var(--border-hover);background:var(--paper)}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-item.paid{opacity:.55}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-date-badge{background:var(--primary-subtle);color:var(--primary-hover);border:1px solid rgba(193,122,79,.2);border-radius:8px;padding:.35rem .55rem;font-family:var(--font-display);font-weight:600;font-size:.85rem;flex-shrink:0;min-width:44px;text-align:center}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-date-badge.today{background:var(--primary);color:#fff;border-color:var(--primary)}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-date-badge.overdue{background:var(--danger-bg);color:var(--danger);border-color:#c25a4f4d}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-info{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-name{font-family:var(--font-sans);font-weight:500;color:var(--ink-1);font-size:.925rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-detail{color:var(--ink-3);font-family:var(--font-sans);font-size:.8rem}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-amount{font-family:var(--font-display);font-weight:600;color:var(--ink-1);letter-spacing:-.01em;flex-shrink:0}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-amount.income{color:var(--success)}#upcomingRecurrencesContainer[data-theme=foyer] .upcoming-amount.expense{color:var(--ink-1)}#dashboardDetectedRecurrences[data-theme=foyer]{font-family:var(--font-sans);color:var(--ink-1)}#dashboardDetectedRecurrences[data-theme=foyer] .detected-recurrence-card{font-family:var(--font-sans);color:var(--ink-1);transition:all .2s ease}#dashboardDetectedRecurrences[data-theme=foyer] .detected-recurrence-card:hover{border-color:var(--border-hover)!important;box-shadow:0 2px 8px #2b25200f}#dashboardDetectedRecurrences[data-theme=foyer] .detected-recurrence-card strong{font-family:var(--font-display);font-weight:600;color:var(--ink-1)}#dashboardDetectedRecurrences[data-theme=foyer] .detected-recurrence-card .btn-primary,#dashboardDetectedRecurrences[data-theme=foyer] .detected-recurrence-card button{font-family:var(--font-sans);font-weight:500}.transaction-form[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .1);--accent-subtle: rgba(193, 122, 79, .08);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;font-family:var(--font-sans);color:var(--ink-1);background:transparent}.transaction-form[data-theme=foyer] .section-header-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(43,37,32,.08);position:relative}.transaction-form[data-theme=foyer] .section-header-row:before{content:"";position:absolute;left:0;bottom:-1px;width:80px;height:1px;background:var(--primary);pointer-events:none}.transaction-form[data-theme=foyer] h2{font-family:var(--font-display);font-weight:500;font-size:clamp(1.25rem,2vw,1.5rem);color:var(--ink-1);letter-spacing:-.01em;display:inline-flex;align-items:baseline;gap:.5rem;margin:0}.transaction-form[data-theme=foyer] h2 .icon{display:none}.transaction-form[data-theme=foyer] h2 .icon svg{color:var(--primary);stroke:var(--primary)}.transaction-form[data-theme=foyer] .header-actions-group{display:inline-flex;flex-wrap:wrap;gap:.5rem;align-items:center}.transaction-form[data-theme=foyer] .btn-nav{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;font-style:normal;letter-spacing:0;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease;box-shadow:0 1px 2px #2b252008;display:inline-flex;align-items:center;gap:6px;border-bottom:1px solid var(--border)}.transaction-form[data-theme=foyer] .btn-nav:hover{background:var(--paper);border-color:var(--primary);color:var(--primary);box-shadow:0 2px 6px #c17a4f1f;transform:translateY(-1px)}.transaction-form[data-theme=foyer] .btn-nav:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.transaction-form[data-theme=foyer] .btn-nav .icon{display:inline-flex;align-items:center;color:var(--primary);flex-shrink:0}.transaction-form[data-theme=foyer] .btn-nav .icon svg{color:currentColor;stroke:currentColor;width:14px;height:14px}.transaction-form[data-theme=foyer] .btn-nav:hover .icon{color:var(--primary)}.transaction-form[data-theme=foyer] #transactionForm{background:#fff;border:1px solid var(--border);border-radius:16px;padding:1.25rem;box-shadow:0 1px 2px #2b252008}.transaction-form[data-theme=foyer] .form-row{gap:.75rem}.transaction-form[data-theme=foyer] .form-group{gap:6px}.transaction-form[data-theme=foyer] .form-floating input,.transaction-form[data-theme=foyer] .form-floating select,.transaction-form[data-theme=foyer] .form-floating textarea{background:var(--paper);border:1px solid var(--border);border-radius:10px;color:var(--ink-1);font-family:var(--font-sans);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.transaction-form[data-theme=foyer] .form-floating input:hover,.transaction-form[data-theme=foyer] .form-floating select:hover,.transaction-form[data-theme=foyer] .form-floating textarea:hover{border-color:var(--border-hover)}.transaction-form[data-theme=foyer] .form-floating input:focus,.transaction-form[data-theme=foyer] .form-floating select:focus,.transaction-form[data-theme=foyer] .form-floating textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--accent-subtle);background:#fff;outline:none}.transaction-form[data-theme=foyer] .form-floating input::placeholder{color:var(--ink-fade)}.transaction-form[data-theme=foyer] .form-floating label{color:var(--ink-3);font-family:var(--font-sans);background:transparent}.transaction-form[data-theme=foyer] .form-floating input:not(:placeholder-shown)+label,.transaction-form[data-theme=foyer] .form-floating select:not([value=""])+label,.transaction-form[data-theme=foyer] .form-floating textarea:not(:placeholder-shown)+label{color:var(--ink-3);background:var(--paper)}.transaction-form[data-theme=foyer] .form-floating input:focus+label,.transaction-form[data-theme=foyer] .form-floating select:focus+label,.transaction-form[data-theme=foyer] .form-floating textarea:focus+label{color:var(--primary);background:#fff}.transaction-form[data-theme=foyer] .form-floating select+label{background:var(--paper)}.transaction-form[data-theme=foyer] .form-floating select:focus+label{color:var(--primary);background:#fff}.transaction-form[data-theme=foyer] .category-suggestion-chip{background:var(--accent-light);border:1px solid rgba(193,122,79,.32);color:var(--primary);border-radius:999px;padding:4px 10px;font-family:var(--font-sans)}.transaction-form[data-theme=foyer] .category-suggestion-chip .chip-text{color:var(--primary)}.transaction-form[data-theme=foyer] .category-suggestion-chip .chip-apply{color:var(--success)}.transaction-form[data-theme=foyer] .category-suggestion-chip .chip-dismiss{color:var(--ink-3)}.transaction-form[data-theme=foyer] #toggleAdvancedOptions{background:transparent;border:1px dashed var(--border-hover);color:var(--ink-2);border-radius:10px;font-family:var(--font-serif);font-style:italic;font-size:.9rem!important;letter-spacing:.01em;box-shadow:none}.transaction-form[data-theme=foyer] #toggleAdvancedOptions:hover{background:var(--paper-dark);color:var(--primary);border-color:var(--primary)}.transaction-form[data-theme=foyer] .form-advanced-options{background:var(--paper-dark);border:1px solid var(--border);border-radius:12px;padding:.85rem;margin-top:.25rem}.transaction-form[data-theme=foyer] .form-advanced-options .form-group label{font-family:var(--font-sans);font-size:.78rem;font-weight:600;color:var(--ink-2);letter-spacing:.02em;text-transform:uppercase}.transaction-form[data-theme=foyer] .budget-preview{background:#fff;border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem}.transaction-form[data-theme=foyer] .budget-preview-bar{background:var(--paper-darker);border-radius:999px;overflow:hidden;height:6px}.transaction-form[data-theme=foyer] .budget-preview-fill{background:var(--primary);transition:width .25s ease}.transaction-form[data-theme=foyer] .budget-preview-text{color:var(--ink-2);font-family:var(--font-sans);font-size:.8rem;margin-top:.45rem}.transaction-form[data-theme=foyer] .scope-toggle-group{background:#fff;border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;margin-top:.5rem}.transaction-form[data-theme=foyer] .scope-toggle-label{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-family:var(--font-sans);color:var(--ink-1)}.transaction-form[data-theme=foyer] .scope-toggle-label .icon svg{color:var(--primary);stroke:var(--primary)}.transaction-form[data-theme=foyer] .scope-checkbox{accent-color:var(--primary);width:1rem;height:1rem}.transaction-form[data-theme=foyer] .scope-toggle-text{display:inline-flex;align-items:center;gap:.4rem}.transaction-form[data-theme=foyer] .exchange-rate-info{background:var(--warning-bg);border:1px solid rgba(212,165,116,.35);color:var(--ink-2);border-radius:10px;padding:.55rem .8rem;font-family:var(--font-sans);font-size:.85rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.transaction-form[data-theme=foyer] .exchange-rate-info .info-icon svg{color:var(--warning);stroke:var(--warning)}.transaction-form[data-theme=foyer] .exchange-rate-info strong{color:var(--ink-1);font-weight:600;font-family:var(--font-display)}.transaction-form[data-theme=foyer] .exchange-rate-info .conversion-preview{margin-left:auto;color:var(--primary);font-family:var(--font-display);font-weight:600}.transaction-form[data-theme=foyer] .form-actions-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.transaction-form[data-theme=foyer] .btn-primary{background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:10px;padding:.65rem 1.25rem;font-family:var(--font-sans);font-weight:600;font-size:.9rem;letter-spacing:.01em;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;box-shadow:0 1px 2px #c17a4f40;flex:1 1 auto;min-height:42px}.transaction-form[data-theme=foyer] .btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 4px 12px #c17a4f47}.transaction-form[data-theme=foyer] .btn-primary:active{transform:translateY(1px);box-shadow:0 1px 2px #c17a4f33}.transaction-form[data-theme=foyer] .btn-template-save{background:#fff;color:var(--ink-2);border:1px solid var(--border);border-radius:10px;padding:.5rem .65rem;display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px}.transaction-form[data-theme=foyer] .btn-template-save:hover{border-color:var(--primary);color:var(--primary);background:var(--paper-dark)}.transaction-form[data-theme=foyer] .btn-template-save .icon svg{color:currentColor;stroke:currentColor}.transaction-form[data-theme=foyer] .template-select{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:10px;padding:.5rem .75rem;font-family:var(--font-sans);font-size:.85rem;min-height:42px;cursor:pointer}.transaction-form[data-theme=foyer] .template-select:hover{border-color:var(--border-hover)}.transaction-form[data-theme=foyer] .template-select:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--accent-subtle);outline:none}@media(max-width:640px){.transaction-form[data-theme=foyer] #transactionForm{padding:1rem;border-radius:14px}.transaction-form[data-theme=foyer] .form-actions-row{flex-direction:column;align-items:stretch}.transaction-form[data-theme=foyer] .btn-primary,.transaction-form[data-theme=foyer] .btn-template-save,.transaction-form[data-theme=foyer] .template-select{width:100%}.transaction-form[data-theme=foyer] .exchange-rate-info .conversion-preview{margin-left:0}}.transactions[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .1);--accent-subtle: rgba(193, 122, 79, .06);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;font-family:var(--font-sans);color:var(--ink-1)}.transactions[data-theme=foyer] .section-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.transactions[data-theme=foyer] h2{font-family:var(--font-display);font-weight:500;font-size:clamp(1.25rem,2vw,1.5rem);color:var(--ink-1);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.55rem;margin:0}.transactions[data-theme=foyer] h2 .icon svg{color:var(--primary);stroke:var(--primary)}.transactions[data-theme=foyer] .filters-toggle-btn{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:10px;padding:.55rem .9rem;font-family:var(--font-sans);font-size:.875rem;font-weight:500;display:inline-flex;align-items:center;gap:.5rem;transition:background .18s ease,border-color .18s ease,color .18s ease;box-shadow:0 1px 2px #2b252008}.transactions[data-theme=foyer] .filters-toggle-btn:hover{background:var(--paper-dark);border-color:var(--border-hover);color:var(--primary)}.transactions[data-theme=foyer] .filters-toggle-btn.filters-open{background:var(--accent-light);border-color:var(--primary);color:var(--primary)}.transactions[data-theme=foyer] .filters-toggle-btn .icon svg{color:currentColor;stroke:currentColor}.transactions[data-theme=foyer] .filters-badge{background:var(--primary);color:#fff;border-radius:999px;padding:1px 7px;font-size:.72rem;font-weight:600;min-width:18px;text-align:center;font-family:var(--font-sans)}.transactions[data-theme=foyer] .transaction-filters{background:#fff;border:1px solid var(--border);border-radius:14px;padding:1rem;margin-top:.75rem;margin-bottom:1rem;box-shadow:0 1px 2px #2b252008}.transactions[data-theme=foyer] .transaction-filters .filter-group{font-family:var(--font-sans)}.transactions[data-theme=foyer] .transaction-filters .filter-group label{color:var(--ink-2);font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.3rem}.transactions[data-theme=foyer] .transaction-filters .filter-group label .icon svg{color:var(--ink-3);stroke:var(--ink-3)}.transactions[data-theme=foyer] .transaction-filters input[type=text],.transactions[data-theme=foyer] .transaction-filters input[type=date],.transactions[data-theme=foyer] .transaction-filters input[type=week],.transactions[data-theme=foyer] .transaction-filters select{background:var(--paper);border:1px solid var(--border);border-radius:8px;color:var(--ink-1);font-family:var(--font-sans);font-size:.875rem;padding:.45rem .65rem;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.transactions[data-theme=foyer] .transaction-filters input:hover,.transactions[data-theme=foyer] .transaction-filters select:hover{border-color:var(--border-hover)}.transactions[data-theme=foyer] .transaction-filters input:focus,.transactions[data-theme=foyer] .transaction-filters select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--accent-subtle);background:#fff;outline:none}.transactions[data-theme=foyer] .transaction-filters input::placeholder{color:var(--ink-fade)}.transactions[data-theme=foyer] .saved-filters-row{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.transactions[data-theme=foyer] .saved-filters-row .btn-icon{background:#fff;color:var(--ink-2);border:1px solid var(--border);border-radius:8px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease}.transactions[data-theme=foyer] .saved-filters-row .btn-icon:hover{border-color:var(--primary);color:var(--primary);background:var(--paper-dark)}.transactions[data-theme=foyer] .saved-filters-row .btn-icon .icon svg{color:currentColor;stroke:currentColor}.transactions[data-theme=foyer] #resetFiltersBtn{background:transparent;color:var(--ink-2);border:1px dashed var(--border-hover);border-radius:8px;padding:.45rem .7rem;font-family:var(--font-sans);font-size:.8rem;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;transition:color .18s ease,border-color .18s ease,background .18s ease}.transactions[data-theme=foyer] #resetFiltersBtn:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}.transactions[data-theme=foyer] #resetFiltersBtn .icon svg{color:currentColor;stroke:currentColor}.transactions[data-theme=foyer] #calendarViewContainer{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden}html[data-theme=foyer] .selection-toolbar{background:var(--paper-dark);border:1px solid var(--border);border-radius:12px;padding:.65rem .85rem;margin:0;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;font-family:var(--font-sans);position:fixed;bottom:24px;left:50%;transform:translate(-50%);width:min(720px,calc(100vw - 32px));z-index:899;box-shadow:0 6px 24px #2b252024,0 2px 8px #2b25200f}html[data-theme=foyer] .selection-info{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink-1);font-size:.875rem;font-weight:500}html[data-theme=foyer] .selection-info #selectionCount{color:var(--ink-2)}html[data-theme=foyer] .selection-info .checkbox-container{display:inline-flex;align-items:center}html[data-theme=foyer] .selection-info .checkbox-container input[type=checkbox]{accent-color:var(--primary)}html[data-theme=foyer] #selectAllFilteredBtn{background:var(--primary)!important;color:#fff!important;border:1px solid var(--primary)!important;border-radius:8px!important;font-family:var(--font-sans)!important;font-weight:500!important;transition:background .18s ease}html[data-theme=foyer] #selectAllFilteredBtn:hover{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important}html[data-theme=foyer] .selection-actions{display:inline-flex;gap:.4rem;flex-wrap:wrap}html[data-theme=foyer] .selection-actions .btn-action{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:8px;padding:.4rem .75rem;font-family:var(--font-sans);font-size:.82rem;font-weight:500;display:inline-flex;align-items:center;gap:.3rem;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}html[data-theme=foyer] .selection-actions .btn-action:hover{border-color:var(--border-hover);background:var(--paper)}html[data-theme=foyer] .selection-actions .btn-action .icon svg{color:currentColor;stroke:currentColor}html[data-theme=foyer] .selection-actions .btn-exclude:hover{color:var(--warning);border-color:var(--warning);background:var(--warning-bg)}html[data-theme=foyer] .selection-actions .btn-include:hover{color:var(--success);border-color:var(--success);background:var(--success-bg)}html[data-theme=foyer] .selection-actions .btn-category:hover{color:var(--primary);border-color:var(--primary);background:var(--accent-light)}html[data-theme=foyer] .selection-actions .btn-delete:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}html[data-theme=foyer] .batch-category-select{background:#fff;color:var(--ink-1);border:1px solid var(--primary);border-radius:8px;padding:.4rem .6rem;font-family:var(--font-sans);font-size:.82rem}html[data-theme=foyer] .batch-category-select:focus{outline:none;box-shadow:0 0 0 3px var(--accent-subtle)}.transactions[data-theme=foyer] .transaction-list{background:#fff;border:1px solid var(--border);border-radius:4px;padding:0;position:relative;box-shadow:0 1px 2px #2b252008;overflow:hidden}.transactions[data-theme=foyer] .transaction-list:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.32),transparent);pointer-events:none;z-index:1}.transactions[data-theme=foyer] .transaction-date-group{margin-bottom:0}.transactions[data-theme=foyer] .transaction-date-header{font-family:var(--font-serif);font-style:italic;font-size:.85rem;color:var(--ink-3);padding:.65rem 1.25rem .35rem;letter-spacing:.02em;background:#c17a4f06;border-top:1px solid rgba(193,122,79,.18);border-bottom:1px solid rgba(43,37,32,.04)}.transactions[data-theme=foyer] .transaction-date-group:first-child .transaction-date-header{border-top:none}.transactions[data-theme=foyer] .transaction-item{background:transparent;border-color:transparent;border-top:1px solid rgba(43,37,32,.06);border-bottom:none;border-left:none;border-right:none;border-radius:0!important;padding:.85rem 1.25rem;color:var(--ink-1);font-family:var(--font-sans)}.transactions[data-theme=foyer] .transaction-date-group .transaction-item:first-of-type{border-radius:0!important;border-top:1px solid rgba(43,37,32,.06)}.transactions[data-theme=foyer] .transaction-date-group .transaction-item:last-of-type{border-radius:0!important;border-bottom:none}.transactions[data-theme=foyer] .transaction-date-group .transaction-item:only-of-type{border-radius:0!important;border-bottom:none}.transactions[data-theme=foyer] .transaction-item:hover{background:#c17a4f06}.transactions[data-theme=foyer] .transaction-date-group .transaction-item+.transaction-item:after{display:none;content:none}.transactions[data-theme=foyer] .transaction-item.excluded{opacity:.5}.transactions[data-theme=foyer] .transaction-item .cat-icon{background:#faf8f399!important;background-image:none!important;color:var( --ink-2 )!important;border:1px solid rgba(193,122,79,.22)!important;border-radius:6px!important;width:28px!important;height:28px!important;display:inline-flex!important;align-items:center;justify-content:center;font-size:.85rem!important;flex-shrink:0;box-shadow:none!important}.transactions[data-theme=foyer] .transaction-item .tx-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.transactions[data-theme=foyer] .transaction-item .tx-desc{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.005em;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.transactions[data-theme=foyer] .transaction-item .tx-meta{color:var(--ink-3);font-family:var(--font-serif, "Fraunces", Georgia, serif);font-style:italic;font-size:.78rem;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-top:2px}.transactions[data-theme=foyer] .transaction-item .tx-category-name{color:var(--ink-2);font-weight:400;font-style:italic}.transactions[data-theme=foyer] .transaction-item .tx-date{color:var(--ink-3);font-style:italic}.transactions[data-theme=foyer] .transaction-item .tx-amount{font-family:var(--font-display);font-weight:500;font-size:1rem;letter-spacing:-.01em;background:none!important;border:none!important;padding:0!important;border-radius:0!important}.transactions[data-theme=foyer] .transaction-item.income .tx-amount{color:var(--success)}.transactions[data-theme=foyer] .transaction-item.expense .tx-amount{color:var(--ink-1)}.transactions[data-theme=foyer] .transaction-item .transaction-original{color:var(--ink-3);font-family:var(--font-sans);font-size:.72rem}.transactions[data-theme=foyer] .excluded-badge{background:var(--paper-darker);color:var(--ink-2);border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em}.transactions[data-theme=foyer] .split-badge{background:var(--accent-light);color:var(--primary);border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:500;display:inline-flex;align-items:center;gap:.25rem}.transactions[data-theme=foyer] .split-badge svg{color:currentColor;stroke:currentColor}.transactions[data-theme=foyer] .scope-badge-shared{color:var(--primary);display:inline-flex;align-items:center}.transactions[data-theme=foyer] .scope-badge-shared svg{color:currentColor;stroke:currentColor}.transactions[data-theme=foyer] .member-badge{background:var(--primary);color:#fff;border-radius:999px;padding:0;width:20px;height:20px;font-size:.7rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans)}.transactions[data-theme=foyer] .attachment-indicator{color:var(--ink-3);display:inline-flex;align-items:center;gap:.2rem}.transactions[data-theme=foyer] .attachment-thumb-mini{border-radius:6px;border:1px solid var(--border)}.transactions[data-theme=foyer] .attachment-count{font-size:.7rem;color:var(--ink-3)}.transactions[data-theme=foyer] .ai-confidence-badge{background:var(--paper-dark);color:var(--ink-2);border:1px solid var(--border);border-radius:999px;padding:0 6px;font-size:.7rem;font-weight:500}.transactions[data-theme=foyer] .ai-confidence-badge.high{background:var(--success-bg);color:var(--success);border-color:#5f8f6f40}.transactions[data-theme=foyer] .ai-confidence-badge.medium{background:var(--warning-bg);color:var(--warning);border-color:#d4a5744d}.transactions[data-theme=foyer] .ai-confidence-badge.low{background:var(--danger-bg);color:var(--danger);border-color:#c25a4f40}.transactions[data-theme=foyer] .transaction-rate{color:var(--ink-3);font-family:var(--font-sans);font-size:.72rem;font-style:italic}.transactions[data-theme=foyer] .transaction-item .checkbox-container{display:inline-flex;align-items:center}.transactions[data-theme=foyer] .transaction-item .checkbox-container input[type=checkbox]{accent-color:var(--primary)}.transactions[data-theme=foyer] .empty-message{background:#fff;border:1px dashed var(--border-hover);border-radius:14px;padding:2rem 1.25rem;text-align:center;color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.95rem}.transactions[data-theme=foyer] #loadMoreContainer{margin-top:1rem}.transactions[data-theme=foyer] #loadMoreBtn{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:10px;padding:.6rem 1rem;font-family:var(--font-sans);font-size:.875rem;font-weight:500;display:inline-flex;align-items:center;gap:.4rem;transition:background .18s ease,border-color .18s ease,color .18s ease;box-shadow:0 1px 2px #2b252008}.transactions[data-theme=foyer] #loadMoreBtn:hover{background:var(--paper-dark);border-color:var(--primary);color:var(--primary)}.transactions[data-theme=foyer] #loadMoreBtn .icon svg{color:currentColor;stroke:currentColor}@media(max-width:640px){.transactions[data-theme=foyer] .transaction-filters{padding:.85rem;border-radius:12px}html[data-theme=foyer] .selection-toolbar{flex-direction:column;align-items:stretch;bottom:calc(84px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px);max-height:50vh;overflow-y:auto}html[data-theme=foyer] .selection-actions{justify-content:stretch}html[data-theme=foyer] .selection-actions .btn-action{flex:1 1 auto;justify-content:center}.transactions[data-theme=foyer] .transaction-item{padding:12px 14px}.transactions[data-theme=foyer] .transaction-item .cat-icon{width:36px;height:36px}}.balance-card[data-theme=foyer],.summary[data-theme=foyer],#alertBanner[data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .1);--accent-subtle: rgba(193, 122, 79, .06);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;font-family:var(--font-sans)}.balance-card[data-theme=foyer]{background:#fff;background-image:none;border:1px solid rgba(43,37,32,.1);border-left:3px solid var(--primary);border-radius:2px 12px 12px 2px;box-shadow:0 1px 3px #2b25200a;color:var(--ink-1);overflow:hidden;position:relative}.balance-card[data-theme=foyer] .balance-card-accent{display:none}.balance-card[data-theme=foyer] .balance-card-pattern{background-image:none;position:absolute;top:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(193,122,79,.35) 30%,rgba(193,122,79,.35) 70%,transparent 100%);pointer-events:none}.balance-card[data-theme=foyer] .balance-card-content{padding:1.75rem 2.25rem 1.5rem;text-align:left;position:relative;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;align-items:baseline;column-gap:2rem;row-gap:.25rem}.balance-card[data-theme=foyer] .balance-card-header{grid-column:1;grid-row:1;display:flex;align-items:center;justify-content:flex-start;gap:.5rem;margin-bottom:0}.balance-card[data-theme=foyer] .balance-card-icon svg{color:var(--primary);stroke:var(--primary);opacity:.75;width:18px;height:18px}.balance-card[data-theme=foyer] .balance-card-subtitle{color:var(--ink-3);font-family:var(--font-serif);font-size:.78rem;font-weight:400;font-style:italic;letter-spacing:0;text-transform:none}.balance-card[data-theme=foyer] .balance-amount{grid-column:2;grid-row:1 / span 2;color:var(--ink-1);font-family:var(--font-display);font-weight:500;font-size:clamp(2rem,4.5vw,2.8rem);letter-spacing:-.02em;line-height:1.05;margin:0;text-shadow:none;font-variant-numeric:tabular-nums;align-self:center;text-align:right}.balance-card[data-theme=foyer] .balance-card-footer{grid-column:1 / -1;grid-row:3;color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.82rem;min-height:22px;display:flex;align-items:center;justify-content:flex-start;gap:.35rem;margin-top:.4rem;padding-top:.5rem;border-top:1px solid rgba(43,37,32,.06)}.balance-card[data-theme=foyer] .balance-trend-label{color:var(--ink-2);font-family:var(--font-sans);font-style:normal;font-size:.78rem;display:inline-flex;align-items:center;gap:.3rem}#alertBanner[data-theme=foyer]:not(:empty){background:transparent;border:none;border-left:2px solid rgba(193,122,79,.55);border-radius:0;padding:.35rem 0 .35rem .9rem;color:var(--ink-2);font-family:var(--font-serif);font-style:italic;font-size:.88rem;line-height:1.5;margin:.5rem 0 1rem;box-shadow:none}#alertBanner[data-theme=foyer] strong,#alertBanner[data-theme=foyer] b{color:var(--ink-1);font-family:var(--font-display);font-weight:600}#alertBanner[data-theme=foyer] a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}#alertBanner[data-theme=foyer] a:hover{color:var(--primary-hover)}.summary[data-theme=foyer]{display:grid;grid-template-columns:1fr 1px 1fr;gap:0;margin-bottom:1.25rem;background:#fff;border:1px solid rgba(43,37,32,.1);border-radius:4px;padding:0;overflow:hidden;position:relative;box-shadow:0 1px 2px #2b252008}.summary[data-theme=foyer]:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.3),transparent);pointer-events:none}.summary[data-theme=foyer]:after{content:"";grid-column:2;background:linear-gradient(180deg,transparent 15%,rgba(43,37,32,.1) 35%,rgba(43,37,32,.1) 65%,transparent 85%)}.summary[data-theme=foyer] .summary-card{background:transparent;border:none;border-radius:0;padding:1.15rem 1.6rem 1.1rem;position:relative;overflow:visible;box-shadow:none;display:grid;grid-template-columns:1fr auto;column-gap:1rem;align-items:baseline}.summary[data-theme=foyer] .summary-card.income,.summary[data-theme=foyer] .summary-card.expense{background:transparent;border:none;border-radius:0}.summary[data-theme=foyer] .summary-card:before,.summary[data-theme=foyer] .summary-card:after{display:none;content:none}.summary[data-theme=foyer] .summary-card:hover{box-shadow:none;border-color:transparent;background:#c17a4f05}.summary[data-theme=foyer] .summary-card h3{grid-column:1;color:var(--ink-2);font-family:var(--font-serif);font-size:.92rem;font-weight:400;font-style:italic;letter-spacing:0;text-transform:none;margin:0}.summary[data-theme=foyer] .summary-card .amount{grid-column:2;color:var(--ink-1);font-family:var(--font-display);font-weight:500;font-size:clamp(1.25rem,2.4vw,1.55rem);letter-spacing:-.015em;font-variant-numeric:tabular-nums;display:block;line-height:1.1;text-align:right}.summary[data-theme=foyer] .summary-card.income .amount{color:var(--success)}.summary[data-theme=foyer] .summary-card.expense .amount{color:var(--danger)}.summary[data-theme=foyer] .summary-trend{grid-column:1 / -1;margin-top:.45rem;min-height:18px}.summary[data-theme=foyer] .summary-trend{margin-top:.5rem;min-height:22px}.summary[data-theme=foyer] .trend-chip{display:inline-flex;align-items:center;gap:.25rem;padding:2px 10px;border-radius:999px;font-family:var(--font-sans);font-size:.7rem;font-weight:600;backdrop-filter:none;-webkit-backdrop-filter:none}.summary[data-theme=foyer] .trend-chip.trend-up{background:var(--success-bg);color:var(--success)}.summary[data-theme=foyer] .trend-chip.trend-down{background:var(--danger-bg);color:var(--danger)}@media(max-width:640px){.balance-card[data-theme=foyer]{border-radius:18px}.balance-card[data-theme=foyer] .balance-card-content{padding:1.5rem 1.25rem 1.15rem}.balance-card[data-theme=foyer] .balance-amount{font-size:clamp(1.85rem,8vw,2.4rem)}.summary[data-theme=foyer]{grid-template-columns:1fr;gap:.65rem}.summary[data-theme=foyer] .summary-card{padding:1rem 1.1rem}#alertBanner[data-theme=foyer]:not(:empty){padding:.75rem .9rem;font-size:.85rem}}.app-page[data-page=budget][data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .1);--accent-subtle: rgba(193, 122, 79, .06);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;font-family:var(--font-sans);color:var(--ink-1)}.app-page[data-page=budget][data-theme=foyer] .budgets{font-family:var(--font-sans)}.app-page[data-page=budget][data-theme=foyer] h2{font-family:var(--font-display);font-weight:500;font-size:clamp(1.25rem,2vw,1.5rem);color:var(--ink-1);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1rem}.app-page[data-page=budget][data-theme=foyer] h2 .icon svg{color:var(--primary);stroke:var(--primary)}.app-page[data-page=budget][data-theme=foyer] h3,.app-page[data-page=budget][data-theme=foyer] .subsection-title-lg{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.5rem}.app-page[data-page=budget][data-theme=foyer] h3 .icon svg,.app-page[data-page=budget][data-theme=foyer] .subsection-title-lg .icon svg{color:var(--primary);stroke:var(--primary)}.app-page[data-page=budget][data-theme=foyer] .budget-alert-badge{background:var(--danger);color:#fff;border-radius:999px;padding:1px 8px;font-size:.72rem;font-weight:600;font-family:var(--font-sans);margin-left:.5rem;min-width:20px;text-align:center;display:inline-flex;align-items:center;justify-content:center;line-height:1.4}.app-page[data-page=budget][data-theme=foyer] .btn-nav[data-action=open-budget-manager]{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:10px;padding:.6rem 1rem;font-family:var(--font-sans);font-size:.875rem;font-weight:500;display:inline-flex;align-items:center;gap:.4rem;transition:background .18s ease,border-color .18s ease,color .18s ease;box-shadow:0 1px 2px #2b252008;margin-top:.5rem}.app-page[data-page=budget][data-theme=foyer] .btn-nav[data-action=open-budget-manager]:hover{background:var(--paper-dark);border-color:var(--primary);color:var(--primary)}.app-page[data-page=budget][data-theme=foyer] .btn-nav[data-action=open-budget-manager] .icon svg{color:currentColor;stroke:currentColor}.app-page[data-page=budget][data-theme=foyer] #budgetAlerts .empty-message{background:#fff;border:1px dashed var(--border-hover);border-radius:14px;padding:2rem 1.25rem;text-align:center;color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.95rem}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-total{background:var(--paper-dark);border:1px solid var(--border);border-radius:14px;padding:1rem 1.25rem;gap:1rem;transition:border-color .18s ease,box-shadow .18s ease}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-total:hover{border-color:var(--border-hover);box-shadow:0 2px 8px #2b25200a}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-total-label{color:var(--ink-3);font-family:var(--font-display);font-style:italic;font-size:.92rem;font-weight:400;letter-spacing:0;text-transform:none}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-total-bar{background:var(--paper-darker);height:8px;border-radius:999px;overflow:hidden}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-total-fill{border-radius:999px}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-total-pct{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--ink-1)}.app-page[data-page=budget][data-theme=foyer] .budget-envelopes-grid{display:flex;flex-direction:column;gap:0;margin:0 0 1rem;max-width:880px;background:#fff;border:1px solid var(--border);border-radius:4px;padding:0;position:relative;overflow:hidden;box-shadow:0 1px 2px #2b252008}.app-page[data-page=budget][data-theme=foyer] .budget-envelopes-grid:before{content:"";position:absolute;top:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.32),transparent);pointer-events:none;z-index:1}@media(max-width:480px){.app-page[data-page=budget][data-theme=foyer] .budget-envelopes-grid{border-left:none;border-right:none;border-radius:0;max-width:none}}.app-page[data-page=budget][data-theme=foyer] .budget-envelope{background:transparent;border:none;border-top:1px solid rgba(43,37,32,.06);border-radius:0;padding:11px 18px;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;transition:background .15s ease;position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"icon name amounts" "icon bar  rem";column-gap:14px;row-gap:5px;align-items:center}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-header{display:contents}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-icon{grid-area:icon;align-self:center;border-radius:9px;width:36px;height:36px;font-size:.95rem}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-name{grid-area:name;align-self:end;color:var(--ink-1);font-family:var(--font-display);font-weight:500;font-size:.96rem;line-height:1.2;letter-spacing:-.005em;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-amounts{grid-area:amounts;align-self:end;display:flex;align-items:baseline;justify-content:flex-end;gap:4px;text-align:right;white-space:nowrap}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-spent{font-family:var(--font-display);font-weight:600;font-size:1.02rem;color:var(--ink-1);letter-spacing:-.01em;line-height:1.2}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-limit{color:var(--ink-3);font-family:var(--font-sans);font-weight:500;font-size:.78rem;line-height:1.2}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-bar{grid-area:bar;align-self:center;background:var(--paper-dark);height:4px;border-radius:999px;margin:0}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-fill{border-radius:999px;box-shadow:none}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-remaining{grid-area:rem;align-self:center;justify-self:end;padding:0;border-radius:0;background:transparent;color:var(--ink-3);font-size:.72rem;font-weight:500;font-family:var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:.01em;margin:0;white-space:nowrap}.app-page[data-page=budget][data-theme=foyer] .budget-envelope:first-child{border-top:none}.app-page[data-page=budget][data-theme=foyer] .budget-envelope:before{content:none;display:none}.app-page[data-page=budget][data-theme=foyer] .budget-envelope:hover{transform:none;box-shadow:none;border-color:#2b25200f;background:#c17a4f06}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-ok .budget-envelope-spent{color:var(--success)}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-ok .budget-envelope-fill{background:var(--success)}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-ok .budget-envelope-remaining{color:var(--success);background:transparent}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-warn .budget-envelope-spent{color:var(--warning)}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-warn .budget-envelope-fill{background:var(--warning)}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-warn .budget-envelope-remaining{color:var(--warning);background:transparent}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-danger .budget-envelope-spent{color:var(--danger)}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-danger .budget-envelope-fill{background:var(--danger)}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-danger .budget-envelope-remaining{color:var(--danger);background:transparent}.app-page[data-page=budget][data-theme=foyer] .budget-envelope.state-danger{border-color:#c25a4f4d;background:#fff}.app-page[data-page=budget][data-theme=foyer] .budget-envelope .rollover-badge{font-family:var(--font-sans);font-size:.7rem;border-radius:999px;padding:1px 7px;display:inline-flex;align-items:center;gap:.25rem}.app-page[data-page=budget][data-theme=foyer] .rollover-badge.positive{background:var(--success-bg);color:var(--success)}.app-page[data-page=budget][data-theme=foyer] .rollover-badge.negative{background:var(--danger-bg);color:var(--danger)}.app-page[data-page=budget][data-theme=foyer] #budgetUtilizationGrid{background:transparent;padding:0;margin-top:1rem}.app-page[data-page=budget][data-theme=foyer] .budget-util-title{font-family:var(--font-display);font-weight:500;color:var(--ink-1);font-size:1rem;margin-bottom:.6rem;display:inline-flex;align-items:center;gap:.4rem;letter-spacing:-.005em}.app-page[data-page=budget][data-theme=foyer] .budget-util-title svg{color:var(--primary);stroke:var(--primary)}.app-page[data-page=budget][data-theme=foyer] .budget-util-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.6rem}.app-page[data-page=budget][data-theme=foyer] .budget-util-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.75rem;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto auto;gap:.35rem .55rem;align-items:center;transition:border-color .18s ease,box-shadow .18s ease;font-family:var(--font-sans)}.app-page[data-page=budget][data-theme=foyer] .budget-util-card:hover{border-color:var(--border-hover);box-shadow:0 3px 10px #2b25200d}.app-page[data-page=budget][data-theme=foyer] .budget-util-icon{width:28px;height:28px;background:var(--paper-dark);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem}.app-page[data-page=budget][data-theme=foyer] .budget-util-name{font-family:var(--font-display);font-weight:500;color:var(--ink-1);font-size:.85rem;letter-spacing:-.005em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-page[data-page=budget][data-theme=foyer] .budget-util-pct{font-family:var(--font-display);font-weight:600;color:var(--ink-1);font-size:.85rem;font-variant-numeric:tabular-nums}.app-page[data-page=budget][data-theme=foyer] .budget-util-bar-bg{grid-column:1 / -1;background:var(--paper-dark);height:6px;border-radius:999px;overflow:hidden}.app-page[data-page=budget][data-theme=foyer] .budget-util-bar-fill{height:100%;border-radius:999px;transition:width .5s cubic-bezier(.34,1.56,.64,1)}.app-page[data-page=budget][data-theme=foyer] .budget-util-bar-fill.budget-util-safe{background:var(--success)}.app-page[data-page=budget][data-theme=foyer] .budget-util-bar-fill.budget-util-caution,.app-page[data-page=budget][data-theme=foyer] .budget-util-bar-fill.budget-util-warning{background:var(--warning)}.app-page[data-page=budget][data-theme=foyer] .budget-util-bar-fill.budget-util-danger{background:var(--danger)}.app-page[data-page=budget][data-theme=foyer] .budget-util-remaining{grid-column:1 / -1;font-size:.72rem;color:var(--ink-3);font-family:var(--font-sans);font-variant-numeric:tabular-nums}.app-page[data-page=budget][data-theme=foyer] .budget-util-card.budget-util-danger .budget-util-remaining{color:var(--danger);font-weight:500}.app-page[data-page=budget][data-theme=foyer] #budgetChartsSection{margin-top:2rem}.app-page[data-page=budget][data-theme=foyer] .budget-charts-tabs-container,.app-page[data-page=budget][data-theme=foyer] .chart-tabs-container{background:var(--paper-dark);border:1px solid var(--border);border-radius:999px;padding:.25rem;display:inline-flex;gap:.15rem;margin-bottom:1rem}.app-page[data-page=budget][data-theme=foyer] .budget-chart-tab-btn{background:transparent;color:var(--ink-2);border:none;border-radius:999px;padding:.4rem .85rem;font-family:var(--font-sans);font-size:.82rem;font-weight:500;cursor:pointer;transition:background .18s ease,color .18s ease}.app-page[data-page=budget][data-theme=foyer] .budget-chart-tab-btn:hover{color:var(--primary);background:#fff}.app-page[data-page=budget][data-theme=foyer] .budget-chart-tab-btn.active{background:var(--primary);color:#fff;box-shadow:0 1px 2px #c17a4f33}.app-page[data-page=budget][data-theme=foyer] .chart-box{background:#fff;border:1px solid var(--border);border-radius:14px;padding:1.1rem;box-shadow:0 1px 2px #2b252008}.app-page[data-page=budget][data-theme=foyer] .chart-subtitle{font-family:var(--font-display);font-weight:500;color:var(--ink-1);font-size:.95rem;margin-bottom:.75rem;letter-spacing:-.005em}.app-page[data-page=budget][data-theme=foyer] #budgetHistory{margin-top:2rem}.app-page[data-page=budget][data-theme=foyer] #budgetHistory h3{margin-bottom:1rem}.app-page[data-page=budget][data-theme=foyer] #budgetHistoryTable table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;font-family:var(--font-sans);font-size:.87rem}.app-page[data-page=budget][data-theme=foyer] #budgetHistoryTable th{background:var(--paper-dark);color:var(--ink-2);font-family:var(--font-sans);font-weight:600;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--border)}.app-page[data-page=budget][data-theme=foyer] #budgetHistoryTable td{padding:.65rem .85rem;border-bottom:1px solid var(--border);color:var(--ink-1);font-variant-numeric:tabular-nums}.app-page[data-page=budget][data-theme=foyer] #budgetHistoryTable tr:last-child td{border-bottom:none}.app-page[data-page=budget][data-theme=foyer] #budgetHistoryTable tr:hover td{background:var(--paper-dark)}@media(max-width:640px){.app-page[data-page=budget][data-theme=foyer] .budget-envelope{padding:10px 14px;grid-template-columns:32px minmax(0,1fr) auto;column-gap:11px;row-gap:4px}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-icon{width:32px;height:32px;font-size:.9rem}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-name{font-size:.92rem}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-spent{font-size:.96rem}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-limit{font-size:.74rem}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-remaining{font-size:.68rem}.app-page[data-page=budget][data-theme=foyer] .budget-envelope-total{flex-wrap:wrap;padding:.85rem}.app-page[data-page=budget][data-theme=foyer] .budget-util-cards{grid-template-columns:repeat(2,1fr)}.app-page[data-page=budget][data-theme=foyer] .budget-charts-tabs-container,.app-page[data-page=budget][data-theme=foyer] .chart-tabs-container{flex-wrap:wrap}}.app-page[data-page=analytics][data-theme=foyer]{--paper: #faf8f3;--paper-dark: #f5f2ea;--paper-darker: #eae6db;--ink-1: #2b2520;--ink-2: #5a5349;--ink-3: #8a8479;--ink-fade: #b8b3aa;--bg: var(--paper);--bg-secondary: var(--paper-dark);--bg-tertiary: var(--paper-darker);--card-bg: #ffffff;--text: var(--ink-1);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: #ffffff;--border: rgba(43, 37, 32, .12);--border-hover: rgba(43, 37, 32, .24);--accent: #c17a4f;--accent-hover: #a86840;--accent-light: rgba(193, 122, 79, .1);--accent-subtle: rgba(193, 122, 79, .06);--primary: #c17a4f;--primary-hover: #a86840;--primary-subtle: rgba(193, 122, 79, .06);--success: #5f8f6f;--success-bg: #e8f2ec;--warning: #d4a574;--warning-bg: #f9f1e8;--danger: #c25a4f;--danger-bg: #fceae8;--font-display: "Fraunces", "Plus Jakarta Sans", Georgia, serif;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;font-family:var(--font-sans);color:var(--ink-1)}.app-page[data-page=analytics][data-theme=foyer] .statistics,.app-page[data-page=analytics][data-theme=foyer] .member-breakdown{font-family:var(--font-sans)}.app-page[data-page=analytics][data-theme=foyer] .section-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.app-page[data-page=analytics][data-theme=foyer] h2{font-family:var(--font-display);font-weight:500;font-size:clamp(1.25rem,2vw,1.5rem);color:var(--ink-1);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.55rem;margin:0}.app-page[data-page=analytics][data-theme=foyer] h2 .icon svg{color:var(--primary);stroke:var(--primary)}.app-page[data-page=analytics][data-theme=foyer] h3,.app-page[data-page=analytics][data-theme=foyer] .subsection-title,.app-page[data-page=analytics][data-theme=foyer] .subsection-title-flex,.app-page[data-page=analytics][data-theme=foyer] .subsection-title-lg{font-family:var(--font-display);font-weight:500;color:var(--ink-1);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.5rem;margin:0}.app-page[data-page=analytics][data-theme=foyer] h3 .icon svg,.app-page[data-page=analytics][data-theme=foyer] .subsection-title .icon svg,.app-page[data-page=analytics][data-theme=foyer] .subsection-title-flex .icon svg,.app-page[data-page=analytics][data-theme=foyer] .subsection-title-lg .icon svg{color:var(--primary);stroke:var(--primary)}.app-page[data-page=analytics][data-theme=foyer] h4.chart-subtitle-sm,.app-page[data-page=analytics][data-theme=foyer] .chart-subtitle{font-family:var(--font-display);font-weight:500;color:var(--ink-1);font-size:.95rem;letter-spacing:-.005em;display:inline-flex;align-items:center;gap:.4rem}.app-page[data-page=analytics][data-theme=foyer] h4.chart-subtitle-sm .icon svg,.app-page[data-page=analytics][data-theme=foyer] .chart-subtitle .icon svg{color:var(--primary);stroke:var(--primary)}.app-page[data-page=analytics][data-theme=foyer] .scroll-hint-text{color:var(--ink-3);font-family:var(--font-serif);font-style:italic}.app-page[data-page=analytics][data-theme=foyer] .stats-filter-hint{color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.85rem;display:inline-flex;align-items:center;gap:.4rem}.app-page[data-page=analytics][data-theme=foyer] .stats-filter-hint .icon svg{color:var(--warning);stroke:var(--warning)}.app-page[data-page=analytics][data-theme=foyer] .header-actions-group{display:inline-flex;flex-wrap:wrap;gap:.5rem;align-items:center}.app-page[data-page=analytics][data-theme=foyer] .header-actions-group .btn-nav{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:10px;padding:.5rem .85rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;display:inline-flex;align-items:center;gap:.35rem;transition:background .18s ease,border-color .18s ease,color .18s ease;box-shadow:0 1px 2px #2b252008}.app-page[data-page=analytics][data-theme=foyer] .header-actions-group .btn-nav:hover{background:var(--paper-dark);border-color:var(--border-hover);color:var(--primary)}.app-page[data-page=analytics][data-theme=foyer] .header-actions-group .btn-nav .icon svg{color:currentColor;stroke:currentColor}.app-page[data-page=analytics][data-theme=foyer] .stats-cards{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:2rem;background:#fff;border:1px solid rgba(43,37,32,.1);border-radius:4px;padding:.25rem 0;position:relative;box-shadow:0 1px 2px #2b252008;overflow:hidden}.app-page[data-page=analytics][data-theme=foyer] .stats-cards:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.32),transparent);pointer-events:none}.app-page[data-page=analytics][data-theme=foyer] .stat-card{background:transparent;border:none;border-top:1px solid rgba(43,37,32,.05);border-radius:0;padding:.85rem 1.5rem;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .15s ease;position:relative;overflow:visible;display:grid;grid-template-columns:1fr auto;align-items:baseline;column-gap:1rem}.app-page[data-page=analytics][data-theme=foyer] .stat-card:nth-child(-n+2){border-top:none}.app-page[data-page=analytics][data-theme=foyer] .stat-card:nth-child(odd){border-right:1px solid rgba(43,37,32,.05)}.app-page[data-page=analytics][data-theme=foyer] .stat-card:before,.app-page[data-page=analytics][data-theme=foyer] .stat-card:after{display:none;content:none}.app-page[data-page=analytics][data-theme=foyer] .stat-card:hover{border-color:#2b25200d;box-shadow:none;background:#c17a4f05}.app-page[data-page=analytics][data-theme=foyer] .stat-label{grid-column:1;color:var(--ink-2);font-family:var(--font-serif);font-size:.86rem;font-weight:400;font-style:italic;letter-spacing:0;text-transform:none;margin:0}.app-page[data-page=analytics][data-theme=foyer] .stat-value{grid-column:2;color:var(--ink-1);font-family:var(--font-display);font-weight:500;font-size:clamp(1.1rem,1.8vw,1.35rem);letter-spacing:-.01em;font-variant-numeric:tabular-nums;text-align:right}.app-page[data-page=analytics][data-theme=foyer] #monthComparison{background:transparent;padding:0;margin-bottom:1.5rem}.app-page[data-page=analytics][data-theme=foyer] .comparison-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}.app-page[data-page=analytics][data-theme=foyer] .comparison-cards>*{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem;font-family:var(--font-sans);color:var(--ink-1);box-shadow:0 1px 2px #2b252008}.app-page[data-page=analytics][data-theme=foyer] .expense-habits-section{background:transparent;margin-bottom:1.5rem}.app-page[data-page=analytics][data-theme=foyer] .flex-between{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.app-page[data-page=analytics][data-theme=foyer] #refreshInsightsBtn.btn-nav,.app-page[data-page=analytics][data-theme=foyer] .btn-nav.btn-nav-sm{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:10px;font-family:var(--font-sans);font-weight:500;font-size:.8rem;display:inline-flex;align-items:center;gap:.3rem;transition:background .18s ease,border-color .18s ease,color .18s ease;box-shadow:0 1px 2px #2b252008}.app-page[data-page=analytics][data-theme=foyer] #refreshInsightsBtn.btn-nav:hover{border-color:var(--primary);color:var(--primary);background:var(--paper-dark)}.app-page[data-page=analytics][data-theme=foyer] .insights-scrollable-container{display:flex;flex-direction:column;gap:.85rem}.app-page[data-page=analytics][data-theme=foyer] .insights-container,.app-page[data-page=analytics][data-theme=foyer] .recommendations-container,.app-page[data-page=analytics][data-theme=foyer] .predictions-container,.app-page[data-page=analytics][data-theme=foyer] .detected-recurrences-container{background:#fff;border:1px solid var(--border);border-radius:14px;padding:1rem 1.15rem;box-shadow:0 1px 2px #2b252008}.app-page[data-page=analytics][data-theme=foyer] .recommendations-container,.app-page[data-page=analytics][data-theme=foyer] .predictions-container,.app-page[data-page=analytics][data-theme=foyer] .detected-recurrences-container{border-left:1px solid var(--border);border-radius:14px;position:relative}.app-page[data-page=analytics][data-theme=foyer] .recommendations-container:before,.app-page[data-page=analytics][data-theme=foyer] .predictions-container:before,.app-page[data-page=analytics][data-theme=foyer] .detected-recurrences-container:before{content:"";position:absolute;top:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.28),transparent)}.app-page[data-page=analytics][data-theme=foyer] .scroll-indicator{text-align:center;padding:.5rem 0}.app-page[data-page=analytics][data-theme=foyer] .scroll-indicator .scroll-hint-text{color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.8rem;display:inline-flex;align-items:center;gap:.3rem}.app-page[data-page=analytics][data-theme=foyer] .scroll-indicator .icon svg{color:var(--ink-3);stroke:var(--ink-3)}.app-page[data-page=analytics][data-theme=foyer] .savings-advice-section{background:transparent;margin-bottom:1.5rem}.app-page[data-page=analytics][data-theme=foyer] .savings-advice-content{background:#fff;border:1px solid var(--border);border-left:3px solid var(--success);border-radius:2px 14px 14px 2px;padding:1rem 1.15rem;color:var(--ink-1);font-family:var(--font-sans);box-shadow:0 1px 2px #2b252008}.app-page[data-page=analytics][data-theme=foyer] .charts-filter-menu{background:#fff;border:1px solid var(--border);border-radius:14px;padding:.85rem 1rem;box-shadow:0 1px 2px #2b252008;margin-bottom:1rem}.app-page[data-page=analytics][data-theme=foyer] .charts-label{color:var(--ink-2);font-family:var(--font-sans);font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.35rem}.app-page[data-page=analytics][data-theme=foyer] .charts-label .icon svg{color:var(--primary);stroke:var(--primary)}.app-page[data-page=analytics][data-theme=foyer] .chart-tabs-container{background:var(--paper-dark);border:1px solid var(--border);border-radius:999px;padding:.25rem;display:inline-flex;flex-wrap:wrap;gap:.15rem;margin-bottom:0}.app-page[data-page=analytics][data-theme=foyer] .chart-tab-btn{background:transparent;color:var(--ink-2);border:none;border-radius:999px;padding:.4rem .85rem;font-family:var(--font-sans);font-size:.82rem;font-weight:500;cursor:pointer;transition:background .18s ease,color .18s ease;flex:0 1 auto;white-space:nowrap}.app-page[data-page=analytics][data-theme=foyer] .chart-tab-btn:hover{color:var(--primary);background:#fff}.app-page[data-page=analytics][data-theme=foyer] .chart-tab-btn.active{background:var(--primary);color:#fff;box-shadow:0 1px 2px #c17a4f33}.app-page[data-page=analytics][data-theme=foyer] #showMoreCharts.btn-nav{background:#fff;border:1px dashed var(--border-hover);color:var(--ink-2);font-family:var(--font-sans);border-radius:999px;font-size:.78rem}.app-page[data-page=analytics][data-theme=foyer] #showMoreCharts.btn-nav:hover{color:var(--primary);border-color:var(--primary)}.app-page[data-page=analytics][data-theme=foyer] .charts-more-container{display:inline-flex;gap:.15rem;flex-wrap:wrap}.app-page[data-page=analytics][data-theme=foyer] .stats-period-controls{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.app-page[data-page=analytics][data-theme=foyer] .period-label{color:var(--ink-3);font-family:var(--font-sans);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.app-page[data-page=analytics][data-theme=foyer] .select-compact,.app-page[data-page=analytics][data-theme=foyer] .date-input-compact{background:#fff;color:var(--ink-1);border:1px solid var(--border);border-radius:8px;padding:.35rem .6rem;font-family:var(--font-sans);font-size:.82rem;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease}.app-page[data-page=analytics][data-theme=foyer] .select-compact:hover,.app-page[data-page=analytics][data-theme=foyer] .date-input-compact:hover{border-color:var(--border-hover)}.app-page[data-page=analytics][data-theme=foyer] .select-compact:focus,.app-page[data-page=analytics][data-theme=foyer] .date-input-compact:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.app-page[data-page=analytics][data-theme=foyer] .custom-range-inputs{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink-3);font-family:var(--font-serif);font-style:italic;font-size:.82rem}.app-page[data-page=analytics][data-theme=foyer] .chart-view-mode-toggle{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink-2);font-family:var(--font-sans);font-size:.82rem;cursor:pointer}.app-page[data-page=analytics][data-theme=foyer] .chart-view-mode-toggle input[type=checkbox]{accent-color:var(--primary)}.app-page[data-page=analytics][data-theme=foyer] .charts-container{display:grid;grid-template-columns:1fr;gap:1rem}.app-page[data-page=analytics][data-theme=foyer] .charts-container.show-all{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.app-page[data-page=analytics][data-theme=foyer] .chart-box{background:#fff;border:1px solid var(--border);border-radius:14px;padding:1.2rem;box-shadow:0 1px 2px #2b252008;transition:border-color .2s ease,box-shadow .2s ease}.app-page[data-page=analytics][data-theme=foyer] .chart-box:before{display:none}.app-page[data-page=analytics][data-theme=foyer] .chart-box:hover{border-color:var(--border-hover);box-shadow:0 4px 14px #2b25200f}.app-page[data-page=analytics][data-theme=foyer] .chart-box h3{font-family:var(--font-display);font-weight:500;color:var(--ink-1);font-size:1rem;margin-bottom:.75rem;letter-spacing:-.005em;display:inline-flex;align-items:center;gap:.4rem}.app-page[data-page=analytics][data-theme=foyer] .chart-box h3 .icon svg{color:var(--primary);stroke:var(--primary)}.app-page[data-page=analytics][data-theme=foyer] .chart-box h4{font-family:var(--font-display);font-weight:500;color:var(--ink-2);font-size:.9rem;letter-spacing:-.005em;margin-top:1.25rem!important}.app-page[data-page=analytics][data-theme=foyer] .pie-chart-legend{color:var(--ink-1);font-family:var(--font-sans);font-size:.82rem}.app-page[data-page=analytics][data-theme=foyer] .income-summary-stats{color:var(--ink-1);font-family:var(--font-sans);font-size:.87rem;margin-bottom:.75rem}.app-page[data-page=analytics][data-theme=foyer] .member-breakdown{margin-top:2rem}.app-page[data-page=analytics][data-theme=foyer] .member-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem}.app-page[data-page=analytics][data-theme=foyer] .member-summary-grid>*{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.85rem 1rem;color:var(--ink-1);font-family:var(--font-sans);box-shadow:0 1px 2px #2b252008}.app-page[data-page=analytics][data-theme=foyer] .member-stats-tabs{background:var(--paper-dark);border:1px solid var(--border);border-radius:999px;padding:.25rem;display:inline-flex;flex-wrap:wrap;gap:.15rem;margin-bottom:1rem}.app-page[data-page=analytics][data-theme=foyer] .member-stats-tabs .tab-btn{background:transparent;color:var(--ink-2);border:none;border-radius:999px;padding:.4rem .9rem;font-family:var(--font-sans);font-size:.82rem;font-weight:500;cursor:pointer;transition:background .18s ease,color .18s ease}.app-page[data-page=analytics][data-theme=foyer] .member-stats-tabs .tab-btn:hover{color:var(--primary);background:#fff}.app-page[data-page=analytics][data-theme=foyer] .member-stats-tabs .tab-btn.active{background:var(--primary);color:#fff;box-shadow:0 1px 2px #c17a4f33}.app-page[data-page=analytics][data-theme=foyer] .member-legend{color:var(--ink-1);font-family:var(--font-sans);font-size:.82rem;margin-bottom:.75rem}@media(max-width:640px){.app-page[data-page=analytics][data-theme=foyer] .section-header-row{align-items:flex-start}.app-page[data-page=analytics][data-theme=foyer] .header-actions-group{width:100%;justify-content:flex-start}.app-page[data-page=analytics][data-theme=foyer] .stats-cards{grid-template-columns:repeat(2,1fr);gap:.6rem}.app-page[data-page=analytics][data-theme=foyer] .stat-card{padding:.85rem}.app-page[data-page=analytics][data-theme=foyer] .charts-filter-menu{padding:.75rem}.app-page[data-page=analytics][data-theme=foyer] .chart-tabs-container,.app-page[data-page=analytics][data-theme=foyer] .member-stats-tabs{display:flex;width:100%}.app-page[data-page=analytics][data-theme=foyer] .chart-box{padding:.95rem}.app-page[data-page=analytics][data-theme=foyer] .member-summary-grid{grid-template-columns:1fr}}.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 #c17a4f40}.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}#ticketsAnalysisContent .analysis-tabs{display:flex;gap:0;overflow-x:auto}#ticketsAnalysisContent .analysis-tab{padding:12px 16px;color:var(--text-secondary);font-size:14px;white-space:nowrap;cursor:pointer;background:none;border:none;border-bottom:2px solid transparent;transition:all .2s ease}#ticketsAnalysisContent .analysis-tab:hover{color:var(--text);background:var(--bg-secondary)}#ticketsAnalysisContent .analysis-tab.active{color:var(--primary-color);font-weight:500;border-bottom-color:var(--primary-color)}#ticketsAnalysisContent .summary-card{transition:transform .2s ease}#ticketsAnalysisContent .summary-card:hover{transform:translateY(-2px)}#ticketsAnalysisContent .recommendation-card{transition:all .2s ease}#ticketsAnalysisContent .recommendation-card:hover{transform:translate(4px)}#ticketsAnalysisContent .product-row:hover{background:var(--bg)!important}@font-face{font-family:EmojiOverride;src:local("Apple Color Emoji"),local("Segoe UI Emoji"),local("Noto Color Emoji"),local("Android Emoji");unicode-range:U+200D,U+2049,U+20E3,U+2122,U+2139,U+2194-2199,U+21A9-21AA,U+231A-231B,U+2328,U+23CF,U+23E9-23F3,U+23F8-23FA,U+24C2,U+25AA-25AB,U+25B6,U+25C0,U+25FB-25FE,U+2600-27BF,U+2934-2935,U+2B05-2B07,U+2B1B-2B1C,U+2B50,U+2B55,U+3030,U+303D,U+3297,U+3299,U+FE0F,U+1F000-1FFFF}.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:EmojiOverride,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:var(--btn-height);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 #c17a4f40}.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}.balance-trend-label{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#ffffffd9}.balance-trend-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%}.balance-trend-icon.trend-up{background:#10b98140}.balance-trend-icon.trend-down{background:#ef444440}.budgia-icon{display:inline-block;width:40px;height:40px;vertical-align:middle;object-fit:contain;object-position:center;flex-shrink:0}.budgia-icon--xs{width:20px;height:20px}.budgia-icon--sm{width:28px;height:28px}.budgia-icon--md{width:44px;height:44px}.budgia-icon--lg{width:64px;height:64px}.budgia-icon--xl{width:88px;height:88px}.budgia-icon--hero{width:128px;height:128px}.budgia-icon-frame{display:inline-flex;align-items:center;justify-content:center;background:#f4efde;border:1px solid rgba(43,37,32,.08);border-radius:10px;box-shadow:0 1px 2px #2b25200a;flex-shrink:0;padding:6px;box-sizing:border-box}.budgia-icon-frame--xs{width:32px;height:32px;padding:3px;border-radius:6px}.budgia-icon-frame--sm{width:40px;height:40px;padding:4px;border-radius:8px}.budgia-icon-frame--md{width:56px;height:56px;padding:6px;border-radius:10px}.budgia-icon-frame--lg{width:72px;height:72px;padding:8px;border-radius:12px}.budgia-icon-frame--xl{width:104px;height:104px;padding:10px;border-radius:14px}.budgia-icon-frame--hero{width:148px;height:148px;padding:12px;border-radius:16px}.budgia-icon-frame .budgia-icon{width:100%;height:100%}.budgia-icon-frame--round{border-radius:50%}.budgia-icon-frame--soft{background:transparent;border-color:transparent;box-shadow:none}.budgia-icon-frame--soft .budgia-icon{-webkit-mask-image:radial-gradient(ellipse at center,#000 55%,rgba(0,0,0,0) 92%);mask-image:radial-gradient(ellipse at center,#000 55%,#0000 92%)}.budgia-icon-frame--flat{background:transparent;border-color:transparent;box-shadow:none;padding:0}.budgia-empty-state .budgia-icon--hero,.empty-state .budgia-icon--hero{margin:0 auto 18px;display:block;filter:drop-shadow(0 2px 6px rgba(43,37,32,.1))}.empty-state .budgia-icon-frame--hero{margin:0 auto 18px}.budgia-icon--fallback{font-family:Fraunces,serif;font-size:1.2em;color:var(--primary, #c17a4f);line-height:1}.budgia-icon--muted{opacity:.72;filter:saturate(.75)}.onboarding-budget-icon{margin-right:6px}@media(max-width:640px){.budgia-icon-frame--xl{width:88px;height:88px;padding:8px}.budgia-icon-frame--hero{width:120px;height:120px;padding:10px}.budgia-icon-frame--lg{width:64px;height:64px;padding:7px}}.insights-container .insight-card,.recommendations-container .recommendation-card{box-sizing:border-box;max-width:100%}@media(min-width:641px){.insights-container .insight-card,.recommendations-container .recommendation-card{max-width:640px}}@media(max-width:640px){.insights-container .insight-card,.recommendations-container .recommendation-card{padding:14px}.insights-container .insight-card>[data-inline-style*=flex],.recommendations-container .recommendation-card>[data-inline-style*=flex]{flex-wrap:wrap}}@media(max-width:480px){.budget-envelopes-grid{grid-template-columns:1fr}}.feuillets-rating{display:inline-flex;align-items:center;gap:4px}.feuillets-rating__feuillet{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:transparent;transition:color .12s ease,transform .12s ease}.feuillets-rating__feuillet svg{width:100%;height:100%;display:block}.feuillets-rating__feuillet--filled{color:var(--primary, #c17a4f)}.feuillets-rating__feuillet--filled svg path{stroke:var(--primary, #c17a4f)}.feuillets-rating--interactive .feuillets-rating__feuillet{background:transparent;border:0;padding:8px;min-width:44px;min-height:44px;cursor:pointer;border-radius:6px;width:auto;height:auto}.feuillets-rating--interactive .feuillets-rating__feuillet svg{width:24px;height:24px;flex-shrink:0}.feuillets-rating--interactive .feuillets-rating__feuillet:focus-visible{outline:2px solid var(--primary, #c17a4f);outline-offset:2px}.feuillets-rating--interactive .feuillets-rating__feuillet:hover{transform:translateY(-1px)}.feuillets-rating__feuillet--preview:not(.feuillets-rating__feuillet--filled){color:#c17a4f73}.feuillets-rating__feuillet--preview:not(.feuillets-rating__feuillet--filled) svg path{stroke:var(--primary, #c17a4f)}@media(max-width:480px){.feuillets-rating{gap:6px}.feuillets-rating--interactive .feuillets-rating__feuillet{min-width:48px;min-height:48px}}html[data-theme=foyer] .lecture-submission-modal .modal-content{max-width:560px;width:92vw;background:var(--paper, #faf8f3);color:var(--ink-1, #2b2520);border:1px solid rgba(43,37,32,.12);border-radius:14px;box-shadow:0 1px 2px #2b25200a,0 12px 32px #2b252014;padding:28px 32px 24px}@media(max-width:480px){html[data-theme=foyer] .lecture-submission-modal .modal-content{padding:20px 20px 18px;border-radius:12px}}html[data-theme=foyer] .lecture-submission-modal .modal-header{position:relative;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid rgba(43,37,32,.08)}html[data-theme=foyer] .lecture-submission-modal .modal-title{font-family:var(--font-display, "Fraunces"),Georgia,serif;font-size:1.5rem;font-weight:500;color:var(--ink-1, #2b2520);letter-spacing:0;line-height:1.2;margin:0}html[data-theme=foyer] .lecture-submission-modal .modal-subtitle{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-size:1rem;color:#2b2520b3;margin:6px 0 0}html[data-theme=foyer] .lecture-submission-modal .modal-close{position:absolute;top:-4px;right:-4px;background:transparent;border:0;font-size:1.5rem;line-height:1;color:#2b252080;cursor:pointer;padding:6px 10px;border-radius:6px;transition:color .12s ease,background .12s ease}html[data-theme=foyer] .lecture-submission-modal .modal-close:hover,html[data-theme=foyer] .lecture-submission-modal .modal-close:focus-visible{color:var(--terracotta, #c17a4f);background:#c17a4f0f;outline:none}html[data-theme=foyer] .lecture-submission-form{display:flex;flex-direction:column;gap:18px}html[data-theme=foyer] .lecture-submission-form .form-field{display:flex;flex-direction:column;gap:6px}html[data-theme=foyer] .lecture-submission-form .form-label{font-family:Geist,Inter,sans-serif;font-size:.875rem;font-weight:600;color:var(--ink-1, #2b2520)}html[data-theme=foyer] .lecture-submission-form .form-input,html[data-theme=foyer] .lecture-submission-form .form-textarea{font-family:Geist,Inter,sans-serif;font-size:1rem;color:var(--ink-1, #2b2520);background:#fff;border:1px solid rgba(43,37,32,.16);border-radius:8px;padding:10px 12px;transition:border-color .12s ease,box-shadow .12s ease}html[data-theme=foyer] .lecture-submission-form .form-textarea{resize:vertical;min-height:140px;line-height:1.55}html[data-theme=foyer] .lecture-submission-form .form-input:focus,html[data-theme=foyer] .lecture-submission-form .form-textarea:focus{border-color:var(--terracotta, #c17a4f);box-shadow:0 0 0 3px #c17a4f1f;outline:none}html[data-theme=foyer] .lecture-submission-form .form-input[aria-invalid=true],html[data-theme=foyer] .lecture-submission-form .form-textarea[aria-invalid=true]{border-color:var(--terracotta, #c17a4f);background:#c17a4f0a}html[data-theme=foyer] .lecture-submission-form .form-help{font-family:Geist,Inter,sans-serif;font-size:.8125rem;color:#2b252099}html[data-theme=foyer] .lecture-submission-form .form-counter{font-family:Geist,Inter,sans-serif;font-size:.75rem;color:#2b252080;align-self:flex-end}html[data-theme=foyer] .lecture-submission-form .form-error{font-family:Geist,Inter,sans-serif;font-size:.8125rem;font-weight:500;color:#b04a26;margin-top:2px}html[data-theme=foyer] .lecture-submission-modal .modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(43,37,32,.08)}@media(max-width:480px){html[data-theme=foyer] .lecture-submission-modal .modal-actions{flex-direction:column-reverse}html[data-theme=foyer] .lecture-submission-modal .modal-actions .btn{width:100%}}html[data-theme=foyer] .app-footer{margin-top:48px;padding:28px 0 36px;border-top:1px solid rgba(43,37,32,.08);background:transparent}html[data-theme=foyer] .app-footer .app-footer-inner{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}html[data-theme=foyer] .app-footer .app-footer-cta{font-family:Geist,Inter,sans-serif;font-size:.9375rem;letter-spacing:0;padding:10px 18px;border-radius:10px;border:1px solid rgba(43,37,32,.16);background:#fff;color:var(--ink-1, #2b2520);cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease,box-shadow .12s ease}html[data-theme=foyer] .app-footer .app-footer-cta:hover,html[data-theme=foyer] .app-footer .app-footer-cta:focus-visible{border-color:var(--terracotta, #c17a4f);color:var(--terracotta, #c17a4f);outline:none;box-shadow:0 0 0 3px #c17a4f1f}@media(max-width:480px){html[data-theme=foyer] .app-footer{margin-top:32px;padding:22px 0 28px}html[data-theme=foyer] .app-footer .app-footer-cta{width:100%;text-align:center}}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:#c17a4f1a;color:#c17a4f}.savings-goals h2 .icon{background:#5f8f6f1f;color:#5f8f6f}.recurrences h2 .icon{background:#d4a57424;color:#c17a4f}.statistics h2 .icon{background:#c17a4f1a;color:#c17a4f}.projections h2 .icon{background:#5f8f6f1f;color:#5f8f6f}.health-score h2 .icon,.transactions h2 .icon{background:#c17a4f1a;color:#c17a4f}.tickets-analysis h2 .icon,.insights-feed h2 .icon{background:#d4a57424;color:#c17a4f}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:none;grid-template-columns:1fr 1fr;gap:var(--space-lg);grid-column:1 / -1}.app-page.active{display:grid}.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:var(--gradient-success, linear-gradient(90deg, #5f8f6f, #7fa88f))}.app-page>.recurrences:before{background:var(--gradient-warning, linear-gradient(90deg, #d4a574, #e4b584))}.app-page>.projections:before{background:var(--gradient-primary, linear-gradient(90deg, #c17a4f, #d4a574))}.app-page>.tickets-analysis:before{background:var(--gradient-warning, linear-gradient(90deg, #d4a574, #e4b584))}.app-page>.insights-feed:before{background:var(--gradient-primary, linear-gradient(90deg, #c17a4f, #d4a574))}.app-page>.category-rules:before{background:var( --gradient-subtle, linear-gradient(90deg, rgba(193, 122, 79, .45), rgba(212, 165, 116, .25)) )}.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;overflow:hidden;text-overflow:ellipsis}.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(193,122,79,.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.active>section.section-enter{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)}}.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{border-color:var(--border)}.form-error{font-size:var(--text-sm);color:var(--danger);margin-top:8px;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);min-height:var(--input-height-lg)}.form-group.form-floating{gap:0}.form-floating input,.form-floating select,.form-floating textarea{padding:20px 12px 8px;min-height:var(--input-height-lg);font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text);width:100%;box-sizing:border-box;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:not(:placeholder-shown)+label,.form-floating select:not([value=""])+label,.form-floating textarea:not(:placeholder-shown)+label{top:6px;transform:translateY(0);font-size:11px;color:var(--text-tertiary);font-weight:500;background:var(--bg)}.form-floating input:focus+label,.form-floating select:focus+label,.form-floating textarea:focus+label{top:6px;transform:translateY(0);font-size:11px;color:var(--accent);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,.form-floating .cat-search-wrapper~label{top:6px;transform:translateY(0);font-size:11px;color:var(--text-tertiary);font-weight:500;background:var(--bg-secondary);padding:0 4px}.form-floating select:focus+label{color:var(--accent)}.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);max-width:100%;overflow:hidden;box-sizing:border-box}.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);word-break:break-word;overflow-wrap:break-word}.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(193, 122, 79, .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:769px){.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:11px;color:var(--text-secondary)}.transaction-item .transaction-checkbox{min-width:var(--touch-target-min);min-height:var(--touch-target-min);display:flex;align-items:center;justify-content:center;flex-shrink:0}.transaction-item .btn-icon.btn-icon-sm{min-width:var(--touch-target-min);min-height:var(--touch-target-min)}.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:var(--modal-width-md);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)}@media(max-width:480px){.modal-content:before{content:"";display:block;width:36px;height:4px;background:#c4c5d7;border-radius:9999px;margin:8px auto 4px}}@media(max-width:768px){.modal.bottom-sheet{align-items:flex-end;padding:0}.modal.bottom-sheet .modal-content,.modal.bottom-sheet .savings-modal{border-radius:20px 20px 0 0;max-width:100%;width:100%;max-height:90vh;margin:0;padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px));animation:bottomSheetSlideUp .35s var(--ease-spring);will-change:transform}.modal.bottom-sheet.modal-closing .modal-content,.modal.bottom-sheet.modal-closing .savings-modal{animation:bottomSheetSlideDown .2s ease forwards}.modal.bottom-sheet .modal-content:before,.modal.bottom-sheet .savings-modal:before{content:"";display:block;width:36px;height:4px;background:var(--text-tertiary, #c4c5d7);border-radius:9999px;margin:12px auto 8px;flex-shrink:0}.modal.bottom-sheet.dragging .modal-content,.modal.bottom-sheet.dragging .savings-modal{transition:none!important;animation:none!important}.savings-modal-overlay.visible+.savings-modal{border-radius:20px 20px 0 0;max-width:100%;width:100%;bottom:0;position:fixed;max-height:90vh;padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px));animation:bottomSheetSlideUp .35s var(--ease-spring)}}@keyframes bottomSheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bottomSheetSlideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}.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 #c17a4f33;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:baseline;gap:.55rem;padding:.45rem .5rem .45rem .9rem;margin:0 0 1rem;background:transparent;border:none;border-left:2px solid rgba(193,122,79,.55);border-radius:0;font-family:Fraunces,Georgia,serif;font-style:italic;font-size:.88rem;line-height:1.5;color:var(--ink-2, #5a5349);animation:fadeInDown .25s ease}html.native-ios .ai-config-banner{position:fixed;top:calc(env(safe-area-inset-top,47px) + 4px);left:12px;right:12px;margin:0;z-index:900;background:#faf8f3f5;box-shadow:0 2px 12px #2b252014;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.ai-config-banner-icon{flex-shrink:0;color:#c17a4fb3;opacity:.85;display:none}.ai-config-banner-text{flex:1;min-width:0;white-space:normal;overflow:visible;text-overflow:clip;color:inherit;font-weight:400;font-style:italic}@media(max-width:480px){.ai-config-banner-text{white-space:normal;line-height:1.4}}.ai-config-banner-btn{flex-shrink:0;padding:0;font-size:.85rem;font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:400;border:none;border-radius:0;background:transparent;color:var(--primary, #c17a4f);cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .15s ease}.ai-config-banner-btn:hover{color:var(--primary-hover, #a86840);filter:none}.ai-config-banner-close{flex-shrink:0;background:none;border:none;font-size:14px;cursor:pointer;color:var(--ink-3, #8a8479);padding:0 2px;line-height:1;opacity:.55;transition:opacity .15s ease}.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(193, 122, 79, .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(193, 122, 79, .2))}.checkbox-container{display:flex;align-items:center;cursor:pointer;user-select:none;position:relative;padding-left:28px;min-height:var(--touch-target-min)}.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:var(--btn-height);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-sm);flex:1;min-width:0}.category-icon{display:inline-flex;align-items:center;justify-content:center;background:transparent;border-radius:0;flex-shrink:0;font-size:0;line-height:1}.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);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.category-actions button{min-width:36px;min-height:36px;padding:4px;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)}.category-icon-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:var(--space-xs, 6px);padding:var(--space-sm, 10px);background:var(--bg-secondary, #f4efde);border:1px solid var(--border, rgba(43, 37, 32, .12));border-radius:var(--radius-md, 10px);max-width:100%}.category-icon-tile{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;padding:6px;background:#fff;border:1px solid rgba(43,37,32,.08);border-radius:10px;cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.category-icon-tile:hover{border-color:var(--primary, #c17a4f);transform:translateY(-1px);box-shadow:0 2px 6px #2b25200f}.category-icon-tile:focus-visible{outline:2px solid var(--primary, #c17a4f);outline-offset:2px}.category-icon-tile.active{border-color:var(--primary, #c17a4f);box-shadow:0 0 0 2px #c17a4f33}.category-icon-tile img.budgia-icon{width:100%;height:100%;object-fit:contain}.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:11px;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:10px;padding:12px}.selection-info{width:100%;justify-content:flex-start}.selection-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn-action{padding:10px 12px;font-size:13px;border-radius:10px;justify-content:center;min-height:44px}.batch-category-wrapper{width:100%;grid-column:span 2}.batch-category-select{max-width:100%;width:100%}.btn-action.btn-delete{grid-column:span 2}.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;word-break:break-word;overflow-wrap:break-word;min-width:0}.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-mode=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(193,122,79,.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){#aiExtractionModal .modal-content{max-width:100%!important;width:100%!important;height:100%!important;max-height:100%!important;border-radius:0!important;margin:0!important}#aiExtractionModal .modal-header{padding:12px 16px!important;padding-top:calc(env(safe-area-inset-top,0px) + 12px)!important}#aiExtractionModal .modal-body{padding:12px!important;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 12px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch}#aiExtractionModal .upload-zone{padding:24px 16px!important}}@media(max-width:768px){#aiChatModal .modal-content{max-width:100%!important;width:100%!important;height:100%!important;max-height:100%!important;border-radius:0!important;margin:0!important}#aiChatModal .modal-header{padding:12px 16px!important;padding-top:calc(env(safe-area-inset-top,0px) + 12px)!important}#aiChatModal .modal-body{padding:12px!important;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 12px)!important}#aiChatModal .chat-messages{padding:12px!important;margin-bottom:10px!important;border-radius:10px!important}#aiChatModal .chat-message{max-width:92%!important;padding:10px 14px!important;font-size:14px!important}#aiChatModal #chatInput{font-size:16px!important;padding:10px!important;min-height:44px!important}#aiChatModal #sendChatMessage{padding:10px 16px!important;min-height:44px!important}#aiChatModal .quick-question-btn{font-size:12px!important;padding:8px 12px!important}#aiChatModal #aiChatUsageBadge{font-size:10px!important;padding:2px 6px!important}#aiChatModal .modal-header h2{font-size:16px!important}#aiChatModal .modal-header p{font-size:12px!important}}html.native-ios.keyboard-open #aiChatModal .modal-content{height:calc(100% - var(--keyboard-height, 0px))!important;transition:height .25s ease}@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}}#aiChatModal[data-theme=foyer] .chat-message,#aiExtractionModal[data-theme=foyer] .chat-message{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;border:none!important;border-radius:0!important;background:transparent!important;padding:.95rem 1.25rem!important;border-top:1px solid rgba(43,37,32,.06)!important;max-width:100%!important;align-self:stretch!important;position:relative;animation:none!important}#aiChatModal[data-theme=foyer] .chat-message:first-child{border-top:none!important}#aiChatModal[data-theme=foyer] .chat-message-author{font-family:Fraunces,Georgia,serif!important;font-style:italic!important;font-weight:400!important;font-size:.82rem!important;margin-bottom:.25rem!important;letter-spacing:.01em}#aiChatModal[data-theme=foyer] .chat-message.ai-message .chat-message-author{color:var(--primary, #c17a4f)!important}#aiChatModal[data-theme=foyer] .chat-message.user-message .chat-message-author{color:var(--ink-2, #5a5349)!important}#aiChatModal[data-theme=foyer] .chat-message-body{font-family:Fraunces,Georgia,serif!important;font-size:.95rem!important;font-weight:400!important;color:var(--ink-1, #2b2520)!important;line-height:1.55!important;word-wrap:break-word;overflow-wrap:break-word}#aiChatModal[data-theme=foyer] .chat-message.error-message{border-left:2px solid var(--danger, #c25a4f)!important}#aiChatModal[data-theme=foyer] .chat-message.error-message .chat-message-body{color:var(--danger, #c25a4f)!important}#aiChatModal[data-theme=foyer] .chat-message.loading-message .chat-message-body{font-style:italic!important;color:var(--ink-3, #8a8479)!important}#aiChatModal[data-theme=foyer] .chat-message:before,#aiExtractionModal[data-theme=foyer] .chat-message:before{content:none!important;background:none!important;-webkit-mask:none!important;mask:none!important}#aiChatModal[data-theme=foyer] .chat-message.user-message{box-shadow:none!important;background:#c17a4f06!important;border-left:2px solid rgba(193,122,79,.45)!important;border-top-color:#2b25200f!important;font-family:Fraunces,Georgia,serif!important;font-style:italic!important;color:var(--ink-1, #2b2520)!important}#aiChatModal[data-theme=foyer] .chat-message.ai-message{box-shadow:none!important;background:transparent!important;border-left:2px solid var(--primary, #c17a4f)!important;font-family:Fraunces,Georgia,serif!important;color:var(--ink-1, #2b2520)!important}#aiChatModal[data-theme=foyer] .chat-message strong{background:transparent!important;background-image:none!important;color:var(--primary, #c17a4f)!important;font-weight:500!important;padding:0!important;border-radius:0!important;display:inline!important}#aiChatModal[data-theme=foyer] .chat-message em{color:var(--ink-2, #5a5349)!important;font-style:italic!important;font-weight:400!important}#aiChatModal[data-theme=foyer] .chat-message li::marker{color:var(--primary, #c17a4f)!important}#aiChatModal[data-theme=foyer] .chat-messages{background:#fff!important;border:1px solid rgba(43,37,32,.1)!important;border-radius:4px!important;padding:0!important;position:relative}#aiChatModal[data-theme=foyer] .chat-messages:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.3),transparent);pointer-events:none;z-index:1}#aiChatModal[data-theme=foyer] .quick-question-btn,#aiChatModal[data-theme=foyer] button.quick-question-btn{background:transparent!important;background-image:none!important;border:none!important;border-bottom:1px solid transparent!important;border-radius:0!important;padding:.25rem 0!important;margin:0 .85rem .4rem 0!important;font-family:Fraunces,Georgia,serif!important;font-style:italic!important;font-size:.88rem!important;font-weight:400!important;color:var(--ink-2, #5a5349)!important;box-shadow:none!important;transform:none!important;transition:color .15s ease,border-color .15s ease}#aiChatModal[data-theme=foyer] .quick-question-btn:before{display:none!important;content:none!important}#aiChatModal[data-theme=foyer] .quick-question-btn:hover,#aiChatModal[data-theme=foyer] .quick-question-btn:focus{background:transparent!important;border-color:transparent!important;border-bottom-color:var(--primary, #c17a4f)!important;color:var(--primary, #c17a4f)!important;transform:none!important;box-shadow:none!important}#aiChatModal[data-theme=foyer] .quick-question-btn:active{transform:none!important}#aiExtractionModal[data-theme=foyer] .drop-zone,#aiExtractionModal[data-theme=foyer] [class*=drop-zone],#aiExtractionModal[data-theme=foyer] [data-drop-zone],#aiExtractionModal[data-theme=foyer] .file-drop{background:#fff!important;background-image:none!important;border:1px dashed rgba(193,122,79,.32)!important;border-radius:4px!important;box-shadow:none!important;color:var(--ink-2, #5a5349)!important;font-family:Fraunces,Georgia,serif!important;font-style:italic!important;transition:border-color .15s ease,background .15s ease}#aiExtractionModal[data-theme=foyer] .drop-zone:hover,#aiExtractionModal[data-theme=foyer] .drop-zone.dragover{border-color:var(--primary, #c17a4f)!important;background:#c17a4f06!important}#aiExtractionModal[data-theme=foyer] [class*=quota],#aiExtractionModal[data-theme=foyer] .badge,#aiExtractionModal[data-theme=foyer] .ai-quota-badge{background:transparent!important;background-image:none!important;border:none!important;border-radius:0!important;padding:0!important;color:var(--ink-3, #8a8479)!important;font-family:Fraunces,Georgia,serif!important;font-style:italic!important;font-size:.8rem!important;font-weight:400!important;box-shadow:none!important}.insights-feed-container{display:flex;flex-direction:column;gap:0;background:#fff;border:1px solid rgba(43,37,32,.1);border-radius:4px;padding:0;position:relative;box-shadow:0 1px 2px #2b252008;overflow:hidden}.insights-feed-container:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(193,122,79,.3),transparent);pointer-events:none;z-index:1}.insight-card{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.85rem;padding:.95rem 1.5rem;background:transparent;border:none;border-top:1px solid rgba(43,37,32,.06);border-left:none;border-radius:0;transition:background .15s ease;animation:insightSlideIn .4s var(--enter-ease) var(--insight-delay, 0ms) both;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;position:relative}.insight-card:first-child{border-top:none}.insight-card:before{content:"";position:absolute;top:1.05rem;left:0;width:2px;height:1.1em;background:var(--insight-accent, var(--primary, #c17a4f));opacity:.55;pointer-events:none}.insight-card:hover{transform:none;box-shadow:none;background:#c17a4f06;border-left-width:0}.insight-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;background:transparent;color:var(--insight-accent, var(--primary, #c17a4f));flex-shrink:0;border:1px solid rgba(193,122,79,.22);box-shadow:none;align-self:start;margin-top:.15rem}.insight-content{min-width:0}.insight-title{font-family:Fraunces,Georgia,serif;font-size:.95rem;font-weight:500;color:var(--ink-1, #2b2520);margin-bottom:.15rem;letter-spacing:-.005em;line-height:1.25}.insight-message{font-family:Fraunces,Georgia,serif;font-style:italic;font-size:.85rem;color:var(--ink-2, #5a5349);line-height:1.45}.insights-empty{text-align:center;padding:1.25rem;color:var(--ink-3, #8a8479);font-family:Fraunces,Georgia,serif;font-style:italic}.insights-empty-icon{margin-bottom:8px;color:var(--success);opacity:.6}.insights-empty p{font-size:.88rem;font-weight:400;font-style:italic}@keyframes insightSlideIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(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:11px;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-mode=dark] .budget-envelope:hover{box-shadow:0 4px 12px #0000004d}[data-mode=dark] .budget-envelope.state-danger{border-color:#ef44444d;background:#ef44440f}[data-mode=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:16px}.section-header-row{gap:8px;margin-bottom:10px;flex-wrap:wrap}header .align-start{align-items:center}.balance-card{border-radius:12px}.balance-card-content{padding:18px 16px 14px}.balance-card-subtitle{font-size:11px}.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:56px;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;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.transaction-item .tx-meta>span{white-space:normal}.transaction-item .tx-desc{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.transaction-item .tx-amount{flex-shrink:1;min-width:60px;font-size:13px;padding:3px 10px}.transaction-item .transaction-original{display:none}.transaction-item .tx-actions-wrapper{flex-shrink:0}.chart-container{height:min(250px,50vw)}.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:10px 12px;min-height:44px;min-width:44px;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:11px;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-top:16px;margin-bottom:16px;margin-left:max(16px,env(safe-area-inset-left,0px));margin-right:max(16px,env(safe-area-inset-right,0px));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:11px;margin-bottom:4px;letter-spacing:.08em}.summary-card .amount{font-size:19px}.summary-trend{margin-top:4px}.trend-chip{font-size:11px;padding:2px 8px}.summary{grid-template-columns:repeat(2,1fr)!important;gap:8px;margin-bottom:10px}.balance-amount{font-size:32px}.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}.projection-cards{grid-template-columns:1fr 1fr;gap:8px}.projection-card{padding:14px;min-width:0}.projection-label{font-size:11px}.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}#budgetModal .modal-content{padding:16px;max-height:calc(90vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch}#budgetModal .modal-content h2{font-size:16px;margin-bottom:12px!important}#budgetModal .section-desc{font-size:13px;margin-bottom:12px!important}.budget-income-section{padding:12px;margin-bottom:12px}.budget-income-section label{font-size:13px}.budget-income-section .text-sm{font-size:11px;margin-bottom:6px!important}.budget-income-section .d-flex{flex-direction:column;gap:8px}.budget-income-section input[type=number]{width:100%;min-height:48px;font-size:16px!important}.budget-income-section button{width:100%;min-height:44px}.budget-form-item{padding:12px!important;margin-bottom:8px!important}.budget-form-controls{flex-direction:column;align-items:stretch!important}.budget-form-input{min-height:44px;font-size:16px!important;width:100%}.budget-form-controls .btn-nav{min-height:44px;width:100%;justify-content:center}.budget-form-controls .rollover-toggle{font-size:11px;justify-content:flex-start}.budget-add-category-form{padding:12px;margin-bottom:12px}.budget-add-category-form .d-flex{flex-direction:column}.budget-add-category-form .flex-1{min-width:0!important;width:100%}.budget-add-category-form .d-flex.gap-sm:last-child{flex-direction:row;width:100%}.budget-add-category-form .d-flex.gap-sm:last-child .btn-nav{flex:1;min-height:44px}#budgetHistory h3{font-size:14px;line-height:1.4}#budgetHistory .chart-box{margin-bottom:12px;min-height:200px}.chart-box canvas{max-height:220px}.hide-mobile{display:none}.rules-add-form{flex-direction:column!important}.rules-add-form .rules-input{width:100%}.transaction-form form{gap:10px}.form-row{flex-direction:column;gap:8px;margin-bottom:0}.form-row .flex-2,.form-row .flex-1{flex:none;width:100%}.form-floating{margin-bottom:8px}.form-floating input,.form-floating select,.form-floating textarea{padding:20px 12px 8px;min-height:56px}.form-floating label{font-size:11px}.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:11px;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:16px;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}.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;-webkit-mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent);mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent)}.page-tabs::-webkit-scrollbar{display:none}.page-tab{white-space:nowrap;font-size:13px;padding:8px 14px}#userDropdown{max-height:60vh;overflow-y:auto;border-radius:12px}}@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:44px;min-height:44px;padding:8px}.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)){html:not(.capacitor-native) 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))}html:not(.capacitor-native) .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))}html:not(.capacitor-native) .modal-content{margin-bottom:max(16px,env(safe-area-inset-bottom))}html:not(.capacitor-native) #llmProviderSelector .provider-options{padding-bottom:max(16px,env(safe-area-inset-bottom))}html:not(.capacitor-native) .savings-modal{margin-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}.bottom-nav{height:48px}.bottom-nav-add{width:40px;height:40px;margin-top:-12px}.bottom-nav-label{display:none}}.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:not([data-theme=foyer]){--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: #d4a574;--accent-hover: #e4b584;--accent-dark: #c17a4f;--primary: #d4a574;--primary-color: #d4a574;--balance-gradient-end: #1a1a40;--border: rgba(255, 255, 255, .05);--border-hover: rgba(255, 255, 255, .1);--gradient-primary: linear-gradient(135deg, #d4a574 0%, #c17a4f 100%);--gradient-hero: linear-gradient( 145deg, #0a0a18 0%, #12123a 40%, #3045a8 100% );--gradient-subtle: linear-gradient( 135deg, rgba(212, 165, 116, .06) 0%, rgba(167, 139, 250, .03) 100% );--shadow-colored: 0 4px 20px rgba(212, 165, 116, .12);--shadow-glow: 0 0 20px rgba(212, 165, 116, .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;--success-bg: rgba(52, 211, 153, .12);--danger-bg: rgba(248, 113, 113, .12);--warning-bg: rgba(245, 158, 11, .12);--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-mode=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: #d4a574;--accent-hover: #e4b584;--accent-dark: #c17a4f;--primary: #d4a574;--primary-color: #d4a574;--balance-gradient-end: #1a1a40;--border: rgba(255, 255, 255, .07);--border-hover: rgba(255, 255, 255, .14);--gradient-primary: linear-gradient(135deg, #d4a574 0%, #c17a4f 100%);--gradient-hero: linear-gradient( 135deg, #0e0e20 0%, #1a1a50 50%, #c17a4f 100% );--gradient-subtle: linear-gradient( 135deg, rgba(212, 165, 116, .06) 0%, rgba(167, 139, 250, .03) 100% );--shadow-colored: 0 4px 20px rgba(212, 165, 116, .12);--shadow-glow: 0 0 20px rgba(212, 165, 116, .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(212, 165, 116, .1), 0 8px 25px rgba(212, 165, 116, .15);--gradient-text: linear-gradient( 135deg, #d4a574 0%, #a78bfa 50%, #c4b5fd 100% );--accent-light: rgba(212, 165, 116, .1);--danger-hover: #b91c1c;--success-bg: rgba(52, 211, 153, .12);--danger-bg: rgba(248, 113, 113, .12);--warning-bg: rgba(245, 158, 11, .12);--chart-1: #d4926e;--chart-2: #7fa88f;--chart-3: #b07788;--chart-4: #e4b584;--chart-5: #8a9a6a;--chart-6: #d47165;--chart-7: #a8c8a8;--chart-8: #c08858;--chart-9: #b8b4a8;--chart-10: #e4937e;--chart-11: #d4b894;--chart-12: #a89a85;--chart-13: #c87060;--chart-14: #9fc8a8;--chart-15: #d4baa0;--chart-16: #a87355;--chart-17: #b8a48f;--chart-18: #6a655a;--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-mode=dark] .stat-card,[data-mode=dark] .chart-box,[data-mode=dark] .modal-content,[data-mode=dark] .ticket-card,[data-mode=dark] .transaction-item{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .balance-card{background:var(--bg-secondary);border-color:var(--border);box-shadow:var(--shadow-sm)}[data-mode=dark] .modal-content{border:1px solid rgba(255,255,255,.06)}[data-mode=dark] input,[data-mode=dark] select,[data-mode=dark] textarea{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-mode=dark] input::placeholder{color:var(--text-tertiary)}[data-mode=dark] .savings-goal-card{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .savings-goal-card.completed{background:#0f7b6c1a}[data-mode=dark] .savings-progress-bar{background:var(--bg-tertiary)}[data-mode=dark] .savings-modal,[data-mode=dark] .savings-modal-overlay{background:var(--bg-secondary)}[data-mode=dark] .savings-modal,[data-mode=dark] .savings-icon-btn{border-color:var(--border)}[data-mode=dark] .savings-icon-btn.active{background:var(--accent-light)}[data-mode=dark] .btn-secondary{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-mode=dark] .btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-hover)}[data-mode=dark] .btn-danger{background:#c93535}[data-mode=dark] .btn-danger:hover{background:#b02e2e}[data-mode=dark] .btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-colored)}[data-mode=dark] .btn-primary:hover{filter:brightness(1.1);box-shadow:0 6px 24px #6b8aff40}[data-mode=dark] .modal-overlay{background:#0009}[data-mode=dark] .modal-close-btn{color:var(--text-secondary)}[data-mode=dark] .modal-close-btn:hover{background:#ffffff14;color:var(--text)}[data-mode=dark] .savings-modal-actions{border-top-color:var(--border)}[data-mode=dark] .nw-type-btn.active{background:var(--primary);color:#fff}[data-mode=dark] .budget-total-summary{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .budget-total-summary.warning{background:#d9730d1a;border-left-color:var(--warning)}[data-mode=dark] .budget-total-summary.danger{background:#e03e3e1a;border-left-color:var(--danger)}[data-mode=dark] .budget-alert-badge{background:var(--danger)}[data-mode=dark] .tag-input-wrapper{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=dark] .tag-suggestion-dropdown{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .tag-suggestion-item:hover{background:var(--accent-light)}[data-mode=dark] .tag-pill{background:var(--accent)}[data-mode=dark] .tag-pill-sm{background:var(--accent-light);color:var(--accent)}[data-mode=dark] .split-modal{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .split-modal-header,[data-mode=dark] .split-modal-footer{border-color:var(--border)}[data-mode=dark] .split-line input,[data-mode=dark] .split-line select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-mode=dark] .split-badge{background:var(--bg-tertiary);color:var(--text-secondary)}[data-mode=dark] .split-summary.valid{background:#0f7b6c1f;border-color:#0f7b6c4d}[data-mode=dark] .split-summary.invalid{background:#e03e3e1f;border-color:#e03e3e4d}[data-mode=dark] .split-add-line-btn{border-color:var(--border);color:var(--text-secondary)}[data-mode=dark] .quick-fab-form{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .quick-fab-form-body input,[data-mode=dark] .quick-fab-form-body select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-mode=dark] .quick-fab-type-toggle{border-color:var(--border)}[data-mode=dark] .quick-fab-type-btn{background:var(--bg-tertiary);color:var(--text-secondary)}[data-mode=dark] .csv-wizard-modal{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .csv-step-num{background:var(--bg-tertiary);border-color:var(--border);color:var(--text-secondary)}[data-mode=dark] .csv-step-line{background:var(--border)}[data-mode=dark] .csv-upload-zone{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=dark] .csv-wizard-footer{border-color:var(--border)}[data-mode=dark] .csv-wizard-select,[data-mode=dark] .csv-map-select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-mode=dark] .csv-preview-mini th,[data-mode=dark] .csv-preview-table th{background:var(--bg-tertiary)}[data-mode=dark] .csv-preview-mini,[data-mode=dark] .csv-preview-table-wrap{border-color:var(--border)}[data-mode=dark] .csv-preview-table-wrap:after{background:linear-gradient(to top,var(--bg-secondary),transparent)}[data-mode=dark] .csv-dupe-row{background:#d9730d1a!important}[data-mode=dark] .adv-search-modal{background:var(--bg-secondary)}[data-mode=dark] .adv-search-input-wrap{border-color:var(--border)}[data-mode=dark] .adv-search-kbd,[data-mode=dark] .adv-search-filters{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=dark] .adv-filter-row input,[data-mode=dark] .adv-filter-row select{background:var(--bg-secondary);border-color:var(--border);color:var(--text)}[data-mode=dark] .adv-result-item:hover,[data-mode=dark] .adv-result-item:focus{background:#ffffff0a}[data-mode=dark] .report-modal{background:var(--bg-secondary)}[data-mode=dark] .report-card{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=dark] .report-card.income{background:#0f7b6c14;border-color:#0f7b6c33}[data-mode=dark] .report-card.expense{background:#e03e3e14;border-color:#e03e3e33}[data-mode=dark] .report-card.savings{background:var(--accent-subtle);border-color:#6b8aff33}[data-mode=dark] .report-cat-bar-wrap{background:var(--bg-tertiary)}[data-mode=dark] .savings-advice-section{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .savings-potential-banner{background:linear-gradient(135deg,#0f7b6c2e,#34d39914);border-color:#0f7b6c59}[data-mode=dark] .savings-potential-banner strong{color:#34d399}[data-mode=dark] .savings-tip{background:var(--bg-tertiary);border-color:var(--border);box-shadow:none}[data-mode=dark] .savings-cat-bar-wrap{background:#ffffff14}[data-mode=dark] .upcoming-widget{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .upcoming-item{border-color:#ffffff0d}[data-mode=dark] .upcoming-date-badge{background:var(--accent-light)}[data-mode=dark] .upcoming-date-badge.upcoming-tomorrow{background:#d9730d26}[data-mode=dark] .onboarding-overlay{background:var(--bg)}[data-mode=dark] .onboarding-card{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .onboarding-input,[data-mode=dark] .onboarding-select{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-mode=dark] .onboarding-tips{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=dark] .onboarding-currency-btn{background:var(--bg-tertiary);border-color:var(--border);color:var(--text)}[data-mode=dark] .onboarding-currency-btn.selected{background:var(--accent);border-color:var(--accent);color:#fff}[data-mode=dark] .dashboard-edit-mode section[data-section-id]{outline-color:var(--accent)}[data-mode=dark] .drag-handle{background:var(--bg-secondary);border-color:var(--border);color:var(--text-secondary)}[data-mode=dark] .drag-handle:hover{background:var(--accent);color:#fff}[data-mode=dark] .section-drop-target{background:var(--accent-subtle)}[data-mode=dark] .budget-progress-bar,[data-mode=dark] .csv-progress-bar-wrap{background:var(--bg-tertiary)}[data-mode=dark] .category-rules-section,[data-mode=dark] .member-breakdown-section{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .rule-item,[data-mode=dark] .rule-suggestion{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=dark] .trend-summary-table{background:var(--bg-secondary)}[data-mode=dark] .trend-badge{background:var(--bg-tertiary)}[data-mode=dark] .year-review-modal .modal-content{background:var(--bg)}[data-mode=dark] .year-review-card,[data-mode=dark] .year-review-highlight{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .year-category-bar-bg{background:var(--bg-tertiary)}[data-mode=dark] .calendar-grid{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .calendar-cell{background:var(--bg);border-color:var(--border)}[data-mode=dark] .calendar-cell.weekend{background:var(--bg-secondary)}[data-mode=dark] .calendar-popover,[data-mode=dark] .daily-allowance-card{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .daily-gauge-inner{background:var(--bg-secondary)}[data-mode=dark] .health-score{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .health-gauge-inner{background:var(--bg-secondary)}[data-mode=dark] .health-factor-bar-bg{background:var(--bg-tertiary)}[data-mode=dark] .subscriptions{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .subs-summary-card,[data-mode=dark] .subs-item{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=dark] .subs-frequency{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .household-panel-overlay .household-panel{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .hp-member-card,[data-mode=dark] .hp-invite-result{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=dark] .member-summary-card{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .contribution-bar-track{background:var(--bg-tertiary)}[data-mode=dark] .page-tabs{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .page-tab{color:var(--text-secondary)}[data-mode=dark] .page-tab:hover{background:var(--bg-tertiary);color:var(--text)}[data-mode=dark] .page-tab.active{background:var(--bg-tertiary);color:var(--accent);box-shadow:none}[data-mode=dark] .quick-action-btn{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .quick-action-btn:hover{background:var(--bg-tertiary);border-color:var(--accent)}[data-mode=dark] .budget-envelope{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .budget-envelope.state-danger{background:#ef44440f;border-color:#ef444426}[data-mode=dark] .budget-envelope-bar,[data-mode=dark] .budget-total-bar{background:var(--bg-tertiary)}[data-mode=dark] .budget-preview{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .budget-preview-bar{background:var(--bg-tertiary)}[data-mode=dark] .trend-chip.trend-up{background:#34d39926;color:#34d399}[data-mode=dark] .trend-chip.trend-down{background:#f8717126;color:#f87171}[data-mode=dark] .cat-icon:after{background:#00000026}[data-mode=dark] .empty-state-cta{background:var(--gradient-primary)}[data-mode=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: #c17a4f;--accent-hover: #a86840;--accent-dark: #8a5333;--primary: #c17a4f;--primary-color: #c17a4f;--balance-gradient-end: #2d2b55;--border: rgba(0, 0, 0, .08);--border-hover: rgba(0, 0, 0, .16);--gradient-primary: linear-gradient(135deg, #c17a4f 0%, #d4a574 100%);--gradient-hero: linear-gradient( 135deg, #1a1a2e 0%, #2d2b55 50%, #c17a4f 100% );--gradient-subtle: linear-gradient( 135deg, rgba(193, 122, 79, .05) 0%, rgba(212, 165, 116, .03) 100% );--shadow-colored: 0 4px 20px rgba(193, 122, 79, .15);--shadow-glow: 0 0 20px rgba(193, 122, 79, .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-mode=dark] .category-item{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .category-icon{background:var(--bg-tertiary)}[data-mode=dark] .form-add-category{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .category-suggestion-chip{background:#6b8aff26;border-color:#6b8aff40}[data-mode=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:flex;align-items:center;gap:6px;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;transition:background .15s ease,border-color .15s ease}.filters-toggle-btn:hover{background:var(--bg-hover, var(--bg-card));border-color:var(--accent)}.filters-toggle-btn.filters-open{border-color:var(--accent)}.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}.transaction-filters{display:none}.transaction-filters.filters-open{display:flex}@media(max-width:768px){.filters-toggle-btn{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(193, 122, 79, .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(193,122,79,.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(193, 122, 79, .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(193, 122, 79, .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(193,122,79,.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-mode=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-form-item{background:var(--bg-secondary);padding:16px;border-radius:8px;margin-bottom:12px}.budget-form-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.budget-form-label{flex:1;font-weight:500}.budget-form-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.budget-form-input{flex:1;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);min-width:80px}.rollover-toggle{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.rollover-toggle input[type=checkbox]{width:14px;height:14px}.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-mode=dark] .budget-template-card{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=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-mode=dark] .calendar-cell.heatmap-1{background:#22c55e1f}[data-mode=dark] .calendar-cell.heatmap-2{background:#eab30824}[data-mode=dark] .calendar-cell.heatmap-3{background:#f973162e}[data-mode=dark] .calendar-cell.heatmap-4{background:#ef444438}[data-mode=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:11px;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-mode=dark] .forecast-categories{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .bill-badge{background:var(--danger)}[data-mode=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:11px;padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--text-secondary) 12%,transparent)}[data-mode=dark] .debt-card,[data-mode=dark] .account-card,[data-mode=dark] .merchant-card{background:var(--bg);border-color:var(--border)}[data-mode=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:11px;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-mode=dark] .scheduled-tx-card{background:var(--bg);border-color:var(--border)}[data-mode=dark] .attachment-zone{border-color:var(--border)}[data-mode=dark] .scheduled-report-config,[data-mode=dark] .household-panel{background:var(--bg-secondary);border-color:var(--border)}[data-mode=dark] .projection-card{border-top-color:var(--primary)}[data-mode=dark] .forecast-confidence{background:color-mix(in srgb,var(--success) 15%,transparent)}[data-mode=dark] .forecast-category-bar{border-bottom-color:#ffffff0f}[data-mode=dark] .hp-role-admin{background:#ffa94d26;color:#ffa94d}[data-mode=dark] .hp-role-editor{background:#51cf6626;color:#51cf66}[data-mode=dark] .hp-role-viewer{background:#a8a8b026;color:var(--text-secondary)}[data-mode=dark] .hp-badge-creator{background:#ffa94d33;color:#ffa94d}[data-mode=dark] .hp-badge-self{background:#07f3;color:#6ba3ff}[data-mode=dark] .hp-method-btn{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text)}[data-mode=dark] .hp-method-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}[data-mode=dark] .hp-role-select,[data-mode=dark] .hp-contribution-input{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text)}[data-mode=dark] .hp-remove-btn:hover,[data-mode=dark] .hp-revoke-btn:hover{background:#e03e3e26}[data-mode=dark] .hp-revoke-btn{border-color:#e03e3e80}[data-mode=dark] .hp-invite-result,[data-mode=dark] .hp-invitation-card{background:var(--bg-tertiary);border-color:var(--border)}[data-mode=dark] .hp-danger-zone{border-color:#e03e3e66}[data-mode=dark] .input-field{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text)}#error-boundary-overlay{position:fixed;inset:0;z-index:99999;display:none;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:2rem;color:var(--text-primary, #f8fafc);text-align:center;background:var(--bg-primary, #0f172a);animation:eb-fade-in .25s ease}#error-boundary-overlay.visible{display:flex}@keyframes eb-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}#error-boundary-overlay .eb-icon{font-size:3rem;line-height:1}#error-boundary-overlay h1{margin:0;font-size:1.5rem;font-weight:700}#error-boundary-overlay p{max-width:28rem;margin:0;color:var(--text-secondary, #94a3b8);font-size:1rem;line-height:1.6}#error-boundary-overlay .eb-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}#error-boundary-overlay button{padding:.625rem 1.5rem;border:none;border-radius:.5rem;font-size:.9375rem;font-weight:600;cursor:pointer;transition:opacity .15s}#error-boundary-overlay button:hover{opacity:.85}#error-boundary-overlay .eb-btn-primary{color:#fff;background:var(--accent, #0077ff)}#error-boundary-overlay .eb-btn-secondary{color:var(--text-primary, #f8fafc);background:var(--bg-secondary, #1e293b);border:1px solid var(--border, #334155)}#error-boundary-overlay details{width:100%;max-width:32rem;text-align:left}#error-boundary-overlay summary{color:var(--text-secondary, #94a3b8);font-size:.8125rem;cursor:pointer;user-select:none}#error-boundary-overlay pre{max-height:10rem;margin-top:.5rem;padding:.75rem;overflow-x:auto;overflow-y:auto;color:var(--text-secondary, #94a3b8);font-size:.75rem;white-space:pre-wrap;word-break:break-all;background:var(--bg-secondary, #1e293b);border-radius:.375rem}@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:min(280px,calc(100vw - 56px));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)}.settings-row a.btn-nav{text-decoration:none}.settings-warn-text{font-size:var(--text-xs);color:var(--text-secondary);margin:0;padding:0 0 8px}.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:11px;font-weight:var(--font-medium);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bottom-nav-add{position:relative;color:var(--text-inverse)!important;background:linear-gradient(135deg,var(--accent),#d4a574);width:52px;height:52px;border-radius:16px;margin-top:-20px;box-shadow:0 4px 16px #c17a4f4d;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:calc(var(--nav-h, 72px) + env(safe-area-inset-bottom,0px) + 8px)}}@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)}}.onboarding-bank-guide{margin-top:var(--space-md);text-align:left}.onboarding-bank-guide summary{cursor:pointer;color:var(--accent);font-size:var(--text-sm);padding:var(--space-sm) 0;font-weight:var(--font-medium);list-style:none}.onboarding-bank-guide summary::-webkit-details-marker{display:none}.onboarding-bank-guide summary:before{content:"¶ ";font-family:var(--font-display, Georgia, serif);color:var(--accent);margin-right:4px}.onboarding-bank-guide[open] summary{margin-bottom:var(--space-sm)}.bank-list{max-height:240px;overflow-y:auto}.bank-item{padding:10px 12px;border-bottom:1px solid var(--border);font-size:var(--text-xs);line-height:var(--leading-normal)}.bank-item:last-child{border-bottom:none}.bank-name{font-weight:var(--font-semibold);color:var(--text);display:block;margin-bottom:2px}.bank-steps{color:var(--text-secondary)}.import-choices{display:flex;gap:var(--space-1-5);justify-content:center;margin:var(--space-2-5) 0 var(--space-sm);flex-wrap:wrap}.import-choice-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-2-5) 28px;border-radius:var(--radius-lg);border:2px solid var(--border);background:var(--bg);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);font-size:var(--text-base);font-weight:var(--font-medium);color:var(--text);min-width:140px}.import-choice-btn:hover{border-color:var(--accent);background:var(--accent-light)}.import-choice-icon{font-size:32px}.import-hint{font-size:var(--text-xs);color:var(--text-secondary);margin:var(--space-xs) 0 0;text-align:center}.import-hint strong{color:var(--text)}.bank-item-tip{background:var(--accent-light);border-radius:var(--radius-sm);margin-top:var(--space-xs);border-bottom:none!important}@media(max-width:480px){.onboarding-card{padding:32px var(--space-2-5)!important}.import-choices{flex-direction:column;gap:10px}.import-choice-btn{flex-direction:row;padding:var(--space-md) var(--space-2-5);min-width:0;width:100%}.import-choice-icon{font-size:24px}.bank-list{max-height:180px}}[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}}.guide-content h4{margin:0 0 8px;font-size:15px;color:var(--text)}.guide-content h4:not(:first-child){margin-top:20px}.guide-content h5{margin:16px 0 6px;font-size:14px;color:var(--text-secondary)}.guide-content p{margin:0 0 10px;color:var(--text-secondary)}.guide-content ol,.guide-content ul{margin:0 0 12px;padding-left:20px}.guide-content li{margin-bottom:6px;color:var(--text-secondary)}.guide-content li strong{color:var(--text)}.guide-content em{color:var(--accent);font-style:normal;font-weight:500}.guide-tip{margin:16px 0;padding:12px 16px;background:var(--accent-light, rgba(193, 122, 79, .08));border-left:3px solid var(--accent);border-radius:0 8px 8px 0;font-size:13px;color:var(--text-secondary)}.guide-tip strong{color:var(--accent)}.guide-csv-example{margin:8px 0 12px;padding:12px 14px;background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border);border-radius:8px;font-size:12px;line-height:1.8;overflow-x:auto;-webkit-overflow-scrolling:touch}.guide-csv-example code{font-family:SF Mono,Fira Code,monospace;color:var(--text);white-space:nowrap}.guide-nav-item:hover{background:var(--accent-light, rgba(193, 122, 79, .06))!important}@media(max-width:600px){.guide-layout{flex-direction:column!important;max-height:calc(100vh - 60px)!important;min-height:0!important}.guide-nav{width:100%!important;min-width:100%!important;flex-direction:row!important;overflow-x:auto;overflow-y:hidden!important;border-right:none!important;border-bottom:1px solid var(--border);padding:0!important;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.guide-nav::-webkit-scrollbar{display:none}.guide-nav-item{flex-shrink:0;padding:10px 14px!important;border-left:none!important;border-bottom:3px solid transparent;font-size:12px!important}.guide-nav-item.active{border-bottom-color:var(--accent)!important}.guide-content{padding:16px!important;font-size:13px!important}.guide-csv-example{font-size:11px;padding:10px}}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-mode=dark] ::-webkit-scrollbar-thumb{background:#ffffff1a}[data-mode=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}.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}}html.native-ios{--safe-top: env(safe-area-inset-top, 47px);--safe-bottom: env(safe-area-inset-bottom, 0px);--nav-h: 72px}html.capacitor-native{overscroll-behavior-y:contain;-webkit-tap-highlight-color:rgba(0,119,255,.12)}html.native-ios .quick-add-modal{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))!important}html.capacitor-native body{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;overflow-x:hidden!important;background-color:var(--bg-page, #f8fafc)}html.capacitor-native button,html.capacitor-native .btn-primary,html.capacitor-native .btn-secondary,html.capacitor-native .btn-danger,html.capacitor-native .nav-item,html.capacitor-native .page-tab,html.capacitor-native .bottom-nav-item,html.capacitor-native .quick-action-btn,html.capacitor-native .transaction-item{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html.capacitor-native img,html.capacitor-native a{-webkit-touch-callout:none}html.capacitor-native button:active,html.capacitor-native .btn-primary:active,html.capacitor-native .btn-secondary:active,html.capacitor-native .transaction-item:active,html.capacitor-native .quick-action-btn:active,html.capacitor-native .bottom-nav-item:active{opacity:.7;transition:opacity .05s}html.capacitor-native .dashboard-grid,html.capacitor-native .app-page{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}html.native-ios header{padding-top:calc(var(--safe-top) + 8px)!important;margin-top:0!important}html.native-ios .page-tabs{padding-top:calc(var(--safe-top) + 4px)!important}html.native-ios .categories-header{padding-top:calc(var(--safe-top) + 12px)!important}html.native-ios .nav-sidebar{padding-top:calc(var(--safe-top) + 16px)!important}html.native-ios .header-actions-collapsible{position:fixed!important;top:calc(var(--safe-top) + 60px)!important;left:16px!important;right:16px!important;max-width:none!important;min-width:auto!important;width:auto!important;z-index:9999!important}html.native-ios .user-dropdown{position:fixed!important;top:calc(var(--safe-top) + 60px)!important;left:16px!important;right:16px!important;min-width:auto!important;z-index:9999!important}html.native-ios .bottom-nav{padding-bottom:var(--safe-bottom)!important}html.native-ios .bottom-nav-item{min-height:49px!important}html.native-ios .dashboard-grid,html.native-ios .app-page{padding-bottom:calc(var(--nav-h) + var(--safe-bottom) + 8px)!important}html.native-ios body.has-bottom-nav{padding-bottom:calc(var(--nav-h) + var(--safe-bottom))!important}html.native-ios .quick-transaction-fab{bottom:calc(var(--nav-h) + var(--safe-bottom) + 16px)!important}html.capacitor-native .modal-content,html.capacitor-native .modal-body{max-height:calc(100vh - var(--safe-top) - var(--safe-bottom) - var(--keyboard-height, 0px) - 32px)!important;transition:max-height .25s ease}html.capacitor-native.keyboard-open .modal-content,html.capacitor-native.keyboard-open .modal-body{max-height:calc(100vh - var(--keyboard-height, 0px) - var(--safe-top) - 16px)!important}html.native-ios .onboarding-overlay{padding-top:var(--safe-top)!important;padding-bottom:var(--safe-bottom)!important}html.native-ios .onboarding-card{max-height:calc(100vh - var(--safe-top) - var(--safe-bottom) - 32px)!important}html.native-ios .modal-content{margin-top:16px!important;margin-bottom:16px!important;margin-left:max(16px,env(safe-area-inset-left,0px))!important;margin-right:max(16px,env(safe-area-inset-right,0px))!important}html.native-ios .toast-container{top:calc(var(--safe-top) + 8px)!important}@media(max-width:480px){html.native-ios .toast-container{top:auto!important;bottom:calc(var(--nav-h) + var(--safe-bottom) + 8px)!important}}html.native-ios input,html.native-ios select,html.native-ios textarea{font-size:max(16px,1em)!important}html.capacitor-native input,html.capacitor-native select{-webkit-appearance:none;appearance:none}html.capacitor-native .nav-toggle,html.capacitor-native .header-menu-toggle,html.capacitor-native .nav-sidebar-close,html.capacitor-native .user-avatar-container{min-width:44px!important;min-height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important}html.capacitor-native .tx-actions-wrapper button,html.capacitor-native .tx-action-toggle{min-width:44px!important;min-height:44px!important}html.capacitor-native .quick-action-btn{min-height:44px!important}html.capacitor-native .page-tab{min-height:44px!important;padding:10px 14px!important}html.capacitor-native .category-chip,html.capacitor-native .category-select-item{min-height:44px!important}html.capacitor-native .stat-label{font-size:max(11px,.6875rem)!important}html.capacitor-native .tx-meta{font-size:max(12px,.75rem)!important}html.capacitor-native .container,html.capacitor-native main,html.capacitor-native section,html.capacitor-native .dashboard-grid{max-width:100vw!important;overflow-x:hidden!important}html.capacitor-native .section-card,html.capacitor-native .card{max-width:calc(100vw - 32px)!important}html.capacitor-native .category-item{max-width:100%!important;overflow:hidden!important;gap:8px!important}html.capacitor-native .category-main{flex:1 1 auto!important;min-width:0!important;overflow:hidden!important}html.capacitor-native .category-name{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important}html.capacitor-native .category-actions{flex-shrink:0!important;gap:4px!important}html.capacitor-native .category-form-actions{flex-direction:column-reverse!important;gap:8px!important}html.capacitor-native .category-form-actions button{width:100%!important;justify-content:center!important}@media(orientation:landscape){html.capacitor-native .chart-container{min-height:180px;max-height:calc(100vh - var(--safe-top) - var(--nav-h) - 120px)}}html.capacitor-native .cat-icon,html.capacitor-native .onboarding-emoji,html.capacitor-native .step-icon,html.capacitor-native .import-choice-icon,html.capacitor-native .template-icon,html.capacitor-native .tip-icon,html.capacitor-native .budget-category-icon,html.capacitor-native .transaction-icon,html.capacitor-native .goal-icon,html.capacitor-native .insight-icon,html.capacitor-native [data-emoji]{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif!important}html.capacitor-native .transaction-item{flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important;gap:6px!important;padding:10px 8px!important}html.capacitor-native .transaction-item .tx-info{flex:1 1 auto!important;min-width:0!important;overflow:hidden!important}html.capacitor-native .transaction-item .tx-amount,html.capacitor-native .transaction-item .tx-actions-wrapper{flex-shrink:0!important}html.native-ios .transaction-filters,html.native-ios .filters-toggle-btn{margin-top:8px!important}html.capacitor-native body,html.capacitor-native .dashboard-grid,html.capacitor-native .app-page{max-width:100vw}html.native-ios .pull-to-refresh-indicator{top:var(--safe-top)!important}html.native-ios #aiChatModal .modal-content,html.native-ios #aiExtractionModal .modal-content{margin:0!important;border-radius:0!important;max-height:100vh!important;max-height:100dvh!important;height:100vh!important;height:100dvh!important;width:100%!important;max-width:100%!important}html.native-ios #aiChatModal .modal-header,html.native-ios #aiExtractionModal .modal-header{padding-top:calc(var(--safe-top) + 12px)!important}html.native-ios #aiChatModal .modal-body,html.native-ios #aiExtractionModal .modal-body{padding-bottom:calc(var(--safe-bottom) + 12px)!important;max-height:none!important}html.native-ios.keyboard-open #aiChatModal .modal-content,html.native-ios.keyboard-open #aiExtractionModal .modal-content{height:calc(100vh - var(--keyboard-height, 0px))!important;height:calc(100dvh - var(--keyboard-height, 0px))!important}html.native-ios .selection-toolbar{position:sticky!important;top:0!important;z-index:100!important;border-radius:0!important;margin:0 -16px 16px!important;padding:12px 16px!important}html.native-ios .transaction-filters{position:relative;z-index:10}
