.bottom-nav.svelte-1vmzwhx{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:stretch;background:linear-gradient(to bottom,rgba(var(--color-bg-rgb),0) 0%,rgba(var(--color-bg-rgb),.95) 40%,var(--color-bg) 100%);z-index:var(--z-nav);padding-bottom:env(safe-area-inset-bottom,0);transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1)}.bottom-nav.hidden.svelte-1vmzwhx{transform:translateY(100%);opacity:0;pointer-events:none}.tab.svelte-1vmzwhx{flex:1;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:20px var(--space-sm)}.tab-pill.svelte-1vmzwhx{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);transition:color .15s ease-in-out}.tab.active.svelte-1vmzwhx .tab-pill:where(.svelte-1vmzwhx){color:var(--color-text)}.tab.active[data-testid=nav-dashboard].svelte-1vmzwhx .tab-pill:where(.svelte-1vmzwhx) svg,.tab.active[data-testid=nav-transactions].svelte-1vmzwhx .tab-pill:where(.svelte-1vmzwhx) svg,.tab.active[data-testid=nav-budgets].svelte-1vmzwhx .tab-pill:where(.svelte-1vmzwhx) svg,.tab.active[data-testid=nav-more].svelte-1vmzwhx .tab-pill:where(.svelte-1vmzwhx) svg{stroke-width:2.8px}.add-slot.svelte-1vmzwhx{flex:1;display:flex;align-items:center;justify-content:center}.add-btn.svelte-1vmzwhx{width:56px;height:36px;border-radius:var(--radius-base);background:var(--color-text);color:var(--color-bg);border:none;font-size:var(--font-size-xl);font-weight:var(--font-weight-regular);cursor:pointer;box-shadow:none}.offline-banner.svelte-1czrojj{position:fixed;top:0;left:0;right:0;z-index:900;padding:var(--space-sm) var(--space-lg);background:var(--color-surface-alt);color:var(--color-text);border-bottom:1px solid var(--color-border);font-family:var(--font-sans);font-size:var(--font-size-md);letter-spacing:0;text-align:center}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans, system-ui, sans-serif)}.toast-container.svelte-90o7co{position:fixed;bottom:80px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--space-sm);z-index:1000;width:min(400px,90vw)}.toast.svelte-90o7co{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);font-family:var(--font-sans);font-size:var(--font-size-md);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-lg)}.toast-error.svelte-90o7co,.toast-success.svelte-90o7co{border-color:var(--color-border-strong);color:var(--color-text)}.toast-close.svelte-90o7co{background:transparent;border:none;color:inherit;font-size:var(--font-size-lg);cursor:pointer;opacity:.6;flex-shrink:0}@font-face{font-family:Inter;src:url(/assets/inter-regular-CtE918lm.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/assets/inter-700-B4l6e6tn.woff2) format("woff2");font-weight:500 700;font-style:normal;font-display:swap}@font-face{font-family:Fira Code;src:url(/assets/fira-code-regular-DGosTW8U.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Fira Code;src:url(/assets/fira-code-700-aa0XcSUK.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--space-0: 0px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--space-nav-bottom: 96px;--space-section: 88px;--size-monogram-sm: 16px;--size-monogram-md: 24px;--size-monogram-lg: 32px;--size-monogram-xl: 40px;--font-mono: "Fira Code", SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-sans: "Inter", system-ui, sans-serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-display: 32px;--font-size-display-lg: 40px;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1;--line-height-normal: 1.2;--radius-sm: 8px;--radius-md: 11px;--radius-lg: 18px;--radius-base: 9999px;--stroke-thin: .7px;--z-nav: 100;--z-modal: 1000;--leading-icon-display: inline-flex;--size-leading-sm: 16px;--size-leading-md: 24px;--size-leading-lg: 32px;--size-leading-xl: 40px;--color-leading-default: var(--color-text);--color-leading-credit: var(--color-terminal-red);--color-leading-savings: var(--color-terminal-green)}html[data-theme=light],:root:not([data-theme=dark]){color-scheme:light;--color-bg-rgb: 250, 250, 250;--color-bg: rgb(var(--color-bg-rgb));--color-surface: #ffffff;--color-surface-alt: #f4f4f5;--c-fg-rgb: 0, 0, 0;--color-text-secondary: #525252;--color-text-muted: #737373;--color-border: #e5e5e5;--color-border-strong: #d4d4d4;--color-accent-warm: #525252;--color-danger: #525252;--color-success: #525252;--color-success-strong: #525252;--color-card-bg-solid: #f2f2f2}html[data-theme=dark]{color-scheme:dark;--color-bg-rgb: 9, 9, 9;--color-bg: rgb(var(--color-bg-rgb));--color-surface: #171717;--color-surface-alt: #1e1e1e;--c-fg-rgb: 255, 255, 255;--color-text-secondary: #a3a3a3;--color-text-muted: #737373;--color-border: #262626;--color-border-strong: #404040;--color-accent-warm: #a3a3a3;--color-danger: #a3a3a3;--color-success: #a3a3a3;--color-success-strong: #a3a3a3;--color-card-bg-solid: #111111}:root,html{--c-fg: rgb(var(--c-fg-rgb));--c-fg-03: rgba(var(--c-fg-rgb), .03);--c-fg-08: rgba(var(--c-fg-rgb), .08);--c-fg-15: rgba(var(--c-fg-rgb), .15);--c-fg-30: rgba(var(--c-fg-rgb), .3);--c-fg-40: rgba(var(--c-fg-rgb), .4);--c-fg-60: rgba(var(--c-fg-rgb), .6);--c-fg-80: rgba(var(--c-fg-rgb), .8);--color-text: var(--c-fg);--color-text-disabled: var(--c-fg-30);--color-accent: var(--c-fg);--color-terminal-red: #ff5f56;--color-terminal-yellow: #ffbd2e;--color-terminal-green: #27c93f;--c-shadow-40: transparent;--c-shadow-60: transparent;--shadow-lg: none}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.page{min-height:100vh;background:var(--color-bg);color:var(--color-text);padding-top:var(--page-padding-top, calc(var(--space-xl) + env(safe-area-inset-top, var(--space-0))));padding-left:calc(var(--space-xl) + env(safe-area-inset-left,var(--space-0)));padding-right:calc(var(--space-xl) + env(safe-area-inset-right,var(--space-0)));padding-bottom:var(--page-padding-bottom, calc(var(--space-nav-bottom) + env(safe-area-inset-bottom, var(--space-0))));font-family:var(--font-sans);overscroll-behavior-x:none}.text-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.text-sans{font-family:var(--font-sans)}.text-xs{font-size:var(--font-size-xs);letter-spacing:0}.text-sm{font-size:var(--font-size-sm);letter-spacing:0}.text-base{font-size:var(--font-size-md)}.text-lg{font-size:var(--font-size-xl)}.text-xl{font-size:var(--font-size-display)}.text-muted{color:var(--c-fg-40)}.text-dim{color:var(--c-fg-60)}.text-disabled{color:var(--c-fg-30)}.row-base{display:flex;align-items:center;gap:var(--space-md);width:100%;background:transparent;border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);padding:var(--space-sm) var(--space-0);min-height:48px;box-sizing:border-box;cursor:pointer;text-align:left;font:inherit;font-weight:var(--font-weight-regular);transition:background .1s ease}.row-base:active{background:var(--color-surface-alt);border-radius:var(--radius-lg)}.row-leading{display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:stretch;min-width:24px}.row-content{flex:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-width:0}.ghost-btn{background:var(--color-bg);border:1px solid var(--color-border-strong);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);letter-spacing:0;padding:var(--space-0) var(--space-lg);height:36px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-base)}.ghost-btn:disabled{opacity:.4;cursor:default}.ghost-btn.active{border-color:var(--color-text);background:var(--color-text);color:var(--color-bg)}.section-label{font-family:var(--font-sans);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);letter-spacing:0;color:var(--color-text-muted);padding:var(--space-xl) var(--space-0) var(--space-md)}.field-label{font-family:var(--font-sans);font-size:var(--font-size-md);letter-spacing:0;color:var(--color-text-muted)}.divider{border-bottom:1px solid var(--color-border)}.link-btn{background:transparent;border:none;color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--font-size-md);letter-spacing:0;text-decoration:underline;cursor:pointer;padding:var(--space-xs) var(--space-xs)}.link-btn:active{background:var(--c-fg-08)}*{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}button,input,select,textarea,a,.sheet-item{font-size:var(--font-size-lg);outline:none;font-family:var(--font-sans)}input,textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}button:active,.sheet-item:active,.link-btn:active,.ghost-btn:active{background:var(--color-surface-alt)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.w-full{width:100%}.relative{position:relative}.absolute{position:absolute}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-12{gap:var(--space-md)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-head{display:flex;align-items:center;justify-content:space-between;margin:12px 0 0}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal)}.sheet{width:min(500px,100%);max-height:80vh;background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-sm) var(--space-0);display:flex;flex-direction:column;gap:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:none;overflow:hidden}.sheet-title{font-family:var(--font-sans);font-size:var(--font-size-md);color:var(--color-text-muted);letter-spacing:0;margin:16px 16px 8px}.sheet-item{display:block;width:100%;background:transparent;border:none;color:var(--color-text);font-size:var(--font-size-md);padding:var(--space-md) var(--space-lg);text-align:left;cursor:pointer;border-bottom:1px solid var(--color-border);transition:background .2s}.sheet-item:active{background:var(--color-surface-alt)}.sheet-item:last-child{border-bottom:none}.sheet-item-indent{padding-left:calc(var(--space-lg) + 12px);color:var(--color-text-secondary)}.sheet-empty{padding:var(--space-lg);text-align:center;color:var(--c-fg-40);font-family:var(--font-sans);font-size:var(--font-size-md)}.skeleton{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:block}.skeleton-text{height:14px;width:100%}.skeleton-text.sm{width:40%}.skeleton-text.md{width:60%}.skeleton-text.lg{width:85%}.skeleton-circle{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:var(--leading-icon-display)}.skeleton-rect{width:100%;height:100%}.skeleton-circle-sm{width:32px;height:32px;border-radius:50%}.skeleton-circle-md{width:36px;height:36px;border-radius:50%}.skeleton-circle-lg{width:64px;height:64px;border-radius:50%}.skeleton-line-flex{flex:1;height:16px}.skeleton-line-title{height:16px}.skeleton-line-sub{height:12px}.skeleton-line-tiny{width:20px;height:16px}.skeleton-line-short{width:60px}.skeleton-line-label{width:40px;height:10px}.skeleton-line-name{width:80px;height:14px;margin-top:var(--space-xs)}.skeleton-line-amount{width:80px;height:16px}.skeleton-hero-value{width:60%;height:44px}.skeleton-summary-value{width:60%;height:48px;margin-bottom:var(--space-xl)}.skeleton-divider{width:100%;height:2px;margin-bottom:var(--space-xl)}.skeleton-chart{width:100%;height:180px;border-radius:var(--radius-md)}.flex-fill{flex:1;min-width:0}.stack-fill{flex:1;display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.stack-fill-center{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}.center-stack-skeleton{padding:var(--space-xl) var(--space-0);display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.mt-2xl{margin-top:var(--space-2xl)}.mx-auto{margin-right:auto;margin-left:auto}.card-padding-lg{padding:var(--space-lg)}.header-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--c-fg-15);color:var(--c-fg-60);cursor:pointer;border-radius:var(--radius-base);transition:all .2s ease;padding:0}.header-btn:hover{background:var(--c-fg-03);color:var(--color-text);border-color:var(--c-fg-30)}.header-btn:disabled{opacity:.4;cursor:not-allowed}.header-btn.active{background:var(--c-fg-08);color:var(--color-text);border-color:var(--c-fg-60)}.header-btn.danger{color:var(--color-accent-warm);border-color:var(--color-border-strong)}.header-btn.danger:hover{background:rgba(var(--c-fg-rgb),.04)}.header-btn.primary{background:var(--c-fg);color:var(--color-bg);border-color:var(--c-fg)}.header-btn.primary:hover:not(:disabled){background:var(--c-fg-80);border-color:var(--c-fg-80);color:var(--color-bg)}.header-btn.primary:disabled{opacity:.3;background:var(--c-fg-30);border-color:transparent;color:var(--color-bg)}.dashboard-card{display:flex;flex-direction:column;background:var(--color-card-bg-solid, var(--c-fg-03));border:var(--stroke-thin) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);transition:background-color .3s ease,border-color .3s ease}.dashboard-card.list-card{padding-top:4px;padding-bottom:4px}.dashboard-card .row-base:last-child,.dashboard-card .cat-row:last-of-type,.dashboard-card .transaction-row-container:last-child .transaction-row{border-bottom:none}
