:root{--text:#5a5c78;--text-h:#12132b;--bg:#f4f5fa;--card-bg:#fff;--surface-sunken:#ecedf7;--input-bg:var(--card-bg);--border:#e3e4f0;--border-strong:#8d91c2;--accent:#4649e5;--accent-hover:#3234b8;--accent-soft:#e7e7fc;--accent-contrast:#fff;--positive:#0d7b52;--positive-soft:#ddf4e9;--warning:#a3760f;--warning-soft:#f7ecd4;--negative:#d1111b;--negative-soft:#fde3e4;--danger-bg:#d1111b;--coral:#c15338;--muted:#63658a;--chart-plan:#64748b;--chart-today:#945006;--shadow:234 45% 10%;--chart-cat-1:#6d74e8;--chart-cat-2:#c99a3d;--chart-cat-3:#4fa8de;--chart-cat-4:#db6b93;--chart-cat-5:#8f5ce0;--chart-cat-6:#2fafaf;--chart-cat-7:#e0855c;--dark-text:#a5a7c6;--dark-text-h:#eef0fb;--dark-bg:#101126;--dark-card-bg:#171933;--dark-surface-sunken:#0d0e20;--dark-border:#2b2d4e;--dark-border-strong:#5d61a6;--dark-accent:#8b8fff;--dark-accent-hover:#a8abff;--dark-accent-soft:#24264a;--dark-positive:#34d399;--dark-positive-soft:#163227;--dark-warning:#d8ab52;--dark-warning-soft:#332810;--dark-negative:#ff7a7e;--dark-negative-soft:#3a1b20;--dark-danger-bg:#ed0007;--dark-coral:#de927c;--dark-muted:#8081a0;--dark-chart-plan:#94a3b8;--dark-chart-today:#d8ab52;--dark-shadow:240 60% 2%;--dark-chart-cat-1:#6d74e8;--dark-chart-cat-2:#b98929;--dark-chart-cat-3:#2f93d0;--dark-chart-cat-4:#c85c82;--dark-chart-cat-5:#8f5ce0;--dark-chart-cat-6:#0f9e9e;--dark-chart-cat-7:#c96f48;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--space-2:2px;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--text-caption:12px;--text-dense:13px;--text-body-sm:14px;--text-body:16px;--text-heading-sm:18px;--text-heading-md:20px;--text-heading-lg:28px;--text-money-lg:32px;--radius-control:9px;--radius-card:9px;--radius-dialog:14px;--radius-pill:999px;--control-height-touch:44px;--control-height-compact:36px;--shadow-popover:0 16px 30px -12px hsl(var(--shadow) / .5);--shadow-dialog:0 16px 30px -12px hsl(var(--shadow) / .5);--shadow-floating-action:0 10px 24px -8px hsl(var(--shadow) / .55);--z-sticky:20;--z-popover:30;--z-floating-action:100;--focus-ring:var(--accent);--disabled-opacity:.55;font:var(--text-body)/1.45 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme]){--text:var(--dark-text);--text-h:var(--dark-text-h);--bg:var(--dark-bg);--card-bg:var(--dark-card-bg);--surface-sunken:var(--dark-surface-sunken);--input-bg:var(--card-bg);--border:var(--dark-border);--border-strong:var(--dark-border-strong);--accent:var(--dark-accent);--accent-hover:var(--dark-accent-hover);--accent-soft:var(--dark-accent-soft);--accent-contrast:var(--bg);--positive:var(--dark-positive);--positive-soft:var(--dark-positive-soft);--warning:var(--dark-warning);--warning-soft:var(--dark-warning-soft);--negative:var(--dark-negative);--negative-soft:var(--dark-negative-soft);--danger-bg:var(--dark-danger-bg);--coral:var(--dark-coral);--muted:var(--dark-muted);--chart-plan:var(--dark-chart-plan);--chart-today:var(--dark-chart-today);--shadow:var(--dark-shadow);--chart-cat-1:var(--dark-chart-cat-1);--chart-cat-2:var(--dark-chart-cat-2);--chart-cat-3:var(--dark-chart-cat-3);--chart-cat-4:var(--dark-chart-cat-4);--chart-cat-5:var(--dark-chart-cat-5);--chart-cat-6:var(--dark-chart-cat-6);--chart-cat-7:var(--dark-chart-cat-7);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--text:var(--dark-text);--text-h:var(--dark-text-h);--bg:var(--dark-bg);--card-bg:var(--dark-card-bg);--surface-sunken:var(--dark-surface-sunken);--input-bg:var(--card-bg);--border:var(--dark-border);--border-strong:var(--dark-border-strong);--accent:var(--dark-accent);--accent-hover:var(--dark-accent-hover);--accent-soft:var(--dark-accent-soft);--accent-contrast:var(--bg);--positive:var(--dark-positive);--positive-soft:var(--dark-positive-soft);--warning:var(--dark-warning);--warning-soft:var(--dark-warning-soft);--negative:var(--dark-negative);--negative-soft:var(--dark-negative-soft);--danger-bg:var(--dark-danger-bg);--coral:var(--dark-coral);--muted:var(--dark-muted);--chart-plan:var(--dark-chart-plan);--chart-today:var(--dark-chart-today);--shadow:var(--dark-shadow);--chart-cat-1:var(--dark-chart-cat-1);--chart-cat-2:var(--dark-chart-cat-2);--chart-cat-3:var(--dark-chart-cat-3);--chart-cat-4:var(--dark-chart-cat-4);--chart-cat-5:var(--dark-chart-cat-5);--chart-cat-6:var(--dark-chart-cat-6);--chart-cat-7:var(--dark-chart-cat-7);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}h1{color:var(--text-h);letter-spacing:-.035em;margin:0 0 var(--space-8);font-weight:800;font-size:var(--text-heading-lg)}h2{color:var(--text-h);letter-spacing:-.01em;margin:0 0 var(--space-8);font-weight:700;font-size:var(--text-heading-sm)}button{font:inherit;cursor:pointer;border-radius:var(--radius-control);background:var(--surface-sunken);color:var(--text-h);padding:var(--space-8) 14px;border:none}@media (hover:hover){button:not(:disabled):hover{background:color-mix(in srgb, var(--surface-sunken) 75%, var(--text-h) 25%)}}button:not(:disabled):active{background:color-mix(in srgb, var(--surface-sunken) 60%, var(--text-h) 40%)}button:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}button.primary{background:var(--accent);color:var(--accent-contrast);font-weight:600}@media (hover:hover){button.primary:not(:disabled):hover{background:var(--accent-hover)}}button.primary:not(:disabled):active{background:var(--accent-hover);filter:brightness(.92)}button.secondary{background:var(--accent-soft);color:var(--accent)}@media (hover:hover){button.secondary:not(:disabled):hover{background:var(--accent);color:var(--accent-contrast)}}button.secondary:not(:disabled):active{background:var(--accent-hover);color:var(--accent-contrast)}button.secondary.active{background:var(--accent);color:var(--accent-contrast)}@media (hover:hover){button.secondary.active:not(:disabled):hover{background:var(--accent-hover)}}button.danger{background:var(--danger-bg);color:#fff;font-weight:600}@media (hover:hover){button.danger:not(:disabled):hover{background:color-mix(in srgb, var(--danger-bg) 90%, black)}}button.danger:not(:disabled):active{background:color-mix(in srgb, var(--danger-bg) 80%, black)}button.link-btn{min-height:0;color:var(--accent);font:inherit;text-underline-offset:2px;background:0 0;border-radius:0;padding:0;font-weight:600;text-decoration:underline;display:inline}@media (hover:hover){button.link-btn:not(:disabled):hover{color:var(--accent-hover);background:0 0}}button.link-btn:not(:disabled):active{color:var(--accent-hover);background:0 0}button.icon-btn{color:var(--negative);min-width:var(--control-height-touch);min-height:var(--control-height-touch);background:0 0;border:none;justify-content:center;align-items:center;gap:6px;padding:6px 10px;display:inline-flex}@media (hover:hover){button.icon-btn:not(:disabled):hover{background:var(--surface-sunken)}}button.icon-btn:not(:disabled):active{background:var(--surface-sunken);filter:brightness(.92)}button.icon-btn svg{flex-shrink:0;width:16px;height:16px}button.icon-btn.edit-btn{color:var(--accent)}button.icon-btn.save-btn{color:var(--positive)}button.icon-btn.cancel-btn{color:var(--muted)}input,select{font:inherit;font-size:var(--text-body);min-height:var(--control-height-touch);padding:var(--space-8) 10px;border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--text-h);width:100%}input:disabled,select:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}label{gap:var(--space-4);font-size:var(--text-body-sm);text-align:left;flex-direction:column;margin-bottom:10px;display:flex}.muted{color:var(--muted);font-size:var(--text-body-sm)}.error{color:var(--negative);font-size:var(--text-body-sm)}.notice{color:var(--positive);background:var(--positive-soft);border-radius:var(--radius-card);padding:10px var(--space-16);font-size:var(--text-body-sm);font-weight:700}.loading{color:var(--muted);font-size:var(--text-body-sm);text-align:center;padding:var(--space-24) 0}.center-screen{justify-content:center;align-items:center;height:100dvh;display:flex}input[aria-invalid=true],select[aria-invalid=true],.select-trigger[aria-invalid=true],.date-picker-trigger[aria-invalid=true]{border-color:var(--negative);box-shadow:inset 0 0 0 1px var(--negative)}.field-error{color:var(--negative);font-size:var(--text-body-sm);line-height:1.45;display:block}button[aria-busy=true]{cursor:progress}button.primary,button.secondary,button.danger{min-height:var(--control-height-touch)}button.pending-button{place-items:center;display:inline-grid}.pending-button-label,.pending-button-progress{grid-area:1/1}.pending-button-progress{align-items:center;gap:var(--space-8);display:inline-flex}.pending-button>[aria-hidden=true]{visibility:hidden}.pending-button-progress .btn-spinner{visibility:inherit}.btn-spinner{border:2px solid color-mix(in srgb, currentColor 35%, transparent);border-top-color:currentColor;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}.auth-page{min-height:100dvh;padding:var(--space-16);background:radial-gradient(640px 420px at 50% 32%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 70%);justify-content:center;align-items:center;display:flex}.auth-brand-lockup{justify-content:center;align-items:center;gap:var(--space-12);margin-bottom:var(--space-24);display:flex}.auth-brand-lockup h1{white-space:normal;min-width:0;margin:0;line-height:1.15}.auth-brand{flex:0 0 48px;width:48px;height:48px;display:block}.auth-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-32);width:100%;max-width:400px}.tabs{justify-content:flex-start;align-items:center;gap:var(--space-16);margin-bottom:var(--space-20);display:flex}.tabs button{min-height:var(--control-height-touch);padding:var(--space-8) 0;font-size:var(--text-body-sm);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:none}.tabs button.active{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}@media (hover:hover){.tabs button:hover{background:0 0}.tabs button:not(.active):hover{border-bottom-color:color-mix(in srgb, var(--accent) 35%, transparent)}}.tabs button:active{background:0 0}.tabs button:not(.active):active{border-bottom-color:color-mix(in srgb, var(--accent) 55%, transparent)}.register-mode-toggle{background:var(--surface-sunken);border-radius:var(--radius-control);margin-bottom:var(--space-16);padding:3px;display:flex}.register-mode-toggle button{border-radius:calc(var(--radius-control) - 2px);font-size:var(--text-body-sm);color:var(--muted);white-space:nowrap;background:0 0;border:none;flex:1;padding:9px 6px;font-weight:600}.register-mode-toggle button.active{background:var(--card-bg);color:var(--accent);box-shadow:0 1px 3px hsl(var(--shadow) / .18)}.auth-form{flex-direction:column;display:flex}.auth-form input,.auth-form>button{min-height:var(--control-height-touch)}.auth-form button[type=submit]:not(.pending-button){display:inline-flex}.auth-form button[type=submit]{margin-top:var(--space-16);justify-content:center;align-items:center;gap:var(--space-8)}.auth-form>form{flex-direction:column;display:flex}.auth-form>form .link-btn{text-align:center;margin-top:var(--space-16);align-self:stretch}.max-login-waiting{text-align:center;align-items:center;gap:var(--space-16);padding:var(--space-24) 0;flex-direction:column;display:flex}.max-login-waiting .btn-spinner{border-color:color-mix(in srgb, var(--accent) 35%, transparent);border-top-color:var(--accent);width:28px;height:28px}.max-login-waiting p{color:var(--text-h);margin:0}.max-login-waiting button{width:100%;min-height:var(--control-height-touch)}.auth-confirm{text-align:center;align-items:center;gap:var(--space-16);padding:var(--space-24) 0;flex-direction:column;display:flex}.auth-confirm h2,.auth-confirm .auth-subtitle{margin:0}.auth-confirm button{width:100%;min-height:var(--control-height-touch)}.auth-divider{margin:var(--space-16) 0 var(--space-12);color:var(--muted);font-size:var(--text-body-sm);align-items:center;gap:10px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.field-hint{color:var(--muted);font-size:var(--text-dense)}.password-input{position:relative}.password-input input{padding-right:44px}.password-input button{width:44px;color:var(--muted);background:0 0;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.password-input button svg{width:18px;height:18px}.service-contact{margin:var(--space-20) 0 0;color:var(--muted);font-size:var(--text-body-sm);text-align:center;line-height:1.5}.auth-subtitle{margin:0 0 var(--space-16);color:var(--muted);font-size:var(--text-body-sm);line-height:1.45}.forgot-link{margin-top:var(--space-4)}.hp-field{width:1px;height:1px;position:absolute;top:-9999px;left:-9999px;overflow:hidden}.form-field{margin-bottom:var(--space-12)}.form-field>label{margin-bottom:var(--space-4)}.register-mode-toggle button{min-height:var(--control-height-touch)}.dashboard{max-width:1100px;margin:0 auto;padding:24px 16px 60px}.topbar{z-index:var(--z-sticky);background:var(--bg);justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 0;display:flex;position:sticky;top:0}.topbar-actions{flex-shrink:0;gap:8px;display:flex}.topbar-identity{min-width:0}.topbar-identity h1,.topbar-identity .family-meta{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar-identity h1:hover,.topbar-identity h1:focus,.topbar-identity .family-meta:hover,.topbar-identity .family-meta:focus{z-index:var(--z-popover);background:var(--bg);position:relative;overflow:visible}.topbar-identity h1{margin-bottom:0;line-height:1.3}.topbar-icon-btn{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.topbar-icon-btn svg{flex-shrink:0;width:18px;height:18px}.family-meta{color:var(--muted);font-size:var(--text-body-sm);margin:0}.invite-token{background:var(--surface-sunken);border-radius:var(--radius-control);justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:10px 10px 10px 14px;display:flex}.invite-token strong{font-family:var(--font-mono);font-size:var(--text-body);letter-spacing:.03em;color:var(--text-h)}.copy-invite{min-height:var(--control-height-touch);color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);font-size:var(--text-dense);border:none;flex-shrink:0;align-items:center;padding:8px 13px;font-weight:600;display:inline-flex}.month-nav{margin-bottom:14px}.topbar-month-nav{flex-shrink:0}.grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;margin-bottom:16px;display:grid}.grid>.card{min-width:0}@media (width<=800px){.grid{grid-template-columns:1fr}}.dashboard main>.card,.dashboard-panels>.card{margin-bottom:16px}.dashboard-summary-heading{display:none}.dashboard-updated{margin:0 0 8px;font-size:.8rem}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px}.savings-header{align-items:center;gap:var(--space-8);margin-bottom:var(--space-12);display:flex}.savings-heading{align-items:center;gap:var(--space-8);flex-wrap:wrap;flex:1;min-width:0;display:flex}.savings-header h2{flex:auto;margin:0}.savings-total{max-width:100%;font-family:var(--font-mono);font-weight:700;font-size:var(--text-body);color:var(--text-h);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;margin-left:auto}.savings-list{gap:var(--space-8);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}button.savings-item{width:100%;padding:var(--space-12);border-radius:var(--radius-card);text-align:left;cursor:pointer;color:var(--text-h);background:0 0;border:1px solid #0000;display:block}@media (hover:hover){button.savings-item:hover{background:var(--surface-sunken)}}button.savings-item:active{background:var(--surface-sunken)}.savings-top{align-items:center;gap:var(--space-12);display:flex}.savings-icon{flex-shrink:0;display:inline-flex}.savings-name{min-width:0;color:var(--text-h);overflow-wrap:anywhere;flex:auto;font-weight:600}.savings-deadline{margin-left:var(--space-8);white-space:nowrap;overflow-wrap:anywhere;font-weight:400;font-size:var(--text-caption);color:var(--muted)}.savings-deadline.overdue{color:var(--negative)}.savings-amount{color:var(--text-h);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-weight:600}.savings-progress{height:6px;margin-top:var(--space-8);border-radius:var(--radius-pill);background:var(--surface-sunken);display:block;overflow:hidden}.savings-progress-fill{border-radius:var(--radius-pill);background:var(--accent);height:100%;transition:width .2s;display:block}.savings-item.is-done .savings-progress-fill{background:var(--positive)}.savings-done-check{color:var(--positive);flex-shrink:0;align-items:center;display:inline-flex}.savings-done-check svg{width:14px;height:14px}button.savings-more{width:100%;margin-top:var(--space-12);color:var(--accent);font-size:var(--text-body-sm);cursor:pointer;background:0 0;border:none;padding:0;display:block}@media (hover:hover){button.savings-more:hover{background:0 0;text-decoration:underline}}button.savings-more:active{background:0 0}.savings-mini-tiles{align-items:stretch;gap:var(--space-8);flex-wrap:wrap;display:flex}button.savings-mini{min-width:64px;padding:var(--space-8) var(--space-12);background:var(--surface-sunken);border-radius:var(--radius-control);color:var(--text-h);text-align:left;cursor:pointer;border:1px solid #0000;flex-direction:column;flex:1;justify-content:center;align-items:flex-start;gap:2px;display:flex}@media (hover:hover){button.savings-mini:hover{background:var(--surface-sunken);border-color:var(--border)}}button.savings-mini:active{border-color:var(--muted)}.savings-mini-name{font-size:var(--text-dense);text-overflow:ellipsis;white-space:nowrap;width:100%;max-width:12ch;font-weight:600;line-height:1.25;overflow:hidden}.savings-mini-pct{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--muted);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}button.savings-mini.is-done .savings-mini-pct{color:var(--positive)}.savings-mini-balance{font-family:var(--font-mono);font-weight:600;font-size:var(--text-dense);color:var(--text-h);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}button.savings-mini-more{min-width:2.5ch;padding:var(--space-8) var(--space-12);border:1px dashed var(--border);border-radius:var(--radius-control);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-caption);cursor:pointer;background:0 0;flex:1;justify-content:center;align-self:stretch;align-items:center;display:flex}@media (hover:hover){button.savings-mini-more:hover{color:var(--text-h);border-color:var(--muted)}}@media (width>=601px){button.savings-mini{gap:3px;padding:10px 14px}.savings-mini-name{font-size:var(--text-body-sm);max-width:16ch}.savings-mini-balance{font-size:var(--text-body-sm)}button.savings-mini-more{padding:10px 14px}}@media (width>=900px){button.savings-mini{gap:4px;padding:12px 16px}.savings-mini-name{font-size:var(--text-body-sm);max-width:24ch}.savings-mini-balance{font-size:var(--text-body-sm)}.savings-mini-pct{font-size:var(--text-dense)}button.savings-mini-more{padding:12px 16px}}@media (prefers-reduced-motion:reduce){.savings-progress-fill{transition:none}}.chart-container{min-width:0}.recharts-legend-item-text{color:var(--text)!important}.expense-category-list{margin:0;padding:0;list-style:none}.expense-category-list li+li{border-top:1px solid var(--border)}.expense-category-item{width:100%;min-height:var(--control-height-touch);border-radius:var(--radius-control);color:inherit;font:inherit;text-align:left;background:0 0;flex-direction:column;gap:4px;padding:6px 8px;display:flex}@media (hover:hover){button.expense-category-item:hover{background:var(--surface-sunken)}}button.expense-category-item:active{background:var(--surface-sunken)}.expense-category-main,.expense-category-progress{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.expense-category-main{flex-wrap:wrap}.expense-category-name{min-width:min(120px,100%);color:var(--text-h);font-size:var(--text-body-sm);flex:1;align-items:center;gap:8px;font-weight:600;display:flex}.expense-category-name .dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.expense-category-name>span:last-child{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.expense-category-amount{max-width:100%;color:var(--text-h);font-family:var(--font-mono);font-size:var(--text-dense);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto;font-weight:600}.expense-category-track{background:var(--surface-sunken);border-radius:999px;flex:1;min-width:0;height:6px;overflow:hidden}.expense-category-fill{border-radius:inherit;height:100%;display:block}@media (hover:hover){button.expense-category-item:hover .expense-category-track{background:var(--border)}}.expense-category-share{width:38px;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-dense);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}.tile-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tile-header h2{margin:0}.expense-header{gap:var(--space-8);margin-bottom:2px}.expense-heading{align-items:center;gap:var(--space-8);flex-wrap:wrap;flex:1;min-width:0;display:flex}.expense-header h2{flex:auto}.expense-total{max-width:100%;font-family:var(--font-mono);font-size:var(--text-body);color:var(--text-h);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;margin-left:auto;font-weight:700}.expense-category-count{color:var(--muted);font-size:var(--text-caption);margin:0 0 4px}.tile-toggle{width:var(--control-height-compact);height:var(--control-height-compact);border-radius:var(--radius-control);color:var(--muted);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}@media (hover:hover){.tile-toggle:not(:disabled):hover{background:var(--surface-sunken);color:var(--text-h)}}.tile-toggle svg{width:18px;height:18px;transition:transform .18s}.tile-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.tile-collapsed-row{min-height:var(--control-height-compact);align-items:center;gap:12px;display:flex}.mini-top{flex-wrap:wrap;align-items:center;gap:2px 14px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.mini-top-item{min-width:0;color:inherit;font:inherit;text-align:left;background:0 0;align-items:center;gap:6px;margin:0 -5px;padding:0 5px;display:inline-flex}@media (hover:hover){button.mini-top-item:hover{background:var(--surface-sunken)}}button.mini-top-item:active{background:var(--surface-sunken)}.mini-top-item .dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.mini-top-name{font-size:var(--text-caption);color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.mini-top-pct{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--muted);font-variant-numeric:tabular-nums}.tx-time{font-size:var(--text-caption)}.cat-ops-list{overscroll-behavior-y:contain;flex:1;min-height:0;margin:0;padding:0 24px 24px;list-style:none;overflow-y:auto}.cat-ops-empty{margin:0;padding:0 24px 24px}.cat-ops-list .tx-row:last-child{border-bottom:none;padding-bottom:0}.cat-ops-date{color:var(--text-h);font-weight:600}.opening-balance-title,.income-title,.expense-title{color:var(--text-h);align-items:center;gap:8px;display:flex}.opening-balance-title:before,.income-title:before,.expense-title:before{content:"";border-radius:50%;flex-shrink:0;width:8px;height:8px}.opening-balance-title:before{background:var(--accent)}.income-title:before{background:var(--positive)}.expense-title:before{background:var(--negative)}.expense-title{margin-top:16px}.opening-balance-title{font-size:var(--text-heading-sm);margin-bottom:16px;font-weight:700}.opening-balance-title-total,.income-title-total,.expense-title-total{font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.opening-balance-title-total{color:var(--accent)}.opening-balance-title-total.negative{color:var(--negative)}.income-title-total{color:var(--positive)}.expense-title-total{color:var(--negative)}table{border-collapse:collapse;width:100%;margin-bottom:4px}table thead th{text-align:left;font-family:var(--font-mono);font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--border);padding:4px}table thead th.num{text-align:right}table td{border-bottom:1px solid var(--border);text-align:left;font-size:var(--text-body-sm);padding:6px 4px}.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.money-value{vertical-align:bottom;white-space:nowrap;overflow-wrap:normal;word-break:normal;max-width:100%;display:inline-block;overflow:auto hidden}.money-value>span{display:inline-block}tr.total-row td,tr.total-row th{border-bottom:none;font-weight:700}.month-result-table th{border-bottom:1px solid var(--border);text-align:left;font-size:var(--text-body-sm);font-weight:inherit;text-transform:none;letter-spacing:normal;color:inherit;padding:6px 4px;font-family:inherit}.month-result-table{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.month-result-table td.num{padding-right:0}tr.leftover-row td,tr.leftover-row th{font-size:var(--text-heading-sm);padding-top:10px;padding-bottom:10px}tr.total-row.positive td.num{color:var(--positive)}tr.total-row.negative td.num{color:var(--negative)}.positive{color:var(--positive)}.negative{color:var(--negative)}.num.neutral{color:var(--accent)}.tx-form{flex-direction:column;display:flex}.skeleton{margin-bottom:16px}.skeleton-block{background:var(--surface-sunken);border-radius:var(--radius-card);opacity:1;animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.skeleton-block{opacity:1;animation:none}}.grid>*,.card,.tx-row,.tx-category,.mini-top>li,.tile-header>*,.savings-header>*,.expense-category-list li{min-width:0;max-width:100%}.tx-category,.tx-row .muted,.tx-time,.goal-name{overflow-wrap:anywhere}.savings-header .tile-toggle{flex-shrink:0}.mini-top-item{max-width:100%;min-height:32px;margin:0}.mini-top-name{min-width:0}.mini-top-pct{flex-shrink:0}.expense-category-item{min-width:0}.savings-top{flex-wrap:wrap}.savings-amount{white-space:normal;max-width:100%;margin-left:auto}.savings-deadline{white-space:normal}.opening-balance-title,.income-title,.expense-title{flex-wrap:wrap}.opening-balance-title-total,.income-title-total,.expense-title-total{flex-shrink:0;min-width:0;max-width:100%}.opening-balance-title>span:first-child,.income-title>span:first-child,.expense-title>span:first-child{overflow-wrap:anywhere;flex:8ch;min-width:0}.month-result-table tbody{display:block}.month-result-table tr{flex-wrap:wrap;align-items:center;column-gap:8px;display:flex}.month-result-table th{overflow-wrap:anywhere;border-bottom:none;flex:10ch;min-width:0}.month-result-table td.num{border-bottom:none;flex:none;max-width:100%;margin-left:auto}.tx-category{flex-wrap:wrap}.account-inline{overflow-wrap:anywhere;min-width:0;max-width:100%}dialog.app-menu{inset:var(--menu-top,80px) auto auto var(--menu-left,12px);width:min(368px,100vw - 24px);max-width:none;max-height:calc(var(--menu-viewport-height,100dvh) - 24px);border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--card-bg);color:var(--text);box-shadow:var(--shadow-popover);margin:0;padding:0;position:fixed;overflow:hidden}.app-menu[open]{flex-direction:column;display:flex}.app-menu::backdrop{background:hsl(var(--shadow) / .24)}.app-menu-heading{flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px 4px 24px;display:flex}.app-menu-heading h2{letter-spacing:-.03em;margin:0;font-size:20px}.app-menu-close{border-radius:var(--radius-control);width:44px;height:44px;color:var(--muted);background:0 0;place-items:center;padding:10px;display:grid}.app-menu svg{flex-shrink:0;width:22px;height:22px}.app-menu-sections{overscroll-behavior:contain;min-height:0;padding:0 12px 12px;overflow-y:auto}.app-menu-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:12px 12px 6px;font-size:11px;font-weight:600}.app-menu-link{border-radius:var(--radius-control);min-height:68px;color:var(--text-h);align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:flex}.app-menu-icon{background:var(--surface-sunken);width:36px;height:36px;color:var(--muted);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.app-menu-copy{flex:1;gap:4px;min-width:0;display:grid}.app-menu-copy strong{font-size:14px;font-weight:600;line-height:1.35}.app-menu-copy>span{color:var(--muted);font-size:12px;line-height:1.45}.app-menu-arrow{color:var(--muted);font-size:16px}.app-menu-footer{border-top:1px solid var(--border);flex-shrink:0;padding:8px 16px}.app-menu-footer button{border-radius:var(--radius-control);width:100%;min-height:44px;color:var(--muted);background:0 0;align-items:center;gap:12px;padding:10px 12px;font-size:13px;font-weight:500;display:flex}@media (hover:hover){.app-menu-link:hover,.app-menu-close:hover,.app-menu-footer button:hover{background:var(--surface-sunken);color:var(--text-h)}}.app-menu-link:active{background:var(--surface-sunken)}@media (width<=599px){dialog.app-menu{width:100%;max-height:calc(var(--menu-viewport-height,100dvh) - 16px);border-bottom:0;border-radius:24px 24px 0 0;inset:auto 0 0}.app-menu-heading{padding-top:16px}.app-menu-footer{padding-bottom:max(12px, env(safe-area-inset-bottom))}}button.step-arrow{width:var(--control-height-touch);height:var(--control-height-touch);min-width:var(--control-height-touch);min-height:var(--control-height-touch);color:var(--accent);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background-color .16s;display:inline-flex}.step-arrow svg{pointer-events:none;flex-shrink:0;width:18px;height:18px}@media (hover:hover){button.step-arrow:not(:disabled):hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}}button.step-arrow:not(:disabled):active{background:color-mix(in srgb, var(--accent) 18%, transparent)}dialog.modal{border-radius:var(--radius-dialog);background:var(--card-bg);color:var(--text);width:100%;max-width:360px;box-shadow:var(--shadow-dialog);border:none;padding:24px}dialog.modal::backdrop{background:hsl(var(--shadow) / .35)}.modal-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.tx-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tx-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding-bottom:8px;display:flex}.tx-row>div:first-child{flex:1;min-width:0}.tx-category{align-items:center;gap:8px;font-weight:500;display:flex}.tx-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tx-actions{justify-content:flex-end;gap:2px;margin-left:auto;display:flex}.tx-action-label{font-size:var(--text-dense)}.tx-day-header{border-radius:var(--radius-control);text-align:left;background:0 0;align-items:center;gap:10px;width:100%;margin:0 -8px;padding:10px 8px;display:flex}@media (hover:hover){.tx-day-header:hover{background:var(--surface-sunken)}}.tx-day-header:active{background:var(--surface-sunken)}.tx-day-date{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-h);flex:1;font-weight:600;overflow:hidden}.tx-day-date.weekend{color:var(--coral)}.tx-day-total{flex-shrink:0;font-weight:600}.tx-day-header svg{width:16px;height:16px;color:var(--muted);flex-shrink:0;transition:transform .18s}.tx-day-header[aria-expanded=true] svg{transform:rotate(180deg)}.tx-day-body{flex-direction:column;gap:8px;margin:2px 0 0;padding:0;list-style:none;display:flex}.budget-card{min-width:0}.budget-header{z-index:2;background:var(--card-bg);flex-shrink:0;align-items:center;margin-bottom:0;padding-bottom:8px;display:flex;position:sticky;top:0}.budget-header-title{width:100%;font-weight:600;font-size:var(--text-body);justify-content:space-between;align-items:center;gap:12px;display:flex}.budget-header-title .budget-average-btn{min-height:var(--control-height-touch);border-radius:var(--radius-pill);color:var(--accent);font-size:var(--text-caption);white-space:nowrap;background:0 0;justify-content:center;align-items:center;padding:4px 0;font-weight:700;display:inline-flex}.budget-average-chip{border-radius:var(--radius-pill);background:var(--accent-soft);justify-content:center;align-items:center;gap:4px;min-height:28px;padding:4px 8px 4px 6px;display:inline-flex}@media (hover:hover){.budget-header-title button.budget-average-btn:not(:disabled):hover{background:0 0}.budget-average-btn:not(:disabled):hover .budget-average-chip{background:color-mix(in srgb, var(--accent-soft) 80%, var(--accent) 20%)}}.budget-header-title button.budget-average-btn:not(:disabled):active{background:0 0}.budget-average-btn:not(:disabled):active .budget-average-chip{background:color-mix(in srgb, var(--accent-soft) 60%, var(--accent) 40%)}.budget-header-title .budget-average-btn svg{width:16px;height:16px}@media (width>=1100px){.budget-header-title button.budget-average-btn{min-height:var(--control-height-touch);padding:var(--space-8) 14px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--card-bg);color:var(--text-h);font-size:var(--text-body-sm);font-weight:500}.budget-header-title .budget-average-chip{gap:var(--space-8);background:0 0;border-radius:0;min-height:0;padding:0}.budget-header-title .budget-average-btn svg{color:var(--accent)}@media (hover:hover){.budget-header-title button.budget-average-btn:not(:disabled):hover{background:var(--accent-soft);border-color:var(--accent)}}.budget-header-title button.budget-average-btn:not(:disabled):active{background:var(--accent-soft);border-color:var(--accent)}.budget-header-title .budget-average-btn:not(:disabled):is(:hover,:active) .budget-average-chip{background:0 0}}.budget-empty{text-align:center;flex-direction:column;align-items:center;padding:20px 8px 14px;display:flex}.budget-empty p{color:var(--muted);font-size:var(--text-body-sm);margin:0 0 12px}.budget-empty button{max-width:100%;min-height:var(--control-height-touch);justify-content:center;align-items:center;gap:7px;display:inline-flex}.budget-empty button svg{flex-shrink:0;width:17px;height:17px}.budget-list{flex-direction:column;gap:6px;max-height:none;margin-bottom:0;padding:1px;display:flex;overflow:visible}.settings-add-actions.budget-footer{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px}.budget-footer-total{min-width:0;color:var(--text-h);text-align:left;flex:120px}.budget-footer-total span{color:var(--muted);font-size:var(--text-caption);letter-spacing:.035em;text-transform:uppercase;margin-bottom:2px;font-weight:600;display:block}.budget-footer-total strong{font-family:var(--font-mono);font-size:var(--text-dense);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.budget-footer>button{flex-shrink:0;margin-left:auto}.budget-row{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-sunken);flex-shrink:0;min-width:0;display:flex;overflow:hidden}.budget-row-stripe{background:var(--positive);flex:0 0 3px;width:3px}.budget-row-warning .budget-row-stripe{background:var(--warning)}.budget-row-over .budget-row-stripe{background:var(--negative)}.budget-row-body{flex:1;min-width:0}.budget-row-trigger{width:100%;min-height:var(--control-height-touch);color:inherit;text-align:left;background:0 0;border-radius:0;padding:9px 10px;display:block}@media (hover:hover){.budget-row-trigger:not(:disabled):hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}}.budget-row-trigger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.budget-row-top{grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:8px;display:grid}.budget-row-name{min-width:0;color:var(--text-h);font-size:var(--text-dense);overflow-wrap:anywhere;font-weight:600;line-height:1.3}.budget-row-figures{max-width:100%;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-dense);font-variant-numeric:tabular-nums;text-align:right;line-height:1.3}.budget-row-figures.negative{color:var(--negative)}.budget-row-chevron{color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.budget-row-chevron svg{width:14px;height:14px;transform:rotate(-90deg)}.progress-track{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--border-strong) 45%, transparent);height:5px;margin-top:7px;display:block;overflow:hidden}.progress-fill{border-radius:var(--radius-pill);background:var(--positive);height:100%;transition:width .2s;display:block;overflow:hidden}.progress-fill.warning{background:var(--warning)}.progress-fill.over{background:var(--negative);width:100%}.budget-card .deleted-item-name{overflow-wrap:anywhere;min-width:0}.budget-card .deleted-item-row button{flex-shrink:0}@media (prefers-reduced-motion:reduce){.progress-fill{transition:none}}.budget-line-dialog h2{margin-bottom:2px}.budget-line-period{color:var(--muted);font-size:var(--text-body-sm);margin:0 0 18px}.budget-line-category{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.budget-line-category span{color:var(--muted);font-size:var(--text-caption);font-weight:600}.budget-line-category strong{color:var(--text-h);font-size:var(--text-body);overflow-wrap:anywhere}.budget-line-dialog .money-input input{min-height:var(--control-height-touch);font-family:var(--font-mono);font-size:var(--text-heading-sm);font-variant-numeric:tabular-nums}.budget-line-dialog-actions{justify-content:space-between;align-items:center;margin-top:12px}.budget-line-primary-actions{gap:8px;margin-left:auto;display:flex}button.budget-line-delete{min-height:var(--control-height-touch);color:var(--negative);background:0 0;padding:8px 6px;font-weight:600}.money-input{width:100%;max-width:190px;position:relative}.money-input input{padding-right:32px}.money-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.money-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.money-input input[type=number]{appearance:textfield}.money-input>span{color:var(--muted);pointer-events:none;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.tx-form .money-input{max-width:none}.money-input-hero{margin-bottom:10px}.money-hero-center{justify-content:center;align-items:baseline;gap:.5em;display:flex;position:relative}@keyframes money-hero-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.money-hero-center.shake{animation:.3s money-hero-shake}.money-input-hero input{font-family:var(--font-mono);font-weight:700;font-size:var(--text-money-lg);text-align:center;border:none;border-bottom:2px solid var(--border);box-sizing:content-box;background:0 0;border-radius:0;flex:none;min-width:96px;max-width:calc(100% - 40px);padding:8px 4px}.money-input-hero input:focus-visible{border-bottom-color:var(--accent);outline:none}@keyframes money-hero-empty-pulse{0%,to{border-bottom-color:var(--border)}50%{border-bottom-color:var(--accent)}}.money-input-hero input.is-empty{animation:1.6s ease-in-out infinite money-hero-empty-pulse}.amount-field-label{margin-bottom:4px}.rub-symbol{font-size:var(--text-heading-md);color:var(--muted);position:static;transform:none}.money-input-hero .money-input-hero-measure{visibility:hidden;white-space:pre;font-family:var(--font-mono);font-weight:700;font-size:var(--text-money-lg);position:absolute;top:auto;left:-9999px;right:auto;transform:none}.amount-add-circle{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:50%;place-items:center;padding:0;transition:opacity .2s,transform .1s;display:grid;position:absolute;top:50%;right:0;transform:translateY(-50%)}.amount-add-circle svg{width:15px;height:15px}.amount-add-circle:active{transform:translateY(-50%)scale(.92)}.amount-add-circle.used{opacity:.7}.amount-add-circle:disabled{opacity:.4;cursor:not-allowed}@keyframes money-hero-pulse{0%{opacity:0;background:var(--accent-soft)}35%{opacity:1;background:var(--accent-soft)}to{opacity:.6;background:0 0}}.amount-running-total{white-space:nowrap;font-family:var(--font-mono);color:var(--text-h);opacity:.6;font-weight:700;font-size:var(--text-heading-sm);border-radius:6px;padding:2px 6px;animation:.5s money-hero-pulse;position:absolute;top:50%;left:0;transform:translateY(-50%)translate(calc(-100% - 12px))}.date-picker{width:100%}.date-picker-trigger{min-height:var(--control-height-touch);width:100%;font:inherit;border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--text-h);text-align:left;cursor:pointer;font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.date-picker-trigger:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.date-picker-trigger svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}.date-picker-placeholder{color:var(--muted)}dialog.date-picker-popover{z-index:var(--z-popover);width:296px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);max-height:calc(var(--visual-viewport-height,100dvh) - 16px);overscroll-behavior-y:contain;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-popover);margin:0;padding:12px;position:fixed;inset:auto;overflow-y:auto}dialog.date-picker-popover::backdrop{background:0 0}.date-picker-header{margin-bottom:8px}.date-picker-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.date-picker-weekdays span{font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center}.date-picker-days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-picker-day{width:100%;height:100%;color:var(--text-h);background:0 0;justify-content:center;align-items:center;padding:0;display:flex}.date-picker-day-inner{width:32px;height:32px;font-size:var(--text-dense);font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;display:flex}@media (hover:hover){.date-picker-day:hover .date-picker-day-inner{background:var(--surface-sunken)}}.date-picker-day.outside .date-picker-day-inner{color:var(--muted)}.date-picker-day.today .date-picker-day-inner{box-shadow:inset 0 0 0 1px var(--accent)}.date-picker-day.selected .date-picker-day-inner{background:var(--accent);color:var(--accent-contrast)}.date-picker-day.disabled{cursor:not-allowed}.date-picker-day.disabled .date-picker-day-inner{color:var(--muted);opacity:.5}@media (hover:hover){.date-picker-day.disabled:hover .date-picker-day-inner{background:0 0}}.date-picker-footer{border-top:1px solid var(--border);justify-content:flex-end;margin-top:8px;padding-top:8px;display:flex}.date-picker-clear{color:var(--muted);font-size:var(--text-dense);min-height:var(--control-height-touch);background:0 0;align-items:center;padding:4px 8px;display:inline-flex}@media (hover:hover){.date-picker-clear:hover{color:var(--negative)}}.select{width:100%}.select-trigger{min-height:var(--control-height-touch);width:100%;font:inherit;border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--text-h);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.select-trigger:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.select-trigger svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}.select-value,.select-placeholder{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-placeholder{color:var(--muted)}.select-popover-layer{z-index:var(--z-popover);color:inherit;background:0 0;border:none;margin:0;padding:0;position:fixed;inset:auto;overflow:visible}.select-popover{overscroll-behavior-y:contain;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-card);width:max-content;max-width:320px;max-height:280px;box-shadow:var(--shadow-popover);flex-direction:column;gap:1px;padding:4px;display:flex;position:static;overflow-y:auto}.select-option{width:100%;min-height:var(--control-height-touch);border-radius:calc(var(--radius-control) - 3px);color:var(--text-h);font-size:var(--text-body-sm);text-align:left;white-space:nowrap;background:0 0;align-items:center;padding:8px 10px;display:flex}@media (hover:hover){.select-option:hover:not(:disabled){background:var(--surface-sunken)}}.select-option.selected{background:var(--accent-soft);color:var(--accent);font-weight:600}.select-option.highlighted{outline:2px solid var(--accent);outline-offset:-2px}.draft-restore{background:var(--accent-soft);border-radius:var(--radius-card);padding:10px var(--space-16);margin-bottom:var(--space-16);font-size:var(--text-body-sm)}.draft-restore p{margin:0 0 var(--space-8)}.draft-restore-actions{gap:var(--space-16);display:flex}.type-toggle{background:var(--surface-sunken);border-radius:var(--radius-control);margin-bottom:var(--space-16);padding:3px;display:flex}.type-toggle button{min-height:var(--control-height-touch);border-radius:calc(var(--radius-control) - 2px);font-size:var(--text-body-sm);color:var(--text);background:0 0;border:none;flex:1;padding:9px 0;font-weight:600}.type-toggle button.active{background:var(--card-bg);box-shadow:0 1px 2px hsl(var(--shadow) / .15)}.type-toggle button.active.income{color:var(--positive)}.type-toggle button.active.expense{color:var(--negative)}.type-toggle button.active.transfer{color:var(--accent)}.category-fieldset{border:none;margin:0 0 10px;padding:0}.category-fieldset legend{font-size:var(--text-body-sm);margin-bottom:8px;padding:0}.transfer-accounts{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.category-chips{flex-wrap:wrap;gap:8px;display:flex;position:relative}.category-chip{border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text);font-size:var(--text-body-sm);min-height:var(--control-height-touch);border:none;padding:8px 16px}.category-chip.active{background:var(--accent);color:var(--accent-contrast);font-weight:600}.category-chip-more{background:var(--accent-soft);color:var(--accent);justify-content:center;align-items:center;gap:4px;font-weight:600;display:inline-flex;position:absolute}.category-chip-more svg{width:14px;height:14px}@media (hover:hover){.category-chip-more:not(:disabled):hover{background:color-mix(in srgb, var(--accent-soft) 80%, var(--accent) 20%)}}.budget-stats{flex-wrap:wrap;gap:16px;margin-bottom:20px;display:flex}.stat{background:var(--surface-sunken);border-radius:var(--radius-card);flex:1;min-width:160px;padding:12px 16px}.stat-label{font-size:var(--text-dense);color:var(--muted);margin-bottom:4px}.stat-value{font-family:var(--font-mono);font-size:var(--text-heading-md);font-weight:700}.pace-pill{font-size:var(--text-dense);border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:5px 11px;font-weight:600;display:inline-flex}.pace-pill .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.pace-pill.positive{color:var(--positive);background:var(--positive-soft)}.pace-pill.negative{color:var(--negative);background:var(--negative-soft)}.tile-remaining{font-family:var(--font-mono);font-size:var(--text-dense);color:var(--muted);margin-left:auto}.tile-remaining b{font-variant-numeric:tabular-nums;font-weight:600}.budget-hover-panel{border-radius:var(--radius-card);background:var(--surface-sunken);flex-direction:column;justify-content:center;min-height:44px;margin-top:12px;padding:10px 16px;display:flex}.budget-hover-nav{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.budget-hover-day{font-size:var(--text-dense);color:var(--muted);text-align:center;flex:1}.budget-chart-heading{color:var(--text-h);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px 24px;font-size:13px;display:flex}.budget-chart-unit{color:var(--muted);white-space:nowrap}.budget-chart-legend{color:var(--muted);flex-wrap:wrap;gap:8px 16px;font-size:12px;display:flex}.budget-chart-legend>span{align-items:center;gap:6px;display:flex}.budget-chart-legend i{flex-shrink:0;width:18px}.budget-legend-fact{border-top:3px solid var(--accent);border-radius:2px}.budget-legend-plan{border-top:2px dashed var(--chart-plan)}.budget-legend-over{background:var(--negative-soft);height:8px}.budget-chart{touch-action:pan-y pinch-zoom}.budget-chart[aria-hidden=true] [tabindex="-1"]:focus{outline:none}.budget-day-hit{touch-action:pan-y pinch-zoom;cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.budget-chart-axis-caption{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:5px 16px;margin-top:2px;font-size:11px;display:flex}.budget-day-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:4px 0 8px;display:grid}.budget-day-metrics>div{min-width:0}.budget-day-metrics dt{color:var(--muted);font-size:12px}.budget-day-metrics dd{min-width:0;color:var(--text-h);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:6px 0 0;font-size:19px;font-weight:600;display:flex}.budget-day-metrics dd.negative{color:var(--negative)}.budget-day-metrics .money-value{max-width:100%}.budget-day-percent{color:var(--muted);font-size:12px;font-weight:400}.budget-future-note{color:var(--muted);margin:0 0 12px;font-size:12px}.budget-plan-explanation{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.6}@media (width<=899px){.budget-day-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.budget-day-metrics dd{font-size:17px}}.budget-hover-placeholder{text-align:center;margin:0}.empty-state{max-width:32rem;padding-block:var(--space-24)}.empty-state p{line-height:1.5}.tx-row{flex-wrap:wrap}.tx-row>div:first-child{flex:8ch}.tx-row>.num{flex:none;max-width:100%;margin-left:auto}.tx-row>.tx-actions{flex-basis:100%}.amount-add-circle{width:var(--control-height-touch);height:var(--control-height-touch)}.money-input-hero:has(.amount-add-circle) .money-hero-center{margin-right:var(--control-height-touch)}.stat{flex:1 1 max-content;min-width:min(160px,100%);max-width:100%}.stat-value{width:max-content;max-width:100%}.tx-day-header{flex-wrap:wrap;padding-right:34px;position:relative}.tx-day-date{flex:8ch}.tx-day-header svg{position:absolute;top:14px;right:8px}.tx-day-total{max-width:100%;margin-left:auto}.tile-remaining{min-width:0;max-width:100%}.month-switcher{border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--card-bg);width:max-content;min-width:0;max-width:100%;font-family:var(--sans);font-size:var(--text-body);grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;padding:4px;font-weight:600;display:grid}.month-switcher>span{text-align:center;white-space:nowrap;width:15ch;min-width:0;max-width:100%;color:var(--text-h);font-variant-numeric:tabular-nums}@media (width<=600px){.month-switcher{gap:4px}}.month-switcher--compact{background:0 0;border:0;border-radius:0;gap:2px;padding:0;font-size:14px}.month-switcher--compact .step-arrow svg{width:16px;height:16px}.month-label-highlight{border-radius:4px;animation:.9s ease-out both month-label-flash}@keyframes month-label-flash{0%,25%{color:var(--accent);background-color:var(--accent-soft);box-shadow:0 0 0 5px var(--accent-soft)}to{color:var(--text);background-color:#0000;box-shadow:0 0 0 5px #0000}}@media (prefers-reduced-motion:reduce){.month-switcher .month-label-highlight{color:var(--accent);background-color:var(--accent-soft);box-shadow:0 0 0 5px var(--accent-soft);animation:none}}.dashboard.primary-page-layout{max-width:none;margin:0;padding:0}.dashboard.primary-page-layout>.topbar,.dashboard.primary-page-layout>.month-nav,.dashboard.primary-page-layout>.mobile-add-shortcut,.dashboard.primary-page-layout>.mobile-add-dock{display:none}.dashboard.primary-page-layout>main{min-height:100dvh}.primary-page-shell{background:var(--card-bg);width:100%;height:100dvh;min-height:0;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.primary-page-header{border-bottom:1px solid var(--border);background:var(--card-bg);flex-shrink:0;align-items:center;gap:12px;width:100%;display:flex}.workflow-page .primary-page-header{padding:16px 24px}.workflow-page .primary-page-header h1{overflow-wrap:anywhere;min-width:0;margin:0}.workflow-page .primary-page-back{text-decoration:none}.workflow-page .card{margin-bottom:16px}.workflow-page .card form{gap:8px;margin-top:12px;display:grid}@media (width<=600px){.workflow-page .primary-page-header{padding:12px 16px}.workflow-page .primary-page-header h1{font-size:24px}}.primary-page-back{width:var(--control-height-touch);height:var(--control-height-touch);min-width:var(--control-height-touch);border-radius:var(--radius-control);background:var(--accent-soft);color:var(--accent);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (hover:hover){button.primary-page-back:not(:disabled):hover{background:color-mix(in srgb, var(--accent-soft) 80%, var(--accent) 20%)}}button.primary-page-back:not(:disabled):active{background:color-mix(in srgb, var(--accent-soft) 70%, var(--accent) 30%)}.primary-page-back svg{width:21px;height:21px}.settings-page .settings-dialog-header{max-width:1100px;margin-inline:auto;padding:16px 24px 12px}.settings-page .settings-dialog-header h1{min-width:0;font-size:var(--text-heading-lg);flex:1;align-items:center;margin:0;display:flex}.settings-page .settings-dialog-body,.settings-page .settings-dialog-footer{width:100%;max-width:1100px;margin-inline:auto}.category-operations-header,.category-operations-body{width:100%;max-width:780px;margin-inline:auto}.category-operations-header{border-bottom:0;padding:17px 24px 19px;display:block}.category-operations-title-row{align-items:center;gap:12px;display:flex}.category-operations-title-row .primary-page-back{align-self:center}.category-operations-title-row .primary-page-heading,.category-operations-title-row .category-operations-header-total{align-self:baseline}.category-operations-meta{margin:3px 0 0 calc(var(--control-height-touch) + 12px);color:var(--muted);font-size:var(--text-body-sm)}.category-operations-header h1{letter-spacing:0;font-size:24px;font-weight:700}.category-operations-header-total{min-width:0;max-width:50%;color:var(--text-h);font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;flex:0 auto;margin-left:auto;font-size:19px}.primary-page-heading{min-width:0}.primary-page-heading h1{overflow-wrap:anywhere;margin:0}.category-operations-body{--cat-ops-gutter-left:24px;--cat-ops-gutter-right:24px;overscroll-behavior-y:contain;min-height:0;padding:16px var(--cat-ops-gutter-right) 32px var(--cat-ops-gutter-left);flex:1;overflow-y:auto}.category-operations-summary{margin:-16px calc(0px - var(--cat-ops-gutter-right)) 8px calc(0px - var(--cat-ops-gutter-left));padding:13px var(--cat-ops-gutter-right) 13px var(--cat-ops-gutter-left);background:color-mix(in srgb, var(--card-bg) 35%, var(--border));color:var(--muted);font-size:var(--text-dense);justify-content:space-between;align-items:baseline;gap:16px;display:flex}.category-operations-summary strong{color:var(--text-h);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:19px}.category-operations-page .cat-ops-list{min-height:auto;margin:0;padding:0;display:block;overflow:visible}.category-operations-page .cat-ops-list .tx-row{align-items:flex-start;min-height:57px;padding:11px 0}.category-operations-page .cat-ops-list .tx-row:last-child{padding-bottom:11px}.category-operations-page .cat-ops-date,.category-operations-page .cat-ops-list .muted{font-size:var(--text-dense);line-height:1.25}.category-operations-page .cat-ops-list .muted{margin-top:3px}.category-operations-page .cat-ops-list .num.negative{color:color-mix(in srgb, var(--negative) 70%, var(--muted));margin-top:1px;font-size:15px;font-weight:500}.category-operations-page .cat-ops-empty{padding:18px 0}:is(html:has(dialog[open]),body:has(dialog[open])){overscroll-behavior:none;overflow:hidden}html:has(dialog[open]){scrollbar-gutter:stable}html[data-dialog-background-shifted=true] .dashboard{transform:translateY(var(--dialog-background-offset-top,0px))}:is(.settings-dialog-body:has(dialog[open]),.category-operations-body:has(dialog[open]),.add-tx-fields:has(dialog[open])){overscroll-behavior:none;overflow-y:hidden}.landscape-guard{display:none}@media (orientation:landscape) and (height<=600px){.landscape-guard{z-index:1;text-align:center;background:var(--card-bg);color:var(--text);justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}}.settings-dialog-header{border-bottom:1px solid #0000;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 24px 4px;display:flex}.settings-dialog-header.has-tab-context{border-bottom-color:var(--border);box-shadow:0 8px 18px -18px var(--text-h)}.settings-dialog-header h1{flex:1;align-items:center;min-width:0;margin:0;display:flex}.settings-dialog-active-tab{min-width:0;color:var(--accent);font-size:var(--text-body);letter-spacing:0;align-items:center;gap:8px;margin-left:8px;font-weight:600;animation:.16s ease-out settings-active-tab-in;display:inline-flex}.settings-dialog-active-tab svg{width:15px;height:15px;color:var(--muted);flex-shrink:0;transform:rotate(-90deg)}.settings-dialog-active-tab span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes settings-active-tab-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.settings-dialog-body{overscroll-behavior-y:none;flex:1;min-height:0;padding:0 24px 24px;overflow-y:auto}.settings-dialog-body.settings-docked-body{overflow-anchor:none;flex-direction:column;padding-bottom:0;scroll-padding-top:52px;display:flex;overflow-y:auto}.settings-docked-body .settings-tabs-row{flex-shrink:0}.settings-docked-body .settings-tab-content{flex-direction:column;flex:1 0 auto;min-width:0;margin-bottom:0;display:flex}.settings-docked-body .settings-panels-scroll>[role=tabpanel]:not([hidden]),.settings-docked-body .budget-card,.settings-docked-body .settings-categories-card,.settings-docked-body .accounts-card{flex-direction:column;flex:1 0 auto;min-width:0;display:flex}.settings-docked-body .budget-card{padding-top:0}.settings-dialog-footer{min-width:0;padding:0 24px calc(var(--space-24) + var(--space-20) + 1px);background:var(--card-bg);flex-shrink:0}.settings-dialog-footer:empty,.settings-dialog-footer[hidden]{display:none}.invite-card{border-top:1px solid var(--border);margin-top:24px;margin-bottom:20px;padding-top:24px}.invite-card h2{margin-bottom:4px}.theme-card{margin-bottom:20px}.members-card,.notifications-card{border-top:1px solid var(--border);margin-top:24px;margin-bottom:20px;padding-top:24px}.family-members-list{margin:var(--space-12) 0 0;padding:0;list-style:none}.family-members-list li{justify-content:space-between;align-items:baseline;gap:var(--space-4) var(--space-12);padding:var(--space-8) 0;flex-wrap:wrap;display:flex}.family-members-list li+li{border-top:1px solid var(--border)}.family-member-name{min-width:0;color:var(--text-h);font-size:var(--text-body-sm);overflow-wrap:anywhere;font-weight:600}.family-member-self,.family-member-status{color:var(--muted);font-size:var(--text-dense);font-weight:400}.settings-excel-card{border-top:1px solid var(--border);margin-top:24px;margin-bottom:20px;padding-top:24px}.bank-import{min-width:0}.bank-import p{overflow-wrap:anywhere}.bank-import-controls{border:0;min-width:0;margin:16px 0;padding:0}.bank-import-fields{flex-wrap:wrap;align-items:end;gap:12px;margin:12px 0;display:flex}.bank-import-fields>*{flex:220px;min-width:0;max-width:100%}.bank-import-fields label{flex-direction:column;gap:6px;display:flex}.bank-import-rows{margin:16px 0}.bank-import-row{border-top:1px solid var(--border);padding:14px 0}.bank-import-row p{margin:8px 0}.bank-import-row-top{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.bank-import-row-top strong{white-space:nowrap}.bank-reconcile{border:1px solid var(--border);border-radius:12px;min-width:0;margin:24px 0;padding:16px}.bank-reconcile-summary,.bank-reconcile-confirm{background:var(--bg);border-radius:8px;margin:16px 0;padding:12px}.bank-reconcile-before{border-left:3px solid var(--border);padding-left:12px}.bank-reconcile-checkbox{align-items:center;gap:8px;margin:12px 0;display:flex}.bank-reconcile-checkbox input{flex:none;width:18px;height:18px}.bank-reconcile button{white-space:normal;max-width:100%}.settings-excel-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.settings-excel-actions button{min-height:var(--control-height-touch)}.settings-excel-card .notice,.settings-excel-card .error{margin-top:12px}.password-card{border-top:1px solid var(--border);margin-top:24px;margin-bottom:20px;padding-top:24px}.password-card form button[type=submit]{width:100%;min-height:var(--control-height-touch);justify-content:center;align-items:center;gap:8px;margin-top:8px;display:inline-flex}.notifications-card h2{margin-bottom:4px}.messenger-status-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.theme-card h2,.invite-card h2,.members-card h2,.notifications-card h2,.settings-excel-card h2,.password-card h2{font-size:var(--text-body-sm)}.theme-toggle{background:var(--surface-sunken);border-radius:var(--radius-control);max-width:420px;padding:3px;display:flex}.theme-toggle button{border-radius:calc(var(--radius-control) - 2px);font-size:var(--text-caption);color:var(--muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:5px;padding:10px 4px;font-weight:600;display:flex}.theme-toggle button svg{width:17px;height:17px}.theme-toggle button.active{background:var(--card-bg);color:var(--accent);box-shadow:0 1px 3px hsl(var(--shadow) / .18)}.settings-tabs-row{border-bottom:1px solid var(--border);align-items:stretch;gap:4px;margin-bottom:10px;display:flex}.settings-tabs{scrollbar-width:none;-ms-overflow-style:none;flex:1;gap:4px;min-width:0;scroll-padding-inline:24px;display:flex;position:relative;overflow-x:auto}.settings-tabs::-webkit-scrollbar{display:none}@media (hover:hover) and (pointer:fine){.settings-tabs{cursor:grab}}.settings-tabs.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.settings-tabs.has-overflow-start{-webkit-mask-image:linear-gradient(90deg,#0000,#000 24px);mask-image:linear-gradient(90deg,#0000,#000 24px)}.settings-tabs.has-overflow-end{-webkit-mask-image:linear-gradient(270deg,#0000,#000 24px);mask-image:linear-gradient(270deg,#0000,#000 24px)}.settings-tabs.has-overflow-start.has-overflow-end{-webkit-mask-image:linear-gradient(90deg,#0000,#000 24px calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#0000,#000 24px calc(100% - 24px),#0000)}.settings-tabs-nav{flex-shrink:0;gap:2px;display:none}@media (hover:hover) and (pointer:fine){.settings-tabs-nav{display:flex}}.settings-tab-content{margin-bottom:20px}.settings-section-heading{display:none}.settings-panels-scroll{display:contents}.settings-tab-content .card>:first-child{margin-top:0}.settings-tabs button{min-height:var(--control-height-touch);font-size:var(--text-heading-sm);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:none;padding:10px 14px}.settings-tabs button:focus-visible{outline-offset:-3px}.settings-tabs button.active{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}@media (hover:hover){.settings-tabs button:hover{background:0 0}.settings-tabs button:not(.active):hover{border-bottom-color:color-mix(in srgb, var(--accent) 35%, transparent)}}.settings-tabs button:active{background:0 0}.settings-tabs button:not(.active):active{border-bottom-color:color-mix(in srgb, var(--accent) 55%, transparent)}.account-icon{background:var(--accent-soft);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.account-icon .account-type-icon{width:11px;height:11px;color:var(--accent)}.account-type-icon{vertical-align:-3px;width:16px;height:16px;color:var(--muted);flex-shrink:0}.account-inline{align-items:center;gap:6px;display:inline-flex}.account-balance{color:var(--muted);font-size:var(--text-dense);flex-shrink:0;margin-left:auto}.select-option>.account-inline{width:100%}.settings-table th{font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;border-bottom:1px solid var(--border);padding:4px 8px}.settings-table td{vertical-align:middle;padding:8px}@media (hover:hover){.settings-table tr:hover td{background:var(--surface-sunken)}}.settings-table-editable-row{cursor:pointer}.row-actions{justify-content:flex-end;gap:2px;display:flex}.account-edit-dialog h2,.opening-balance-edit-dialog h2{margin-bottom:2px}.account-edit-meta,.opening-balance-edit-meta{color:var(--muted);font-size:var(--text-body-sm);margin:0 0 18px}.opening-balance-edit-meta .account-inline{color:var(--text)}.tx-form>label.account-default-option{flex-direction:row;align-items:center;gap:.6rem;min-height:44px;display:flex}.account-default-option input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);margin:0}.account-default-hint{font-size:var(--text-caption);color:var(--muted);margin-top:4px;display:block}.account-edit-hint{color:var(--muted);font-size:var(--text-caption);margin:-4px 0 0}.account-edit-dialog-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;margin-top:12px}.account-edit-primary-actions{gap:8px;margin-left:auto;display:flex}button.account-edit-delete{min-height:var(--control-height-touch);color:var(--negative);background:0 0;padding:8px 6px;font-weight:600}.opening-balance-edit-dialog .money-input{max-width:none}.opening-balance-edit-dialog .money-input input{min-height:var(--control-height-touch);font-family:var(--font-mono);font-size:var(--text-heading-sm);font-variant-numeric:tabular-nums}.opening-balance-edit-dialog-actions{margin-top:12px}.account-balance-hint{font-size:var(--text-dense);color:var(--muted);margin:0;padding:0 6px 4px}.chip-grid{flex-wrap:wrap;gap:8px;display:flex}.settings-categories-view{flex-direction:column;height:100%;min-height:0;display:flex}.settings-categories-card{flex-direction:column;flex:1;min-height:0;display:flex}.settings-category-chip-viewport{min-height:var(--control-height-compact);flex:1;overflow:hidden}.settings-category-chip-viewport.expanded{flex:none;overflow:visible}.settings-category-chip-grid{position:relative;overflow:hidden}.settings-category-chip-viewport.expanded .settings-category-chip-grid{max-height:none;overflow:visible}.settings-categories-view.expanded,.settings-categories-view.expanded .settings-categories-card{height:auto}.settings-category-more{background:var(--accent-soft);color:var(--accent);cursor:pointer;border:none;gap:4px;font-weight:600;position:absolute}.settings-category-more svg{width:14px;height:14px}@media (hover:hover){.settings-category-more:not(:disabled):hover{background:color-mix(in srgb, var(--accent-soft) 80%, var(--accent) 20%)}}.settings-categories-deleted{flex-shrink:0}.chip{background:var(--surface-sunken);border-radius:var(--radius-pill);font-size:var(--text-body-sm);color:var(--text-h);min-height:var(--control-height-compact);border:none;align-items:center;gap:4px;padding:6px 8px 6px 14px;font-weight:500;display:inline-flex}.settings-category-chip{cursor:pointer;text-align:left}@media (hover:hover){.settings-category-chip:not(:disabled):hover{background:color-mix(in srgb, var(--surface-sunken) 84%, var(--accent) 16%)}}.settings-category-chip:not(:disabled):active{background:color-mix(in srgb, var(--surface-sunken) 76%, var(--accent) 24%)}.settings-category-chip:focus-visible{background:var(--accent);color:var(--accent-contrast);outline:none}.settings-category-chip:focus-visible .chip-usage-count{background:color-mix(in srgb, var(--accent-contrast) 18%, transparent);color:var(--accent-contrast)}.chip.settings-category-new{animation:1.8s ease-out settings-category-spotlight}@keyframes settings-category-spotlight{0%{background:var(--accent-soft);box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 42%, transparent)}35%{background:color-mix(in srgb, var(--accent-soft) 78%, var(--card-bg) 22%);box-shadow:0 0 0 5px #0000}to{background:var(--surface-sunken);box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.chip.settings-category-new{outline:2px solid var(--accent);outline-offset:2px;animation:none}}.chip-name{overflow-wrap:anywhere;min-width:0}.chip-usage-count{font-size:var(--text-caption);color:var(--muted);background:var(--card-bg);border-radius:var(--radius-pill);padding:1px 7px;font-weight:600;line-height:1.5}.category-edit-dialog h2{margin-bottom:2px}.category-edit-meta{color:var(--muted);font-size:var(--text-body-sm);margin:0 0 18px}.category-edit-dialog-actions{justify-content:space-between;align-items:center;margin-top:12px}.category-edit-primary-actions{gap:8px;margin-left:auto;display:flex}button.category-edit-delete{min-height:var(--control-height-touch);color:var(--negative);background:0 0;padding:8px 6px;font-weight:600}.settings-add-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:10px;padding-top:10px;display:flex}.deleted-items{border-top:1px solid var(--border);font-size:var(--text-body-sm);margin-top:16px;padding-top:16px}.deleted-items summary{cursor:pointer;color:var(--accent);margin-bottom:10px;font-weight:500}.deleted-item-list{flex-direction:column;gap:8px;display:flex}.deleted-item-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.deleted-item-name{color:var(--muted);overflow-wrap:anywhere;min-width:0}.restore-action{min-width:0;max-width:100%}.restore-action .error{margin:var(--space-8) 0 0;overflow-wrap:anywhere}.settings-docked-body .goals-card{flex-direction:column;flex:1 0 auto;min-width:0;display:flex}.goal-list{gap:var(--space-12);flex-direction:column;display:flex}.goal-card{padding:var(--space-12) var(--space-16);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-card)}.goal-top{align-items:center;gap:var(--space-12);display:flex}.goal-icon{flex-shrink:0;display:inline-flex}.goal-heading{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.goal-name{color:var(--text-h);overflow-wrap:anywhere;font-weight:600}.goal-deadline{font-size:var(--text-caption);color:var(--muted)}.goal-deadline.overdue{color:var(--negative)}.goal-actions{align-items:center;gap:var(--space-8);flex-shrink:0;display:flex}.goal-topup{min-height:var(--control-height-compact);padding:0 var(--space-12);font-size:var(--text-body-sm)}.goal-progress{height:8px;margin-top:var(--space-12);border-radius:var(--radius-pill);background:var(--surface-sunken);overflow:hidden}.goal-progress-fill{border-radius:var(--radius-pill);background:var(--accent);height:100%;transition:width .2s}.goal-card.is-done .goal-progress-fill{background:var(--positive)}.goal-amounts{justify-content:space-between;align-items:baseline;gap:var(--space-8);margin-top:var(--space-8);font-size:var(--text-body-sm);color:var(--muted);display:flex}.goal-amounts .goal-remaining{flex-shrink:0}.goal-done{color:var(--positive);font-weight:600}.goal-hint{margin-top:var(--space-8);font-size:var(--text-dense);color:var(--muted)}.goal-field-hint{margin:-4px 0 var(--space-12);font-size:var(--text-caption);color:var(--muted)}@media (prefers-reduced-motion:reduce){.goal-progress-fill{transition:none}}.error-boundary{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.not-found{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.not-found h1{margin-bottom:12px}.not-found p{opacity:.7;max-width:400px;margin-bottom:20px}.error-boundary h1{margin-bottom:12px}.error-boundary p{opacity:.7;max-width:400px;margin-bottom:20px}.error-details{text-align:left;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-card);width:100%;max-width:600px;max-height:300px;font-size:var(--text-caption);white-space:pre-wrap;word-break:break-word;color:var(--negative);margin-bottom:20px;padding:16px;font-family:monospace;overflow:auto}.error-actions{gap:8px;display:flex}.mobile-add-shortcut{width:100%;margin-bottom:16px;display:none}.mobile-add-dock{z-index:var(--z-floating-action);min-height:var(--control-height-touch);box-shadow:var(--shadow-floating-action);transition:bottom .24s cubic-bezier(.2,.8,.2,1);display:none;position:fixed;bottom:-100px;left:16px;right:16px}.mobile-add-dock.visible{bottom:calc(16px + env(safe-area-inset-bottom))}@media (width<=600px){.mobile-add-dock{display:block}}.dashboard.header-compact .mobile-add-dock{display:block}dialog.add-transaction-dialog{border-radius:var(--radius-dialog);background:var(--card-bg);color:var(--text);width:calc(100% - 32px);max-width:480px;height:min(680px,100dvh - 32px);height:min(680px, calc(100dvh - 32px), calc(var(--visual-viewport-height,100dvh) - 32px));transform:translateY(var(--visual-viewport-offset-top,0px));box-shadow:var(--shadow-dialog);border:none;margin:16px auto auto;padding:0;overflow:hidden}dialog.add-transaction-dialog[open]{flex-direction:column;display:flex}dialog.add-transaction-dialog::backdrop{background:hsl(var(--shadow) / .35)}.add-transaction-dialog-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 24px;display:flex}.add-transaction-dialog-header h2{margin:0}.add-transaction-dialog>.loading{flex:1;justify-content:center;align-items:center;min-height:0;margin:0;padding:0 24px 20px;display:flex}.add-transaction-dialog .tx-form{flex:1;min-height:0}.add-tx-fields{overscroll-behavior-y:contain;flex:1;min-height:0;padding:4px 24px;overflow-y:auto}.dialog-close-btn{color:var(--muted);min-width:var(--control-height-touch);min-height:var(--control-height-touch);border-radius:var(--radius-control);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}@media (hover:hover){.dialog-close-btn:hover{background:var(--surface-sunken);color:var(--text-h)}}.dialog-close-btn:active{background:var(--surface-sunken);color:var(--text-h);filter:brightness(.92)}.dialog-close-btn svg{width:18px;height:18px}@media (pointer:coarse){.dialog-close-btn:focus-visible{outline:none}}.add-tx-actions{border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;gap:8px;padding:14px 24px;display:flex}.add-tx-actions button{flex:1}.tx-list-header{flex-wrap:nowrap;justify-content:space-between;align-items:center;column-gap:12px;margin-bottom:12px;display:flex}.tx-list-header h2{overflow-wrap:anywhere;flex:1;min-width:0;margin:0}.switch-control{white-space:nowrap;font-size:var(--text-body-sm);color:var(--text);flex-shrink:0;align-items:center;gap:8px;display:flex}button.switch{border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-sunken);cursor:pointer;flex-shrink:0;width:44px;height:24px;padding:0;transition:background-color .15s,border-color .15s;position:relative}button.switch.on{background:var(--accent);border-color:var(--accent)}.switch-thumb{width:20px;height:20px;box-shadow:0 1px 3px hsl(var(--shadow) / .35);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:1px;left:1px}button.switch.on .switch-thumb{background:var(--accent-contrast);transform:translate(20px)}.tx-expand-toggle{width:100%;margin-top:4px;display:block}.dashboard.header-compact{padding:16px 16px calc(80px + env(safe-area-inset-bottom))}.dashboard.header-compact .topbar{padding:0;position:static}.dashboard.header-compact .topbar-add-btn{display:none}.dashboard.header-compact .topbar-actions button{min-width:var(--control-height-touch);min-height:var(--control-height-touch);justify-content:center;padding:8px}.dashboard.header-compact .topbar-action-label{display:none}.dashboard.topbar-buttons-compact .topbar-actions button{min-width:var(--control-height-touch);min-height:var(--control-height-touch);justify-content:center;padding:8px}.dashboard.topbar-buttons-compact .topbar-action-label{display:none}.dashboard.header-compact .mobile-add-shortcut{min-height:var(--control-height-touch);display:block}.dashboard.header-compact .month-nav{z-index:var(--z-sticky);position:sticky;top:0}.dashboard.header-compact .topbar-month-nav{display:none}.dashboard.primary-page-layout.header-compact{max-width:none;margin:0;padding:0}.dashboard.primary-page-layout.header-compact>.topbar,.dashboard.primary-page-layout.header-compact>.month-nav,.dashboard.primary-page-layout.header-compact>.mobile-add-shortcut,.dashboard.primary-page-layout.header-compact>.mobile-add-dock{display:none}.modal>p,.account-edit-meta,.opening-balance-edit-meta{overflow-wrap:anywhere}button.switch:before{content:"";position:absolute;inset:-11px -1px}.switch-control{min-height:var(--control-height-touch)}.goal-amounts{flex-wrap:wrap}.goal-amounts>*{overflow-wrap:anywhere;min-width:0;max-width:100%}.dashboard.pulse-interface{--pulse-lime:#ddfa73;--pulse-ink:#232823;--pulse-line:#bacd76;--radius-control:12px;--radius-card:24px;--radius-dialog:24px}.dashboard.pulse-layout{max-width:1360px}.pulse-interface .primary-page-header h1,.pulse-interface .settings-section-heading h2,.pulse-interface dialog h2{letter-spacing:-.035em;font-weight:650}.pulse-interface .settings-tab-content .card,.pulse-interface .goal-card{box-shadow:none;border-radius:20px}.pulse-interface .primary-page-back{color:var(--text-h);background:var(--surface-sunken);border:1px solid var(--border);border-radius:14px}.pulse-interface button.primary{background:var(--pulse-lime);color:var(--pulse-ink);border:1px solid var(--pulse-ink);box-shadow:2px 2px 0 var(--pulse-ink);border-radius:14px}.pulse-interface button.primary:not(:disabled):active{box-shadow:none;background:#cee95f}.pulse-interface .settings-page .settings-tabs button.active{color:var(--text-h);background:var(--surface-sunken);border-color:var(--border-strong);box-shadow:none}.pulse-interface .goal-progress-fill,.pulse-interface .goal-card.is-done .goal-progress-fill{background:var(--pulse-lime)}@media (hover:hover){.pulse-interface button.primary:not(:disabled):hover{background:#cee95f}.pulse-interface .primary-page-back:not(:disabled):hover{background:var(--border)}}.pulse-layout .topbar{margin-bottom:4px}.pulse-layout .topbar-identity h1{letter-spacing:-.045em}.pulse-layout .topbar-add-btn,.pulse-layout .mobile-add-shortcut,.pulse-layout .mobile-add-dock{color:var(--pulse-ink);background:var(--pulse-lime);border:1px solid var(--pulse-ink);box-shadow:3px 3px 0 var(--pulse-ink);border-radius:16px}.pulse-layout .topbar-add-btn:hover,.pulse-layout .mobile-add-shortcut:hover,.pulse-layout .mobile-add-dock:hover{background:#cee95f}.dashboard.pulse-layout .pulse-panels{grid-template:"summary summary""expenses operations""budget budget"/minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.pulse-left-column{flex-direction:column;grid-area:expenses;gap:24px;min-width:0;display:flex}.pulse-left-column>.dashboard-expenses-card{order:-1}.pulse-layout .pulse-panels>.grid{display:contents}.pulse-layout .pulse-panels .dashboard-summary-card{grid-area:summary}.pulse-layout .pulse-panels .dashboard-expenses-card{grid-area:expenses}.pulse-layout .pulse-panels .dashboard-operations-card{grid-area:operations}.pulse-layout .pulse-panels .savings-card{grid-area:savings}.pulse-layout .pulse-panels .dashboard-budget-card{grid-area:budget}.pulse-layout .pulse-panels>.card,.pulse-layout .pulse-panels>.grid>.card,.pulse-layout .pulse-left-column>.card{border:1px solid var(--border);min-width:0;box-shadow:none;border-radius:28px;margin:0;padding:28px}.pulse-layout .pulse-panels h2{letter-spacing:-.035em;font-size:21px}.pulse-layout .pulse-panels .pulse-summary{color:var(--pulse-ink);background:var(--pulse-lime);border-color:#0000;padding:28px 36px 0}.pulse-eyebrow{justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.pulse-badge{border:1px solid;border-radius:30px;padding:6px 13px;transform:rotate(5deg)}.pulse-badge span{margin-left:12px}.pulse-balance-label{margin-top:15px;font-size:14px}.pulse-balance{letter-spacing:-.055em;max-width:100%;margin-top:4px;font-size:clamp(32px,5.2vw,68px);font-weight:650;line-height:1.18}.pulse-balance .money-value>span{padding-right:.055em}.pulse-summary-bottom{justify-content:space-between;align-items:center;gap:20px;margin:12px 0 20px;display:flex}.pulse-income{flex-wrap:wrap;align-items:baseline;gap:8px 20px;min-width:0;display:flex}.pulse-income>span{font-size:13px}.pulse-income strong{min-width:0;font-size:19px;font-weight:600}.pulse-flower{font-size:68px;line-height:.7;transform:rotate(-12deg)}.pulse-summary-details{border-top:1px solid var(--pulse-line)}.pulse-summary-details summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;min-height:52px;font-size:13px;list-style:none;display:flex}.pulse-summary-details summary::-webkit-details-marker{display:none}.pulse-summary-details summary>span{font-size:22px;transition:transform .18s}.pulse-summary-details[open] summary>span{transform:rotate(45deg)}.pulse-summary-details dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 40px;margin:0 0 20px;display:grid}.pulse-summary-details dl>div{border-top:1px solid var(--pulse-line);justify-content:space-between;gap:16px;padding-top:10px;font-size:13px;display:flex}.pulse-summary-details dd{min-width:0;margin:0;font-weight:600}.pulse-summary-details summary:focus-visible{outline:2px solid var(--pulse-ink);outline-offset:3px;border-radius:8px}.pulse-section-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.pulse-layout .pulse-section-heading h2{margin:0;font-size:28px}.pulse-kicker{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:11px}.pulse-expense-views{border:1px solid var(--border);background:var(--surface-sunken);border-radius:14px;flex-shrink:0;gap:2px;padding:3px;display:flex}.pulse-expense-views button{width:40px;min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:10px;place-items:center;padding:8px;display:grid}.pulse-expense-views button[aria-pressed=true]{background:var(--card-bg);color:var(--text-h);box-shadow:0 1px 3px #0002}.pulse-expense-views svg{width:20px;height:20px}.pulse-expense-body{flex-direction:column;align-items:center;gap:8px;display:flex}.expense-ring{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-shrink:0;width:min(100%,320px);margin-top:10px;position:relative}.expense-ring svg{width:100%;display:block;overflow:visible}.expense-ring-track{stroke:var(--surface-sunken)}.pulse-ring-skeleton{aspect-ratio:1;border-radius:50%;width:min(100%,280px);margin:24px auto}.expense-ring-segment{cursor:pointer;pointer-events:stroke;-webkit-tap-highlight-color:transparent;outline:none;transition:stroke-width .18s,opacity .18s}.expense-ring-segment.is-muted{opacity:.35}.expense-ring-segment:focus-visible{stroke-width:44px;filter:drop-shadow(0 0 2px var(--text-h));outline:none}.expense-ring-center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:7px;display:flex;position:absolute;inset:26% 20%}.expense-ring-label{color:var(--text);overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:100%;font-size:12px;display:-webkit-box;overflow:hidden}.expense-ring-center strong{color:var(--text-h);letter-spacing:-.045em;width:100%;font-size:clamp(18px,2.2vw,28px);font-weight:650}.expense-ring-share{color:var(--muted);font-size:11px}.pulse-category-panel{width:100%;min-width:0;margin-top:16px}.pulse-list-total{color:var(--muted);border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;padding:0 6px 12px;font-size:12px;display:flex}.pulse-list-total strong{min-width:0;color:var(--text-h);font-size:16px}.pulse-ring-hint{text-align:center;color:var(--muted);max-width:280px;margin:0;font-size:12px}.pulse-touch-hint{display:none}.pulse-category-list{margin:0;padding:0;list-style:none}.pulse-category-list .pulse-category{text-align:left;width:100%;min-height:40px;color:var(--text-h);-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:8px;grid-template-columns:8px minmax(0,1fr) minmax(0,auto);align-items:center;gap:8px;padding:4px 6px;font-size:13px;font-weight:400;display:grid}.pulse-category>span:nth-child(2){overflow-wrap:anywhere}.pulse-category-value{text-align:right;gap:1px;min-width:0;line-height:1.25;display:grid}.pulse-category-value strong{min-width:0;font-size:13px;font-weight:500}.pulse-category-value>span{color:var(--muted);font-size:10px}.pulse-category .dot{border-radius:3px;width:8px;height:8px}@media (hover:hover) and (pointer:fine){.pulse-category-list .pulse-category:hover{background:var(--surface-sunken)}}@media (hover:none),(pointer:coarse){.pulse-touch-hint{display:inline}.pulse-category-list .pulse-category:active{background:0 0;transform:none}}.pulse-layout .pulse-text-button{min-height:44px;color:var(--text);text-underline-offset:4px;background:0 0;border:0;padding:8px 12px;font-size:12px;text-decoration:underline}.pulse-layout .pulse-text-button:hover{color:var(--text-h);background:var(--surface-sunken)}.pulse-ring-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:16px;display:flex}.pulse-layout .pulse-open-category{background:var(--surface-sunken);min-width:0;min-height:44px;color:var(--text-h);border:1px solid var(--border-strong);text-align:left;overflow-wrap:anywhere;border-radius:12px;padding:10px 12px;font-size:13px}.pulse-ring-actions>.pulse-text-button{flex-shrink:0}.pulse-empty{text-align:center;color:var(--muted);margin:0 0 20px;font-size:14px;line-height:1.7}.pulse-layout .tx-day{border-radius:16px}.pulse-layout .tx-row{background:0 0}.pulse-layout .tx-day-total{font-weight:500}.pulse-layout .tx-list-header{margin-bottom:20px}.pulse-layout .savings-mini,.pulse-layout .budget-stat{border-radius:16px}.pulse-layout .pulse-savings .pulse-section-heading h2{font-size:24px}.pulse-savings-count{color:var(--muted);flex-shrink:0;font-size:12px}.pulse-savings-overview{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-top:16px;display:flex}.pulse-savings-total{min-width:0;max-width:100%;color:var(--text-h);letter-spacing:-.04em;font-size:32px;font-weight:600;line-height:1.2}.pulse-savings-total .money-value>span{padding-right:.04em}.pulse-savings-change{flex-wrap:wrap;align-items:baseline;gap:4px;min-width:0;max-width:100%;font-size:12px;display:flex}.pulse-savings-change>.money-value{max-width:100%}.pulse-savings-date{color:var(--muted);margin:8px 0 0;font-size:12px}.pulse-savings-goals{margin:20px 0 0;padding:0;list-style:none}.pulse-savings-goal{border-top:1px solid var(--border)}.pulse-layout .pulse-savings-goal-toggle{text-align:left;width:100%;color:var(--text-h);box-shadow:none;background:0 0;border:0;border-radius:6px;padding:16px 0;font-weight:400;display:block}.pulse-layout .pulse-savings-goal-toggle:not(:disabled):active{background:var(--surface-sunken);transform:none}@media (hover:hover){.pulse-layout .pulse-savings-goal-toggle:not(:disabled):hover{background:var(--surface-sunken)}}.pulse-savings-goal-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.pulse-savings-name{overflow-wrap:anywhere;min-width:0;font-size:15px;font-weight:600}.pulse-savings-status{color:var(--muted);flex-shrink:0;align-items:center;gap:12px;font-size:12px;display:flex}.pulse-savings-status>span{font-size:20px;line-height:1}.pulse-savings-amount{flex-wrap:wrap;align-items:baseline;gap:3px 6px;margin-top:7px;font-size:13px;display:flex}.pulse-savings-amount>.money-value{max-width:100%}.pulse-savings-amount>span:not(.money-value){min-width:0;max-width:100%;color:var(--muted);align-items:baseline;gap:4px;display:flex}.pulse-savings-progress{background:var(--surface-sunken);border-radius:6px;height:6px;margin-top:11px;display:block;overflow:hidden}.pulse-savings-progress>span{background:var(--pulse-lime);border-radius:inherit;height:100%;display:block}.pulse-savings-detail{color:var(--muted);padding:0 0 16px;font-size:12px}.pulse-savings-detail-row{flex-wrap:wrap;justify-content:space-between;gap:6px 12px;display:flex}.pulse-savings-detail-row>span{flex-wrap:wrap;gap:4px;min-width:0;max-width:100%;display:flex}.pulse-savings-pace{border-left:2px solid var(--border-strong);color:var(--text);overflow-wrap:anywhere;margin:12px 0 0;padding-left:10px;line-height:1.7}.pulse-savings-pace .money-value{vertical-align:bottom;max-width:100%}.pulse-savings-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding-top:6px;display:flex}.pulse-layout .pulse-savings-footer .pulse-text-button{text-align:left;padding:8px 0}.pulse-savings-next{color:var(--muted);overflow-wrap:anywhere;margin:6px 0 0;font-size:12px}.pulse-budget-overview dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0;display:grid}.pulse-budget-overview dt{color:var(--muted);font-size:13px}.pulse-budget-overview dd{letter-spacing:-.025em;min-width:0;margin:5px 0 0;font-size:24px;font-weight:600}.pulse-budget-overview dd .money-value>span{padding-right:.025em}.pulse-budget-overview>p{color:var(--muted);margin:10px 0 0;font-size:12px}.pulse-budget-overview .pulse-budget-comparison.is-over{color:var(--negative);font-weight:600}.pulse-layout .budget-chart{border-top:1px solid var(--border);margin-top:22px;padding-top:18px}.pulse-layout .dashboard-operations-card h2{letter-spacing:-.035em}.pulse-layout .tx-day{border-color:var(--border);box-shadow:none}.pulse-layout .tx-day-header{background:var(--surface-sunken)}.pulse-layout .budget-hover-panel{box-shadow:none;border-radius:16px}@media (width<=599px){.pulse-layout .pulse-savings .pulse-section-heading h2{font-size:21px}.pulse-savings-total{font-size:28px}.pulse-savings-overview{gap:8px 12px}.pulse-savings-goals{margin-top:16px}.pulse-savings-status{gap:8px}.pulse-budget-overview dl{gap:10px}.pulse-budget-overview dt{font-size:11px}.pulse-budget-overview dd{font-size:17px}}.dashboard-design-picker{min-width:0;margin:0 0 20px}.dashboard-design-picker legend{float:left;width:100%;color:var(--text-h);margin-bottom:12px;font-size:18px;font-weight:600}.dashboard-design-picker>p{clear:both}.design-options{grid-template-columns:1fr 1fr;gap:14px;display:grid}.design-option{border:1px solid var(--border-strong);cursor:pointer;min-width:0;color:var(--text);border-radius:18px;flex-direction:column;gap:8px;padding:16px;font-size:13px;display:flex;position:relative}.design-option.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft)}.design-option:focus-within{outline:2px solid var(--accent);outline-offset:4px}.design-option input{width:18px;height:18px;accent-color:var(--accent);margin:0;padding:0;position:absolute;top:12px;right:12px}.design-option strong{color:var(--text-h);font-size:15px}.design-preview{grid-template-columns:1fr 1fr;gap:6px;height:70px;margin-right:24px;display:grid}.design-preview i{background:var(--surface-sunken);border:1px solid var(--border-strong);border-radius:6px}.design-preview i:first-child{grid-row:span 2}.design-preview-pulse i:first-child{background:#ddfa73;border-color:#bacd76}.design-preview-pulse i:nth-child(2){border:9px solid #8871c4;border-color:#8871c4 #e5aa55 #6dabb3 #8871c4;border-radius:50%;justify-self:center;width:38px;height:38px}.design-preview-pulse i:nth-child(3){height:12px}.design-local-note{color:var(--muted);margin:14px 0 0;font-size:12px}@media (width<=899px){.pulse-left-column{gap:16px}.dashboard.pulse-layout .pulse-panels{grid-template-columns:minmax(0,1fr);grid-template-areas:"summary""expenses""operations""budget";gap:16px}.pulse-layout .pulse-panels>.card,.pulse-layout .pulse-panels>.grid>.card,.pulse-layout .pulse-left-column>.card{border-radius:24px;padding:22px}.pulse-layout .pulse-panels .pulse-summary{padding:24px 24px 0}.expense-ring-center strong{font-size:22px}}@media (width<=599px){.pulse-layout .pulse-panels>.card,.pulse-layout .pulse-panels>.grid>.card,.pulse-layout .pulse-left-column>.card{padding:20px}.pulse-layout .pulse-panels .pulse-summary{padding:22px 22px 0}.pulse-summary-details dl{grid-template-columns:minmax(0,1fr)}.pulse-expense-body{flex-direction:column;gap:4px}.expense-ring{width:min(100%,300px)}.expense-ring-center strong{font-size:25px}.pulse-ring-hint{text-align:center}.pulse-flower{font-size:48px}.pulse-income{flex-direction:column;gap:4px}.pulse-layout .pulse-section-heading h2{font-size:25px}.pulse-ring-actions{flex-wrap:wrap}.design-options{gap:10px}.design-option{padding:12px}}@media (prefers-reduced-motion:reduce){.expense-ring-segment,.pulse-summary-details summary>span{transition:none}}@media (width>=1100px){.budget-list[hidden],.budget-plan-table .budget-plan-value[hidden]{display:none}.settings-page .settings-dialog-footer:has(.budget-footer){flex-basis:100%;width:100%}.settings-page .budget-footer{gap:var(--space-16);flex-wrap:nowrap}.budget-footer .budget-footer-total{justify-content:flex-end;align-items:baseline;gap:var(--space-8);text-align:right;margin-left:auto;display:flex}.budget-footer>button{position:absolute;bottom:0;right:0}.settings-page .settings-section-heading:has(.budget-footer)>.settings-dialog-footer{order:-1}.settings-section-heading:has(.budget-footer){position:relative}.budget-footer .budget-footer-total span{white-space:nowrap;margin:0}.budget-footer .budget-footer-total strong{font-size:var(--text-body);white-space:nowrap}.settings-page .budget-card{gap:0}.settings-page .budget-header{padding-bottom:var(--space-20);position:static}.budget-plan-intro h3{margin:0 0 var(--space-4);color:var(--text-h);font-size:var(--text-body)}.budget-plan-intro p{max-width:360px;font-size:var(--text-caption);color:var(--muted);margin:0;font-weight:400}.budget-plan-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:var(--text-body-sm);font-variant-numeric:tabular-nums}.budget-plan-table thead{z-index:1;background:var(--card-bg);position:sticky;top:0}.budget-plan-table th,.budget-plan-table td{padding:var(--space-12) var(--space-8);border-bottom:1px solid var(--border);text-align:right;vertical-align:middle}.budget-plan-table thead th{color:var(--muted);font-size:var(--text-caption);font-weight:500}.budget-plan-table th:first-child{text-align:left;overflow-wrap:anywhere;width:30%}.budget-plan-table tbody th{color:var(--text-h);font-weight:500}.budget-plan-table th:nth-child(2){width:25%}.budget-plan-table th:last-child{width:44px}.budget-plan-table tbody tr:last-child>*{border-bottom:0}.budget-plan-table .budget-plan-value{justify-content:flex-end;align-items:center;gap:var(--space-4);width:100%;min-height:38px;padding:var(--space-8);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--card-bg);color:var(--text-h);font-family:var(--font-mono);font-size:var(--text-dense);white-space:nowrap;font-weight:600;display:inline-flex}.budget-plan-table .budget-plan-value:hover{border-color:var(--accent);background:var(--accent-soft)}.budget-plan-value svg{width:14px;height:14px;color:var(--muted);flex-shrink:0}.budget-plan-table .budget-plan-actual{color:var(--muted)}.budget-plan-actual,.budget-plan-remaining,.budget-plan-over{font-size:var(--text-dense);white-space:nowrap}.budget-plan-table .budget-plan-over{color:var(--negative)}.budget-plan-over>span{font-size:var(--text-caption);display:block}.budget-plan-table .budget-plan-details{width:32px;min-height:36px;padding:var(--space-4);color:var(--muted);background:0 0;justify-content:center;align-items:center;display:inline-flex}.budget-plan-details>span{font-size:var(--text-heading-md)}.budget-inline-editor input{width:100%;min-width:0;min-height:38px;padding:var(--space-8);text-align:right;font-family:var(--font-mono);font-weight:600}.budget-inline-status{margin-top:var(--space-4);font-size:var(--text-caption);color:var(--muted);overflow-wrap:anywhere;display:block}.budget-inline-status[role=alert]{color:var(--negative)}.settings-page{align-content:start;align-items:start;gap:var(--space-20);max-width:1280px;height:auto;min-height:0;max-height:100dvh;padding:var(--space-24);background:var(--bg);grid-template-rows:auto minmax(0,1fr);grid-template-columns:248px minmax(0,1fr);margin-inline:auto;display:grid;overflow:visible}.settings-page .settings-dialog-header{max-width:none;padding:var(--space-12) 0;margin-bottom:var(--space-4);box-shadow:none;background:0 0;border:0;grid-area:1/1}.settings-page .settings-dialog-active-tab{display:none}.settings-page .settings-dialog-body{display:contents}.settings-page .settings-tabs-row{top:var(--space-24);min-width:0;min-height:0;max-height:100%;padding:var(--space-8);border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--card-bg);box-shadow:0 2px 8px -4px hsl(var(--shadow) / .12);grid-area:2/1;margin:0;position:sticky;overflow-y:auto}.settings-page .settings-tabs{gap:var(--space-4);cursor:auto;flex-direction:column;overflow:visible;-webkit-mask-image:none;mask-image:none}.settings-page .settings-tabs button{width:100%;padding:var(--space-12);border-radius:var(--radius-control);color:var(--muted);font-size:var(--text-body-sm);text-align:left;white-space:normal;border:0;font-weight:500;line-height:1.45}.settings-page .settings-tabs button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.settings-page .settings-tabs button:not(:disabled):active{background:var(--accent-soft);color:var(--accent)}.settings-page .settings-tabs-nav{display:none}.settings-page .settings-tab-content{flex-direction:column;grid-area:2/2;align-self:stretch;min-width:0;min-height:0;margin:0;display:flex}.settings-page .settings-section-heading{align-items:center;gap:var(--space-12) var(--space-20);margin:0 0 var(--space-20);flex-wrap:wrap;flex-shrink:0;display:flex}.settings-section-heading-copy{flex:300px;min-width:0}.settings-section-heading h2{margin:0 0 var(--space-4);font-size:var(--text-heading-md)}.settings-section-heading p{color:var(--muted);font-size:var(--text-body-sm);margin:0}.settings-page .settings-panels-scroll{overscroll-behavior-y:contain;scrollbar-gutter:stable;border-radius:var(--radius-dialog);min-height:0;padding:2px var(--space-8) 2px 2px;scroll-padding-block:var(--space-16);display:block;overflow-y:auto}.settings-page .settings-panels-scroll,.settings-page .settings-tabs-row{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.settings-page .settings-panels-scroll:has(dialog[open]){overflow-y:hidden}.settings-page .settings-table thead{z-index:1;background:var(--card-bg);box-shadow:0 1px 0 var(--border);position:sticky;top:0}.settings-page .settings-panels-scroll>[role=tabpanel]:not([hidden]){gap:var(--space-20);flex-direction:column;display:flex}.settings-page .settings-categories-view{height:auto}.settings-page .settings-tab-content .card{padding:var(--space-24);border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--card-bg);box-shadow:0 2px 8px -4px hsl(var(--shadow) / .12);flex:none;margin:0}.settings-page .settings-dialog-footer{width:auto;max-width:none;box-shadow:none;background:0 0;border:0;flex:0 auto;margin:0 0 0 auto;padding:0}.settings-page .settings-add-actions{border:0;align-items:center;margin:0;padding:0}}@media (width>=1100px) and (hover:hover){.settings-page .settings-tabs button:not(.active):not(:disabled):hover{color:var(--text-h);background:var(--surface-sunken)}}@media (width>=1100px){.dashboard:not(.primary-page-layout){max-width:1280px;padding:24px 24px 60px}.dashboard-panels{grid-template:"summary operations"max-content"expenses operations"minmax(min-content,1fr)"budget budget"max-content/minmax(360px,.85fr) minmax(0,1.35fr);align-items:start;gap:20px;display:grid}.dashboard-panels:has(>.savings-card){grid-template-rows:max-content max-content minmax(min-content,1fr) max-content;grid-template-areas:"summary operations""savings operations""expenses operations""budget budget"}.dashboard-panels>.grid{display:contents}.dashboard-summary-card{grid-area:summary}.dashboard-operations-card{grid-area:operations}.dashboard-panels>.savings-card{grid-area:savings}.dashboard-expenses-card{grid-area:expenses}.dashboard-budget-card{grid-area:budget}.dashboard-panels>.card,.dashboard-panels>.grid>.card{border-radius:var(--radius-dialog);min-width:0;box-shadow:0 2px 8px -4px hsl(var(--shadow) / .12);margin-bottom:0;padding:24px}.dashboard-summary-heading{margin-bottom:20px;display:block}.dashboard-summary-card .opening-balance-title,.dashboard-summary-card .income-title,.dashboard-summary-card .expense-title{font-size:var(--text-body-sm);gap:10px;font-weight:500}.dashboard-summary-card .opening-balance-title-total,.dashboard-summary-card .income-title-total,.dashboard-summary-card .expense-title-total{font-size:var(--text-heading-sm)}.dashboard-summary-card .month-result-table th,.dashboard-summary-card .month-result-table td{padding:10px 0}.dashboard-summary-card .month-result-table tr:last-child{border-radius:var(--radius-control);background:var(--surface-sunken);margin-top:8px;padding:4px 12px}.dashboard-summary-card .month-result-table tr:last-child td{font-size:var(--text-heading-sm)}.dashboard-operations-card .tx-list-header{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:16px}.dashboard-operations-card .tx-list{gap:16px}.dashboard-operations-card .tx-day-header{min-height:var(--control-height-touch);background:var(--bg);margin:0}@media (hover:hover){.dashboard-operations-card .tx-day-header:hover{background:var(--surface-sunken)}}.dashboard-operations-card .tx-day-header:active{background:var(--surface-sunken)}.dashboard-operations-card .tx-day-body{gap:0;padding-inline:8px}.dashboard-operations-card .tx-row{padding-block:12px}.dashboard-operations-card .tx-row:last-child{border-bottom:0}.dashboard-operations-card .tx-expand-toggle{margin-top:16px}.dashboard-panels .savings-mini-tiles{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.dashboard-panels .savings-mini-more{min-height:var(--control-height-touch)}.dashboard:not(.header-compact)>.topbar{border-bottom:1px solid var(--border);margin-bottom:20px;padding-block:16px}.dashboard:not(.header-compact)>.month-nav{margin-bottom:24px}}@media (width<=600px){.dashboard,.dashboard.header-compact{padding:8px 8px calc(80px + env(safe-area-inset-bottom))}.settings-page .settings-dialog-header,.category-operations-header{padding-inline:calc(16px + env(safe-area-inset-left)) calc(16px + env(safe-area-inset-right))}.settings-page .settings-dialog-header{padding-top:calc(12px + env(safe-area-inset-top))}.category-operations-header{padding-top:calc(17px + env(safe-area-inset-top))}.category-operations-body{--cat-ops-gutter-left:calc(16px + env(safe-area-inset-left));--cat-ops-gutter-right:calc(16px + env(safe-area-inset-right));padding-bottom:calc(24px + env(safe-area-inset-bottom))}.topbar{margin-bottom:8px;padding:0;position:static}.topbar-add-btn{display:none}.topbar-actions button{min-width:var(--control-height-touch);min-height:var(--control-height-touch);justify-content:center;padding:8px}.topbar-action-label,.topbar-month-nav{display:none}.mobile-add-shortcut{min-height:var(--control-height-touch);width:calc(100% - 16px);margin-inline:8px;display:block}.invite-token{flex-wrap:wrap}dialog.add-transaction-dialog{width:calc(100% - 16px - env(safe-area-inset-left) - env(safe-area-inset-right));height:min(680px,100vh - 16px);height:min(680px, calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));height:min(680px, calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)), calc(var(--visual-viewport-height,100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));margin:calc(8px + env(safe-area-inset-top)) auto auto}.add-transaction-dialog-header,.settings-dialog-header{padding-inline:16px}.settings-dialog-active-tab{font-size:var(--text-body-sm);gap:6px;margin-left:6px}.add-tx-fields,.add-tx-actions,.settings-dialog-body{padding-inline:16px}.settings-dialog-footer{padding-inline:16px;padding-bottom:var(--space-24)}dialog.modal{width:calc(100% - 16px - env(safe-area-inset-left) - env(safe-area-inset-right));padding:16px}dialog.modal.settings-form-dialog{box-sizing:border-box;max-height:calc(var(--visual-viewport-height,100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));top:var(--visual-viewport-center-y,50dvh);margin:0 auto;position:fixed;bottom:auto;left:0;right:0;overflow-y:auto;transform:translateY(-50%)}dialog.modal.account-edit-dialog,dialog.modal.opening-balance-edit-dialog{max-height:calc(var(--visual-viewport-height,100dvh) - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding-block:12px;scroll-padding-block:12px}.account-edit-meta,.opening-balance-edit-meta{margin-bottom:12px}.account-edit-dialog .tx-form>label,.opening-balance-edit-dialog .tx-form>label{margin-bottom:8px}.account-edit-hint{margin:-2px 0 2px}.account-edit-dialog-actions,.opening-balance-edit-dialog-actions{margin-top:6px}.month-nav{z-index:var(--z-sticky);position:sticky;top:0}.card{padding:16px}.tile-collapsed-row{flex-wrap:wrap;row-gap:8px}.tile-collapsed-row .mini-top{column-gap:8px}.tile-collapsed-row .mini-top-item{gap:4px;min-height:28px;padding-inline:2px}.month-nav,.mobile-add-shortcut{margin-bottom:8px}.grid{gap:8px;margin-bottom:8px}.dashboard main>.card,.dashboard-panels>.card{margin-bottom:8px}.tx-row{align-items:center;column-gap:8px;display:flex}.tx-action-label{display:none}.tx-actions .icon-btn{min-width:32px;min-height:32px;padding:8px}.tx-actions .icon-btn:last-child{justify-content:flex-end;padding-right:0}.budget-header{flex-direction:row;align-items:center;gap:0}.budget-header-title{gap:8px;width:100%}.budget-header button{min-height:var(--control-height-touch)}.budget-row-top{grid-template-columns:minmax(0,1fr) 18px;align-items:flex-start;gap:6px}.budget-row-chevron{grid-area:1/2/3}.budget-row-figures{text-align:left;grid-area:2/1}.settings-tab-content,.theme-card,.invite-card,.members-card{margin-bottom:8px}.settings-tab-content .card{background:0 0;border:none;border-radius:0;padding:0}.settings-docked-body .budget-card{padding-bottom:10px}.settings-table,.settings-table tbody{width:100%;display:block}.settings-table thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.settings-table tr{border-bottom:1px solid var(--border);padding:12px 0}.settings-table tr:not(.row-editing){grid-template-columns:auto auto 1fr auto;align-items:center;gap:2px 6px;display:grid}.settings-table tr.row-editing{display:block}.settings-table tr:not(.row-editing) td{border-bottom:none;padding:0}.settings-table tr:not(.row-editing) td:first-child{grid-area:1/1/auto/4}.settings-table tr:not(.row-editing) td:nth-child(2){color:var(--muted);font-size:var(--text-dense);grid-area:2/1}.settings-table tr:not(.row-editing) td:nth-child(3){color:var(--muted);font-size:var(--text-dense);grid-area:2/2/auto/4}.settings-table tr:not(.row-editing) td:nth-child(3):before{content:"· "}.settings-table tr:not(.row-editing) td:nth-child(4){grid-area:1/4/3;justify-self:end}.settings-table tr.row-editing td{border-bottom:none;grid-template-columns:minmax(110px,.8fr) minmax(0,1.2fr);align-items:center;gap:10px;padding:6px 0;display:grid}.settings-table tr.row-editing td:before{content:attr(data-label);text-align:left;font-family:var(--font-mono);color:var(--muted);font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.settings-table tr.row-editing td:first-child{display:block}.accounts-table tr.row-editing td:first-child{display:grid}.settings-table tr.row-editing td:nth-child(4){display:block}.opening-balances-table td input,.opening-balances-table .money-input{min-width:0;max-width:none}.settings-table td:last-child .row-actions{justify-content:flex-end}.budget-chart{width:calc(100% + 16px);margin-inline:-8px}.goal-top{flex-wrap:wrap}.goal-actions{margin-top:var(--space-8);flex-basis:100%;justify-content:space-between}.goal-topup{flex:auto}.savings-top{flex-wrap:wrap}.savings-amount{text-align:right}}.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 (width<=420px){.auth-card{padding:16px}.auth-brand-lockup h1{font-size:26px}.auth-brand-lockup{gap:10px;margin-bottom:20px}.auth-brand{flex-basis:40px;width:40px;height:40px}.tabs{gap:var(--space-16);margin-bottom:12px}.tabs button{font-size:var(--text-body-sm);white-space:nowrap;padding-inline:0}}@media (width<=360px){.budget-header-title .budget-average-btn{width:44px;padding-inline:0}.budget-header-title .budget-average-label{display:none}.budget-header-title .budget-average-chip{width:32px;padding-inline:0}.budget-row-top{grid-template-columns:minmax(0,1fr) 18px}.budget-row-figures{text-align:left;grid-area:2/1}.budget-row-chevron{grid-area:1/2/3}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.landing{background:var(--bg);min-height:100dvh;color:var(--text);overflow:clip}.landing-container{width:min(1160px,100% - 96px);margin-inline:auto}.landing a{text-decoration:none}.landing button,.landing a{-webkit-tap-highlight-color:transparent}.landing-header{border-bottom:1px solid var(--border);align-items:center;gap:36px;min-height:104px;display:flex}.landing-brand{color:var(--text-h);letter-spacing:-.5px;align-items:center;gap:11px;font-size:17px;font-weight:750;line-height:1.15;display:flex}.landing-brand img{border-radius:12px}.landing-brand-line{display:block}.landing-header nav{gap:32px;margin-left:auto;display:flex}.landing-header nav a{min-height:44px;color:var(--text);align-items:center;font-size:14px;display:inline-flex}.landing .landing-login{border:1px solid var(--border-strong);background:0 0;border-radius:100px;align-items:center;gap:18px;min-height:46px;padding:12px 20px;font-size:14px;display:inline-flex}.landing-hero{grid-template-columns:1.05fr 1fr;align-items:center;gap:24px;padding-block:65px 78px;display:grid}.landing-hero-copy{min-width:0}.landing-eyebrow{letter-spacing:1.2px;text-transform:uppercase;color:var(--accent);margin:0 0 24px;font-size:12px;font-weight:650}.landing-hero .landing-eyebrow{align-items:center;gap:9px;display:flex}.landing-eyebrow>span{background:var(--positive);border-radius:50%;width:7px;height:7px}.landing h1{letter-spacing:-.055em;margin:0 0 28px;font-size:clamp(44px,5.1vw,70px);font-weight:750;line-height:1.07}.landing h1 em{color:var(--accent);font-style:normal}.landing-lead{max-width:440px;margin:0 0 32px;font-size:18px;line-height:1.7}.landing-hero-actions{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.landing .primary{border-radius:100px;justify-content:center;align-items:center;gap:24px;min-height:56px;padding:17px 25px;font-size:15px;display:inline-flex}.landing-hero-actions>a{min-height:44px;color:var(--text-h);align-items:center;gap:12px;font-size:14px;display:inline-flex}.landing-hero-note{max-width:330px;margin:20px 0 0;font-size:12px;line-height:1.7}.landing-hero-visual{isolation:isolate;height:650px;position:relative}.landing-orbit{background:color-mix(in srgb, var(--accent) 10%, var(--bg));z-index:-1;border-radius:50%;width:490px;height:490px;position:absolute;top:50px;left:0}.landing-orbit:after{content:"";border:1px solid color-mix(in srgb, var(--accent) 14%, transparent);border-radius:inherit;position:absolute;inset:-30px}.landing-phone{box-sizing:border-box;background:#18181e;border:2px solid #666674;border-radius:42px;width:260px;padding:7px;position:relative;box-shadow:0 24px 45px -18px #15152e60,inset 0 0 0 1px #96969f}.landing-phone:before,.landing-phone:after{content:"";background:#565660;border-radius:2px;width:3px;position:absolute}.landing-phone:before{height:52px;top:100px;left:-4px}.landing-phone:after{height:62px;top:140px;right:-4px}.landing-phone-screen{color:#12132b;background:#f4f5fa;border-radius:33px;overflow:hidden}.landing-phone-status{justify-content:space-between;align-items:center;height:32px;padding:0 18px;font-size:10px;font-weight:700;display:flex;position:relative}.landing-phone-status svg{width:33px}.landing-phone-notch{background:#18181e;border-radius:0 0 15px 15px;width:45%;height:23px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.landing-phone img{aspect-ratio:390/760;object-fit:cover;object-position:top;width:100%;height:auto;display:block}.landing-phone-home{place-items:center;height:19px;display:grid}.landing-phone-home:after{content:"";background:#18181e;border-radius:5px;width:36%;height:3px}.landing-phone-front{z-index:2;position:absolute;top:5px;left:28px;transform:rotate(-7deg)}.landing-phone-back{width:235px;position:absolute;top:77px;right:0;transform:rotate(8deg)}.landing-visual-note{color:var(--text-h);align-items:center;gap:12px;font-size:13px;line-height:1.5;display:flex;position:absolute;bottom:8px;left:60px}.landing-visual-note>span{color:var(--accent);font-size:36px}.landing-principles{border-block:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:40px;padding-block:34px 42px;display:grid}.landing-index{letter-spacing:1.5px;color:var(--accent);font-size:10px;font-weight:700}.landing-principles h2{letter-spacing:-.4px;margin:14px 0 9px;font-size:17px}.landing-principles p{max-width:300px;margin:0;font-size:14px;line-height:1.7}.landing-guide{grid-template-columns:.9fr 1.1fr;gap:85px;padding-block:110px;scroll-margin-top:32px;display:grid}.landing h2{text-wrap:balance}.landing-section-heading h2,.landing-budget h2,.landing-faq h2,.landing-start h2{letter-spacing:-.045em;margin:0 0 24px;font-size:clamp(32px,3.6vw,48px);line-height:1.12}.landing-section-heading>p:last-child,.landing-faq>div>p:last-child{font-size:16px;line-height:1.7}.landing-steps{margin:0;padding:0;list-style:none}.landing-steps li{align-items:flex-start;gap:24px;padding-bottom:30px;display:flex}.landing-steps li+li{border-top:1px solid var(--border);padding-top:30px}.landing-steps li:last-child{padding-bottom:0}.landing-step-number{background:var(--accent-soft);height:34px;color:var(--accent);border-radius:50%;flex:0 0 34px;place-items:center;font-size:14px;font-weight:700;display:grid}.landing-steps h3{color:var(--text-h);letter-spacing:-.4px;margin:3px 0 12px;font-size:19px;line-height:1.4}.landing-steps p{margin:0 0 12px;font-size:14px;line-height:1.8}.landing-step-tip{color:var(--text);font-size:12px;line-height:1.7;display:block}.landing-budget{background:var(--accent-soft);padding-block:70px}.landing-budget-inner{grid-template-columns:1fr 1fr;align-items:center;gap:90px;display:grid}.landing-budget-visual{flex-direction:column;align-items:center;gap:24px;display:flex}.landing-budget-visual .landing-phone{width:270px;transform:rotate(-4deg)}.landing-demo-label{color:var(--text);font-size:11px;line-height:1.6}.landing-goals{padding-block:90px}.landing-goals h2{letter-spacing:-.045em;margin:0 0 24px;font-size:clamp(32px,3.6vw,48px);line-height:1.12}.landing-planning{padding-block:20px 30px}.landing-planning .landing-section-heading{max-width:650px;margin-bottom:36px}.landing-desktop{border:1px solid var(--border-strong);background:var(--card-bg);border-radius:18px;margin:0;overflow:hidden}.landing-desktop-bar{border-bottom:1px solid var(--border);align-items:center;gap:7px;padding:15px 20px;display:flex}.landing-desktop-bar>span:not(.landing-desktop-address){background:var(--border-strong);border-radius:50%;width:8px;height:8px}.landing-desktop-address{margin-left:12px;font-size:12px}.landing-desktop img{width:100%;height:auto;display:block}.landing-desktop figcaption{border-top:1px solid var(--border);padding:16px 20px;font-size:12px;line-height:1.7}.landing-budget-copy>p:not(.landing-eyebrow){max-width:410px;font-size:16px;line-height:1.8}.landing-budget-copy ul{padding:12px 0 18px;list-style:none}.landing-budget-copy li{padding:10px 0 10px 25px;font-size:14px;position:relative}.landing-budget-copy li:before{content:"✓";color:var(--accent);position:absolute;left:0}.landing-text-link{min-height:44px;color:var(--accent);align-items:center;gap:14px;font-size:14px;font-weight:650;display:inline-flex}.landing-faq{grid-template-columns:.8fr 1.2fr;gap:70px;padding-block:105px;scroll-margin-top:32px;display:grid}.landing-faq details{border-bottom:1px solid var(--border)}.landing-faq details:first-child{border-top:1px solid var(--border)}.landing-faq summary{color:var(--text-h);cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-size:16px;font-weight:600;list-style:none;display:flex}.landing-faq summary::-webkit-details-marker{display:none}.landing-faq summary span{color:var(--accent);font-size:24px;font-weight:400}.landing-faq details[open] summary span{transform:rotate(45deg)}.landing-faq details p{margin:0;padding:0 30px 24px 0;font-size:14px;line-height:1.8}.landing-start{text-align:center;background:var(--card-bg);border:1px solid var(--border);border-radius:24px;padding:60px 24px}.landing-start .landing-eyebrow{margin-bottom:18px}.landing-start h2{margin-bottom:16px}.landing-start>p:not(.landing-eyebrow){margin:0 0 28px;font-size:16px;line-height:1.7}.landing-footer{justify-content:space-between;gap:30px;padding-block:48px 35px;display:flex}.landing-footer-brand{min-height:44px;color:var(--text-h);align-items:center;gap:25px;font-size:16px;font-weight:700;display:inline-flex}.landing-footer p{margin:6px 0;font-size:12px}.landing-footer .service-contact{text-align:right;margin:10px 0 0;font-size:12px;line-height:1.8}.landing-footer .service-contact a{align-items:center;min-height:44px;display:inline-flex}.landing-skip{background:var(--card-bg);color:var(--text-h);z-index:5;padding:12px;position:absolute;top:8px;left:16px;transform:translateY(-160%)}.landing-skip:focus{transform:translateY(0)}@media (hover:hover){.landing a:hover{color:var(--accent)}}@media (width<=1050px){.landing-container{width:calc(100% - 64px)}.landing-hero{gap:12px}.landing h1{font-size:54px}.landing-hero-visual{height:595px}.landing-phone-front{width:230px;left:0}.landing-phone-back{width:205px;top:68px;right:-15px}.landing-orbit{width:370px;height:370px}.landing-visual-note{left:25px}.landing-guide,.landing-budget-inner{gap:45px}}@media (width<=760px){.landing-container{width:calc(100% - 40px)}.landing-header{gap:12px;min-height:86px}.landing-header nav{display:none}.landing .landing-login{gap:12px;margin-left:auto;padding:10px 16px}.landing-brand{font-size:15px}.landing-hero{grid-template-columns:minmax(0,1fr);gap:40px;padding-block:46px 40px}.landing-hero-copy{max-width:520px}.landing h1{font-size:clamp(40px,8vw,60px)}.landing-lead{margin-bottom:24px;font-size:17px}.landing-hero-note{margin-top:12px}.landing-hero-visual{width:390px;max-width:100%;height:585px;margin-inline:auto}.landing-phone-front{left:15px}.landing-phone-back{right:5px}.landing-orbit{width:340px;max-width:100%;height:340px}.landing-visual-note{bottom:0}.landing-principles{grid-template-columns:1fr;gap:25px;padding-block:30px}.landing-principles>div+div{border-top:1px solid var(--border);padding-top:25px}.landing-principles h2{margin-top:8px}.landing-principles p{max-width:100%}.landing-guide,.landing-faq{grid-template-columns:1fr;gap:32px;padding-block:65px}.landing-section-heading>p:last-child{margin-bottom:0}.landing-steps li{gap:16px}.landing-steps h3{font-size:18px}.landing-budget{padding-block:55px}.landing-budget-inner{grid-template-columns:1fr;gap:40px}.landing-budget-copy{grid-row:1}.landing-goals{padding-block:65px}.landing-budget-visual .landing-phone{width:260px}.landing-faq summary{padding-block:20px;font-size:15px}.landing-start{padding:40px 20px}.landing-start .landing-eyebrow{font-size:10px}.landing-footer{flex-direction:column;gap:16px;padding-block:32px}.landing-footer .service-contact{text-align:left}}@media (width<=370px){.landing-phone-front{width:205px;left:3px}.landing-phone-back{width:180px;right:-5px}.landing-hero-visual{height:530px}.landing .primary{gap:12px;padding-inline:20px;font-size:14px}}.data-requests{margin-top:24px}.data-requests .data-request-id{overflow-wrap:anywhere}.data-requests ul{padding-left:20px}.data-requests li+li{margin-top:12px}.budget-page.primary-page-shell{background:var(--bg)}.budget-page-header{padding:18px max(24px,50% - 616px)}.budget-page-header h1{color:var(--text-h);font-size:28px}.budget-page-header p{color:var(--muted);margin:4px 0 0;font-size:14px}.budget-page-scroll{overscroll-behavior:contain;overflow-anchor:none;flex:1;min-height:0;scroll-padding-block:16px;overflow-y:auto}.budget-page:has(dialog[open]) .budget-page-scroll{overflow:hidden}.budget-page-content{max-width:1280px;margin:0 auto;padding:24px 24px 48px}.budget-control-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.budget-control-actions{flex-wrap:wrap;gap:10px;display:flex}.budget-control-actions button{justify-content:center;align-items:center;gap:8px;min-height:44px;display:inline-flex}.budget-control-actions svg{width:18px;height:18px}.budget-header-host:empty{display:none}.budget-page-header:has(.budget-header-controls){align-items:start;padding-block:12px}.budget-page-header:has(.budget-header-controls)>.primary-page-heading{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.budget-header-host{flex:1;min-width:0}.budget-header-controls .budget-control-toolbar{margin:0}.budget-header-controls .budget-control-actions{flex-wrap:nowrap}.budget-header-summary{align-items:start;gap:16px 40px;margin-top:12px;display:flex}.budget-header-summary>div{min-width:0}.budget-header-summary span{color:var(--muted);font-size:12px;display:block}.budget-header-summary strong{color:var(--text-h);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:18px;line-height:1.3;display:block}.budget-header-summary .budget-control-main-total strong{color:var(--accent)}.budget-header-summary .is-over strong{color:var(--negative)}.budget-header-loading{color:var(--muted);margin:12px 0 0;font-size:13px}.budget-add-short,.budget-attention-toggle{display:none}.budget-control-summary{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-card);grid-template-columns:1.3fr 1fr 1fr;gap:18px 24px;margin-bottom:28px;padding:26px 28px;display:grid}.budget-control-summary>div{min-width:0}.budget-control-summary span{color:var(--muted);font-size:14px}.budget-control-summary strong{font-variant-numeric:tabular-nums;color:var(--text-h);overflow-wrap:anywhere;margin-top:6px;font-size:clamp(20px,2.4vw,30px);line-height:1.3;display:block}.budget-control-summary .budget-control-main-total strong{color:var(--accent);font-size:clamp(24px,3vw,38px)}.budget-control-summary .is-over strong{color:var(--negative)}.budget-control-summary p{color:var(--muted);grid-column:1/-1;margin:0;font-size:13px}.budget-control-columns{grid-template-columns:minmax(0,1.85fr) minmax(260px,1fr);align-items:start;gap:28px;display:grid}.budget-control-columns h2{color:var(--text-h);margin:0 0 18px;font-size:19px}.budget-control-columns h2 span{color:var(--muted);margin-left:8px;font-size:13px;font-weight:400}.budget-control-list{gap:12px;display:grid}.budget-control-category{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--card-bg);min-width:0;padding:16px 20px 8px}.budget-control-category button.budget-control-edit{border-radius:var(--radius-control);text-align:left;width:100%;box-shadow:none;color:var(--text);background:0 0;border:0;padding:0;display:block}.budget-control-category button.budget-control-edit:hover:not(:disabled){background:var(--accent-soft)}.budget-control-row-top,.budget-control-row-amounts{flex-wrap:wrap;justify-content:space-between;gap:8px 20px;display:flex}.budget-control-row-top{align-items:start}.budget-control-row-top strong{color:var(--text-h);overflow-wrap:anywhere;font-weight:600}.budget-control-row-top>span{font-variant-numeric:tabular-nums;font-size:14px}.budget-control-category.is-over .budget-control-row-top>span{color:var(--negative)}.budget-control-row-amounts{color:var(--muted);margin-top:8px;font-size:13px;font-weight:400}.budget-control-row-amounts>span{overflow-wrap:anywhere}.budget-control-track{background:var(--surface-sunken);border-radius:4px;height:5px;margin-top:14px;display:block;overflow:hidden}.budget-control-track>span{background:var(--accent);border-radius:inherit;height:100%;display:block}.is-over .budget-control-track>span{background:var(--negative)}.budget-page button.budget-control-link{color:var(--accent);text-align:left;min-height:44px;box-shadow:none;white-space:normal;background:0 0;border:0;padding:8px 0;font-size:13px;font-weight:500}.budget-page button.budget-control-link:hover:not(:disabled){color:var(--accent-hover);text-decoration:underline}.budget-control-attention{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-card);padding:22px}.budget-control-attention>p{margin:0;font-size:14px}.budget-control-alert{border-top:1px solid var(--border);padding:16px 0 8px}.budget-control-alert h3{color:var(--text-h);overflow-wrap:anywhere;margin:8px 0 4px;font-size:15px}.budget-control-alert p{color:var(--muted);overflow-wrap:anywhere;margin:0 0 4px;font-size:13px}.budget-control-alert button{display:block}.budget-control-badge{color:var(--muted);background:var(--surface-sunken);overflow-wrap:anywhere;border-radius:6px;max-width:100%;padding:4px 8px;font-size:12px;display:inline-block}.budget-control-badge.is-over{color:var(--negative);background:var(--negative-soft)}.budget-control-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-card);padding:24px}.budget-control-empty h3{color:var(--text-h);margin:0 0 8px;font-size:17px}.budget-control-empty p{color:var(--muted);margin:0}.budget-control-deleted,.budget-control-chart-section{margin-top:28px}.budget-control-trend{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--card-bg);margin-top:16px;padding:20px}.budget-control-trend>p{margin:0 0 16px;font-size:13px}.budget-control-day{justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.budget-control-day>div{text-align:center;min-width:0}.budget-control-day p{margin:4px 0 0;font-size:13px}.dashboard-budget-open{min-height:44px;color:var(--accent);align-items:center;font-weight:500;display:inline-flex}@media (width<=760px){.budget-page-header{padding:14px 16px}.budget-page-content{padding:20px 16px 32px}.budget-control-toolbar{gap:14px}.budget-control-summary{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px;padding:20px}.budget-control-main-total{grid-column:1/-1}.budget-control-summary .budget-control-main-total strong{font-size:30px}.budget-control-columns{flex-direction:column;gap:24px;display:flex}.budget-control-categories,.budget-control-attention{width:100%;min-width:0}.budget-control-attention{order:-1;padding:18px}.budget-control-category{padding:16px 14px 6px}.budget-control-actions{width:100%}.budget-control-actions button{flex:auto}.budget-control-attention.is-clear{display:none}.budget-control-attention>h2{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.budget-control-attention.has-alerts{padding:0}.budget-attention-toggle{border-radius:inherit;text-align:left;width:100%;min-height:64px;color:var(--text-h);background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.budget-attention-toggle>span{min-width:0}.budget-attention-toggle strong{font-size:14px;display:block}.budget-attention-toggle span span{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:13px;font-weight:400;display:block}.budget-attention-toggle svg{flex-shrink:0;width:20px;height:20px}.budget-control-attention.is-expanded .budget-attention-toggle svg{transform:rotate(180deg)}.budget-attention-details{padding:0 16px 8px;display:none}.budget-control-attention.is-expanded .budget-attention-details{display:block}.budget-page-header:has(.budget-header-controls){grid-template-columns:44px minmax(0,1fr);gap:10px 8px;padding:10px 12px;display:grid}.budget-page-header:has(.budget-header-controls)>.primary-page-back{grid-area:1/1;align-self:center}.budget-header-host,.budget-header-controls,.budget-header-controls .budget-control-toolbar{display:contents}.budget-header-controls .month-switcher{grid-area:1/2;justify-self:end}.budget-header-controls .budget-control-actions{z-index:1;grid-area:2/2;place-self:center end;width:auto}.budget-header-controls .budget-fill-action,.budget-header-summary .budget-summary-secondary,.budget-add-full{display:none}.budget-add-short{display:inline}.budget-header-summary{grid-area:2/1/3/-1;margin:0;padding-right:108px;display:block}.budget-header-summary strong{font-size:17px}.budget-header-summary .budget-control-main-total{grid-column:auto}.budget-header-loading{grid-area:2/1/3/-1;margin:0;padding-right:108px}}@media (width<=380px){.budget-control-summary{column-gap:12px;padding:16px}.budget-control-summary strong{font-size:19px}.budget-control-summary span{font-size:13px}}.budget-control-attention.has-overspend .budget-attention-toggle span span{color:var(--negative)}
