:root{--palette-white:#fff;--palette-white-soft:#f8f8f8;--palette-white-mute:#f2f2f2;--palette-black:#181818;--palette-black-soft:#222;--palette-black-mute:#282828;--palette-indigo:#2c3e50;--palette-divider-light-1:#3c3c3c4a;--palette-divider-light-2:#3c3c3c1f;--palette-divider-dark-1:#545454a6;--palette-divider-dark-2:#5454547a;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-background:var(--palette-white);--color-background-soft:var(--palette-white-soft);--color-background-mute:var(--palette-white-mute);--color-surface:#fff;--color-surface-hover:#e5e7eb;--color-border:var(--palette-divider-light-2);--color-border-hover:var(--palette-divider-light-1);--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-subdued:#dbeafe;--color-primary-focus-ring:#3b82f64d;--color-primary-focus-ring-subtle:#3b82f61a;--color-primary-soft:var(--color-primary-focus-ring-subtle);--color-on-primary:#fff;--color-focus-ring:var(--color-primary);--color-hover:var(--palette-divider-light-1);--color-heading:var(--palette-indigo);--color-text:var(--palette-indigo);--color-text-secondary:#6b7280;--color-text-muted:#6f757f;--color-input-bg:#fff;--color-input-border:#d1d5db;--color-income:#15803d;--color-spending:#c2410c;--color-danger:#9b1e1e;--color-danger-hover:#7f1d1d;--color-danger-text:#dc2626;--color-danger-bg:#e53e3e1a;--color-danger-border:#e53e3e4d;--color-danger-bg-hover:#e53e3e33;--color-danger-border-hover:#e53e3e80;--color-success:#48bb78;--color-success-bg:#48bb7814;--color-success-border:#48bb784d;--color-warning:#c2410c;--color-overlay:#00000080;--color-overlay-heavy:#0009;--chart-1:#5b8def;--chart-2:#6fcf97;--chart-3:#f2994a;--chart-4:#bb6bd9;--chart-5:#56ccf2;--chart-6:#f2c94c;--chart-7:#e06b9f;--chart-8:#8b9dc3;--chart-grid:#80808026;--chart-neutral:#9ca3af;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:1.75rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-pill:9999px;--shadow-sm:0 2px 8px #0000001a;--shadow-md:0 4px 12px #00000026;--shadow-lg:0 10px 25px #0000004d;--shadow-focus:0 0 0 3px var(--color-primary-focus-ring);--z-dropdown:10;--z-header:100;--z-sidebar:1000;--z-modal:1200;--duration-fast:.15s;--duration-base:.2s}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:var(--palette-black);--color-background-soft:var(--palette-black-soft);--color-background-mute:var(--palette-black-mute);--color-surface:#1f2937;--color-surface-hover:#4b5563;--color-border:var(--palette-divider-dark-2);--color-border-hover:var(--palette-divider-dark-1);--color-primary-hover:#1e40af;--color-primary-subdued:#1e3a5f;--color-primary-focus-ring-subtle:#3b82f626;--color-focus-ring:#60a5fa;--color-hover:var(--palette-divider-dark-1);--color-heading:var(--palette-white);--color-text:#e5e7eb;--color-text-secondary:#9ca3af;--color-text-muted:#8b95a1;--color-input-bg:#1f2937;--color-input-border:#4b5563;--color-income:#4ade80;--color-spending:#fb923c;--color-danger:#c44;--color-danger-hover:#b91c1c;--color-danger-text:#fca5a5;--shadow-sm:0 2px 8px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 10px 25px #0009}}*,:before,:after{box-sizing:border-box;font-weight:var(--font-weight-regular);margin:0}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color var(--duration-base), background-color var(--duration-base);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.6}input,button,select,textarea{font-family:inherit;font-size:inherit}.form{gap:var(--space-4);flex-direction:column;display:flex}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.required:after{content:" *";color:var(--color-danger-text)}.form-note{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.form-input,.filter-input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-input-border);border-radius:var(--radius-md);background-color:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-sm);transition:border-color var(--duration-fast), box-shadow var(--duration-fast)}.form-input:focus,.filter-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.form-input:disabled{opacity:.6;cursor:not-allowed}.form-input::placeholder,.filter-input::placeholder{color:var(--color-text-muted)}.form-input.error{border-color:var(--color-danger-text)}.form-error{color:var(--color-danger-text);font-size:var(--font-size-sm)}.filter-input{width:100%;max-width:400px}@media not (min-width:640px){.form-row{grid-template-columns:1fr}}#app{font-weight:var(--font-weight-regular);margin:0 auto}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:36px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast);background:0 0;border:1px solid #0000;line-height:1.25;text-decoration:none;display:inline-flex;position:relative}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-on-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border-hover)}.btn--secondary:hover:not(:disabled),.btn--ghost:hover:not(:disabled){background:var(--color-surface-hover)}.btn--danger{background:var(--color-danger);color:var(--color-on-primary)}.btn--danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn--sm{min-height:30px;padding:var(--space-1) var(--space-3)}.segmented{border:1px solid var(--color-border-hover);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.segmented>button,.segmented>label{padding:var(--space-1) var(--space-3);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast), color var(--duration-fast);border:none}.segmented>*+*{border-left:1px solid var(--color-border-hover)}.segmented>button:hover,.segmented>label:hover{background:var(--color-surface-hover);color:var(--color-text)}.segmented>button[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary)}.segmented>label:has(input:checked){background:var(--color-primary);color:var(--color-on-primary)}.segmented>label:has(input:focus-visible){outline:2px solid var(--color-focus-ring);outline-offset:-2px}.loading-spinner{border:3px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}.btn[aria-busy=true]>:not(.loading-spinner){visibility:hidden}.btn .loading-spinner{border-width:2px;width:16px;height:16px;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes spin{to{transform:rotate(360deg)}}.nav-icon[data-v-2f7e7834],.nav-icon[data-v-e88dd04e],.nav-icon[data-v-496b0468],.nav-icon[data-v-5fb59771],.nav-icon[data-v-e3ce5199]{stroke-width:1.5px;flex-shrink:0;width:2rem;height:2rem}.sidebar-container[data-v-29d10dde]{--hamburger-size:62px;z-index:var(--z-sidebar);position:relative}.hamburger-btn[data-v-29d10dde]{background:var(--color-background);z-index:var(--z-dropdown);border-radius:var(--radius-lg);width:var(--hamburger-size);height:var(--hamburger-size);cursor:pointer;transition:background-color var(--duration-base);box-shadow:var(--shadow-sm);border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:fixed}.hamburger-btn[data-v-29d10dde]:hover{background:var(--color-surface-hover)}.hamburger-line[data-v-29d10dde]{background:var(--color-text);width:20px;height:2px;transition:transform var(--duration-base), opacity var(--duration-base)}.hamburger-btn.sidebar-open .hamburger-line[data-v-29d10dde]:first-child{transform:rotate(45deg)translate(3px,3px)}.hamburger-btn.sidebar-open .hamburger-line[data-v-29d10dde]:nth-child(2){opacity:0}.hamburger-btn.sidebar-open .hamburger-line[data-v-29d10dde]:nth-child(3){transform:rotate(-45deg)translate(6px,-6px)}.sidebar[data-v-29d10dde]{background:var(--color-surface);border-right:1px solid var(--color-border);width:64px;height:100vh;transition:width var(--duration-base) ease;flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar.expanded[data-v-29d10dde]{width:280px}.sidebar-header[data-v-29d10dde]{padding:var(--space-4);padding-left:calc(var(--hamburger-size) + var(--space-4));border-bottom:1px solid var(--color-border);background-color:var(--color-background);min-height:64px;color:var(--color-text);align-items:center;display:flex}.sidebar-title[data-v-29d10dde]{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);white-space:nowrap}.sidebar-content[data-v-29d10dde]{padding:var(--space-4) 0;background-color:var(--color-background);flex:1;overflow-y:auto}.nav-section[data-v-29d10dde]{margin-bottom:var(--space-8)}.nav-item[data-v-29d10dde]{padding:var(--space-3) var(--space-4);transition:background-color var(--duration-base), border-color var(--duration-base), color var(--duration-base);margin:0 var(--space-2);border-radius:var(--radius-md);min-height:44px;color:var(--color-text);align-items:center;text-decoration:none;display:flex}.nav-item[data-v-29d10dde]:hover{background:var(--color-surface-hover);color:var(--color-text)}.nav-item.router-link-active[data-v-29d10dde]{background:var(--color-primary-subdued);color:var(--color-text);font-weight:var(--font-weight-medium)}.nav-item.collapsed[data-v-29d10dde]{padding:var(--space-3);justify-content:center}.nav-text[data-v-29d10dde]{margin-left:var(--space-3);white-space:nowrap;font-size:var(--font-size-sm)}.sidebar-overlay[data-v-29d10dde]{background:var(--color-overlay-heavy);position:fixed;top:0;bottom:0;left:0;right:0}@media not (min-width:768px){.sidebar[data-v-29d10dde]{width:280px;transform:translate(-100%)}.sidebar.expanded[data-v-29d10dde]{transform:translate(0)}.hamburger-btn[data-v-29d10dde]{background:var(--color-surface);border:1px solid var(--color-border)}.hamburger-line[data-v-29d10dde]{background:var(--color-text)}}.sign-out-icon[data-v-0afd0c58]{width:1rem;height:1rem}.app-header[data-v-1340db6e]{border-bottom:1px solid var(--color-border);background-color:var(--color-background);height:64px;z-index:var(--z-header);align-items:center;display:flex;position:sticky;top:0}.header-content[data-v-1340db6e]{justify-content:space-between;align-items:center;width:100%;display:flex}.header-left[data-v-1340db6e]{flex:1}.page-title[data-v-1340db6e]{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;margin-left:var(--space-4)}.header-right[data-v-1340db6e]{align-items:center;gap:var(--space-4);display:flex}.user-info[data-v-1340db6e]{align-items:center;display:flex}.user-name[data-v-1340db6e]{font-size:var(--font-size-md);color:var(--color-text);font-weight:var(--font-weight-medium)}.header-btn[data-v-1340db6e]{margin-right:var(--space-4)}@media not (min-width:768px){.app-header[data-v-1340db6e]{padding-left:62px}}@media not (min-width:640px){.user-name[data-v-1340db6e]{display:none}.header-btn[data-v-1340db6e]{padding:var(--space-2)}.header-btn span[data-v-1340db6e]{display:none}.page-title[data-v-1340db6e]{font-size:var(--font-size-lg)}.header-right[data-v-1340db6e]{gap:var(--space-2)}}.has-staging-banner[data-v-afb32891]{--staging-banner-height:28px}.staging-banner[data-v-afb32891]{background:var(--color-warning);color:var(--color-on-primary);height:var(--staging-banner-height);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.1em;justify-content:center;align-items:center;display:flex}.has-staging-banner[data-v-afb32891] .sidebar{top:var(--staging-banner-height);height:calc(100vh - var(--staging-banner-height))}.app-layout[data-v-afb32891]{display:flex}.main-content[data-v-afb32891]{background:var(--color-background);transition:margin-left var(--duration-base) ease;flex-direction:column;flex:1;min-width:0;margin-left:64px;display:flex}.page-content[data-v-afb32891]{padding:var(--space-4);flex:1;overflow-y:auto}.page-content[data-v-afb32891]>:first-child{max-width:1400px;margin-left:auto;margin-right:auto}.auth-layout[data-v-afb32891],.loading-container[data-v-afb32891]{background:var(--color-background);justify-content:center;align-items:center;min-height:100vh;display:flex}.has-staging-banner .auth-layout[data-v-afb32891],.has-staging-banner .loading-container[data-v-afb32891]{min-height:calc(100vh - var(--staging-banner-height))}@media not (min-width:768px){.main-content[data-v-afb32891]{margin-left:0}}@media not (min-width:640px){.page-content[data-v-afb32891]{padding:var(--space-2)}}
