:root{--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "DM Serif Display", Georgia, "Times New Roman", serif;--font-serif: "DM Serif Display", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-size-hero: 4rem;--font-size-display: 1.75rem;--font-weight-hero: 400;--font-size-xs: .6875rem;--font-size-sm: .75rem;--font-size-base: .8125rem;--font-size-md: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--color-white: #ffffff;--color-black: #0B0B0B;--color-gray-25: #F9F9FB;--color-gray-50: #F5F5F7;--color-gray-100: #EDEDF0;--color-gray-200: #E0E0E5;--color-gray-300: #C8C8CF;--color-gray-400: #8E9099;--color-gray-500: #6B6E78;--color-gray-600: #565960;--color-gray-700: #3A3D44;--color-gray-800: #22252C;--color-gray-900: #1C1C1E;--color-red-50: #fef2f2;--color-red-100: #fee2e2;--color-red-200: #fecaca;--color-red-300: #fca5a5;--color-red-400: #f87171;--color-red-500: #FF453A;--color-red-600: #D32F2F;--color-red-700: #b91c1c;--color-red-800: #991b1b;--color-green-50: #e6f5f3;--color-green-100: #b3e0db;--color-green-200: #80ccc3;--color-green-300: #4db8ab;--color-green-400: #26a89a;--color-green-500: #00BFA5;--color-green-600: #00897B;--color-green-700: #006e63;--color-green-800: #00544b;--color-yellow-50: #fffbeb;--color-yellow-100: #fef3c7;--color-yellow-200: #fde68a;--color-yellow-300: #FFD60A;--color-yellow-400: #F9A825;--color-yellow-500: #eab308;--color-yellow-600: #F9A825;--color-blue-50: #eff6ff;--color-blue-100: #dbeafe;--color-blue-200: #bfdbfe;--color-blue-300: #93c5fd;--color-blue-400: #4A9EFF;--color-blue-500: #3b82f6;--color-blue-600: #1976D2;--color-blue-700: #1565c0;--color-blue-800: #0d47a1;--color-indigo-50: #eef2ff;--color-indigo-100: #e0e7ff;--color-indigo-200: #c7d2fe;--color-indigo-300: #a5b4fc;--color-indigo-400: #818cf8;--color-indigo-500: #6366f1;--color-indigo-600: #4f46e5;--color-indigo-700: #4338ca;--tint-hero: rgba(0, 137, 123, .06);--tint-positive: rgba(0, 137, 123, .04);--tint-warning: rgba(249, 168, 37, .06);--tint-info: rgba(25, 118, 210, .06);--tint-insight: rgba(99, 102, 241, .06);--tint-income-row: rgba(0, 137, 123, .04);--color-success: var(--color-green-600);--color-warning: var(--color-yellow-600);--color-destructive: var(--color-red-600);--text-positive: var(--color-green-600);--text-negative: var(--color-red-600);--shadow-xs: none;--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--shadow-xl: none;--text-primary: var(--color-gray-900);--text-inverse: var(--color-white);--text-secondary: var(--color-gray-500);--text-subdued: var(--color-gray-500);--text-on-brand: var(--color-white);--text-muted: var(--color-gray-400);--text-link: var(--color-green-600);--bg-surface: var(--color-gray-25);--bg-surface-hover: var(--color-gray-100);--bg-surface-inset: var(--color-gray-100);--bg-container: var(--color-white);--bg-container-hover: var(--color-gray-50);--bg-container-inset: var(--color-gray-50);--bg-card: var(--color-white);--bg-inverse: var(--color-gray-900);--bg-overlay: rgba(255, 255, 255, .6);--border-primary: rgba(0, 0, 0, .12);--border-secondary: rgba(0, 0, 0, .08);--border-tertiary: rgba(0, 0, 0, .05);--border-subdued: rgba(0, 0, 0, .03);--border-destructive: var(--color-red-600);--ring-focus: rgba(0, 137, 123, .3);--color-brand: var(--color-green-600);--color-brand-hover: var(--color-green-700);--color-brand-subtle: var(--color-green-50);--chart-line-primary: #D4A017;--chart-bar-expense: var(--color-red-600);--chart-bar-income: var(--color-green-600);--bg-container-elevated: var(--bg-container);--chart-color-1: #14B8A6;--chart-color-2: #06B6D4;--chart-color-3: #10B981;--chart-color-4: #F59E0B;--chart-color-5: #0EA5E9;--chart-color-6: #FB7185;--chart-color-7: #5EEAD4;--chart-color-8: #F97316;--chart-color-9: #34D399;--chart-color-10: #22D3EE;--sidebar-bg: #E8EDEC;--sidebar-text: #3A3D44;--sidebar-text-muted: var(--color-gray-500);--sidebar-border: #E0E0E5;--sidebar-hover: rgba(0, 0, 0, .04);--sidebar-active: rgba(0, 0, 0, .06);--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 999px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-xxl: 24px;--spacing-section: 32px}body[data-theme=light]{--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-500);--text-subdued: var(--color-gray-500);--text-link: var(--color-green-600);--bg-surface: var(--color-gray-50);--bg-surface-hover: var(--color-gray-100);--bg-surface-inset: var(--color-gray-100);--bg-container: var(--color-white);--bg-container-hover: var(--color-gray-50);--bg-container-inset: var(--color-gray-50);--bg-card: var(--color-white);--bg-inverse: var(--color-gray-900);--bg-overlay: rgba(255, 255, 255, .6);--border-primary: rgba(0, 0, 0, .14);--border-secondary: rgba(0, 0, 0, .1);--border-tertiary: rgba(0, 0, 0, .06);--border-subdued: rgba(0, 0, 0, .03);--color-brand: var(--color-green-600);--color-brand-hover: var(--color-green-700);--color-brand-subtle: var(--color-green-50);--text-positive: var(--color-green-600);--text-negative: var(--color-red-600);--sidebar-bg: #E8EDEC;--sidebar-text: #3A3D44;--sidebar-text-muted: var(--color-gray-500);--sidebar-border: #E0E0E5;--sidebar-hover: rgba(0, 0, 0, .04);--sidebar-active: rgba(0, 0, 0, .06);--sidebar-active-accent: var(--color-green-600);--tint-hero: rgba(0, 137, 123, .1);--tint-positive: rgba(0, 137, 123, .04);--tint-warning: rgba(249, 168, 37, .06);--tint-info: rgba(25, 118, 210, .06);--tint-insight: rgba(99, 102, 241, .06);--tint-income-row: rgba(0, 137, 123, .04)}body[data-theme=dark]{--tint-hero: rgba(0, 191, 165, .06);--tint-positive: rgba(0, 191, 165, .04);--tint-warning: rgba(255, 214, 10, .04);--tint-info: rgba(74, 158, 255, .04);--tint-insight: rgba(139, 92, 246, .04);--tint-income-row: rgba(0, 191, 165, .06);--color-success: var(--color-green-500);--color-warning: var(--color-yellow-300);--color-destructive: var(--color-red-500);--text-positive: var(--color-green-400);--text-negative: var(--color-red-400);--shadow-xs: none;--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--shadow-xl: none;--text-primary: #ffffff;--text-inverse: var(--color-gray-900);--text-secondary: #8E9099;--text-subdued: var(--color-gray-500);--text-on-brand: var(--color-white);--text-muted: var(--color-gray-400);--text-link: var(--color-green-500);--bg-surface: #0F1115;--bg-surface-hover: #161920;--bg-surface-inset: #161920;--bg-container: #1A1D23;--bg-container-hover: #22252C;--bg-container-inset: #161920;--bg-card: #1A1D23;--bg-inverse: var(--color-gray-50);--bg-overlay: rgba(0, 0, 0, .85);--border-primary: rgba(255, 255, 255, .12);--border-secondary: rgba(255, 255, 255, .06);--border-tertiary: rgba(255, 255, 255, .06);--border-subdued: rgba(255, 255, 255, .04);--border-destructive: var(--color-red-500);--ring-focus: rgba(0, 191, 165, .35);--color-brand: var(--color-green-500);--color-brand-hover: var(--color-green-400);--color-brand-subtle: rgba(0, 191, 165, .12);--chart-line-primary: #F5C542;--chart-bar-expense: #FF453A;--chart-bar-income: #00BFA5;--bg-container-elevated: #22252C;--chart-color-1: #2DD4BF;--chart-color-2: #22D3EE;--chart-color-3: #34D399;--chart-color-4: #FBBF24;--chart-color-5: #38BDF8;--chart-color-6: #FB7185;--chart-color-7: #5EEAD4;--chart-color-8: #FB923C;--chart-color-9: #6EE7B7;--chart-color-10: #67E8F9;--teal: #00BFA5;--sidebar-bg: #141619;--sidebar-text: #E0E0E5;--sidebar-text-muted: #6B6E78;--sidebar-border: rgba(255, 255, 255, .06);--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-active: rgba(255, 255, 255, .1)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s ease,color .25s ease}.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.workspace{display:grid;grid-template-rows:auto 1fr;min-width:0}main{width:100%;max-width:1400px;margin:1rem auto;padding:0 1.5rem;display:grid;gap:1rem}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);border-right:1px solid var(--sidebar-border);padding:1.25rem .75rem 1.5rem;position:sticky;top:0;max-height:100vh;overflow:auto;display:flex;flex-direction:column}.sidebar-brand{margin-bottom:1.25rem;padding:.25rem .5rem;display:flex;align-items:center;gap:.5rem;position:relative}.brand-mark{width:28px;height:28px;background:var(--color-gray-900);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-brand h1{margin:0;font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:400;letter-spacing:-.02em;color:var(--text-primary)}.brand-wordmark .brand-i{color:var(--color-brand)}.sidebar-nav{display:grid;gap:.25rem}.nav-section{border:none;background:transparent}.nav-section-title{display:flex;align-items:center;gap:.4rem;width:100%;margin:.5rem 0 .15rem;padding:.35rem .5rem;border:none;background:transparent;font-size:var(--font-size-xs);font-weight:600;color:var(--sidebar-text-muted);text-transform:uppercase;letter-spacing:.12em;text-align:left;cursor:pointer;transition:color .15s ease}.nav-section-title:hover{color:var(--sidebar-text)}.section-toggle-icon{font-size:var(--font-size-xs);opacity:.6;transition:transform .2s ease}.nav-section[data-open=true] .section-toggle-icon{transform:rotate(90deg)}.nav-section[data-open=false] .section-toggle-icon{transform:rotate(0)}.nav-section[data-open=false] .nav-section-title{margin:.15rem 0}.nav-section-links{display:grid;gap:.1rem;padding-left:.5rem}.nav-section-flat .nav-section-links{padding-left:0}.nav-link{border:none;text-align:left;color:var(--sidebar-text);background:transparent;border-radius:var(--radius-sm);padding:.375rem .6rem;font-size:var(--font-size-base);cursor:pointer;transition:background-color .15s ease;display:flex;align-items:center;gap:.5rem}.nav-icon{flex-shrink:0;opacity:.5}.nav-link.active .nav-icon{opacity:1}.nav-link:hover .nav-icon{opacity:.8}.nav-link:hover{background:var(--sidebar-hover)}.nav-link.active{background:var(--sidebar-active);color:var(--text-primary);border-left:2px solid var(--color-brand);padding-left:calc(.6rem - 2px)}.sidebar-footer-links{display:flex;flex-direction:column;gap:0;padding:.25rem .5rem}.sidebar-footer-link{font-size:var(--font-size-sm);color:var(--sidebar-text-muted);text-decoration:none;padding:.375rem .5rem;border-radius:var(--radius-sm);transition:background .15s ease,color .15s ease}.sidebar-footer-link:hover{color:var(--sidebar-text);background:var(--sidebar-hover);text-decoration:none}.sidebar-footer{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--sidebar-border)}.sidebar-user{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease}.sidebar-user:hover{background:var(--sidebar-hover)}.sidebar-avatar{width:28px;height:28px;border-radius:var(--radius-pill);background:var(--color-green-100);color:var(--color-green-700);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:600;flex-shrink:0}.sidebar-username{font-size:var(--font-size-base);color:var(--sidebar-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.sidebar-signout-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--sidebar-text-muted);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm);opacity:0;transition:opacity .15s ease,color .15s ease;flex-shrink:0}.sidebar-user:hover .sidebar-signout-btn{opacity:1}.sidebar-signout-btn:hover{color:var(--color-red-500, #ef4444)}.workspace-header{padding:.875rem 1.5rem;border-bottom:1px solid var(--border-secondary);background:var(--bg-container)}.workspace-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.workspace-header-main{min-width:0}.workspace-header-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.workspace-header h2{margin:0;font-size:var(--font-size-display);font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.workspace-header p{margin:.25rem 0 0;color:var(--text-secondary);font-size:var(--font-size-md)}.workspace-header-meta{margin-top:.75rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.connection-status{display:flex;align-items:center;padding:0;background:none;border-radius:0;font-size:0}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--text-subdued)}.status-dot--connected{background:var(--color-green-500);box-shadow:0 0 0 2px #00897b33}.status-dot--disconnected{background:var(--color-red-500);box-shadow:0 0 0 2px #f1363633}.status-dot--syncing{background:var(--color-yellow-500);animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.connection-status .status-label{color:var(--text-secondary)}.last-sync{display:flex;align-items:center;gap:.35rem;font-size:var(--font-size-sm);color:var(--text-subdued)}.last-sync svg{flex-shrink:0}.header-action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--bg-container-inset);border:1px solid var(--border-secondary);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.header-action-btn:hover{background:var(--bg-container-hover);color:var(--text-primary);border-color:var(--border-primary)}.header-action-btn:active{transform:scale(.95)}.theme-icon{display:none}body[data-theme-preference=light] [data-theme-icon=light],body[data-theme-preference=dark] [data-theme-icon=dark],body[data-theme-preference=system] [data-theme-icon=system]{display:block}body:not([data-theme-preference]) [data-theme-icon=system]{display:block}.breadcrumbs{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--font-size-base);color:var(--text-secondary)}.link-button{border:none;background:transparent;color:var(--color-brand);padding:0;cursor:pointer;font:inherit;font-weight:600;transition:color .15s ease}.link-button:hover{text-decoration:underline;color:var(--color-brand-hover)}.view-pager{display:inline-flex;gap:.35rem}.view{display:grid;gap:1rem;visibility:hidden;opacity:0;position:absolute;width:100%;pointer-events:none;transition:opacity .15s ease}.view.is-visible{visibility:visible;opacity:1;position:relative;pointer-events:auto}.card{background:var(--bg-container);border:1px solid var(--border-secondary);border-radius:var(--radius-xl);padding:1.125rem;overflow:hidden;transition:border-color .15s ease}.card:hover{border-color:var(--border-primary)}.card.placeholder p{margin:0;color:var(--text-secondary)}.legacy-link{display:inline-flex;margin-top:.75rem;color:var(--color-brand);text-decoration:none;font-weight:600}.legacy-link:hover{text-decoration:underline}.row .legacy-link{margin-top:0;align-items:center}h2{margin:0 0 .75rem;font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary)}h3{margin:.75rem 0 .5rem;font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary)}h4{margin:.25rem 0 .35rem;font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}.section-subtitle{margin:0 0 .75rem;color:var(--text-secondary);font-size:var(--font-size-md)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h3{margin:0}.status-chip{display:inline-flex;align-items:center;gap:.35rem;margin:0 0 .55rem;padding:.25rem .55rem;border-radius:var(--radius-pill);border:1px solid var(--border-secondary);font-size:var(--font-size-base);color:var(--text-secondary);background:var(--bg-container-inset)}.status-chip-success{color:var(--color-green-700);border-color:var(--color-green-300);background:var(--color-green-50)}.status-chip-warn{color:var(--color-yellow-700);border-color:var(--color-yellow-300);background:var(--color-yellow-50)}.status-chip-error{color:var(--color-red-700);border-color:var(--color-red-300);background:var(--color-red-50)}.module-kicker{margin:0 0 .75rem;font-size:var(--font-size-base);font-weight:600;color:var(--text-secondary)}.provider-status-text{margin-left:.45rem;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}.provider-runtime{margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--border-secondary)}.provider-runtime-summary{margin-bottom:.45rem}.provider-runtime-list{margin-top:.45rem;margin-bottom:0}.grid{display:grid;gap:.75rem}.grid.three{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}label{display:grid;gap:.35rem;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}.row-checkbox{display:inline-flex;align-items:center;gap:.45rem;margin:0 0 .55rem;color:var(--text-primary);cursor:pointer}.row-checkbox input{width:1rem;height:1rem;accent-color:var(--color-brand);cursor:pointer}.row-checkbox input:focus{outline:none;box-shadow:0 0 0 4px var(--ring-focus)}.module-list{margin:0 0 .75rem 1rem;padding:0;color:var(--text-secondary);font-size:var(--font-size-md)}input,select,button,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:.5rem .6rem;background:var(--bg-container);color:var(--text-primary);transition:border-color .15s ease,box-shadow .15s ease}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:2rem}input[readonly]{background:var(--bg-container-inset)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 4px var(--ring-focus)}textarea{resize:vertical}button{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--color-brand);background:var(--color-brand);color:var(--color-white);padding:.5rem 1rem;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);font-weight:500;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}button:hover{background:var(--color-brand-hover);border-color:var(--color-brand-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:var(--bg-container);border:1px solid var(--border-secondary);color:var(--text-secondary)}button.secondary:hover{background:var(--bg-container-hover);border-color:var(--border-primary);color:var(--text-primary)}button.danger{background:transparent;border-color:var(--color-destructive);color:var(--color-destructive)}button.danger:hover{background:var(--color-destructive);border-color:var(--color-destructive);color:var(--color-white)}button.compact,a.compact{font-size:var(--font-size-sm);padding:.3rem .55rem;line-height:1.25}button.secondary.compact{border:1px solid var(--border-secondary);border-radius:var(--radius-md)}a.compact{border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-container-inset);text-decoration:none;color:var(--text-primary)}a.compact:hover{background:var(--bg-container-hover)}.row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.group-list{display:grid;gap:.6rem;margin-bottom:.75rem}.danger-zone-grid{display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:.75rem}.danger-item{border:1px solid var(--border-destructive);border-radius:var(--radius-lg);background:var(--color-red-50);padding:.65rem}.danger-item .section-subtitle{margin-bottom:.55rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;animation:fadeInUp .3s ease-out;text-align:center}.empty-state-icon{width:64px;height:64px;border-radius:var(--radius-pill);background:var(--bg-container-inset);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--text-subdued)}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.empty-state-description{font-size:var(--font-size-md);color:var(--text-secondary);margin:0 0 1.5rem;max-width:280px}.empty-state-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-top:0}.empty-state-help{margin:0 0 .75rem;color:var(--text-secondary);font-size:var(--font-size-md)}.empty-state-rich{padding:2rem 1.5rem}.empty-state-rich .empty-state-desc{font-size:var(--font-size-md);color:var(--text-secondary);margin:0 0 1.25rem;max-width:480px}.empty-state-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;max-width:560px;margin:0 auto}.empty-state-type-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-container);cursor:pointer;transition:border-color .15s,box-shadow .15s;font-size:var(--font-size-base);color:var(--text-primary)}.empty-state-type-card:hover{border-color:var(--color-brand);box-shadow:0 0 0 1px var(--color-brand)}.empty-state-type-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--bg-surface-inset);color:var(--color-brand)}.empty-state-type-icon svg{width:20px;height:20px}.budget-template-hint{display:flex;gap:1.5rem;justify-content:center;margin:.75rem 0 1rem;flex-wrap:wrap}.budget-rule-item{font-size:var(--font-size-md);color:var(--text-primary)}.budget-rule-item strong{color:var(--color-brand);margin-right:.25rem}.getting-started-card{background:var(--bg-container);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.getting-started-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.getting-started-header h3{margin:0;font-size:var(--font-size-xl);font-weight:600}.getting-started-subtitle{color:var(--text-secondary);font-size:var(--font-size-md);margin:0 0 1rem}.getting-started-steps{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.getting-started-step{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:.75rem;padding:.625rem 1rem;border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:default;transition:background .15s}.getting-started-step.completed{opacity:.6;background:var(--bg-container-inset)}.getting-started-step.completed input[type=checkbox]{accent-color:var(--color-brand)}.getting-started-step input[type=checkbox]{margin:0;width:16px;height:16px}.getting-started-step .step-content{min-width:0;text-align:left}.getting-started-step .step-content strong{font-size:var(--font-size-md);margin-right:.375rem}.getting-started-step .step-content span{font-size:var(--font-size-base);color:var(--text-secondary)}.getting-started-step .step-action{flex-shrink:0}.getting-started-progress{display:flex;align-items:center;gap:.75rem;font-size:var(--font-size-base);color:var(--text-secondary)}.getting-started-progress-bar{flex:1;height:6px;background:var(--bg-container-inset);border-radius:var(--radius-xs);overflow:hidden}.getting-started-progress-fill{height:100%;background:var(--color-brand);border-radius:var(--radius-xs);transition:width .3s ease;width:0%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.advanced-panel{border:1px solid var(--border-secondary);border-radius:var(--radius-lg);padding:.55rem .65rem;background:var(--bg-container-inset)}.advanced-panel>summary{cursor:pointer;font-weight:600;color:var(--text-secondary)}.advanced-panel[open]>summary{margin-bottom:.65rem}.prompt-card,.release-card{border:1px solid var(--border-secondary);border-radius:var(--radius-lg);background:var(--bg-container-inset);padding:.75rem;margin-bottom:.75rem}.release-card h3{margin-top:0}.markdown-surface{border:1px solid var(--border-secondary);border-radius:var(--radius-lg);background:var(--bg-container-inset);padding:.75rem;font-size:var(--font-size-md);line-height:1.5;color:var(--text-primary)}.markdown-surface.compact{font-size:var(--font-size-base)}.markdown-surface>:first-child{margin-top:0}.markdown-surface>:last-child{margin-bottom:0}.markdown-surface h1,.markdown-surface h2,.markdown-surface h3,.markdown-surface h4,.markdown-surface h5,.markdown-surface h6{margin:.75rem 0 .4rem;line-height:1.3;color:var(--text-primary)}.markdown-surface p{margin:.45rem 0}.markdown-surface ul,.markdown-surface ol{margin:.35rem 0 .55rem 1.2rem;padding:0}.markdown-surface li+li{margin-top:.2rem}.markdown-surface blockquote{margin:.55rem 0;padding:.35rem .6rem;border-left:3px solid var(--color-brand);background:var(--bg-container-inset);color:var(--text-secondary)}.markdown-surface code{font-family:var(--font-mono);font-size:.82em;padding:.08rem .3rem;border-radius:var(--radius-md);border:1px solid var(--border-tertiary);background:var(--bg-container-inset)}.markdown-surface pre{margin:.55rem 0}.markdown-surface img{max-width:min(100%,720px);height:auto;border:1px solid var(--border-secondary);border-radius:var(--radius-md);margin:.4rem 0;background:var(--bg-container)}.markdown-table{width:100%;border-collapse:collapse;margin:.55rem 0;border:1px solid var(--border-secondary)}.markdown-table th,.markdown-table td{border:1px solid var(--border-secondary);padding:.35rem .45rem;font-size:var(--font-size-base)}.markdown-table th{background:var(--bg-container-inset);color:var(--text-secondary)}.markdown-surface a{color:var(--color-brand);text-decoration:none;font-weight:600}.markdown-surface a:hover{text-decoration:underline}.usage-stats{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0 0 .75rem}.usage-stat{border:1px solid var(--border-secondary);border-radius:var(--radius-lg);padding:.6rem;display:grid;gap:.25rem;background:var(--bg-container-inset)}.usage-stat-label{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}.usage-breakdown-card{border:1px solid var(--border-secondary);border-radius:var(--radius-lg);padding:.65rem;background:var(--bg-container-inset);margin:0 0 .75rem}.usage-breakdown-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.2rem 0}.usage-breakdown-name{color:var(--text-primary);font-size:var(--font-size-md)}.usage-breakdown-name-mono{font-family:var(--font-mono);font-size:var(--font-size-base)}.usage-breakdown-cost{color:var(--text-primary);font-size:var(--font-size-md);font-weight:600}.account-group{border:1px solid var(--border-secondary);border-radius:var(--radius-lg);background:var(--bg-container-inset);padding:.5rem .65rem}.account-group-summary{display:flex;gap:.35rem;align-items:center;list-style:none;cursor:pointer;font-size:var(--font-size-md);color:var(--text-secondary)}.account-group-summary::-webkit-details-marker{display:none}.account-group-name{font-weight:700;color:var(--text-primary)}.account-group-total{margin-left:auto;font-weight:600}.account-group-items{margin-top:.55rem;display:grid;gap:.35rem}.account-group-item{width:100%;border:1px solid var(--border-secondary);background:var(--bg-container);color:var(--text-primary);border-radius:var(--radius-md);display:grid;grid-template-columns:1.8rem minmax(0,1fr) auto auto;align-items:center;gap:.5rem;padding:.45rem .55rem;text-align:left;transition:border-color .15s ease}.account-group-item:hover{border-color:var(--color-brand)}.account-avatar{width:1.5rem;height:1.5rem;border-radius:var(--radius-pill);display:grid;place-items:center;font-weight:700;font-size:var(--font-size-sm);background:var(--color-brand-subtle);color:var(--color-brand-hover)}.account-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-balance{color:var(--text-secondary);font-size:var(--font-size-base)}.account-active-toggle{width:1rem;height:1rem;margin:0;accent-color:var(--color-brand)}.account-detail-section{margin-top:.5rem}.account-detail-heading{margin:.75rem 0 .3rem}.account-detail-table{font-size:var(--font-size-base)}.checkbox-col{width:2rem}.split-row-container{gap:.5rem}.split-remainder{font-size:var(--font-size-base)}.attachment-row{gap:.5rem}.attachment-file-input{font-size:var(--font-size-base)}.search-row{gap:.5rem;align-items:center;flex-wrap:wrap}.bulk-tag-input{max-width:120px}pre{margin:.75rem 0 0;padding:.75rem;border-radius:var(--radius-md);border:1px solid var(--border-secondary);background:var(--bg-container-inset);font-size:var(--font-size-sm);font-family:var(--font-mono);overflow:auto;color:var(--text-primary)}table{width:100%;border-collapse:collapse;margin-top:.5rem}th,td{text-align:left;border-bottom:1px solid var(--border-secondary);padding:.5rem;font-size:var(--font-size-md);vertical-align:top;word-break:break-word}th{color:var(--text-secondary);font-weight:600;font-size:var(--font-size-sm);background:var(--bg-container-inset)}tr.is-clickable{cursor:pointer;transition:background-color .15s ease}tr.is-clickable:hover{background:var(--bg-container-hover)}.parity-table{margin-bottom:.35rem}.table-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.developer-tools{margin-bottom:1rem}.developer-tools>summary{cursor:pointer;font-weight:600;font-size:var(--font-size-md);color:var(--text-subdued);text-transform:uppercase;letter-spacing:.12em;padding:.5rem 0;list-style:none}.developer-tools>summary::-webkit-details-marker{display:none}.developer-tools>summary:before{content:"▶ ";font-size:var(--font-size-xs)}.developer-tools[open]>summary:before{content:"▼ "}.theme-options{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:.75rem}.theme-option{border:1px solid var(--border-secondary);background:var(--bg-container);color:var(--text-primary);border-radius:var(--radius-lg);padding:.65rem;display:grid;gap:.45rem;justify-items:start;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.theme-option.is-selected{border-color:var(--color-brand);box-shadow:0 0 0 4px var(--ring-focus)}.theme-option span:not(.hint){font-weight:600}.theme-option .hint{font-weight:400;margin-top:-.25rem}.theme-preview{width:100%;height:70px;border-radius:var(--radius-md);border:1px solid var(--border-secondary);display:block}.theme-preview-light{background:linear-gradient(160deg,#fff,#eef5fc 60%,#d6e6f8)}.theme-preview-dark{background:linear-gradient(160deg,#0a0a0a,#141414 60%,#292524)}.theme-preview-system{background:linear-gradient(135deg,#fafaf9,#e7e5e4 45%,#141414 55%,#0a0a0a)}.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}.skip-link:focus{position:fixed;top:.5rem;left:.5rem;z-index:10000;width:auto;height:auto;padding:.75rem 1.25rem;margin:0;overflow:visible;clip:auto;white-space:normal;background:var(--bg-container);color:var(--text-primary);border:2px solid var(--color-brand);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:600;text-decoration:none}.hidden{display:none!important}:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}main:focus{outline:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-1{-webkit-line-clamp:1}.wrap-break-word{word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.nowrap{white-space:nowrap}.tabular-nums{font-variant-numeric:tabular-nums}.metric-value{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.currency-value{font-family:var(--font-serif);font-variant-numeric:tabular-nums;max-width:100%;overflow:hidden;text-overflow:ellipsis}.currency-value--large{font-size:.9em}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;z-index:1000;transform:translate(-100%);transition:transform .25s ease;max-height:100vh;overflow-y:auto}.app-shell:not(.sidebar-collapsed) .sidebar{transform:translate(0);box-shadow:4px 0 24px #0000004d}.app-shell.sidebar-collapsed .sidebar{transform:translate(-100%)}}@media(max-width:720px){main{padding:0 .75rem}.row button{flex:1 1 auto}.workspace-header{padding:.875rem 1rem}.workspace-header-row{flex-direction:column;align-items:stretch}.workspace-header-actions{justify-content:space-between;padding-top:.5rem;border-top:1px solid var(--border-tertiary);margin-top:.5rem}.workspace-header h2{font-size:var(--font-size-xl)}.connection-status .status-label,.last-sync{display:none}.quick-actions{justify-content:center}.quick-action-btn span{font-size:var(--font-size-xs)}.quick-action-btn{padding:.6rem}.net-worth-value{font-size:var(--font-size-hero)}.section-header-collapsible{padding:.85rem 1rem;flex-wrap:wrap}.balance-sheet-grid{grid-template-columns:1fr}}.empty-state-hint{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-secondary)}.hint-link{color:var(--color-brand);text-decoration:none;font-size:var(--font-size-base);font-weight:500;transition:color .15s ease}.hint-link:hover{color:var(--color-brand-hover);text-decoration:underline}.hint-success{display:inline-flex;align-items:center;gap:.35rem;color:var(--color-success);font-size:var(--font-size-base);font-weight:500}.settings-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-secondary);margin-bottom:1.5rem;align-self:start}.settings-tab{padding:.75rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:var(--font-size-md);font-family:var(--font-sans);cursor:pointer;transition:color .15s ease,border-color .15s ease,opacity .15s ease;opacity:.8}.settings-tab:hover{color:var(--text-primary);opacity:1}.settings-tab:focus-visible{outline:2px solid var(--color-brand);outline-offset:-2px;border-radius:2px}.settings-tab.active{color:var(--color-brand);border-bottom-color:var(--color-brand);font-weight:500;opacity:1}.settings-panel{display:none}.settings-panel.active{display:block}label .hint{font-weight:400;font-size:var(--font-size-sm);color:var(--text-secondary);opacity:.8}.card-divider{border:none;border-top:1px solid var(--border-secondary);margin:1.25rem 0}.save-status{font-size:var(--font-size-base);color:var(--text-secondary);transition:opacity .3s ease}.save-status.success{color:var(--color-brand)}.save-status.error{color:var(--color-destructive)}.profile-photo-section{display:flex;align-items:center;gap:1.25rem;margin-bottom:1rem}.profile-avatar-lg{width:100px;height:100px;border-radius:var(--radius-pill);object-fit:cover;background:var(--bg-container-inset);border:2px solid var(--border-secondary);flex-shrink:0}.profile-photo-actions{display:flex;flex-direction:column;gap:.35rem}.profile-photo-actions .hint{font-size:var(--font-size-sm);color:var(--text-secondary);opacity:.8;margin:0}.btn-file-upload{display:inline-block;cursor:pointer;font-size:var(--font-size-sm);padding:.3rem .55rem;line-height:1.25;background:var(--bg-container);border:1px solid var(--border-secondary);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-sans);font-weight:500;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.btn-file-upload:hover{background:var(--bg-container-hover);border-color:var(--border-primary);color:var(--text-primary)}.btn-link{background:none;border:none;padding:0;font-size:var(--font-size-base);cursor:pointer;text-decoration:underline;color:var(--text-secondary)}.btn-link:hover{color:var(--text-primary)}.btn-link.danger{color:var(--color-destructive)}.btn-link.danger:hover{opacity:.8}.editor-drawer{position:fixed;inset:0;z-index:1001;pointer-events:none;visibility:hidden}.editor-drawer.is-open{pointer-events:auto;visibility:visible}.editor-drawer-backdrop{position:absolute;inset:0;background:#0006;opacity:0;transition:opacity .25s ease}.editor-drawer.is-open .editor-drawer-backdrop{opacity:1}.editor-drawer-content{position:absolute;top:0;right:0;bottom:0;width:100%;max-width:480px;background:var(--bg-container);border-left:1px solid var(--border-secondary);display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s ease}.editor-drawer.is-open .editor-drawer-content{transform:translate(0)}.editor-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-secondary)}.editor-drawer-header h3{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.editor-drawer-body{flex:1;padding:1.25rem;overflow-y:auto}.editor-drawer-body .grid,.editor-drawer-body .row{margin-bottom:1rem}.editor-section{display:none}.editor-drawer-body .editor-section,[data-view=loans] .editor-section[data-editor-section=loans]{display:block}.budget-nav{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.budget-nav h2{margin:0;min-width:180px;text-align:center}.nav-arrow{padding:.5rem .75rem;font-size:var(--font-size-xl);background:var(--bg-container);border:1px solid var(--border-secondary);color:var(--text-secondary)}.nav-arrow:hover{background:var(--bg-container-hover);color:var(--text-primary)}.budget-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.summary-item{padding:1.25rem;border-radius:var(--radius-lg);background:var(--bg-container-inset);text-align:center;transition:transform .2s ease,box-shadow .2s ease}.summary-item:hover{border-color:var(--border-primary);transform:translateY(-2px)}.summary-item .label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);margin-bottom:.5rem;letter-spacing:.02em}.summary-item .value{display:block;font-size:var(--font-size-display);font-weight:700;color:var(--text-primary);line-height:1.2;font-variant-numeric:tabular-nums}.budget-table{width:100%}.budget-table th,.budget-table td{padding:.75rem;text-align:left}.budget-table tbody tr:hover{background:var(--bg-container-hover)}.budget-cards-list{display:flex;flex-direction:column;gap:.25rem}.budget-card-row{padding:.875rem 1rem;border-bottom:1px solid var(--border-tertiary);transition:background .15s}.budget-card-row:last-child{border-bottom:none}.budget-card-row:hover{background:var(--bg-surface)}.budget-card-top{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.budget-card-name{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.budget-card-amounts{font-size:var(--font-size-base);font-variant-numeric:tabular-nums;white-space:nowrap}.budget-card-actual{font-weight:600;color:var(--text-primary)}.budget-card-divider{color:var(--text-subdued)}.budget-card-limit{color:var(--text-secondary)}.budget-card-bottom{display:flex;align-items:center;gap:.75rem;margin-top:.375rem;font-size:var(--font-size-sm)}.budget-card-remaining{font-weight:500}.budget-card-remaining.positive{color:var(--text-positive)}.budget-card-remaining.negative{color:var(--text-negative)}.budget-card-projected{color:var(--text-subdued);font-style:italic}.budget-card-bottom .icon-btn{margin-left:auto}.progress-bar{width:100%;height:10px;background:var(--border-secondary);border-radius:var(--radius-pill);overflow:hidden;box-shadow:inset 0 1px 2px #0000000f}.progress-bar .fill{height:100%;border-radius:var(--radius-pill);transition:width .3s ease}.progress-bar .fill.under-budget{background:var(--color-green-500)}.progress-bar .fill.at-budget{background:var(--color-yellow-500)}.progress-bar .fill.over-budget{background:var(--color-red-500)}.progress-bar .fill.complete{background:var(--color-success);box-shadow:0 0 8px var(--ring-focus)}.remaining.positive{color:var(--text-positive)}.remaining.negative{color:var(--text-negative)}.pace-chip{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}.pace-chip.on-track{background:var(--color-green-100, #dcfce7);color:var(--color-green-700, #15803d)}.pace-chip.ahead{background:var(--color-red-100, #fee2e2);color:var(--color-red-700, #b91c1c)}.pace-chip.under{background:var(--color-blue-100, #dbeafe);color:var(--color-blue-700, #1d4ed8)}.editable-cell{cursor:pointer;position:relative;border-bottom:1px dashed var(--border-primary)}.editable-cell:after{content:"✎";position:absolute;right:.25rem;top:50%;transform:translateY(-50%);font-size:var(--font-size-xs);opacity:.3;transition:opacity .15s}.editable-cell:hover{background:var(--bg-container-hover)}.editable-cell:hover:after{opacity:.7}.inline-edit-input{width:5rem;padding:.25rem .4rem;font-size:inherit;border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary)}.inline-edit-btn{border:none;background:transparent;cursor:pointer;padding:.15rem .35rem;font-size:var(--font-size-base);border-radius:var(--radius-sm);vertical-align:middle;margin-left:.15rem}.inline-edit-btn.save{color:var(--color-brand)}.inline-edit-btn.save:hover{background:var(--color-green-100, #dcfce7)}.inline-edit-btn.cancel{color:var(--color-red-500)}.inline-edit-btn.cancel:hover{background:var(--color-red-100, #fee2e2)}.projected-hint{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-left:.25rem}.icon-btn.danger.small{background:transparent;border:none;color:var(--color-red-500);cursor:pointer;padding:.25rem .5rem;font-size:var(--font-size-md);border-radius:var(--radius-sm)}.icon-btn.danger.small:hover{background:var(--color-red-100, #fee2e2)}.period-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.period-tab{padding:.5rem 1rem;border:1px solid var(--border-secondary);background:var(--bg-container);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-md);transition:border-color .15s ease,background-color .15s ease}.period-tab:hover{background:var(--color-brand-subtle)}.period-tab.active{background:var(--color-brand);color:var(--color-white);border-color:var(--color-brand)}.custom-range-inputs{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:end;margin-bottom:1rem}.date-range-text{color:var(--text-secondary);font-size:var(--font-size-md);margin:0}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:640px){.stats-grid{grid-template-columns:1fr}}.stat-item{padding:1rem 1.25rem;border-radius:var(--radius-lg);background:var(--bg-container-inset);display:flex;align-items:flex-start;gap:.5rem;transition:none}.stat-item:hover{transform:none;box-shadow:none}.stat-item .stat-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.125rem;border-radius:0;background:none}.stat-item:hover .stat-icon{transform:none}.stat-item--income .stat-icon{color:var(--text-positive);background:none}.stat-item--expense .stat-icon{color:var(--text-negative);background:none}.stat-item--savings .stat-icon{color:var(--color-brand-hover);background:none}.stat-item .stat-content{flex:1;min-width:0}.stat-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);margin-bottom:.25rem;letter-spacing:.02em}.stat-value{display:block;font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);line-height:1.2;font-variant-numeric:tabular-nums}.stat-item--income .stat-value{color:var(--text-positive)}.stat-item--expense .stat-value{color:var(--text-negative)}body[data-theme=dark] .stat-item--income .stat-icon{background:none;color:var(--color-green-400)}body[data-theme=dark] .stat-item--expense .stat-icon{background:none;color:var(--color-red-400)}body[data-theme=dark] .stat-item--income .stat-value{color:var(--color-green-400)}body[data-theme=dark] .stat-item--expense .stat-value{color:var(--color-red-400)}.breakdown-table{width:100%}.breakdown-table th,.breakdown-table td{padding:.75rem;text-align:left}.breakdown-table tbody tr:hover{background:var(--bg-container-hover)}.bar-chart .bar{fill:var(--color-brand)}.bar-chart .bar:hover{fill:var(--color-brand-hover)}body[data-theme=dark] .status-chip-success{color:var(--color-green-400);border-color:var(--color-success);background:#00897b26}body[data-theme=dark] .status-chip-warn{color:var(--color-yellow-400);border-color:var(--color-yellow-600);background:#f7900926}body[data-theme=dark] .status-chip-error{color:var(--color-red-400);border-color:var(--color-destructive);background:#f1363626}body[data-theme=dark] .danger-item{background:#f136361a}@media(max-width:600px){.custom-range-inputs{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.loading-skeleton{animation:none;background:var(--bg-container-inset)}}.net-worth-hero{background:var(--tint-hero);border:none;border-bottom:1px solid var(--border-tertiary);padding:1.5rem .75rem 1rem;position:relative;overflow:hidden;border-radius:0}.net-worth-hero:before,.net-worth-hero:after{display:none}.net-worth-hero-content{position:relative;z-index:1}.net-worth-label{display:flex;align-items:center;gap:.5rem;color:var(--text-subdued);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.375rem}.net-worth-label svg{display:none}.net-worth-value{color:var(--text-primary);font-family:var(--font-display);font-size:var(--font-size-hero);font-weight:var(--font-weight-hero);line-height:1.1;margin-bottom:.25rem;font-variant-numeric:tabular-nums;letter-spacing:-.01em;display:block}.net-worth-change{display:flex;align-items:center;margin-top:.25rem}.change-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:400;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .2s ease,box-shadow .2s ease}.change-badge:hover{transform:translateY(-1px)}.change-badge.positive{background:#00897b1f;color:var(--color-green-700);border:1px solid var(--color-green-200)}.change-badge.negative{background:#dc262614;color:var(--color-red-700);border:1px solid var(--color-red-200)}.change-badge.neutral{background:#0000000a;color:var(--text-secondary);border:1px solid var(--border-secondary)}.quick-actions{display:flex;gap:.375rem;flex-wrap:wrap;margin-bottom:.75rem;align-items:center}.quick-action-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:transparent;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;color:var(--text-subdued);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.quick-action-btn:hover{background:var(--bg-container-hover);color:var(--text-primary)}.quick-action-btn.ghost{border:none;background:transparent;color:var(--text-subdued);padding:.375rem}.quick-action-btn.ghost:hover{color:var(--text-primary);background:transparent;border:none;text-decoration:underline}.quick-action-btn.primary{background:var(--color-brand);border:none;color:var(--color-white);padding:.4375rem .875rem;font-size:var(--font-size-base);font-weight:600}.quick-action-btn.primary:hover{background:var(--color-green-700)}.balance-sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--border-secondary);border-radius:var(--radius-md);overflow:hidden}.balance-sheet-item{padding:1.25rem 1.5rem;text-align:left;position:relative;cursor:pointer;background:var(--bg-container);border-right:1px solid var(--border-tertiary);transition:background .15s ease}.balance-sheet-item:last-child{border-right:none}.balance-sheet-item:hover{background:var(--bg-container-hover)}.balance-sheet-item.assets,.balance-sheet-item.liabilities,.balance-sheet-item.net-worth{border-color:var(--border-tertiary)}.balance-sheet-item .label{display:block;font-size:var(--font-size-xs);font-weight:500;color:var(--text-subdued);margin-bottom:.375rem;letter-spacing:.02em}.balance-sheet-item .value{display:block;font-family:var(--font-display);font-size:var(--font-size-display);font-weight:400;color:var(--text-primary);line-height:1.2;font-variant-numeric:tabular-nums;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:1.8rem}.balance-sheet-item.net-worth .value{font-size:var(--font-size-display);font-weight:400}.balance-sheet-item .trend{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--font-size-sm);font-weight:500;margin-top:.375rem;padding:0;border-radius:0;min-height:1.25rem;background:none}.balance-sheet-item .trend.positive{color:var(--text-positive);background:none}.balance-sheet-item .trend.negative{color:var(--text-negative);background:none}.balance-sheet-item .trend.neutral{color:var(--text-secondary);background:none}.collapsible-section{padding:0;overflow:visible;border:1px solid var(--border-secondary);transition:border-color .15s ease;border-radius:var(--radius-md)}.collapsible-section[open],.collapsible-section:hover{border-color:var(--border-primary)}.collapsible-section summary{cursor:pointer;list-style:none;padding:1rem 1.25rem;background:var(--bg-container);transition:background .2s ease}.collapsible-section summary::-webkit-details-marker{display:none}.collapsible-section summary:hover{background:var(--bg-container-hover)}.section-header-collapsible{display:flex;align-items:center;gap:.75rem}.section-title-group{display:flex;align-items:center;gap:.625rem;flex:1}.section-title-group svg{color:var(--text-secondary);flex-shrink:0}.section-title-group h3{font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0}.collapse-indicator{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--text-subdued);transition:transform .25s ease}.collapsible-section[open] .collapse-indicator{transform:rotate(180deg)}.section-content{padding:1.25rem;border-top:1px solid var(--border-tertiary);background:var(--bg-container)}.period-select{width:auto;min-width:130px;padding:.375rem 2rem .375rem .75rem;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);background:var(--bg-container-inset);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:background-color .15s ease,border-color .15s ease}.period-select:hover{border-color:var(--border-primary);color:var(--text-primary)}.period-select:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--ring-focus)}.chart-container{width:100%;min-height:120px;overflow:hidden;position:relative}.chart-container svg{overflow:visible}.chart-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;text-align:center}.chart-empty-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-gray-100);margin-bottom:1rem;color:var(--color-gray-400)}.chart-empty-title{font-family:var(--font-sans);font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.chart-empty-description{font-size:var(--font-size-base);color:var(--text-secondary);max-width:320px;margin-bottom:1rem}.chart-empty-action{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-brand);color:var(--color-white);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:background-color .15s ease}.chart-empty-action:hover{background:var(--color-green-700)}.line-chart .line{fill:none;stroke:var(--color-brand);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 4px rgba(0,137,123,.3))}.line-chart .area{fill:url(#area-gradient)}.line-chart .dot{fill:var(--color-white);stroke:var(--color-brand);stroke-width:2;transition:r .2s ease}.line-chart .dot:hover{r:6}.line-chart .axis path,.line-chart .axis line{stroke:var(--border-secondary)}.line-chart .axis text{fill:var(--text-secondary);font-size:var(--font-size-xs);font-weight:500}.line-chart .grid line{stroke:var(--border-secondary);stroke-opacity:.4;stroke-dasharray:4,4}body[data-theme=dark] .net-worth-hero{background:transparent;border:none}body[data-theme=dark] .net-worth-hero .net-worth-label{color:var(--text-subdued)}body[data-theme=dark] .net-worth-hero .net-worth-value{color:var(--text-primary)}body[data-theme=dark] .net-worth-hero .change-badge.neutral{background:#ffffff0f;color:var(--text-secondary);border-color:#ffffff14}body[data-theme=dark] .balance-sheet-item.assets,body[data-theme=dark] .balance-sheet-item.liabilities,body[data-theme=dark] .balance-sheet-item.net-worth{background:var(--bg-container);border-color:var(--border-tertiary)}body[data-theme=dark] .balance-sheet-grid{border-color:var(--border-secondary)}body[data-theme=dark] .collapsible-section{border-color:#ffffff14}body[data-theme=dark] .collapsible-section[open],body[data-theme=dark] .collapsible-section:hover{border-color:#ffffff1f}body[data-theme=dark] .section-content{background:#00000026;border-top-color:#ffffff14}body[data-theme=dark] .chart-empty-icon{background:#ffffff0f;color:var(--text-subdued)}body[data-theme=dark] .quick-action-btn.primary{background:var(--color-white);color:var(--color-gray-900)}body[data-theme=dark] .quick-action-btn.primary:hover{background:var(--bg-container-hover)}body[data-theme=dark] .chart-empty-action{background:var(--color-white);color:var(--color-gray-900)}body[data-theme=dark] .chart-empty-action:hover{background:var(--bg-container-hover)}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.widget-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.dashboard-widget{position:relative;min-width:0;transition:opacity .2s ease,transform .2s ease}.dashboard-widget .card,.dashboard-widget .collapsible-section{margin:0}.widget-full{grid-column:1 / -1}.widget-half,.widget-third{grid-column:span 1}.widget-card{padding:0;display:flex;flex-direction:column;border-color:transparent;box-shadow:none}.widget-card.dense{padding:0}.widget-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;gap:.75rem}.widget-title-group{display:flex;align-items:center;gap:.5rem}.widget-title-group h3{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.widget-title-group svg{color:var(--text-subdued);flex-shrink:0}.scope-selector{display:flex;gap:0;background:none;border-radius:0;padding:0;border-bottom:1px solid var(--border-secondary)}.scope-btn{padding:.5rem .75rem;font-size:var(--font-size-base);font-weight:500;border:none;background:none;color:var(--text-subdued);border-radius:0;cursor:pointer;transition:color .15s ease;white-space:nowrap;position:relative}.scope-btn:hover{color:var(--text-primary);background:none}.scope-btn.active{color:var(--text-primary);font-weight:600;background:none;box-shadow:none}.scope-btn.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--color-brand);border-radius:1px}.net-worth-breakdown{font-size:var(--font-size-sm);color:var(--text-subdued);margin-top:.25rem}.widget-tabs{display:flex;gap:.25rem;background:var(--bg-surface);border-radius:var(--radius-xs);padding:2px}.widget-tab{padding:.375rem .75rem;font-size:var(--font-size-sm);font-weight:500;border:none;background:none;border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease,color .15s ease;white-space:nowrap}.widget-tab:hover{color:var(--text-primary)}.widget-tab.active{background:var(--bg-container);color:var(--text-primary);box-shadow:var(--shadow-xs)}.widget-tab-panel{display:none}.widget-tab-panel.active{display:block}.spending-chart-toolbar,.cashflow-toolbar{padding:0 1.25rem .5rem}.widget-link{font-size:var(--font-size-sm);font-weight:500;color:var(--color-brand);text-decoration:none;white-space:nowrap}.widget-link:hover{text-decoration:underline}.widget-action-btn{background:none;border:1px solid var(--border-secondary);border-radius:var(--radius-sm);padding:.25rem;cursor:pointer;color:var(--text-subdued);transition:color .15s ease,background-color .15s ease}.widget-action-btn:hover{color:var(--text-primary);border-color:var(--border-primary);background:var(--bg-container-hover)}.widget-period{font-size:var(--font-size-sm);color:var(--text-subdued)}.period-select-sm{font-size:var(--font-size-sm);padding:.25rem .5rem;border:1px solid var(--border-secondary);border-radius:var(--radius-sm);background:var(--bg-container);color:var(--text-secondary);cursor:pointer}.widget-empty-state{padding:2rem 1.5rem;text-align:center;color:var(--text-secondary);font-size:var(--font-size-base);max-width:300px;margin:0 auto;line-height:1.5}.widget-empty-state p{margin:0 0 .75rem}.widget-empty-link{color:var(--color-brand);font-size:var(--font-size-base);font-weight:500;text-decoration:none;cursor:pointer;background:none;border:none;padding:0}.widget-empty-link:hover{text-decoration:underline}.widget-drag-handle{position:absolute;top:.5rem;right:.5rem;z-index:5;padding:.25rem;border-radius:var(--radius-sm);cursor:grab;color:var(--text-subdued);opacity:0;transition:opacity .15s ease,background .15s ease}.dashboard-widget:hover .widget-drag-handle{opacity:.5}.widget-drag-handle:hover{opacity:1!important;background:var(--bg-surface-hover);color:var(--text-secondary)}.widget-drag-handle:active{cursor:grabbing}.dashboard-widget.is-dragging{opacity:.4;transform:scale(.98)}.dashboard-widget.drag-over{outline:2px dashed var(--color-brand);outline-offset:2px;border-radius:var(--radius-lg)}.widget-grid.is-dragging .dashboard-widget:not(.is-dragging){transition:transform .2s ease}.weekly-recap-grid{display:flex;flex-wrap:wrap;gap:0;padding:0 1.25rem 1rem}.recap-stat{padding:.5rem .75rem;text-align:center;border-right:1px solid var(--border-tertiary);min-width:120px;flex:1}.recap-stat:last-child{border-right:none}.recap-label{display:block;font-size:var(--font-size-xs);font-weight:500;color:var(--text-subdued);letter-spacing:.02em;margin-bottom:.375rem}.recap-value{display:block;font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:400;color:var(--text-primary);font-variant-numeric:tabular-nums}.recap-value.positive{color:var(--text-positive)}.recap-value.negative{color:var(--text-negative)}.recap-compare{display:block;font-size:var(--font-size-xs);color:var(--text-subdued);margin-top:.25rem}.recap-detail{display:block;font-size:var(--font-size-xs);color:var(--text-subdued);margin-top:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transactions-list{max-height:400px;overflow-y:auto;position:relative}.transactions-list:after{content:"";position:sticky;bottom:0;left:0;right:0;display:block;height:32px;background:linear-gradient(transparent,var(--bg-container));pointer-events:none}.txn-date-group{font-size:var(--font-size-xs);font-weight:600;color:var(--text-subdued);letter-spacing:.02em;padding:.5rem 1.25rem .25rem}.txn-date-group:first-child{padding-top:.25rem}.txn-date{font-size:var(--font-size-xs);color:var(--text-subdued);white-space:nowrap;font-variant-numeric:tabular-nums}.txn-row{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;padding:.5rem 1.25rem;transition:background .1s ease}.txn-row:hover{background:var(--bg-container-hover)}.txn-info{min-width:0}.txn-name{font-size:var(--font-size-base);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.txn-meta{display:flex;align-items:center;gap:.375rem;margin-top:.125rem}.txn-category{display:inline-block;font-size:var(--font-size-xs);font-weight:500;padding:.0625rem .4375rem;border-radius:var(--radius-pill);cursor:pointer;background:var(--bg-surface-inset);color:var(--text-secondary)}.txn-amount{font-family:var(--font-serif);font-size:var(--font-size-base);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;padding:.125rem .375rem;border-radius:var(--radius-sm);transition:background .1s ease}.txn-amount:hover{background:var(--bg-surface-inset)}.txn-amount.income{color:var(--text-positive)}.txn-amount.expense{color:var(--text-primary)}body[data-theme=dark] .txn-amount.expense{color:var(--text-secondary)}.txn-amount input{width:80px;font-size:var(--font-size-sm);padding:.125rem .375rem;border:1px solid var(--color-brand);border-radius:var(--radius-sm);background:var(--bg-container);color:var(--text-primary);font-family:var(--font-serif)}.donut-chart-container{display:flex;justify-content:center;align-items:center;padding:.5rem 1.25rem;min-height:200px}.donut-chart-container svg{max-width:100%}.legend-item{display:flex;align-items:center;gap:.375rem;font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-xs);padding:.125rem .25rem;margin:0 -.25rem}.legend-item:hover{background:var(--bg-surface)}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.legend-amount{font-family:var(--font-serif);font-variant-numeric:tabular-nums;color:var(--text-subdued);font-size:var(--font-size-xs)}.budget-bars{padding:0 1.25rem 1rem}.budget-bar-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 1.25rem;border-bottom:1px solid var(--border-tertiary);cursor:pointer}.budget-bar-row:hover{background:var(--bg-surface)}.budget-bar-row:last-child{border-bottom:none}.budget-bar-label{font-size:var(--font-size-base);font-weight:500;color:var(--text-primary);min-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-bar-track{flex:1;height:8px;background:var(--bg-surface-inset);border-radius:var(--radius-pill);overflow:hidden}.budget-bar-fill{height:100%;border-radius:var(--radius-pill);transition:width .5s ease}.budget-bar-fill.under{background:var(--color-green-500)}.budget-bar-fill.warning{background:var(--color-yellow-500)}.budget-bar-fill.over{background:var(--color-red-500)}.budget-bar-amount{font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;min-width:80px;text-align:right}.bills-list{max-height:350px;overflow-y:auto}.bill-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:.75rem;align-items:center;padding:.625rem 1.25rem;border-bottom:1px solid var(--border-tertiary)}.bill-row:last-child{border-bottom:none}.bill-status{width:8px;height:8px;border-radius:50%}.bill-status.upcoming{background:var(--color-blue-500)}.bill-status.due-soon{background:var(--color-yellow-500)}.bill-status.overdue{background:var(--color-red-500)}.bill-status.paid{background:var(--color-green-500)}.bill-info{min-width:0}.bill-name{font-size:var(--font-size-base);font-weight:500;color:var(--text-primary)}.bill-frequency{font-size:var(--font-size-xs);color:var(--text-subdued)}.bill-due{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap}.bill-due.overdue{color:var(--text-negative);font-weight:500}.bill-due.due-soon{color:var(--color-yellow-600);font-weight:500}.bill-amount{font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-size:var(--font-size-base);font-weight:500;color:var(--text-primary);white-space:nowrap}.goals-list{padding:0 1.25rem 1rem}.goal-card{padding:.75rem 0;border-bottom:1px solid var(--border-tertiary);cursor:pointer}.goal-card:last-child{border-bottom:none}.goal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.goal-name{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.goal-percentage{font-size:var(--font-size-sm);font-weight:600;color:var(--color-brand)}.goal-progress-track{width:100%;height:6px;background:var(--bg-surface-inset);border-radius:var(--radius-pill);overflow:hidden;margin-bottom:.375rem}.goal-progress-fill{height:100%;border-radius:var(--radius-pill);transition:width .5s ease}.goal-amounts{display:flex;justify-content:space-between;font-size:var(--font-size-xs);color:var(--text-subdued)}.goal-amounts .current,.goal-amounts .target{font-family:var(--font-serif);font-variant-numeric:tabular-nums}.investments-list{max-height:350px;overflow-y:auto}.investment-row{display:grid;grid-template-columns:1fr auto auto;gap:.75rem;align-items:center;padding:.625rem 1.25rem;border-bottom:1px solid var(--border-tertiary)}.investment-row:last-child{border-bottom:none}.investment-name{font-size:var(--font-size-base);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.investment-type{font-size:var(--font-size-xs);color:var(--text-subdued)}.investment-value{text-align:right}.investment-balance{font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-size:var(--font-size-base);font-weight:500;color:var(--text-primary)}.investment-change{font-size:var(--font-size-xs)}.investment-change.positive{color:var(--text-positive)}.investment-change.negative{color:var(--text-negative)}.sankey-tooltip{position:absolute;pointer-events:none;background:var(--bg-container);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:.75rem 1rem;box-shadow:var(--shadow-lg);font-size:var(--font-size-base);z-index:100;max-width:240px;opacity:0;transition:opacity .15s ease}.sankey-tooltip.visible{opacity:1}.sankey-tooltip-title{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.sankey-tooltip-amount{font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-size:var(--font-size-md);color:var(--text-primary)}.sankey-tooltip-detail{font-size:var(--font-size-sm);color:var(--text-subdued);margin-top:.25rem}.sankey-link{fill:none;stroke-opacity:.35;transition:stroke-opacity .2s ease}.sankey-link.highlighted{stroke-opacity:.7}.sankey-link.dimmed{stroke-opacity:.08}.sankey-node{cursor:pointer;transition:opacity .2s ease}.sankey-node.dimmed{opacity:.3}.sankey-label{font-size:var(--font-size-xs);fill:var(--text-secondary);pointer-events:none}.sankey-drilldown{border-top:1px solid var(--border-secondary);padding:1rem 1.25rem;max-height:300px;overflow-y:auto}.drilldown-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.drilldown-header h4{margin:0;font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}.drilldown-close{background:none;border:none;cursor:pointer;color:var(--text-subdued);padding:.25rem;border-radius:var(--radius-sm)}.drilldown-close:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.drilldown-transactions{display:grid;gap:0}@keyframes sankeyFlow{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}.sankey-link.animated{stroke-dasharray:10 10;animation:sankeyFlow 1.5s linear infinite}.forecast-note{font-size:var(--font-size-sm);color:var(--text-subdued);margin:.5rem 0 0;text-align:center}.chart-container-forecast{min-height:200px}.show-all-widgets-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;margin:.75rem auto;padding:.5rem 1.25rem;font-size:var(--font-size-md);font-weight:500;color:var(--color-brand);background:var(--color-brand-subtle);border:1px solid var(--color-brand);border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease}.show-all-widgets-btn:hover{background:var(--color-brand);color:var(--color-white)}.customize-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}.customize-backdrop{position:absolute;inset:0;background:var(--bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.customize-panel{position:relative;background:var(--bg-container);border:1px solid var(--border-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:1.5rem;width:400px;max-width:90vw;max-height:80vh;overflow-y:auto}.customize-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.customize-panel-header h3{margin:0;font-size:var(--font-size-xl);font-weight:600}.customize-close{background:none;border:none;cursor:pointer;color:var(--text-subdued);padding:.25rem;border-radius:var(--radius-sm)}.customize-close:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.customize-hint{font-size:var(--font-size-base);color:var(--text-subdued);margin:0 0 1rem}.customize-widget-list{display:grid;gap:.25rem}.customize-widget-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:var(--radius-md);cursor:pointer;transition:background .1s ease}.customize-widget-item:hover{background:var(--bg-surface-hover)}.customize-widget-item input[type=checkbox]{accent-color:var(--color-brand);width:16px;height:16px}.customize-widget-item label{font-size:var(--font-size-md);font-weight:500;color:var(--text-primary);cursor:pointer;flex:1}.customize-widget-item .widget-size-badge{font-size:var(--font-size-xs);padding:.125rem .5rem;border-radius:var(--radius-pill);background:var(--bg-surface-inset);color:var(--text-subdued);text-transform:uppercase;letter-spacing:.12em}.customize-actions{display:flex;justify-content:space-between;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-tertiary)}.login-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center}.login-backdrop{position:absolute;inset:0;background:var(--bg-overlay)}.login-card{position:relative;background:var(--bg-container);border:1px solid var(--border-secondary);border-radius:var(--radius-xl);width:420px;max-width:90vw;padding:2.5rem 2rem 2rem;text-align:center}.login-brand{display:flex;align-items:center;justify-content:center;gap:.625rem;margin-bottom:.25rem}.login-brand .brand-mark{width:44px;height:44px}.login-brand h1{font-family:var(--font-serif);font-size:var(--font-size-display);font-weight:400;color:var(--text-primary);margin:0}.login-subtitle{font-size:var(--font-size-md);color:var(--text-secondary);margin:0 0 1.5rem}.login-oauth-buttons{display:flex;gap:.5rem;margin-bottom:1.25rem}.login-oauth-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem .5rem;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-container);color:var(--text-primary);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease}.login-oauth-btn:hover{background:var(--bg-container-hover);border-color:var(--border-secondary, var(--border-primary))}.login-error{margin-top:1rem;padding:.625rem .75rem;border-radius:var(--radius-md);background:#ef44441a;color:var(--color-red-500);font-size:var(--font-size-base);text-align:left}.login-success{color:var(--color-brand);background:var(--color-brand-subtle)}.app-shell.auth-pending{opacity:0;pointer-events:none}.sidebar-toggle-btn{display:flex;align-items:center;justify-content:center;margin-left:auto;padding:.375rem;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--sidebar-text-muted);cursor:pointer;transition:color .15s ease,background-color .15s ease;flex-shrink:0}.sidebar-toggle-btn:hover{color:var(--sidebar-text);background:var(--sidebar-hover)}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;z-index:999;opacity:0;pointer-events:none;transition:opacity .25s ease}.app-shell:not(.sidebar-collapsed) .sidebar-backdrop{opacity:1;pointer-events:auto}@media(max-width:980px){.sidebar-backdrop{display:block}}.mobile-nav-toggle{align-items:center;justify-content:center;position:fixed;top:.75rem;left:.75rem;z-index:1001;width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--border-secondary);background:var(--bg-container);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-sm);display:none}@media(max-width:980px){.mobile-nav-toggle{display:flex}}.app-shell.sidebar-collapsed .sidebar-toggle-btn{margin-left:0}.sidebar-collapse-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem;margin-top:.5rem;background:transparent;border:1px solid var(--sidebar-border);border-radius:var(--radius-sm);color:var(--sidebar-text-muted);font-size:var(--font-size-sm);cursor:pointer;transition:color .15s ease,background-color .15s ease}.sidebar-collapse-btn:hover{color:var(--sidebar-text);background:var(--sidebar-hover)}.sidebar-collapse-btn .collapse-icon{flex-shrink:0;transition:transform .3s ease}.app-shell.sidebar-collapsed .sidebar{width:64px;padding:1.25rem .5rem 1.5rem;transition:width .3s ease,padding .3s ease}.app-shell.sidebar-collapsed{grid-template-columns:64px minmax(0,1fr);transition:grid-template-columns .3s ease}.app-shell:not(.sidebar-collapsed){transition:grid-template-columns .3s ease}.app-shell:not(.sidebar-collapsed) .sidebar{transition:width .3s ease,padding .3s ease}.app-shell.sidebar-collapsed .sidebar-brand h1,.app-shell.sidebar-collapsed .nav-section-title span:not(.section-toggle-icon),.app-shell.sidebar-collapsed .nav-link span,.app-shell.sidebar-collapsed .sidebar-username,.app-shell.sidebar-collapsed .sidebar-signout-btn,.app-shell.sidebar-collapsed .sidebar-collapse-label{opacity:0;width:0;overflow:hidden;white-space:nowrap;transition:opacity .2s ease,width .2s ease}.app-shell.sidebar-collapsed .nav-section-title{justify-content:center}.app-shell.sidebar-collapsed .nav-link{justify-content:center;padding:.5rem}.app-shell.sidebar-collapsed .nav-link .nav-icon{opacity:.7}.app-shell.sidebar-collapsed .sidebar-brand,.app-shell.sidebar-collapsed .sidebar-user,.app-shell.sidebar-collapsed .sidebar-collapse-btn{justify-content:center}.app-shell.sidebar-collapsed .sidebar-collapse-btn .collapse-icon{transform:rotate(180deg)}.app-shell.sidebar-collapsed .nav-section-links{padding-left:0}.app-shell.sidebar-collapsed .section-toggle-icon{display:none}.app-shell.sidebar-collapsed .nav-link{position:relative}.app-shell.sidebar-collapsed .nav-link:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--bg-inverse);color:var(--text-inverse);padding:.25rem .625rem;border-radius:var(--radius-sm);font-size:var(--font-size-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:100}.app-shell.sidebar-collapsed .nav-link:hover:after{opacity:1}@media(max-width:980px){.app-shell.sidebar-collapsed .sidebar{width:260px;padding:1.25rem 1rem 1.5rem}.app-shell.sidebar-collapsed .sidebar-brand h1,.app-shell.sidebar-collapsed .nav-section-title span:not(.section-toggle-icon),.app-shell.sidebar-collapsed .nav-link span,.app-shell.sidebar-collapsed .sidebar-username,.app-shell.sidebar-collapsed .sidebar-signout-btn,.app-shell.sidebar-collapsed .sidebar-collapse-label{opacity:1;width:auto;overflow:visible}.app-shell.sidebar-collapsed .nav-link{justify-content:flex-start;padding:.5rem .75rem}.app-shell.sidebar-collapsed .nav-section-title{justify-content:flex-start}.app-shell.sidebar-collapsed .section-toggle-icon{display:inline}.app-shell.sidebar-collapsed .sidebar-collapse-btn{display:none}.app-shell.sidebar-collapsed .nav-link:after{display:none}}.modal-dialog{border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);background:var(--bg-container);padding:0;max-width:480px;width:90vw;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .2s ease,transform .2s ease,overlay .2s ease allow-discrete,display .2s ease allow-discrete}.modal-dialog[open]{opacity:1;transform:translateY(0) scale(1)}@starting-style{.modal-dialog[open]{opacity:0;transform:translateY(8px) scale(.98)}}.modal-dialog::backdrop{background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .2s ease,overlay .2s ease allow-discrete,display .2s ease allow-discrete}.modal-dialog[open]::backdrop{opacity:1}@starting-style{.modal-dialog[open]::backdrop{opacity:0}}.modal-content{padding:1.5rem}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.modal-header h3{margin:0;font-size:var(--font-size-xl);font-weight:600}.modal-close{background:none;border:none;cursor:pointer;color:var(--text-subdued);padding:.25rem}.modal-close:hover{color:var(--text-primary)}.modal-form{display:grid;gap:.75rem}.modal-form label{display:grid;gap:.25rem;font-size:var(--font-size-base);font-weight:500;color:var(--text-secondary)}.modal-form input{padding:.5rem .75rem;border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-size:var(--font-size-md);background:var(--bg-container);color:var(--text-primary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}body[data-theme=dark] .widget-card{background:var(--bg-container)}body[data-theme=dark] .sankey-tooltip{background:var(--bg-container);border-color:var(--border-primary)}body[data-theme=dark] .customize-panel,body[data-theme=dark] .modal-dialog{background:var(--bg-container)}@media(max-width:768px){.widget-grid{grid-template-columns:1fr}.widget-half{grid-column:span 1}.weekly-recap-grid{grid-template-columns:repeat(2,1fr)}.recap-stat{border-right:none;border-bottom:1px solid var(--border-tertiary)}.recap-stat:nth-child(2n){border-right:none}.net-worth-hero{padding:1rem 0 .5rem}.net-worth-value{font-size:var(--font-size-display)}.balance-sheet-grid{grid-template-columns:1fr}.balance-sheet-item{border-right:none;border-bottom:1px solid var(--border-tertiary)}.balance-sheet-item:last-child{border-bottom:none}.quick-actions{flex-direction:column}.quick-action-btn{width:100%;justify-content:center}.dashboard-toolbar{flex-direction:column;align-items:stretch}.form-row{grid-template-columns:1fr}.sankey-label{font-size:var(--font-size-xs)}.sankey-chart{overflow:visible}[data-view=transactions] table th:nth-child(6),[data-view=transactions] table td:nth-child(6){display:none}[data-view=transactions] table th:nth-child(4),[data-view=transactions] table td:nth-child(4){display:none}[data-view=transactions] table th:nth-child(1),[data-view=transactions] table td:nth-child(1){display:none}[data-view=transactions] table td{padding:.35rem .25rem;font-size:var(--font-size-base)}[data-view=subscriptions] table th:nth-child(2),[data-view=subscriptions] table td:nth-child(2){display:none}[data-view=subscriptions] table th:nth-child(5),[data-view=subscriptions] table td:nth-child(5){display:none}[data-view=subscriptions] table td{padding:.35rem .25rem;font-size:var(--font-size-base)}.dashboard-widget[data-widget-id=investments],.dashboard-widget[data-widget-id=goals],.dashboard-widget[data-widget-id=recurring-bills]{display:none}.dashboard-widget[data-widget-id=investments].mobile-visible,.dashboard-widget[data-widget-id=goals].mobile-visible,.dashboard-widget[data-widget-id=recurring-bills].mobile-visible{display:block}.mobile-only{display:block!important}}@media(min-width:769px)and (max-width:1024px){.widget-grid,.weekly-recap-grid{grid-template-columns:repeat(2,1fr)}.recap-stat:nth-child(2){border-right:none}}.color-swatch{display:inline-block;width:1rem;height:1rem;border-radius:50%;vertical-align:middle;border:1px solid rgba(128,128,128,.3)}.icon-badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-xs);font-size:var(--font-size-sm);background:var(--bg-surface, #f3f4f6);color:var(--text-secondary, #6b7280);font-family:monospace}.section-content-toolbar{display:flex;justify-content:flex-end;padding:.25rem 0 .5rem}.global-error-banner{position:fixed;top:0;left:0;right:0;z-index:10000;padding:.5rem 1rem;background:var(--color-destructive, #dc2626);color:var(--text-on-brand, #fff);font-size:var(--font-size-md);display:flex;align-items:center;justify-content:center;gap:.5rem}.error-dismiss{background:none;border:none;color:var(--text-on-brand, #fff);font-size:var(--font-size-xl);cursor:pointer}.txn-detail-card{background:var(--bg-surface, #f5f5f4);border:1px solid var(--border-secondary, #e7e5e4);border-radius:var(--radius-sm);padding:.75rem;margin-bottom:.75rem}.txn-detail-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.txn-detail-avatar{width:36px;height:36px;border-radius:50%;background:var(--color-gray-300, #d6d3d1);color:var(--color-gray-700, #44403c);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-md)}.txn-detail-info{flex:1;display:flex;flex-direction:column}.txn-detail-name{font-weight:600;font-size:var(--font-size-lg)}.txn-detail-date{font-size:var(--font-size-sm);color:var(--text-secondary, #78716c)}.txn-detail-amount{font-weight:700;font-size:var(--font-size-xl)}.txn-detail-meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.txn-detail-notes{font-size:var(--font-size-base);color:var(--text-secondary);margin-top:.4rem}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;border-radius:999px;font-size:var(--font-size-sm);font-weight:600;background:var(--color-blue-100, #dbeafe);color:var(--color-blue-700, #1d4ed8)}.badge-muted{background:var(--color-gray-100, #f0eeec);color:var(--color-gray-600, #57534e)}.badge-tag{background:var(--color-indigo-100, #e0e7ff);color:var(--color-indigo-600, #4f46e5)}.split-row{display:flex;gap:.4rem;align-items:center;margin-bottom:.3rem}.split-row select,.split-row input{padding:.3rem .5rem;border:1px solid var(--border-primary, #d6d3d1);border-radius:var(--radius-xs);font-size:var(--font-size-base);background:var(--bg-container, #fff);color:var(--text-primary, #1c1917)}.split-row select{flex:2}.split-row input[type=number]{flex:1;max-width:100px}.split-row input[type=text]{flex:2}.split-remove{background:none;border:none;color:var(--color-red-500);cursor:pointer;font-size:var(--font-size-xl);padding:0 .3rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-md);padding:.3rem 0}.checkbox-label input[type=checkbox]{width:1rem;height:1rem}.filter-bar-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem 0}.filter-toggle-btn{display:inline-flex;align-items:center;gap:.375rem;white-space:nowrap}.filter-toggle-btn svg{color:inherit;flex-shrink:0}.filter-count{background:var(--color-brand);color:#fff;font-size:var(--font-size-xs);padding:.125rem .375rem;border-radius:var(--radius-pill, 100px);font-weight:600;min-width:1.25rem;text-align:center}.filter-bar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-secondary, #e7e5e4);margin-bottom:.5rem}.filter-bar--collapsed{display:none}.filter-bar--expanded{display:flex}.filter-select,.filter-input{padding:.3rem .5rem;border:1px solid var(--border-primary, #d6d3d1);border-radius:var(--radius-xs);background:var(--bg-container, #fff);color:var(--text-primary, #1c1917);font-size:var(--font-size-sm);min-width:0}.filter-select{max-width:160px}.filter-input{max-width:120px}.filter-input[type=date]{max-width:140px}.search-input{flex:1;max-width:300px;padding:.35rem .6rem;border:1px solid var(--border-primary);border-radius:var(--radius-xs);background:var(--bg-container);color:var(--text-primary);font-size:var(--font-size-base)}.bulk-action-bar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.5rem .75rem;background:var(--color-blue-50, #eff6ff);border:1px solid var(--color-blue-200, #bfdbfe);border-radius:var(--radius-sm);margin-bottom:.5rem;font-size:var(--font-size-base)}.bulk-action-bar span{font-weight:600}.toast-container{position:fixed;top:1rem;right:1rem;z-index:10000;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:var(--radius-sm);font-size:var(--font-size-md);font-weight:500;color:var(--text-on-brand, #fff);box-shadow:0 4px 12px #00000026;animation:toast-in .3s ease forwards;max-width:360px;word-break:break-word}.toast.removing{animation:toast-out .25s ease forwards}.toast-dismiss{background:none;border:none;color:inherit;font-size:var(--font-size-xl);cursor:pointer;padding:0 .15rem;line-height:1;opacity:.7;margin-left:auto}.toast-dismiss:hover{opacity:1}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}.notif-bell-wrapper,.notif-bell{position:relative}.notif-badge{position:absolute;top:-4px;right:-4px;background:var(--color-destructive, #ef4444);color:var(--text-on-brand, #fff);font-size:var(--font-size-xs);font-weight:700;min-width:16px;height:16px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 3px;pointer-events:none}.notif-panel{display:none;position:absolute;top:100%;right:0;width:340px;max-height:400px;overflow-y:auto;background:var(--bg-card, #fff);border:1px solid var(--border-primary, #e5e7eb);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;z-index:200}.notif-panel.is-open{display:block}.notif-panel-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border-primary, #e5e7eb)}.notif-list{padding:.5rem}.notif-item{display:flex;gap:.5rem;align-items:flex-start;padding:.5rem;border-radius:var(--radius-xs);font-size:var(--font-size-base);line-height:1.3}.notif-item.unread{background:var(--bg-surface, #f0f9ff);font-weight:500}.notif-icon{font-size:var(--font-size-xl);flex-shrink:0}.notif-message{flex:1}.notif-actions{display:flex;gap:.25rem;flex-shrink:0}.notif-dismiss{background:none;border:none;cursor:pointer;font-size:var(--font-size-lg);opacity:.5;padding:0 2px}.notif-dismiss:hover{opacity:1}.notif-empty{text-align:center;padding:2rem;opacity:.5}.loan-payment-table{margin-top:.5rem;font-size:var(--font-size-md)}.month-compare-row{display:flex;gap:.5rem;align-items:center;padding:.3rem 1.25rem;font-size:var(--font-size-base);cursor:pointer}.month-compare-row:hover{background:var(--bg-surface)}.month-compare-row:last-child{padding-bottom:.75rem}.month-compare-label{width:100px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-compare-bars{flex:1;display:flex;flex-direction:column;gap:2px}.bar-prev{height:6px;background:var(--color-gray-300);border-radius:var(--radius-xs);transition:width .3s}.bar-cur{height:6px;background:var(--color-blue-500, #3b82f6);border-radius:var(--radius-xs);transition:width .3s}.month-compare-pct{width:50px;text-align:right;font-weight:600;font-size:var(--font-size-sm)}.health-metric{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1.25rem;border-bottom:1px solid var(--border-tertiary);font-size:var(--font-size-md)}.health-metric:last-child{border-bottom:none;padding-bottom:.75rem}.credit-util-row{display:flex;gap:.5rem;align-items:center;padding:.4rem 1.25rem;font-size:var(--font-size-base)}.credit-util-row:last-child{padding-bottom:.75rem}.credit-util-name{width:120px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.credit-util-pct{width:40px;text-align:right;font-weight:600}.member-spend-row{display:flex;gap:.5rem;align-items:center;padding:.4rem 1.25rem;font-size:var(--font-size-base)}.member-spend-row:last-child{padding-bottom:.75rem}.txn-avatar{width:30px;height:30px;border-radius:50%;background:var(--color-gray-200);color:var(--color-gray-700);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:700;flex-shrink:0}body[data-theme=dark] .txn-avatar{background:#ffffff1a;color:var(--text-secondary)}.recurring-tabs{margin-bottom:.5rem}.quick-add-fab{position:fixed;bottom:80px;right:20px;z-index:150;width:56px;height:56px;border-radius:50%;background:var(--color-brand, #3b82f6);color:var(--text-on-brand, #fff);border:none;box-shadow:0 4px 12px #0003;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s}.quick-add-fab:hover{transform:scale(1.05)}.attachments-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.attachment-item{display:flex;align-items:center;gap:.3rem;font-size:var(--font-size-base)}.attachment-thumb{width:48px;height:48px;object-fit:cover;border-radius:var(--radius-xs)}.attachment-name{word-break:break-all}.mobile-only{display:none}@media(max-width:768px){.mobile-only{display:block}.quick-add-fab.mobile-only{display:flex}}@media print{.sidebar,.sidebar-backdrop,.workspace-header,.editor-drawer,.quick-add-fab,.toast-container,.notif-panel,.bulk-action-bar,.filter-bar,.login-overlay,#loginOverlay,.widget-drag-handle,.customize-overlay,.skip-link,.mobile-nav-toggle,.global-error-banner,.card button,.card .btn-link{display:none!important}.app-shell{grid-template-columns:1fr}.workspace{margin-left:0!important;padding:0!important}.view.is-visible{display:block!important;visibility:visible!important;opacity:1!important;position:relative!important}.card{break-inside:avoid;box-shadow:none;border:1px solid #ddd;margin-bottom:.5rem}table{font-size:10pt;border-collapse:collapse;width:100%}table th,table td{border:1px solid #ccc;padding:4px 8px}body{background:#fff;color:#000}main{max-width:100%;padding:0}.amount,.currency-value{font-family:"DM Serif Display",Georgia,serif}.nav-section-links{display:block!important}@page{margin:1.5cm}}#insightsContent{padding:0 1.25rem 1rem}.insight-card{display:flex;gap:.75rem;align-items:flex-start;padding:.75rem 1rem;border-radius:var(--radius-md);background:var(--bg-container-hover);border:1px solid var(--border-secondary);margin-bottom:.5rem;font-size:var(--font-size-base);transition:background .15s ease,border-color .15s ease}.insight-card:last-child{margin-bottom:0}.insight-card:hover{background:var(--bg-surface-hover);border-color:var(--border-primary)}.insight-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;margin-top:.45rem}.insight-dot--alert{background:var(--color-red-600)}.insight-dot--warn{background:var(--color-yellow-600)}.insight-dot--info{background:var(--color-brand)}.insight-dot--note{background:var(--text-subdued)}.insight-dot--muted{background:var(--border-primary);background:var(--color-brand-subtle)}.insight-text{flex:1;line-height:1.45;color:var(--text-secondary)}.insight-text strong{color:var(--text-primary);font-weight:600}.category-suggestion{display:inline-block;padding:.15rem .4rem;margin-left:.35rem;font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-surface-hover, #f5f5f4);border:1px dashed var(--border-primary, #d6d3d1);border-radius:var(--radius-xs);vertical-align:middle}.category-suggestion-apply{display:inline-block;padding:.1rem .35rem;margin-left:.2rem;font-size:var(--font-size-xs);font-weight:600;color:var(--color-brand, #2563eb);background:transparent;border:1px solid var(--color-brand, #2563eb);border-radius:var(--radius-xs);cursor:pointer;vertical-align:middle;transition:background .15s ease,color .15s ease}.category-suggestion-apply:hover{background:var(--color-brand, #2563eb);color:var(--text-on-brand, #fff)}.global-date-range{display:none}.global-date-range.is-visible{display:flex;align-items:center}.global-date-range label{display:flex;align-items:center;gap:0;font-size:0;font-weight:600;margin:0}.global-date-range select{padding:.3125rem .625rem;font-size:var(--font-size-base);border-radius:var(--radius-xs);border:1px solid var(--border-primary);background:var(--bg-container);color:var(--text-primary);font-weight:500}.badge-warning{background:var(--color-yellow-500);color:var(--color-gray-900);padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600}.debt-input-rows{display:flex;flex-direction:column;gap:.4rem}.debt-input-row{display:flex;gap:.4rem;align-items:center}.debt-field{flex:1;padding:.35rem .5rem;font-size:var(--font-size-base);border:1px solid var(--border-color, #e2e8f0);border-radius:var(--radius-xs)}.debt-input-row button.small{padding:.25rem .5rem;font-size:var(--font-size-sm);min-width:auto}.review-stats-row{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.review-stat{display:flex;flex-direction:column;gap:.15rem;padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--bg-surface, #f8fafc);border:1px solid var(--border-color, #e2e8f0);min-width:120px;flex:1}.review-stat-label{font-size:var(--font-size-sm);opacity:.6}.review-stat-value{font-size:var(--font-size-xl);font-weight:700}.review-cat-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;font-size:var(--font-size-base)}.review-cat-row>span:first-child{width:120px;flex-shrink:0}.review-cat-bar{flex:1;height:16px;background:var(--bg-surface, #e2e8f0);border-radius:var(--radius-xs);overflow:hidden}.review-cat-fill{height:100%;background:var(--accent, #3b82f6);border-radius:var(--radius-xs);transition:width .3s}.review-cat-amt{width:130px;text-align:right;font-size:var(--font-size-sm);opacity:.8}.review-month-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}.review-month-label{width:30px;font-size:var(--font-size-sm);font-weight:600}.review-month-bars{flex:1;display:flex;flex-direction:column;gap:2px}.review-bar{height:8px;border-radius:var(--radius-xs);transition:width .3s}.review-bar.income{background:var(--color-green-500)}.review-bar.expense{background:var(--color-red-500)}.review-month-net{width:60px;text-align:right;font-size:var(--font-size-sm);font-weight:600}.registered-account-row{padding:.6rem 1.25rem;border-bottom:1px solid var(--border-tertiary)}.registered-account-row:last-child{border-bottom:none;padding-bottom:.75rem}.registered-account-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}.registered-account-name{font-weight:600;font-size:var(--font-size-md)}.registered-type-badge{display:inline-block;padding:.1rem .4rem;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:700;background:var(--color-blue-100, #dbeafe);color:var(--color-blue-700, #1d4ed8)}.registered-account-details{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:var(--font-size-base)}.registered-detail{color:var(--text-secondary)}.registered-remaining.positive{color:var(--text-positive);font-weight:600}.registered-remaining.negative{color:var(--text-negative);font-weight:600}.registered-limit-hint{font-size:var(--font-size-sm);color:var(--text-tertiary);font-style:italic}.tax-readiness-banner{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:var(--font-size-md);margin-bottom:.75rem}.tax-readiness-banner.info{background:var(--color-blue-50, #eff6ff);border:1px solid var(--color-blue-200, #bfdbfe);color:var(--color-blue-700, #1d4ed8)}.tax-readiness-banner.warning{background:var(--color-amber-50, #fffbeb);border:1px solid var(--color-amber-200, #fde68a);color:var(--color-amber-700, #b45309)}body[data-theme=dark] .tax-readiness-banner.info{background:#3b82f61a;border-color:#3b82f640;color:var(--color-blue-300, #93c5fd)}body[data-theme=dark] .tax-readiness-banner.warning{background:#f59e0b1a;border-color:#f59e0b40;color:var(--color-amber-300, #fcd34d)}.tax-readiness-banner svg{flex-shrink:0}.tax-stepper{display:flex;align-items:center;gap:0;margin-top:.75rem}.tax-step{display:flex;align-items:center;gap:.4rem;padding:.375rem .75rem;border-radius:var(--radius-pill, 9999px);font-size:var(--font-size-base);color:var(--text-subdued);background:var(--bg-container-inset);transition:background-color .2s ease,color .2s ease}.tax-step.completed{background:var(--color-green-100, #dcfce7);color:var(--color-green-700, #15803d)}body[data-theme=dark] .tax-step.completed{background:#22c55e26;color:var(--color-green-400, #4ade80)}.tax-step.active{background:var(--color-brand-light, #e8f5e9);color:var(--color-brand)}.tax-step-num{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:var(--radius-pill);background:currentColor;color:#fff;font-size:var(--font-size-xs);font-weight:700}.tax-step.completed .tax-step-num{background:var(--color-green-600, #16a34a)}.tax-step.active .tax-step-num{background:var(--color-brand)}.tax-step-label{font-weight:500}.tax-step-connector{width:1.5rem;height:2px;background:var(--border-secondary);flex-shrink:0}.tax-mapping-group{margin-bottom:1rem}.tax-mapping-group-title{font-size:var(--font-size-base);text-transform:uppercase;letter-spacing:.12em;color:var(--text-subdued);margin:0 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid var(--border-secondary)}.tax-mapping-row{padding:.5rem 0}.tax-mapping-row+.tax-mapping-row{border-top:1px solid var(--border-secondary)}.tax-mapping-header{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.35rem}.tax-mapping-label{font-size:var(--font-size-md);color:var(--text-primary)}.tax-mapping-label strong{color:var(--text-subdued);font-weight:500;font-size:var(--font-size-sm)}.tax-mapping-hint{font-size:var(--font-size-sm);color:var(--text-subdued);font-style:italic}.tax-pill-box{display:flex;flex-wrap:wrap;gap:.3rem}.tax-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;border-radius:var(--radius-pill, 9999px);font-size:var(--font-size-sm);border:1px solid var(--border-secondary);background:var(--bg-container);color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;-webkit-user-select:none;user-select:none}.tax-pill:hover{border-color:var(--color-brand)}.tax-pill.selected{background:var(--color-brand-light, #e8f5e9);border-color:var(--color-brand);color:var(--color-brand-dark, #1b5e20)}body[data-theme=dark] .tax-pill.selected{background:#4caf5026;color:var(--color-green-400, #4ade80)}.tax-pill input[type=checkbox]{display:none}.tax-pill-business{border-style:dashed;border-color:var(--color-brand)}.tax-pill-business:before{content:"◆";font-size:var(--font-size-xs);color:var(--color-brand);margin-right:.1rem}.contribution-card{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;border:1px solid var(--border-secondary);border-radius:var(--radius-md);margin-bottom:.75rem}.contribution-header{display:flex;justify-content:space-between;align-items:baseline}.contribution-name{font-weight:600;font-size:var(--font-size-md);color:var(--text-primary)}.contribution-type{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-subdued);padding:.125rem .5rem;border-radius:var(--radius-pill);background:var(--bg-container-inset)}.contribution-bar-wrap{height:8px;background:var(--bg-container-inset);border-radius:var(--radius-xs);overflow:hidden;margin:.25rem 0}.contribution-bar{height:100%;border-radius:var(--radius-xs);transition:width .3s ease}.contribution-bar.healthy{background:var(--color-brand)}.contribution-bar.warning{background:var(--color-yellow-400)}.contribution-bar.over{background:var(--color-destructive)}.contribution-stats{display:flex;justify-content:space-between;font-size:var(--font-size-base);color:var(--text-secondary)}.contribution-stats strong{color:var(--text-primary)}.contribution-remaining{font-variant-numeric:tabular-nums}.contribution-remaining.over{color:var(--text-negative);font-weight:600}.merchant-review-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border-secondary)}.merchant-review-row:last-child{border-bottom:none}.merchant-review-info{display:flex;align-items:baseline;gap:.5rem;font-size:var(--font-size-md);flex:1;min-width:0}.merchant-review-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.merchant-review-count{color:var(--text-subdued);font-size:var(--font-size-sm);white-space:nowrap}.merchant-review-amount{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.merchant-review-actions{display:flex;gap:.375rem;align-items:center;flex-shrink:0}.merchant-review-select{font-size:var(--font-size-base);padding:.25rem .5rem;max-width:180px}.tax-centre-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-secondary);margin-bottom:1.5rem}.tax-centre-tab{padding:.625rem 1rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:color .15s ease,opacity .15s ease;opacity:.75}.tax-centre-tab:hover{opacity:1;color:var(--text-primary)}.tax-centre-tab.active{color:var(--color-brand);border-bottom-color:var(--color-brand);font-weight:600;opacity:1}.tax-centre-panel{display:none}.tax-centre-panel.active{display:block}.tax-checklist{display:flex;flex-direction:column;gap:.25rem}.tax-checklist-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border-secondary);font-size:var(--font-size-md)}.tax-checklist-item:last-child{border-bottom:none}.tax-checklist-icon{width:20px;text-align:center;font-size:var(--font-size-md)}.tax-checklist-item.done .tax-checklist-icon{color:var(--color-brand);font-weight:700}.tax-checklist-item.pending .tax-checklist-icon{color:var(--text-subdued)}.tax-checklist-label{flex:1;color:var(--text-primary)}.tax-checklist-item.pending .tax-checklist-label{color:var(--text-secondary)}.tax-checklist-detail{font-size:var(--font-size-sm);color:var(--text-subdued)}.tax-slip-card{padding:.75rem;border:1px solid var(--border-secondary);border-radius:var(--radius-md);margin-bottom:.5rem;transition:background .1s ease}.tax-slip-card:hover{background:var(--bg-container-hover)}.tax-report-empty{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;text-align:center}.tax-report-empty .empty-state-icon{width:56px;height:56px;border-radius:var(--radius-pill);background:var(--bg-container-inset);display:flex;align-items:center;justify-content:center;margin-bottom:.75rem;color:var(--text-subdued)}.tax-report-empty .empty-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0 0 .35rem}.tax-report-empty .empty-state-description{font-size:var(--font-size-md);color:var(--text-secondary);margin:0;max-width:320px}#taxReportSummary{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.tax-report-meta{font-size:var(--font-size-base);color:var(--text-secondary);padding:.35rem .7rem;background:var(--bg-container-inset);border-radius:var(--radius-md)}.tax-row-computed td{font-weight:700}.tax-row-zero td{opacity:.45}.tax-separator td{border-top:2px solid var(--border-primary);padding:0;height:0}.tax-net-callout{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin-top:.75rem;border-radius:var(--radius-md);font-weight:700}.tax-net-callout.profit{background:var(--color-green-50, #f0fdf4);border:1px solid var(--color-green-200, #bbf7d0);color:var(--color-green-700, #15803d)}.tax-net-callout.loss{background:var(--color-red-50, #fef2f2);border:1px solid var(--color-red-200, #fecaca);color:var(--color-red-700, #b91c1c)}body[data-theme=dark] .tax-net-callout.profit{background:#22c55e1a;border-color:#22c55e40;color:var(--color-green-400, #4ade80)}body[data-theme=dark] .tax-net-callout.loss{background:#ef44441a;border-color:#ef444440;color:var(--color-red-400, #f87171)}.tax-net-label{font-size:var(--font-size-md)}.tax-net-amount{font-size:var(--font-size-xl)}.tax-estimator-summary{cursor:pointer;list-style:none;padding:0}.tax-estimator-summary::-webkit-details-marker{display:none}.tax-estimator-summary::marker{display:none;content:""}.tax-estimator-summary h2:before{content:"▸ ";font-size:var(--font-size-md);color:var(--text-subdued);transition:transform .2s}details[open]>.tax-estimator-summary h2:before{content:"▾ "}.tax-hint{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:var(--radius-pill);background:var(--bg-container-inset);color:var(--text-subdued);font-size:var(--font-size-xs);font-weight:700;cursor:help}.tax-estimate-highlight{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0;padding:.75rem;background:var(--bg-container-inset);border-radius:var(--radius-md)}.tax-highlight-item{display:flex;flex-direction:column;align-items:center;text-align:center}.tax-highlight-value{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary)}.tax-highlight-label{font-size:var(--font-size-sm);color:var(--text-subdued);margin-top:.15rem}.tax-estimate-table{width:100%;margin-top:.5rem}.tax-estimate-table td{padding:.4rem .75rem;font-size:var(--font-size-md)}.tax-estimate-table .tax-deduction{color:var(--color-green-600, #16a34a)}.tax-estimate-table .tax-owed{color:var(--color-red-600, #dc2626)}body[data-theme=dark] .tax-estimate-table .tax-deduction{color:var(--color-green-400, #4ade80)}body[data-theme=dark] .tax-estimate-table .tax-owed{color:var(--color-red-400, #f87171)}.subs-expand-row{background:var(--color-gray-50, #f5f5f4)}.subs-expand-row td{padding:.75rem 1rem}.subs-expand-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;align-items:end}.subs-expand-form label{display:flex;flex-direction:column;gap:.25rem;font-size:var(--font-size-base);font-weight:600}.subs-expand-form input,.subs-expand-form select{font-size:var(--font-size-md);padding:.35rem .5rem;border:1px solid var(--color-gray-300, #d6d3d1);border-radius:var(--radius-md, 6px)}.subs-change-badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-pill, 9999px);font-size:var(--font-size-sm);font-weight:700;white-space:nowrap}.subs-change-badge.increase{background:var(--color-red-100, #ffe3e3);color:var(--color-red-700, #c92a2a)}.subs-change-badge.decrease{background:var(--color-green-100, #b3e0db);color:var(--color-green-700, #006e63)}.subs-type-badge{display:inline-block;padding:.1rem .45rem;border-radius:var(--radius-pill, 9999px);font-size:var(--font-size-sm);font-weight:600;background:var(--color-gray-100, #f0eeec);color:var(--color-gray-700, #44403c)}@media(max-width:768px){.subs-col-type,.subs-col-freq,.subs-col-renewal,.subs-col-expected,.subs-col-change{display:none}}.icon-picker-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.icon-picker-cell{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:.375rem;border:2px solid var(--border-color, #333);background:var(--card-bg, #1a1a2e);color:var(--text-secondary, #aaa);cursor:pointer;transition:border-color .15s,background .15s,transform .1s;padding:0}.icon-picker-cell:hover{border-color:var(--accent, #6366f1);background:var(--hover-bg, rgba(99, 102, 241, .1));transform:scale(1.08)}.icon-picker-cell.selected{border-color:var(--accent, #6366f1);background:var(--accent, #6366f1);color:var(--text-on-brand, #fff)}.color-picker-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.color-picker-swatch{width:2rem;height:2rem;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:transform .1s,border-color .15s,box-shadow .15s;padding:0}.color-picker-swatch:hover{transform:scale(1.15)}.color-picker-swatch.selected{border-color:var(--text-on-brand, #fff);box-shadow:0 0 0 2px var(--accent, #6366f1)}.picker-label{display:block;font-size:var(--font-size-md);font-weight:600;color:var(--text-secondary, #aaa);margin-top:.75rem;margin-bottom:.35rem}.field-id-display{font-family:var(--font-mono, monospace);font-size:var(--font-size-sm);color:var(--text-muted, var(--color-gray-400, #a8a29e));margin:0 0 .5rem;padding:0;-webkit-user-select:all;user-select:all}.field-id-display:before{content:"ID: ";font-weight:600}tr[data-category-id].is-dragging{opacity:.4}tr.drag-over-nest{background:#6366f126;outline:2px dashed var(--accent, #6366f1);outline-offset:-2px}tr.drag-over-before{box-shadow:inset 0 3px 0 0 var(--accent, #6366f1)}tr.drag-over-after{box-shadow:inset 0 -3px 0 0 var(--accent, #6366f1)}.advanced-nav-toggle-wrap{margin:.4rem .5rem .25rem;padding-top:.35rem;border-top:1px solid var(--sidebar-border)}.advanced-nav-toggle{width:100%;display:inline-flex;align-items:center;gap:.4rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--sidebar-text-muted);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.02em;padding:.35rem .5rem;cursor:pointer;opacity:.7}.advanced-nav-toggle:hover{color:var(--sidebar-text);background:transparent;opacity:1}.sidebar-nav.nav-simplified .nav-section[data-advanced-nav=true]{display:none}.show-all-widgets-btn-dup-removed{margin:.2rem auto .7rem}.widget-grid.widget-grid--primary-only .dashboard-widget[data-home-tier=secondary]{display:none!important}@media(max-width:980px){.app-shell,.app-shell.sidebar-collapsed,.app-shell:not(.sidebar-collapsed){grid-template-columns:minmax(0,1fr)!important}.workspace{width:100%;min-width:0}.workspace-header{padding-left:3.5rem}.workspace-header-actions{flex-wrap:wrap}main{margin:.75rem auto 1rem;padding:0 .875rem}.app-shell.sidebar-collapsed .advanced-nav-toggle{justify-content:center}.app-shell.sidebar-collapsed .advanced-nav-toggle-label{display:none}}@media(max-width:768px){.dashboard-widget[data-widget-id=investments],.dashboard-widget[data-widget-id=goals],.dashboard-widget[data-widget-id=recurring-bills]{display:block}.widget-grid.widget-grid--primary-only .dashboard-widget[data-home-tier=secondary]{display:none!important}}.favourites-section{border-bottom:1px solid var(--border-secondary);padding-bottom:.5rem;margin-bottom:.25rem}.favourites-title{padding:.25rem .75rem;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em;color:var(--text-subdued);cursor:default}.favourites-links{display:flex;flex-direction:column}.favourites-links .fav-link{position:relative}.favourites-links .fav-link .pin-btn{opacity:0}.favourites-links .fav-link:hover .pin-btn{opacity:1}.fav-link.is-dragging{opacity:.4}.fav-link.drag-over{border-top:2px solid var(--color-brand)}.nav-link .pin-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;padding:.2rem;cursor:pointer;opacity:0;color:var(--text-subdued);transition:opacity .15s,color .15s;display:flex;align-items:center}.nav-link:hover .pin-btn{opacity:.6}.nav-link .pin-btn:hover{opacity:1;color:var(--color-brand)}.nav-link .pin-btn.is-pinned{opacity:.8;color:var(--color-brand)}.nav-link .pin-btn.is-pinned svg{fill:var(--color-brand)}.sidebar-collapsed .pin-btn{display:none!important}.scope-breakdown{font-size:var(--font-size-sm);color:var(--text-subdued);margin-top:.5rem;padding-top:.35rem;border-top:1px solid var(--border-secondary)}.card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.card-header-row h2{margin:0}.dashboard-widget[data-home-tier=secondary] .widget-card,.dashboard-widget[data-home-tier=secondary] .card{padding:0}.widget-section-divider{height:1px;background:var(--border-secondary);margin:.5rem 1.25rem}.widget-header--sub{padding-top:.5rem;padding-bottom:.5rem}.widget-header--sub h4{font-size:var(--font-size-sm);font-weight:600;margin:0;color:var(--text-secondary)}.dashboard-widget[data-home-tier=secondary] .widget-header{padding:.75rem 1rem .5rem}.dashboard-widget[data-home-tier=secondary] .widget-title-group h3{font-size:var(--font-size-base)}.txn-row.is-income{background:var(--tint-income-row);border-left:3px solid var(--color-green-400);padding-left:calc(1.25rem - 3px)}.txn-row.is-income:hover{background:var(--tint-positive)}#txnTable td{padding:.375rem .5rem}#txnTable th{padding:.375rem .5rem;font-size:var(--font-size-sm)}#txnTable td:nth-child(5){font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-weight:400}#txnTable tbody tr.income-row{background:var(--tint-income-row)}#txnTable tbody tr.income-row td:first-child{border-left:3px solid var(--color-green-400);padding-left:calc(.75rem - 3px)}#txnTable tbody tr:nth-child(2n):not(.income-row){background:var(--bg-container-hover)}.chart-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.25rem .5rem}.chart-legend .legend-item{font-size:var(--font-size-sm);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planning-empty-state{padding:1.5rem 0}.planning-empty-header{margin-bottom:1.25rem}.planning-empty-header h3{margin:0 0 .375rem;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.planning-empty-header p{margin:0;font-size:var(--font-size-base);color:var(--text-secondary);line-height:1.5;max-width:540px}.planning-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.planning-template-card{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:1rem;background:var(--bg-container-inset);border:1px solid var(--border-tertiary);border-radius:var(--radius-lg);cursor:pointer;transition:border-color .15s ease,background-color .15s ease;text-align:left;font-family:inherit;color:inherit}.planning-template-card:hover{border-color:var(--color-brand);background:var(--color-brand-subtle)}.planning-template-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--bg-surface-inset);color:var(--color-brand);margin-bottom:.375rem}.planning-template-icon svg{width:20px;height:20px}.planning-template-name{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}.planning-template-desc{font-size:var(--font-size-sm);color:var(--text-secondary)}#reviewGenerateBtn{white-space:nowrap}.breakdown-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:.5rem 0}.breakdown-stat{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:var(--bg-container-inset);border-radius:var(--radius-md);border:1px solid var(--border-secondary)}.breakdown-stat .breakdown-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-subdued)}.breakdown-stat .breakdown-value{font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:400;color:var(--text-primary);font-variant-numeric:tabular-nums}.breakdown-stat .breakdown-value.inflow{color:var(--text-positive)}.breakdown-stat .breakdown-value.outflow{color:var(--text-negative)}@media(max-width:600px){.breakdown-grid{grid-template-columns:1fr}}.category-bars-list{display:flex;flex-direction:column;gap:.75rem;padding:.5rem 0}.category-bar-row{display:grid;grid-template-columns:minmax(0,1fr) 3fr auto;align-items:center;gap:.75rem;cursor:pointer}.category-bar-row:hover .category-bar-fill{filter:brightness(1.1)}.category-bar-label{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-bar-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.category-bar-track{height:8px;background:var(--bg-surface-inset);border-radius:var(--radius-pill);overflow:hidden}.category-bar-fill{height:100%;border-radius:var(--radius-pill);transition:width .4s ease}.category-bar-amount{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);text-align:right;white-space:nowrap}.category-bar-pct{font-size:var(--font-size-xs);color:var(--text-subdued);margin-left:.25rem}.account-trends-section{margin-top:1.5rem;padding:1.5rem;background:var(--bg-container);border:1px solid var(--border-secondary);border-radius:var(--radius-lg)}.account-trends-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.account-trends-header h3{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0}.account-trends-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.account-trends-stat{text-align:center}.account-trends-stat .stat-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--text-subdued)}.account-trends-stat .stat-value{font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary)}@media(max-width:600px){.account-trends-stats{grid-template-columns:repeat(2,1fr)}}.txn-cat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.375rem;vertical-align:middle;flex-shrink:0}.filter-chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem 0}.filter-chips:empty{display:none}.filter-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;background:var(--color-brand-subtle);color:var(--color-brand);border:1px solid var(--color-brand);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background .15s}.filter-chip:hover{background:var(--color-green-100)}body[data-theme=dark] .filter-chip{background:#00897b1f;border-color:#00897b4d}body[data-theme=dark] .filter-chip:hover{background:#00897b33}.filter-chip-remove{font-size:var(--font-size-md);line-height:1;opacity:.7}.filter-chip-remove:hover{opacity:1}.txn-trends-panel{border:1px solid var(--border-secondary);border-radius:var(--radius-md);margin-bottom:1rem}.txn-trends-panel summary{padding:.75rem 1rem;font-size:var(--font-size-base);font-weight:600;color:var(--text-secondary);cursor:pointer}.txn-trends-panel[open] summary{border-bottom:1px solid var(--border-tertiary)}.txn-trends-content{padding:1rem}.txn-trends-stats{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem;font-size:var(--font-size-base)}.txn-trends-stats .stat-item{display:flex;flex-direction:column;gap:.125rem}.txn-trends-stats .stat-label{color:var(--text-subdued);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.12em}.txn-trends-stats .stat-value{font-weight:600;color:var(--text-primary)}.recurring-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);overflow:hidden}.calendar-day-header{background:var(--bg-surface-inset);padding:.5rem;text-align:center;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-subdued)}.calendar-day{background:var(--bg-container);min-height:80px;padding:.375rem;display:flex;flex-direction:column;gap:.25rem}.calendar-day.other-month{opacity:.4}.calendar-day.today{background:var(--tint-hero)}.calendar-day-number{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);margin-bottom:.125rem}.calendar-event{display:flex;align-items:center;gap:.25rem;padding:.125rem .375rem;background:var(--bg-surface-inset);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--text-primary);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-event-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.calendar-event-amount{margin-left:auto;font-weight:600;font-size:var(--font-size-xs);color:var(--text-subdued)}.recap-month-nav{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.recap-month-nav h2{margin:0;font-family:var(--font-display);font-size:var(--font-size-display);font-weight:var(--font-weight-hero)}.recap-month-nav button{background:none;border:1px solid var(--border-secondary);border-radius:var(--radius-md);padding:.375rem .75rem;cursor:pointer;color:var(--text-primary);font-size:var(--font-size-lg)}.recap-month-nav button:hover{background:var(--bg-surface-hover)}.recap-hero{background:var(--tint-hero);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between}.recap-hero-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.12em;color:var(--text-subdued);margin-bottom:.5rem}.recap-hero-value{font-family:var(--font-display);font-size:var(--font-size-display);font-weight:var(--font-weight-hero);color:var(--text-primary)}.recap-hero-range{display:flex;gap:2rem;font-size:var(--font-size-md);color:var(--text-secondary)}.recap-hero-range .range-item{display:flex;flex-direction:column;gap:.125rem;text-align:center}.recap-hero-range .range-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--text-subdued)}.asset-composition-bar{height:24px;display:flex;border-radius:var(--radius-pill);overflow:hidden;margin-bottom:.75rem}.asset-composition-bar>div{transition:width .4s ease}.asset-composition-legend{display:flex;gap:1rem;font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:1.5rem}.asset-composition-legend-item{display:flex;align-items:center;gap:.375rem}.asset-composition-legend-dot{width:8px;height:8px;border-radius:50%}.recap-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.recap-kpi-card{background:var(--bg-container-elevated);border:1px solid var(--border-tertiary);border-radius:var(--radius-md);padding:1rem;display:flex;flex-direction:column;gap:.25rem}.recap-kpi-card .kpi-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--text-subdued)}.recap-kpi-card .kpi-value{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary)}.recap-kpi-card .kpi-value.positive{color:var(--text-positive)}.recap-kpi-card .kpi-value.negative{color:var(--text-negative)}.recap-daily-chart{margin-bottom:1.5rem}.recap-daily-chart h3{font-size:var(--font-size-md);font-weight:600;margin-bottom:.75rem}.recap-section-title{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin:1.5rem 0 .75rem}.recap-account-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.recap-account-card{background:var(--bg-container-elevated);border:1px solid var(--border-tertiary);border-radius:var(--radius-md);padding:1rem}.recap-account-card .account-name{font-weight:600;font-size:var(--font-size-md);margin-bottom:.5rem}.recap-account-card .account-flows{display:flex;gap:1rem;font-size:var(--font-size-base)}.recap-account-card .flow-in{color:var(--text-positive)}.recap-account-card .flow-out{color:var(--text-negative)}.recap-top-txn{display:flex;justify-content:space-between;align-items:center;padding:.625rem 0;border-bottom:1px solid var(--border-tertiary);font-size:var(--font-size-base)}.recap-top-txn:last-child{border-bottom:none}.recap-top-txn .txn-name{color:var(--text-primary);font-weight:500}.recap-top-txn .txn-amount{font-weight:600}.recap-top-txn .txn-amount.income{color:var(--text-positive)}.recap-top-txn .txn-amount.expense{color:var(--text-negative)}@media(max-width:600px){.recap-kpi-grid{grid-template-columns:repeat(2,1fr)}.recap-hero{flex-direction:column;gap:1rem;text-align:center}.recap-account-cards{grid-template-columns:1fr}}.business-table{width:100%;border-collapse:collapse}.business-table th{font-size:var(--font-size-xs);font-weight:600;color:var(--text-subdued);text-transform:uppercase;letter-spacing:.12em;padding:.5rem;border-bottom:1px solid var(--border-secondary);text-align:left}.business-table td{padding:.625rem .5rem;font-size:var(--font-size-md);border-bottom:1px solid var(--border-secondary);vertical-align:middle}.business-table tbody tr{cursor:pointer;transition:background .1s ease}.business-table tbody tr:hover{background:var(--bg-container-hover)}.biz-color-dot{width:10px;height:10px;border-radius:var(--radius-pill);display:inline-block}.biz-name-cell{font-weight:600;color:var(--text-primary)}.biz-chevron{color:var(--text-subdued);font-size:var(--font-size-sm);text-align:right}.biz-form-section{margin-bottom:1.25rem}.biz-form-section-title{font-size:var(--font-size-xs);font-weight:600;color:var(--text-subdued);text-transform:uppercase;letter-spacing:.12em;margin:0 0 .75rem;padding-bottom:.375rem;border-bottom:1px solid var(--border-secondary)}.biz-form-section-inset{background:var(--bg-container-inset);border:1px solid var(--border-secondary);border-radius:var(--radius-md);padding:1rem}.field-optional{font-size:var(--font-size-xs);font-weight:400;color:var(--text-subdued);font-style:italic}.biz-member-checks{display:flex;flex-direction:column;gap:.375rem;margin-top:.25rem}.biz-member-check{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-md);color:var(--text-primary);cursor:pointer}.biz-member-check input[type=checkbox]{margin:0}.biz-linked-accounts-list{list-style:none;padding:0;margin:0}.biz-linked-account{display:flex;justify-content:space-between;align-items:center;padding:.375rem 0;font-size:var(--font-size-md);border-bottom:1px solid var(--border-secondary)}.biz-linked-account:last-child{border-bottom:none}.biz-linked-account-name{color:var(--text-primary)}.biz-linked-account-balance{color:var(--text-secondary);font-variant-numeric:tabular-nums}.account-trends-stats--empty{display:none}.account-trends-empty{padding:2rem 1.5rem;text-align:center;color:var(--text-secondary);font-size:var(--font-size-md)}#newTransactionBtn{background:var(--color-brand);color:#fff;border-color:var(--color-brand)}#newTransactionBtn:hover{background:var(--color-brand-hover);border-color:var(--color-brand-hover)}.nav-section-title,.net-worth-label,.tax-mapping-group-title,.breakdown-stat .breakdown-label,.account-trends-stat .stat-label,.contribution-type{font-family:var(--font-serif)}
