:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh}:root{--bp-mobile: 480px;--bp-tablet: 768px;--bp-desktop: 1024px;--bp-wide: 1440px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font-sans: "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--font-display: var(--text-3xl);--font-title: var(--text-xl);--font-body: var(--text-base);--font-small: var(--text-sm);--bg-main: #f7f7f8;--bg-sunken: #f1f1f3;--surface: #ffffff;--surface-solid: #ffffff;--surface-hover: #f6f6f7;--surface-active: #efeff1;--text-main: #18181b;--text-strong: #09090b;--text-muted: #71717a;--text-subtle: #a1a1aa;--text-inverse: #ffffff;--border: #e5e5e8;--border-strong: #d6d6da;--border-focus: var(--accent);--accent: #4f46e5;--accent-hover: #4338ca;--accent-active: #3730a3;--accent-soft: #eef2ff;--accent-soft-hover: #e3e8ff;--accent-contrast: #ffffff;--accent-ring: rgba(79, 70, 229, .18);--primary: var(--accent);--primary-hover: var(--accent-hover);--primary-light: var(--accent-soft);--primary-gradient: var(--accent);--secondary: #0f766e;--secondary-gradient: var(--secondary);--success: #15803d;--success-bg: #f0fdf4;--success-border: #bbf7d0;--error: #dc2626;--error-bg: #fef2f2;--error-border: #fecaca;--error-text: #b91c1c;--warning: #b45309;--warning-bg: #fffbeb;--warning-border: #fde68a;--info: #0369a1;--info-bg: #f0f9ff;--chart-1: #4f46e5;--chart-2: #0d9488;--chart-3: #c2410c;--chart-4: #7c3aed;--chart-5: #0369a1;--chart-track: #ececef;--shadow-xs: 0 1px 2px rgba(9, 9, 11, .04);--shadow-sm: 0 1px 2px rgba(9, 9, 11, .05), 0 1px 3px rgba(9, 9, 11, .04);--shadow-md: 0 2px 4px -1px rgba(9, 9, 11, .05), 0 6px 14px -4px rgba(9, 9, 11, .08);--shadow-lg: 0 4px 8px -2px rgba(9, 9, 11, .06), 0 16px 32px -8px rgba(9, 9, 11, .12);--shadow-glow: none;--space-3xs: .125rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-full: 999px;--card-radius: var(--radius-xl);--input-radius: var(--radius-md);--button-radius: var(--radius-md);--max-width: 1120px;--header-height: 56px;--sidebar-width: 240px;--nav-height-mobile: 60px;--nav-height-tablet: 48px;--ease: cubic-bezier(.2, 0, .1, 1);--duration-fast: .12s;--duration: .18s;--transition: color var(--duration) var(--ease), background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease), transform var(--duration) var(--ease), opacity var(--duration) var(--ease);--backdrop-blur: saturate(180%) blur(12px);color-scheme:light}[data-theme=dark]{--bg-main: #09090b;--bg-sunken: #0d0d10;--surface: #131316;--surface-solid: #131316;--surface-hover: #1a1a1e;--surface-active: #212126;--text-main: #f4f4f5;--text-strong: #ffffff;--text-muted: #a1a1aa;--text-subtle: #71717a;--border: #26262b;--border-strong: #34343b;--accent: #6366f1;--accent-hover: #7c7ff5;--accent-active: #8b8dfa;--accent-soft: rgba(99, 102, 241, .14);--accent-soft-hover: rgba(99, 102, 241, .22);--accent-contrast: #ffffff;--accent-ring: rgba(99, 102, 241, .32);--success: #4ade80;--success-bg: rgba(34, 197, 94, .12);--success-border: rgba(34, 197, 94, .28);--error: #f87171;--error-bg: rgba(248, 113, 113, .12);--error-border: rgba(248, 113, 113, .28);--error-text: #fca5a5;--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .12);--warning-border: rgba(251, 191, 36, .28);--info: #38bdf8;--info-bg: rgba(56, 189, 248, .12);--chart-1: #818cf8;--chart-2: #2dd4bf;--chart-3: #fb923c;--chart-4: #c084fc;--chart-5: #38bdf8;--chart-track: #26262b;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5), 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 2px 4px -1px rgba(0, 0, 0, .5), 0 6px 14px -4px rgba(0, 0, 0, .5);--shadow-lg: 0 4px 8px -2px rgba(0, 0, 0, .5), 0 16px 32px -8px rgba(0, 0, 0, .6);color-scheme:dark}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.55;letter-spacing:-.006em;background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;transition:background-color var(--duration) var(--ease),color var(--duration) var(--ease)}::selection{background:var(--accent-soft);color:var(--text-main)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}h1,h2,h3,h4,h5{color:var(--text-strong);font-weight:600;letter-spacing:-.02em;line-height:1.25;text-wrap:balance}h1{font-size:var(--text-2xl);letter-spacing:-.028em}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}h4{font-size:var(--text-base)}p{text-wrap:pretty}a{color:var(--accent);text-decoration:none;transition:var(--transition)}a:hover{color:var(--accent-hover)}small{font-size:var(--text-xs)}code,kbd,pre{font-family:var(--font-mono);font-size:.9em}.icon{flex-shrink:0;display:inline-block;vertical-align:-.125em}.text-muted{color:var(--text-muted)}.text-error{color:var(--error)}.text-success{color:var(--success)}.glass{background:var(--surface);border:1px solid var(--border)}.visually-hidden{position:absolute;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);padding:0;border:0;height:1px;width:1px;overflow:hidden;white-space:nowrap}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-md);color:var(--text-muted);font-size:var(--text-sm)}.loading-spinner{width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.loading-text{color:var(--text-muted)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.fade-in{animation:fadeIn var(--duration) var(--ease) both}.skeleton{background:linear-gradient(90deg,var(--surface-hover) 25%,var(--surface-active) 37%,var(--surface-hover) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm);color:transparent}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}input,select,textarea{font-family:inherit;font-size:var(--text-base);color:var(--text-main)}.form-group{margin-bottom:var(--space-md);text-align:left}.form-group label,.form-label{display:block;font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-2xs);color:var(--text-main)}.form-label{color:var(--text-muted)}.form-group input,.form-group textarea,.form-group select,input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=date],input[type=time],input[type=datetime-local],select,textarea{width:100%;padding:.5rem .75rem;min-height:36px;border:1px solid var(--border);border-radius:var(--input-radius);background-color:var(--surface-solid);color:var(--text-main);transition:var(--transition);box-shadow:var(--shadow-xs);appearance:none}textarea{min-height:84px;resize:vertical;line-height:1.55}select{padding-right:2rem;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9.5 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .55rem center;background-size:15px;cursor:pointer}[data-theme=dark] select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9.5 6 6 6-6'/%3E%3C/svg%3E")}input::placeholder,textarea::placeholder{color:var(--text-subtle)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}input:disabled,select:disabled,textarea:disabled{background-color:var(--bg-sunken);color:var(--text-subtle);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;padding:0;accent-color:var(--accent);cursor:pointer;box-shadow:none;appearance:auto}input[type=file]{padding:0;border:none;box-shadow:none;background:none;min-height:0}.form-hint{font-size:var(--text-xs);color:var(--text-muted);margin-top:calc(var(--space-2xs) * -1 + var(--space-xs))}.form-grid{display:grid;gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-grid.tight{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-xs);margin-top:var(--space-md)}.create-form{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-md);align-items:center}.error-message{display:flex;align-items:center;gap:var(--space-xs);background-color:var(--error-bg);color:var(--error-text);padding:.625rem .75rem;border-radius:var(--input-radius);margin-bottom:var(--space-md);font-size:var(--text-sm);border:1px solid var(--error-border);text-align:left}button{cursor:pointer;font-family:inherit;font-size:var(--text-base);color:var(--text-main);transition:var(--transition)}button:disabled{cursor:not-allowed}.btn-primary,.btn-secondary,.btn-ghost,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:36px;padding:.5rem .875rem;border-radius:var(--button-radius);font-size:var(--text-base);font-weight:500;line-height:1.2;white-space:nowrap;border:1px solid transparent;text-decoration:none}.btn-primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);box-shadow:var(--shadow-xs)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-active);box-shadow:none}.btn-primary:disabled{opacity:.5}.btn-secondary{background-color:var(--surface-solid);color:var(--text-main);border-color:var(--border);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--border-strong)}.btn-secondary:active:not(:disabled){background-color:var(--surface-active)}.btn-secondary:disabled{opacity:.5}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-main)}.btn-danger{background:transparent;color:var(--error);border-color:var(--error-border)}.btn-danger:hover:not(:disabled){background:var(--error-bg)}.btn-sm{min-height:30px;padding:.3rem .625rem;font-size:var(--text-sm)}.btn-block,.login-card .btn-primary,.no-household-message .btn-primary{width:100%}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-muted);transition:var(--transition)}.icon-button:hover{background-color:var(--surface-hover);color:var(--text-main)}.icon-button:active{background-color:var(--surface-active)}.btn-logout{display:inline-flex;align-items:center;gap:var(--space-xs);padding:.4rem .7rem;background-color:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-muted);font-weight:500;font-size:var(--text-sm)}.btn-logout:hover{color:var(--error);background-color:var(--error-bg)}.toggle-mode{margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--text-muted);text-align:center}.toggle-mode button{background:none;border:none;color:var(--accent);font-weight:500;font-size:inherit;padding:.125rem .25rem;border-radius:var(--radius-xs)}.toggle-mode button:hover{color:var(--accent-hover);text-decoration:underline}.login-container{min-height:100vh;display:grid;grid-template-columns:1fr;background-color:var(--bg-main)}.login-aside{display:none;flex-direction:column;justify-content:space-between;padding:var(--space-2xl);background:var(--surface-solid);border-right:1px solid var(--border)}.login-aside__brand{display:flex;align-items:center;gap:var(--space-xs);font-weight:600;font-size:var(--text-md);color:var(--text-strong)}.login-aside__headline{font-size:var(--text-3xl);letter-spacing:-.03em;max-width:15ch;margin-bottom:var(--space-sm)}.login-aside__sub{color:var(--text-muted);max-width:38ch;font-size:var(--text-md)}.login-aside__features{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-xl)}.login-aside__features li{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-muted);font-size:var(--text-base)}.login-aside__features .icon{color:var(--accent)}.login-aside__foot{color:var(--text-subtle);font-size:var(--text-xs)}.login-main{display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.login-card{width:100%;max-width:380px}.login-card__brand{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-lg);background:var(--accent);color:var(--accent-contrast);margin-bottom:var(--space-md)}.login-card h1{font-size:var(--text-2xl);margin-bottom:var(--space-2xs)}.login-card .subtitle{color:var(--text-muted);font-size:var(--text-base);margin-bottom:var(--space-lg)}@media(min-width:900px){.login-container{grid-template-columns:1.05fr 1fr}.login-aside{display:flex}}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell__body{display:flex;flex-direction:column;min-width:0;flex:1}.app-shell--sidebar{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);align-items:start}.app-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md) var(--space-sm);background:var(--surface-solid);border-right:1px solid var(--border)}.app-sidebar__brand{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-xs);height:calc(var(--header-height) - var(--space-md))}.app-sidebar__nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}.app-sidebar__section-label{font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);padding:var(--space-xs) var(--space-sm) var(--space-2xs)}.app-sidebar__foot{border-top:1px solid var(--border);padding-top:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-2xs)}.app-sidebar__user{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);min-width:0}.avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent);font-size:var(--text-xs);font-weight:600;flex-shrink:0;text-transform:uppercase}.app-sidebar__email{font-size:var(--text-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-contrast);flex-shrink:0}.app-title{font-size:var(--text-md);font-weight:600;letter-spacing:-.02em;color:var(--text-strong);white-space:nowrap}.app-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:0 var(--space-lg);background:color-mix(in srgb,var(--bg-main) 82%,transparent);backdrop-filter:var(--backdrop-blur);-webkit-backdrop-filter:var(--backdrop-blur);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.app-header-left,.app-header-right{display:flex;align-items:center;gap:var(--space-xs);min-width:0}.household-select{min-height:32px;padding:.3rem 1.9rem .3rem .65rem;border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--surface-solid);font-size:var(--text-sm);font-weight:500;color:var(--text-main);min-width:150px;max-width:220px;width:auto;cursor:pointer;box-shadow:var(--shadow-xs)}.household-select:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--border-strong)}.user-email{font-size:var(--text-sm);color:var(--text-muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-divider{width:1px;height:18px;background:var(--border);margin:0 var(--space-2xs)}.header-sheet{position:absolute;right:var(--space-md);top:calc(100% + var(--space-2xs));background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xs);box-shadow:var(--shadow-lg);width:min(240px,82vw);z-index:60;animation:fadeIn var(--duration-fast) var(--ease) both}.header-sheet__email{font-size:var(--text-sm);font-weight:500;color:var(--text-muted);padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border);margin-bottom:var(--space-2xs);overflow:hidden;text-overflow:ellipsis}.header-sheet__action{width:100%;justify-content:flex-start}.nav-link{display:flex;align-items:center;gap:var(--space-sm);padding:.45rem var(--space-sm);color:var(--text-muted);text-decoration:none;font-weight:500;font-size:var(--text-base);border-radius:var(--radius-md);border:none;background:transparent;white-space:nowrap;transition:var(--transition)}.nav-link .icon{color:var(--text-subtle);transition:color var(--duration) var(--ease)}.nav-link:hover{background-color:var(--surface-hover);color:var(--text-main)}.nav-link:hover .icon{color:var(--text-muted)}.nav-link.active{background-color:var(--accent-soft);color:var(--accent);font-weight:600}.nav-link.active .icon{color:var(--accent)}.app-nav{display:flex;gap:var(--space-2xs);align-items:center;background:var(--surface-solid);border-bottom:1px solid var(--border);padding:var(--space-2xs) var(--space-md);overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav--tablet{position:sticky;top:var(--header-height);z-index:40}.app-nav--tablet .nav-link{font-size:var(--text-sm)}.app-nav--mobile{position:fixed;bottom:0;left:0;right:0;border-top:1px solid var(--border);border-bottom:none;background:color-mix(in srgb,var(--surface-solid) 90%,transparent);backdrop-filter:var(--backdrop-blur);-webkit-backdrop-filter:var(--backdrop-blur);padding:var(--space-2xs) var(--space-2xs);padding-bottom:calc(var(--space-2xs) + var(--safe-bottom));justify-content:space-around;overflow:visible;z-index:90}.app-nav--mobile .nav-link{flex-direction:column;gap:2px;flex:1;padding:var(--space-2xs) 0;font-size:var(--text-2xs);font-weight:500;border-radius:var(--radius-md);justify-content:center;background:transparent}.app-nav--mobile .nav-link.active{background:transparent;color:var(--accent)}.app-nav-overflow{position:fixed;bottom:calc(var(--nav-height-mobile) + var(--safe-bottom) + var(--space-xs));left:var(--space-md);right:var(--space-md);margin:0 auto;width:min(420px,calc(100vw - 2rem));background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-xs);box-shadow:var(--shadow-lg);display:grid;gap:2px;z-index:91;animation:fadeIn var(--duration-fast) var(--ease) both}.nav-link--sheet{padding:var(--space-sm)}.app-main{flex:1;min-width:0}.page-content{max-width:var(--max-width);margin:0 auto;padding:var(--space-xl) var(--space-lg) var(--space-2xl);animation:fadeIn var(--duration) var(--ease) both}.page-content.compact-padding{padding-bottom:var(--space-lg)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-lg)}.page-header h1{font-size:var(--text-2xl);margin-bottom:var(--space-3xs)}.page-header__meta{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.page-subtitle{color:var(--text-muted);font-size:var(--text-base)}.layout-stack{display:flex;flex-direction:column;gap:var(--space-lg)}.responsive-grid{display:grid;gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.household-badge,.badge{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:.15rem .5rem;background:var(--surface-solid);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;letter-spacing:0;text-transform:none;white-space:nowrap}.badge--accent{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.badge--success{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.badge--warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning)}.badge--error{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.detail-chips{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.detail-chip{font-size:var(--text-xs);background-color:var(--bg-sunken);border:1px solid var(--border);color:var(--text-muted);padding:.1rem .45rem;border-radius:var(--radius-sm)}.active-household-banner{background:var(--accent-soft);color:var(--accent);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);margin-bottom:var(--space-lg);font-size:var(--text-sm);font-weight:500;text-align:center}.section,.responsive-section,.stub-content,.coming-soon-content,.no-household-message{background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.section{margin-bottom:var(--space-lg)}.responsive-section--compact{padding:var(--space-md)}.responsive-section--flush{padding:0;border:none;box-shadow:none;background:transparent}.responsive-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-md)}.responsive-section__actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.responsive-section__content{display:flex;flex-direction:column;gap:var(--space-md)}.section-title,.section h2,.section h3{font-size:var(--text-md);font-weight:600}.section h2,.section h3{margin-bottom:var(--space-md)}.section-description{color:var(--text-muted);font-size:var(--text-sm);margin-top:var(--space-3xs)}.stub-content,.coming-soon-content,.no-household-message{padding:var(--space-2xl) var(--space-lg);text-align:center}.stub-note{color:var(--text-muted);font-size:var(--text-sm);margin-top:var(--space-sm)}.coming-soon-icon{color:var(--text-subtle);margin-bottom:var(--space-md);font-size:2rem}.no-household-message h2{margin-bottom:var(--space-xs)}.no-household-message p{color:var(--text-muted);margin-bottom:var(--space-lg)}.no-household-message .btn-primary{width:auto}.card-link{text-decoration:none;color:inherit;display:block}.cards-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-md)}.card{background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:var(--transition);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm);height:100%;text-align:left}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.card-disabled{opacity:.55;pointer-events:none}.card-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-lg);background:var(--accent-soft);color:var(--accent);flex-shrink:0;font-size:var(--text-lg)}.card-content{flex:1;display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:var(--space-2xs)}.card-content h3{font-size:var(--text-md);font-weight:600}.card-content p{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--space-sm)}.btn-card{width:100%;min-height:34px;padding:.4rem .75rem;background-color:var(--surface-solid);color:var(--text-main);border:1px solid var(--border);border-radius:var(--button-radius);font-weight:500;font-size:var(--text-sm);margin-top:auto;box-shadow:var(--shadow-xs)}.btn-card:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--border-strong)}.onboarding{display:flex;justify-content:center;align-items:flex-start;padding-top:var(--space-2xl)}.onboarding__card{width:100%;max-width:460px;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:var(--space-xl)}.onboarding__card h1{font-size:var(--text-xl);margin:var(--space-md) 0 var(--space-2xs)}.onboarding__form,.dashboard-calendar{margin-top:var(--space-lg)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-md)}.dashboard-card{position:relative;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--space-md);text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:var(--space-2xs);box-shadow:var(--shadow-sm);transition:var(--transition);text-align:left;overflow:hidden}.dashboard-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.dashboard-card h3{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);font-weight:500;color:var(--text-muted)}.dashboard-card h3 .icon{color:var(--text-subtle)}.dashboard-card__value{font-size:var(--text-3xl);font-weight:600;letter-spacing:-.03em;line-height:1.15;color:var(--text-strong);font-variant-numeric:tabular-nums}.dashboard-card__value--text{font-size:var(--text-lg);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dashboard-card__label{color:var(--text-muted);font-size:var(--text-sm)}.dashboard-card__arrow{display:none}@media(hover:hover)and (pointer:fine){.dashboard-card__arrow{display:block;position:absolute;top:var(--space-md);right:var(--space-md);color:var(--text-subtle);opacity:0;transform:translate(-3px);transition:var(--transition)}.dashboard-card:hover .dashboard-card__arrow{opacity:1;transform:none}}.households-list,.events-list,.list-group{display:flex;flex-direction:column;gap:var(--space-xs)}.household-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--surface-solid);border-radius:var(--radius-lg);border:1px solid var(--border);transition:var(--transition)}.household-item:hover{background:var(--surface-hover);border-color:var(--border-strong)}.household-item.active{border-color:var(--accent);background:var(--accent-soft)}.household-name{font-weight:500;color:var(--text-main);font-size:var(--text-base)}.household-id{font-size:var(--text-xs);color:var(--text-subtle);font-family:var(--font-mono)}.list-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.list-toolbar__filters{display:flex;flex-wrap:wrap;gap:var(--space-xs);align-items:center;font-size:var(--text-sm);color:var(--text-muted)}.list-toolbar__toggle{display:inline-flex;align-items:center;gap:var(--space-2xs);cursor:pointer;-webkit-user-select:none;user-select:none}.list-card{display:flex;gap:var(--space-sm);align-items:flex-start;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-solid);box-shadow:var(--shadow-xs);transition:var(--transition)}.list-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.list-card__body{display:flex;flex-direction:column;gap:var(--space-3xs);flex:1;min-width:0}.list-card__title{font-weight:500;font-size:var(--text-base);display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.list-card__actions{display:flex;gap:var(--space-2xs);align-items:center;flex-shrink:0}.list-card__actions button{display:inline-flex;align-items:center;gap:var(--space-2xs);min-height:30px;padding:.3rem .625rem;font-size:var(--text-sm)}.list-card input[type=checkbox]{margin-top:3px}.list-card--checked{opacity:.55}.list-card--checked .list-card__title{text-decoration:line-through}.list-card--alert{border-color:var(--error-border);background:var(--error-bg)}.list-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0}.accordion-toggle{width:100%;text-align:left;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md);font-weight:500;font-size:var(--text-base);display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.accordion-toggle:hover{background:var(--surface-hover)}.shopping-category>header h3{font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}.empty-state,.empty-text{background:var(--bg-sunken);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.modal-overlay{position:fixed;inset:0;background:#09090b73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-md);animation:fadeIn var(--duration-fast) var(--ease) both}.modal-content{background:var(--surface-solid);border-radius:var(--radius-xl);border:1px solid var(--border);width:min(600px,100%);max-height:88vh;overflow-y:auto;padding:var(--space-lg);box-shadow:var(--shadow-lg)}.modal-content h2,.modal-content h3{margin-bottom:var(--space-md)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-xs);margin-top:var(--space-lg)}.parsed-item-row{display:flex;gap:var(--space-xs);align-items:center}.quantity-stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-solid);box-shadow:var(--shadow-xs);overflow:hidden}.quantity-stepper button{border:none;background:none;color:var(--text-muted);font-size:var(--text-md);line-height:1;padding:.4rem .6rem}.quantity-stepper button:hover:not(:disabled){background:var(--surface-hover);color:var(--text-main)}.quantity-stepper__value{min-width:2.5rem;text-align:center;font-weight:500;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.sticky-action-bar{position:sticky;bottom:0;left:0;right:0;width:100%;background:color-mix(in srgb,var(--surface-solid) 92%,transparent);backdrop-filter:var(--backdrop-blur);-webkit-backdrop-filter:var(--backdrop-blur);border-top:1px solid var(--border);padding:var(--space-sm) var(--space-md);padding-bottom:calc(var(--space-sm) + var(--safe-bottom));display:flex;gap:var(--space-xs);align-items:center;z-index:10}.receipt-upload{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;padding:var(--space-md);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-sunken);font-size:var(--text-sm)}.receipt-upload label{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;font-weight:500}.finance-toggles{display:flex;gap:var(--space-md);flex-wrap:wrap;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.finance-toggles label{display:inline-flex;align-items:center;gap:var(--space-2xs);cursor:pointer}.tabs{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab-button{background:none;border:none;padding:var(--space-sm) 0;font-weight:500;font-size:var(--text-base);color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;border-radius:0}.tab-button:hover{color:var(--text-main)}.tab-button--active{color:var(--text-strong);border-bottom-color:var(--accent);font-weight:600}.wizard-tab{flex:1;min-width:130px;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-md);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-solid);color:var(--text-muted);font-size:var(--text-base);font-weight:500;box-shadow:var(--shadow-xs);transition:var(--transition)}.wizard-tab:hover{border-color:var(--border-strong);color:var(--text-main)}.wizard-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.cover-page{display:flex;flex-direction:column;min-height:78vh}.cover-body{flex:1;display:flex;flex-direction:column;justify-content:center}.cover-tabs{display:flex;gap:var(--space-sm);overflow-x:auto;margin-bottom:var(--space-lg);padding-bottom:var(--space-3xs)}.cover-panel{background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:var(--space-2xl) var(--space-lg);min-height:260px;display:flex;flex-direction:column;justify-content:center}.cover-form{display:flex;flex-direction:column;gap:var(--space-md);align-items:center;text-align:center}.cover-form h2{font-size:var(--text-xl)}.cover-form__input{width:100%;max-width:380px;min-height:44px;font-size:var(--text-md)}.cover-form__submit{width:auto;min-width:160px;min-height:40px}.cover-form__link{color:var(--text-muted);font-size:var(--text-sm)}.cover-form__link:hover{color:var(--accent)}.cover-skip{text-align:center;margin-top:var(--space-lg)}.wizard-result{text-align:center;padding:var(--space-2xl) var(--space-lg)}.wizard-result__check{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-full);background:var(--success-bg);color:var(--success);border:1px solid var(--success-border);margin-bottom:var(--space-md)}.wizard-result h2{font-size:var(--text-xl);margin-bottom:var(--space-2xs)}.wizard-result__stats{display:flex;gap:var(--space-md);justify-content:center;flex-wrap:wrap;margin-top:var(--space-xl)}.wizard-result__stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-2xs);padding:var(--space-md) var(--space-lg);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:150px;color:var(--text-subtle)}.wizard-result__count{font-weight:600;font-size:var(--text-md);color:var(--text-main)}.wizard-result__where{font-size:var(--text-xs);color:var(--text-muted)}.wizard-result__again{width:auto;margin-top:var(--space-xl);padding-left:var(--space-lg);padding-right:var(--space-lg)}.data-table-wrapper,.table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-solid)}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table th,.data-table td{text-align:left;padding:.55rem .875rem;border-bottom:1px solid var(--border);white-space:nowrap}.data-table th{background:var(--bg-sunken);color:var(--text-muted);font-weight:500;font-size:var(--text-xs);letter-spacing:.02em;position:sticky;top:0}.data-table td{color:var(--text-main)}.data-table td:last-child,.data-table th:last-child{text-align:right}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-hover)}.data-table select{font-size:var(--text-sm);min-height:28px;padding:.15rem 1.6rem .15rem .4rem;box-shadow:none}.numeric{font-variant-numeric:tabular-nums;text-align:right}.pagination-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-md);font-size:var(--text-sm);color:var(--text-muted)}.chat-page,.main-container,.page-container{height:calc(100vh - var(--header-height))}.chat-shell,.main-content{display:flex;flex-direction:column;gap:var(--space-md);height:100%}.chat-container,.chat-window{flex:1;display:flex;flex-direction:column;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);overflow:hidden;min-height:0}.chat-connection-warning,.status-bar{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--warning-bg);color:var(--warning);border-bottom:1px solid var(--warning-border);font-size:var(--text-sm)}.chat-messages,.messages-area{flex:1;overflow-y:auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.chat-message,.message{max-width:76%;padding:.55rem .875rem;border-radius:var(--radius-xl);background:var(--bg-sunken);border:1px solid var(--border);font-size:var(--text-base);line-height:1.55;white-space:pre-wrap;word-break:break-word;animation:fadeIn var(--duration) var(--ease) both}.chat-message--user,.message.user{align-self:flex-end;background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);border-bottom-right-radius:var(--radius-xs)}.chat-message--assistant,.message.assistant{align-self:flex-start;border-bottom-left-radius:var(--radius-xs)}.message-content{white-space:pre-wrap}.message-meta,.chat-message__timestamp{font-size:var(--text-2xs);opacity:.65;margin-top:var(--space-2xs);text-align:right;font-variant-numeric:tabular-nums}.message-data{margin-top:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-xs);background:var(--bg-sunken);border-radius:var(--radius-sm);padding:var(--space-xs);overflow-x:auto}.chat-typing-indicator{align-self:flex-start;background:var(--bg-sunken);border:1px solid var(--border);color:var(--text-muted);padding:.5rem .875rem;border-radius:var(--radius-xl);font-size:var(--text-sm)}.chat-pending-action{border:1px solid var(--warning-border);background:var(--warning-bg);border-radius:var(--radius-lg);padding:var(--space-md);font-size:var(--text-sm)}.chat-pending-action__buttons{display:flex;gap:var(--space-xs);margin-top:var(--space-sm)}.chat-scroll-button{align-self:center;padding:.25rem .75rem;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface-solid);box-shadow:var(--shadow-md);font-size:var(--text-sm);color:var(--text-muted)}.chat-scroll-button:hover{color:var(--text-main);border-color:var(--border-strong)}.chat-composer,.input-area{display:flex;gap:var(--space-xs);padding:var(--space-sm);border-top:1px solid var(--border);background:var(--surface-solid)}.chat-composer input,.input-area input{flex:1;min-width:0}.welcome-text,.user-info{color:var(--text-muted);font-size:var(--text-sm)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-md)}.calendar-toolbar__month{font-size:var(--text-md);font-weight:600}.calendar-toolbar__nav{display:flex;align-items:center;gap:var(--space-2xs)}.calendar-toolbar__nav .icon-button{border-color:var(--border);background:var(--surface-solid);box-shadow:var(--shadow-xs)}.calendar-loading{text-align:center;padding:var(--space-md);color:var(--text-muted);font-size:var(--text-sm)}.calendar-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.calendar-cell__date{font-size:var(--text-xs);font-weight:500;color:var(--text-muted);margin-bottom:var(--space-2xs)}.calendar-cell__today{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:var(--radius-full);background:var(--accent);color:var(--accent-contrast);font-weight:600}.calendar-cell__events{display:flex;flex-direction:column;gap:var(--space-3xs)}.modal-content__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-lg)}.modal-content__header h3{margin-bottom:0;font-size:var(--text-lg)}.modal-footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;padding-top:var(--space-md);margin-top:var(--space-xs);border-top:1px solid var(--border)}.modal-footer__primary{display:flex;gap:var(--space-xs);margin-left:auto}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:1px;background-color:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;min-width:760px}.calendar-header-cell{background-color:var(--bg-sunken);padding:var(--space-xs);text-align:center;font-weight:500;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle)}.calendar-cell{background-color:var(--surface-solid);min-height:110px;padding:var(--space-xs);display:flex;flex-direction:column;gap:var(--space-3xs);font-size:var(--text-sm)}.calendar-cell.empty{background-color:var(--bg-sunken)}.calendar-event{background-color:var(--accent-soft);color:var(--accent);font-size:var(--text-xs);font-weight:500;padding:.2rem .35rem;border-radius:var(--radius-xs);border-left:2px solid var(--accent);white-space:normal;word-wrap:break-word;cursor:pointer;line-height:1.35;transition:var(--transition);text-align:left}.calendar-event:hover{background-color:var(--accent-soft-hover)}@media(max-width:850px){.calendar-grid{min-width:620px;grid-template-columns:repeat(7,minmax(85px,1fr))}.calendar-cell{min-height:92px}}.budget-meter{display:flex;flex-direction:column;gap:var(--space-2xs)}.budget-meter__header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);font-size:var(--text-sm)}.budget-meter__name{font-weight:500}.budget-meter__track{height:6px;border-radius:var(--radius-full);background:var(--chart-track);overflow:hidden}.budget-meter__fill{height:100%;border-radius:var(--radius-full);transition:width .4s var(--ease)}.budget-meter__fill--ok{background:var(--chart-1)}.budget-meter__fill--warning{background:var(--warning)}.budget-meter__fill--over{background:var(--error)}.finance-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}.settle-up__rows{display:flex;flex-direction:column;gap:var(--space-xs)}.settle-up__row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);font-size:var(--text-sm)}.settle-up__who{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-strip{display:flex;gap:var(--space-xs);overflow-x:auto;padding-bottom:var(--space-2xs);scrollbar-width:thin}.month-chip{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-sunken);padding:var(--space-xs) var(--space-sm);min-width:84px;text-align:center;flex-shrink:0}.month-chip__label{font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}.month-chip__value{font-weight:600;font-size:var(--text-base);color:var(--text-main);font-variant-numeric:tabular-nums}.expense-row__title{font-weight:500}.expense-row__meta{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-3xs)}.expense-row__amount{text-align:right;flex-shrink:0}.expense-row__value{font-weight:600;font-variant-numeric:tabular-nums}.expense-row__delete{background:none;border:none;color:var(--text-subtle);font-size:var(--text-xs);padding:var(--space-3xs) 0}.expense-row__delete:hover{color:var(--error)}.finance-reports-grid,.ledger-setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-md)}.chart-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.chart-table-toggle{background:none;border:1px solid var(--border);border-radius:var(--radius-md);padding:.25rem .6rem;font-size:var(--text-xs);color:var(--text-muted)}.chart-table-toggle:hover{color:var(--text-main);border-color:var(--border-strong)}.chart-empty{padding:var(--space-xl);text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.chart-legend{display:flex;gap:var(--space-md)}.chart-legend__item{display:flex;align-items:center;gap:var(--space-2xs);font-size:var(--text-xs);color:var(--text-muted)}.chart-legend__swatch{width:8px;height:8px;border-radius:2px;display:inline-block}.chart-legend__swatch--income{background:var(--chart-2)}.chart-legend__swatch--expense{background:var(--chart-3)}.chart-container{width:100%;position:relative}.chart-tooltip{position:absolute;transform:translate(-50%,-100%) translateY(-8px);background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap;z-index:5}.chart-tooltip__title{font-weight:600;margin-bottom:var(--space-3xs);color:var(--text-strong)}.chart-tooltip__row{display:flex;align-items:center;gap:var(--space-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.grouped-bar-chart{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-xs);padding:0 var(--space-2xs);border-bottom:1px solid var(--border);overflow-x:auto}.grouped-bar-chart__group{display:flex;flex-direction:column;align-items:center;gap:var(--space-2xs);flex-shrink:0;border-radius:var(--radius-sm);padding:var(--space-3xs);transition:background-color var(--duration) var(--ease)}.grouped-bar-chart__group:hover,.grouped-bar-chart__group:focus-visible{background:var(--surface-hover)}.grouped-bar-chart__bars{display:flex;align-items:flex-end;gap:3px;height:100%}.grouped-bar-chart__bar-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--space-3xs)}.grouped-bar-chart__bar{width:14px;max-width:20px;border-radius:3px 3px 0 0}.grouped-bar-chart__bar--income{background:var(--chart-2)}.grouped-bar-chart__bar--expense{background:var(--chart-3)}.grouped-bar-chart__value{font-size:var(--text-2xs);color:var(--text-subtle);white-space:nowrap;font-variant-numeric:tabular-nums}.grouped-bar-chart__label{font-size:var(--text-xs);color:var(--text-muted)}.ranked-bar-chart{display:flex;flex-direction:column;gap:1px}.ranked-bar-chart__row{display:grid;grid-template-columns:minmax(90px,28%) 1fr auto;align-items:center;gap:var(--space-sm);padding:var(--space-2xs) var(--space-3xs);border-radius:var(--radius-sm);transition:background-color var(--duration) var(--ease)}.ranked-bar-chart__row:hover,.ranked-bar-chart__row:focus-visible{background:var(--surface-hover)}.ranked-bar-chart__label{font-size:var(--text-sm);color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranked-bar-chart__track{height:14px;background:var(--chart-track);border-radius:var(--radius-xs);overflow:hidden}.ranked-bar-chart__fill{height:100%;background:var(--chart-1);border-radius:var(--radius-xs);transition:width .4s var(--ease)}.ranked-bar-chart__value{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.import-summary{margin-top:var(--space-md)}.import-summary__stats{display:flex;gap:var(--space-xs);flex-wrap:wrap}.import-summary__errors{margin-top:var(--space-sm);padding-left:1.25rem;color:var(--text-muted);font-size:var(--text-xs);max-height:160px;overflow-y:auto}@media(max-width:1023px){.app-main{padding-bottom:calc(var(--nav-height-mobile) + var(--safe-bottom))}}@media(min-width:768px)and (max-width:1023px){.app-main{padding-bottom:var(--space-xl)}}@media(max-width:767px){:root{--space-lg: 1rem;--space-xl: 1.25rem;--space-2xl: 2rem;--header-height: 52px}.page-content{padding:var(--space-lg) var(--space-md) calc(var(--space-xl) + var(--nav-height-mobile) + var(--safe-bottom))}.app-header{padding:0 var(--space-md)}.household-select{min-width:0;max-width:160px;font-size:var(--text-sm)}.page-header{margin-bottom:var(--space-md)}.page-header h1{font-size:var(--text-xl)}.cards-container,.dashboard-grid,.responsive-grid,.finance-reports-grid,.ledger-setup-grid{grid-template-columns:1fr;gap:var(--space-sm)}.section,.responsive-section,.card{padding:var(--space-md)}.card{flex-direction:row;align-items:center}.card .btn-card{display:none}.chat-message,.message{max-width:88%}.list-card{flex-wrap:wrap}.list-card__actions{width:100%;justify-content:flex-end}.create-form{flex-direction:column;align-items:stretch;width:100%}.modal-content{padding:var(--space-md)}.modal-actions{flex-direction:column-reverse}.modal-actions>*{width:100%}.app-shell,.app-main,.page-content{overflow-x:hidden;max-width:100vw}}@media(min-width:1440px){.page-content{max-width:1240px}}
