:root{--brand-deep:#0b1f1a;--brand-emerald:#0f766e;--brand-mint:#14b8a6;--brand-gold:#d7a84b;--brand-gold-light:#f0d58a;--brand-champagne:#f5e6c4;--gradient-emerald:linear-gradient(135deg, #0f766e, #14b8a6);--gradient-gold:linear-gradient(135deg, #b9862f, #f0d58a);--bg:#f7f6f1;--surface:#fff;--surface-2:#f0f2ef;--surface-raised:#fff;--surface-hero:linear-gradient(135deg, #e9f4f1, #fff 65%);--line:#e1e4e0;--line-strong:#cfd4cf;--text:#14181a;--muted:#646b70;--faint:#8a9095;--accent:#0f766e;--accent-fill:#0f766e;--accent-fill-hover:#0b5f58;--accent-gradient:linear-gradient(135deg, #0f766e, #0d8f83);--accent-text:#fff;--accent-soft:#e3f3f0;--focus:#14b8a6;--tile-bg:#e3f3f0;--tile-line:#c6e6e0;--tile-icon:#0f766e;--gold:#b9862f;--gold-text:#8a6421;--gold-soft:#faf4e4;--gold-line:#e8d3a3;--good:#16805a;--good-soft:#e2f4ec;--warn:#8f5f12;--warn-soft:#fcf1dc;--bad:#c2414d;--bad-soft:#fce8ea;--info:#4a68b8;--info-soft:#e8edf9;--series-1:#0f766e;--series-2:#a3a9ad;--series-forecast:#b9862f;--font:"Manrope Variable", "Manrope", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Sora Variable", "Sora", var(--font);--mono:ui-monospace, "Cascadia Mono", "SFMono-Regular", Menlo, monospace;--radius-sm:8px;--radius-md:10px;--radius:14px;--radius-lg:18px;--shadow:0 1px 2px #171a180d, 0 1px 6px #171a1808;--shadow-pop:0 8px 28px #171a181f;--scrim:#0a0d0c73;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--ease:cubic-bezier(.2, 0, 0, 1);--fast:.14s;--sidebar-w:248px;--sidebar-rail:68px;--topbar-h:60px;--tabbar-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0e1113;--surface:#161a1d;--surface-2:#1f2427;--surface-raised:#1a1e21;--surface-hero:linear-gradient(135deg, #0b1f1a, #161a1d 70%);--line:#262b2f;--line-strong:#2f363b;--text:#f5f2ea;--muted:#9aa0a6;--faint:#6b7278;--accent:#14b8a6;--accent-fill:#0f766e;--accent-fill-hover:#11857c;--accent-gradient:linear-gradient(135deg, #0f766e, #11968a);--accent-text:#f5f2ea;--accent-soft:#0f2522;--focus:#14b8a6;--tile-bg:#0b1f1a;--tile-line:#16352f;--tile-icon:#14b8a6;--gold:#d7a84b;--gold-text:#f0d58a;--gold-soft:#1e1b13;--gold-line:#4a3d22;--good:#36b37e;--good-soft:#10261d;--warn:#e5a638;--warn-soft:#2a2214;--bad:#e05d68;--bad-soft:#2d171a;--info:#6f8edb;--info-soft:#182034;--series-1:#14b8a6;--series-2:#4b5359;--series-forecast:#d7a84b;--shadow:none;--shadow-pop:0 10px 32px #00000073;--scrim:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:700;line-height:1.25}h1{letter-spacing:-.015em;font-size:1.6rem}h2{font-size:.95rem;font-weight:600}h3{margin:1rem 0 .4rem;font-size:.9rem;font-weight:600}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.logo{color:var(--text);align-items:center;gap:.6rem;display:inline-flex}.logo-symbol{object-fit:contain;flex:none;width:30px;height:30px}.logo-text{flex-direction:column;line-height:1.1;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:.14em;font-size:1.15rem;font-weight:600}.wordmark-accent{color:var(--gold)}.tagline{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:.3rem;font-size:.68rem}.logo.large .logo-symbol{width:52px;height:52px}.logo.large .wordmark{font-size:1.7rem}.spark{fill:var(--gold);flex:none}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100vh;transition:grid-template-columns var(--fast) var(--ease);display:grid}.shell.collapsed{grid-template-columns:var(--sidebar-rail) minmax(0, 1fr)}.sidebar{background:var(--surface);border-right:1px solid var(--line);z-index:20;flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-head{height:var(--topbar-h);flex:none;justify-content:space-between;align-items:center;padding:0 1rem;display:flex}.sidebar-brand,.topbar-brand{display:inline-flex;text-decoration:none!important}.side-nav{scrollbar-width:thin;flex:1;padding:.5rem .75rem 1rem;overflow-y:auto}.nav-group+.nav-group{margin-top:.75rem}.nav-group-title{letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:0 .65rem .35rem;font-size:.68rem;font-weight:600}.nav-link{border-radius:var(--radius-sm);min-height:36px;color:var(--muted);white-space:nowrap;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);align-items:center;gap:.7rem;padding:.35rem .65rem;font-size:.92rem;font-weight:600;display:flex;position:relative}.nav-link svg{flex:none}.nav-link:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--text)}.nav-link.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-.75rem}.nav-link.active svg:not(.spark){color:var(--accent)}.nav-link.as-button{cursor:pointer;text-align:left;background:0 0;border:0;width:100%}.nav-label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-foot{border-top:1px solid var(--line);flex-direction:column;gap:.15rem;padding:.75rem;display:flex}.sidebar-foot .plan-chip{align-self:flex-start;margin:0 0 .4rem .65rem}.shell.collapsed .nav-label,.shell.collapsed .nav-group-title,.shell.collapsed .logo-text,.shell.collapsed .sidebar-foot .plan-chip{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell.collapsed .nav-group+.nav-group{border-top:1px solid var(--line);margin-top:.5rem;padding-top:.5rem}.shell.collapsed .nav-link{justify-content:center;padding:.4rem}.shell.collapsed .nav-link .badge{min-width:1.05rem;font-size:.62rem;position:absolute;top:2px;right:2px}.shell.collapsed .sidebar-head{justify-content:center;padding:0}.badge{background:var(--accent-fill);min-width:1.3rem;color:var(--accent-text);text-align:center;border-radius:999px;padding:0 .35rem;font-size:.72rem;font-weight:700;line-height:1.35rem}.workspace{flex-direction:column;min-width:0;display:flex}.topbar{z-index:10;height:var(--topbar-h);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:.75rem;padding:0 1.5rem;display:flex;position:sticky;top:0}.topbar-brand{display:none}.topbar-actions{align-items:center;gap:.35rem;margin-left:auto;display:flex}.quick-add{margin-right:.4rem}.button svg,.icon-button svg,.tab svg{flex:none}.icon-button{border-radius:var(--radius-md);width:38px;height:38px;color:var(--muted);cursor:pointer;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-button:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.icon-button[aria-pressed=true],.icon-button.active{color:var(--accent);background:var(--accent-soft)}.bell .badge{min-width:1.1rem;font-size:.62rem;line-height:1.1rem;position:absolute;top:1px;right:-2px}.drawer-close,.drawer-backdrop,.tabbar{display:none}.content{width:100%;max-width:1200px;margin:0 auto;padding:1.75rem 1.75rem 4rem}@media (width<=1024px) and (width>=761px){.shell,.shell.collapsed{grid-template-columns:var(--sidebar-rail) minmax(0, 1fr)}.shell .nav-label,.shell .nav-group-title,.shell .logo-text,.shell .sidebar-foot .plan-chip{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.shell .nav-link{justify-content:center;padding:.4rem}.shell .sidebar-head{justify-content:center;padding:0}.shell .nav-link .badge{min-width:1.05rem;font-size:.62rem;position:absolute;top:2px;right:2px}.sidebar-toggle{display:none}}@media (width<=760px){.shell,.shell.collapsed{display:block}.sidebar{width:min(300px,86vw);height:100%;transition:transform .18s var(--ease);box-shadow:var(--shadow-pop);padding-bottom:env(safe-area-inset-bottom);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.shell.drawer-open .sidebar{transform:none}.shell.collapsed .nav-label,.shell.collapsed .nav-group-title,.shell.collapsed .logo-text,.shell.collapsed .sidebar-foot .plan-chip{clip-path:none;width:auto;height:auto;position:static}.shell.collapsed .nav-link{justify-content:flex-start;padding:.4rem .65rem}.shell.collapsed .sidebar-head{justify-content:space-between;padding:0 1rem}.drawer-close{display:inline-flex}.shell.drawer-open .drawer-backdrop{background:var(--scrim);z-index:15;display:block;position:fixed;inset:0}.nav-link{min-height:44px}.topbar{padding:0 1rem;padding-top:env(safe-area-inset-top);height:calc(var(--topbar-h) + env(safe-area-inset-top))}.sidebar-toggle{display:none}.topbar-brand{display:inline-flex}.topbar-brand .logo-symbol{width:26px;height:26px}.topbar-brand .wordmark{font-size:1rem}.quick-add{width:40px;height:40px;margin-right:.15rem;padding:0}.quick-add-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.icon-button{width:40px;height:40px}.tabbar{z-index:12;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;font-size:.7rem;font-weight:600;display:flex}.tab:hover{text-decoration:none}.tab.active{color:var(--accent)}.content{padding:1.25rem 1rem calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 2rem)}.hide-narrow{display:none}}.page{flex-direction:column;gap:1rem;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.25rem;display:flex}.page-head p{margin:.25rem 0 0}.back{font-size:.9rem}.grid{gap:1rem;display:grid}.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.hero{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}@media (width<=760px){.grid.hero,.grid.two{grid-template-columns:minmax(0,1fr)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:1.2rem 1.35rem}.card.accent{border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.card-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.card-head h2{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:600}.card-head a{font-size:.85rem}.stack{flex-direction:column;gap:.75rem;display:flex}.big{letter-spacing:-.025em;font-size:2.1rem;font-weight:800;line-height:1.15}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:.5rem;display:grid}.stat-label{color:var(--muted);font-size:.8rem;font-weight:500}.stat-value{letter-spacing:-.01em;font-size:1.2rem;font-weight:700}.stat-hint{color:var(--muted);font-size:.78rem}@media (width<=420px){.stats{grid-template-columns:minmax(0,1fr)}}.muted{color:var(--muted)}.small{font-size:.83rem}.mono{font-family:var(--mono);word-break:break-word}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.negative{color:var(--bad)}.ok{color:var(--good)}.right{text-align:right}.empty{color:var(--muted);margin:.25rem 0}.error{color:var(--bad);background:var(--bad-soft);border-radius:var(--radius-sm);margin:.5rem 0 0;padding:.55rem .75rem}.rows,.plain,.entries,.cards,.codes{margin:0;padding:0;list-style:none}.plain li{padding:.2rem 0}.row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;display:flex}.rows li:last-child{border-bottom:none}.row.top{align-items:flex-start}.row>span:first-child{min-width:0}.entry{border-bottom:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);transition:background var(--fast) var(--ease);grid-template-columns:2.25rem minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.6rem .5rem;display:grid}.entry-kind{background:var(--surface-2);width:2.25rem;height:2.25rem;color:var(--muted);border-radius:10px;place-items:center;display:inline-grid}.entry-kind.in{background:var(--good-soft);color:var(--good)}.entry-kind.save{background:var(--tile-bg);color:var(--tile-icon)}.entry-kind.people{background:var(--info-soft);color:var(--info)}.entry-flags{justify-content:flex-end;gap:.35rem;display:flex}.entry-amount.in{color:var(--good)}.entries li:last-child .entry{border-bottom:none}.entry:hover{background:var(--surface-2);text-decoration:none}.entry-date{font-variant-numeric:tabular-nums}.entry-main{flex-direction:column;min-width:0;display:flex}.entry-desc{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.entry-amount{text-align:right;font-weight:600}.cards{flex-direction:column;gap:.75rem;display:flex}.item{border:1px solid var(--line);border-radius:10px;padding:.75rem .9rem}.item .row{border:none;padding-top:0}.item p{margin:.25rem 0 .6rem}.pairs{grid-template-columns:minmax(0,1fr) auto;gap:.35rem 1rem;margin:.75rem 0 0;display:grid}.pairs dt{color:var(--muted)}.pairs dd{text-align:right;margin:0}.pairs.compact{font-size:.9rem}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);padding:0 .5rem .5rem;font-size:.75rem;font-weight:600}.table th.right{text-align:right}.table td{border-bottom:1px solid var(--line);vertical-align:top;padding:.6rem .5rem}.table tbody tr:hover td{background:color-mix(in srgb, var(--surface-2) 60%, transparent)}.table tr:last-child td{border-bottom:none}.meter-col{width:22%;vertical-align:middle!important}.pill{white-space:nowrap;background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.05rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.pill.good{background:var(--good-soft);color:var(--good)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.info{background:var(--info-soft);color:var(--info)}.meter{background:var(--surface-2);border-radius:999px;height:8px;margin:.75rem 0 .25rem;overflow:hidden}.table .meter{margin:0}.meter-fill{background:var(--accent-gradient);border-radius:inherit;height:100%;transition:width .3s}.meter-fill.warn{background:var(--warn)}.meter-fill.bad{background:var(--bad)}.loading{background:linear-gradient(90deg, transparent, var(--brand-mint), transparent);background-repeat:no-repeat;background-size:40% 100%;border-radius:2px;width:100%;height:3px;margin:1rem 0;animation:1.1s linear infinite slide}.loading.full{margin:0;position:fixed;top:0}@keyframes slide{0%{background-position:-40% 0}to{background-position:140% 0}}input,select,button{font:inherit;color:inherit}input,select,textarea{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-md);min-width:0;transition:border-color var(--fast) var(--ease);padding:.55rem .7rem}input:hover,select:hover,textarea:hover{border-color:var(--faint)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--focus);outline-offset:0}.field{flex-direction:column;gap:.25rem;display:flex}.field>span{color:var(--muted);font-size:.83rem;font-weight:500}.check{align-items:center;gap:.5rem;display:flex}.inline{color:var(--muted);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.filters input[type=search]{flex:220px}.search-field{flex:240px;display:flex;position:relative}.search-field svg{color:var(--faint);pointer-events:none;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.search-field input{flex:1;padding-left:2.1rem}@media (width<=760px){.entry{grid-template-columns:2.25rem minmax(0,1fr) auto}.entry-flags{grid-column:2/-1;justify-content:flex-start}.entry-flags:empty{display:none}.entry-amount{grid-area:1/3}}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:1rem;display:flex}.inline-form .field{flex:0 150px}.inline-form .field.grow{flex:200px}.answer{border-top:1px solid var(--line);max-width:560px;padding-top:.75rem}.segmented{flex-wrap:wrap;gap:.35rem;display:flex}.segmented button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:.3rem .8rem;font-size:.85rem}.segmented button.on{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--accent-text)}.button{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius-md);min-height:38px;color:var(--text);cursor:pointer;transition:background var(--fast) var(--ease), border-color var(--fast) var(--ease);justify-content:center;align-items:center;gap:.4rem;padding:.5rem 1rem;font-weight:600;display:inline-flex}a.button:hover{text-decoration:none}.button:hover:not(:disabled){background:var(--surface-2)}.button:disabled{opacity:.55;cursor:default}.button.primary{background:var(--accent-gradient);border-color:var(--accent-fill);color:var(--accent-text)}.button.primary:hover:not(:disabled){background:var(--accent-fill-hover);border-color:var(--accent-fill-hover)}.button.ghost{background:0 0}.button.small{min-height:32px;padding:.3rem .7rem;font-size:.85rem}.button.link{color:var(--accent);background:0 0;border:none;min-height:0;padding:0;font-weight:600}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.pager{justify-content:space-between;align-items:center;padding-top:.75rem;display:flex}.login{background:radial-gradient(ellipse at top, var(--accent-soft), var(--bg) 60%);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-brand{margin-bottom:1.75rem}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(400px,100%);box-shadow:var(--shadow);padding:2rem 1.75rem}.login-card p{margin:0}.secret{font-family:var(--mono);letter-spacing:.04em;background:var(--surface-2);word-break:break-all;border-radius:8px;padding:.6rem .75rem;font-size:1.05rem;display:block}.codes{font-family:var(--mono);grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;display:grid}.entry-form{max-width:720px}.danger{color:var(--bad)}.notice{background:var(--info-soft);border-radius:8px;padding:.75rem .9rem}.notice p{margin:.2rem 0}.notice.warn{background:var(--warn-soft);border-left:3px solid var(--warn)}.notice-icon{color:var(--warn);vertical-align:-3px;margin-right:.35rem}.split{border:1px solid var(--line);border-radius:10px;margin:0;padding:.75rem .9rem}.split legend{padding:0 .3rem;font-weight:600}.split p{margin:0}.split-row{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.row-end{align-items:center;gap:.5rem;display:flex}.budget-summary,.safe-strip{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:center;gap:1.25rem;display:grid}.safe-strip{background:linear-gradient(135deg, var(--accent-soft), var(--surface) 70%);border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));border-radius:var(--radius);margin-bottom:1rem;padding:1.1rem 1.25rem}.budget-hero{letter-spacing:-.03em;font-size:2.6rem;font-weight:800;line-height:1.1}.budget-summary-meter .meter{height:12px}.chips{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.chip{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.1rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.chip.over{background:var(--bad-soft);color:var(--bad)}.chip.near{background:var(--warn-soft);color:var(--warn)}.chip.ok{background:var(--good-soft);color:var(--good)}.chip.unplanned{background:var(--info-soft);color:var(--info)}.budget-groups{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;gap:.75rem;display:grid}.budget-group{border:1px solid var(--line);border-left:4px solid var(--line);background:var(--surface);border-radius:10px;min-width:0;padding:.75rem .9rem}.budget-group.status-ok{border-left-color:var(--accent)}.budget-group.status-near{border-left-color:var(--warn)}.budget-group.status-over{border-left-color:var(--bad)}.budget-group.status-unplanned{border-left-color:var(--info)}.budget-group .meter{margin:.5rem 0 .25rem}.budget-group-head,.budget-row{all:unset;box-sizing:border-box;cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;width:100%;display:flex}.budget-group-head:focus-visible,.budget-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.budget-group-title{flex-wrap:wrap;align-items:center;gap:.4rem;min-width:0;display:flex}.budget-group-figures{white-space:nowrap;font-weight:650}.chevron{color:var(--muted);width:.8rem}.budget-rows{border-top:1px solid var(--line);gap:.35rem;margin-top:.6rem;padding-top:.6rem}.budget-row{border-radius:6px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;padding:.35rem .4rem;display:grid}.budget-row:hover,.budget-row.on{background:var(--surface-2)}.budget-row .meter{height:6px;margin:0}.budget-row-figures{text-align:right;white-space:nowrap;font-size:.9rem}.category-entries{border-left:2px solid var(--line);margin:.25rem 0 .5rem .4rem;padding-left:.6rem}@media (width<=760px){.budget-summary,.safe-strip{grid-template-columns:minmax(0,1fr)}.budget-row{grid-template-columns:minmax(0,1fr) auto}.budget-row-meter{display:none}}.chart{margin:0}.legend{flex-wrap:wrap;align-items:center;gap:.9rem;margin-bottom:.4rem;font-size:.85rem;display:flex}.swatch{vertical-align:-1px;border-radius:3px;width:10px;height:10px;display:inline-block}.swatch.series-1,path.series-1{background:var(--series-1);fill:var(--series-1)}.swatch.series-2,path.series-2{background:var(--series-2);fill:var(--series-2)}.chart-plot{position:relative}.chart-plot svg{width:100%;height:auto;display:block;overflow:visible}.grid-line{stroke:var(--line);stroke-width:1px}.tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart g.dim path{opacity:.35}.hit{fill:#0000;cursor:default}.hit:focus{outline:none}.tooltip{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);pointer-events:none;white-space:nowrap;z-index:2;flex-direction:column;gap:.15rem;padding:.45rem .6rem;font-size:.8rem;display:flex;position:absolute;top:0;transform:translate(-50%)}.chart-table summary{cursor:pointer;color:var(--muted);margin-top:.4rem;font-size:.8rem}.bar-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.bar-row{color:inherit;grid-template-columns:minmax(0,9rem) minmax(0,1fr);align-items:center;gap:.75rem;text-decoration:none;display:grid}a.bar-row:hover .bar-name{text-decoration:underline}.bar-name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.bar-track{align-items:center;gap:.5rem;min-width:0;display:flex}.bar-fill{background:var(--series-1);border-radius:0 4px 4px 0;flex:none;max-width:calc(100% - 6.5rem);height:12px}.bar-value{white-space:nowrap;font-size:.85rem}.chat{flex-direction:column;gap:.6rem;margin-bottom:.9rem;display:flex}.bubble{border:1px solid var(--line);border-radius:12px;max-width:min(46rem,92%);padding:.6rem .85rem}.bubble p{margin:.15rem 0}.bubble.user{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 30%, var(--line));align-self:flex-end}.bubble.assistant{background:var(--surface);align-self:flex-start}.bubble-text{white-space:pre-wrap}.ask-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.6rem;display:grid}.ask-form textarea{resize:vertical;width:100%;font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:.55rem .7rem}.plan-chip{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.8rem;text-decoration:none}.plan-current{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;display:flex}.row.usage{flex-wrap:wrap;row-gap:.35rem}.row.usage .meter{flex-basis:100%}.tags{flex-wrap:wrap;gap:.4rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.plans{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem;margin-bottom:.75rem;display:grid}.plan-option{border:1px solid var(--line);border-radius:10px;flex-direction:column;align-items:flex-start;gap:.4rem;padding:.9rem;display:flex}.plan-option.current{border-color:var(--accent);background:var(--accent-soft)}.plan-option h3{margin:0;font-size:1rem}.plan-lines{flex:1;margin:.25rem 0 .5rem;padding-left:1.1rem;font-size:.85rem}.locked{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.locked h1,.allowance{margin:0}.login-card.wide{width:min(880px,100%)}.login-card h1{margin:.25rem 0 .75rem;font-size:1.3rem}.row-links{justify-content:space-between;gap:1rem;font-size:.9rem;display:flex}.plans-choice{border:0;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin:0;padding:0;display:grid}.plans-choice legend{margin-bottom:.5rem;font-weight:600}.plans-choice .plan-option{cursor:pointer}.plans-choice .plan-option input{opacity:0;pointer-events:none;position:absolute}.plans-choice .plan-option:focus-within{outline:2px solid var(--accent);outline-offset:2px}.plan-option.chosen{border-color:var(--accent);background:var(--accent-soft)}.plan-name{font-weight:600}.plan-price{font-family:var(--mono);font-size:.9rem}.turnstile{min-height:65px}.button.danger{background:var(--bad);border-color:var(--bad);color:var(--surface)}.overlay{background:var(--scrim);z-index:50;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(400px,100%);box-shadow:var(--shadow-pop);padding:1.5rem}.dialog h2{margin:0}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;display:flex}.tabs a{color:var(--muted);border-bottom:2px solid #0000;padding:.5rem .8rem;text-decoration:none}.tabs a.active{color:var(--text);border-bottom-color:var(--accent)}.wizard-steps{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.wizard-steps li{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.25rem .7rem;font-size:.85rem}.wizard-steps li.now{background:var(--accent-soft);color:var(--text);font-weight:600}.warn-note{background:var(--warn-soft);border-radius:8px;padding:.75rem .9rem}.pay-to{border:1px solid var(--line);border-radius:8px;margin:.75rem 0;padding:.6rem .9rem}.invoice-page .invoice tfoot th{border-top:1px solid var(--line)}@media print{.topbar,.sidebar,.tabbar,.no-print{display:none!important}.shell{display:block}.content{padding:0}.invoice{box-shadow:none;border:0}}.plain-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.plain-list .grow{overflow-wrap:anywhere;flex:auto;min-width:0}.receipt-file{justify-items:start;gap:.4rem;display:grid}.receipt-file img{object-fit:contain;border:1px solid var(--line);border-radius:6px;max-width:min(320px,100%);max-height:420px}.checkbox{align-items:flex-start;gap:.6rem;line-height:1.4;display:flex}.checkbox input{width:auto;margin-top:.2rem}.page.narrow,.page.legal{max-width:760px;margin:0 auto;padding:1.5rem 1rem 3rem}.page.legal h2{margin-top:1.75rem}.page.legal li+li{margin-top:.35rem}.table-wrap{overflow-x:auto}.bell{align-items:center;gap:.25rem;display:inline-flex;position:relative}.notice-list{margin:0;padding:0;list-style:none}.inbox-line{border-bottom:1px solid var(--line);border-left:3px solid #0000;padding:.75rem .75rem .75rem 1rem}.inbox-line:last-child{border-bottom:none}.inbox-line.unread{border-left-color:var(--accent)}.notice-head{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.notice-body{white-space:pre-line;margin:.35rem 0 0}.notice-actions{align-items:center;gap:.75rem;margin-top:.35rem;display:flex}.budget-months{flex-direction:column;gap:1.25rem;display:flex}.budget-months h3{margin:0 0 .4rem;font-size:1rem}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem;font-size:.72rem;font-weight:600}.metric-label{color:var(--muted);font-size:.78rem;font-weight:500}.metric-value{letter-spacing:-.015em;font-size:1.3rem;font-weight:700;line-height:1.3}.metric-hint{color:var(--muted);font-size:.76rem}.position{background:var(--surface-hero);grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:center;gap:1.5rem;padding:1.5rem 1.6rem;display:grid}.position h2.metric-label{text-transform:none;letter-spacing:0;font-size:.85rem}.hero-amount{letter-spacing:-.03em;margin:.25rem 0 .75rem;font-size:2.5rem;font-weight:800;line-height:1.1}.position-parts{flex-wrap:wrap;gap:.5rem 1.5rem;margin:0;font-size:.85rem;display:flex}.position-parts dt{color:var(--muted)}.position-parts dd{margin:0;font-weight:600}.position-month{border-left:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;padding-left:1.5rem;display:grid}@media (width<=1100px){.position{grid-template-columns:minmax(0,1fr)}.position-month{border-left:0;border-top:1px solid var(--line);padding:1rem 0 0}}@media (width<=560px){.position-month{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-amount{font-size:2.1rem}}.alloc-bar{background:var(--surface-2);border-radius:999px;gap:2px;height:14px;margin:.9rem 0 .6rem;display:flex;overflow:hidden}.alloc-bar span{min-width:3px;height:100%}.alloc-operating{background:var(--muted)}.alloc-rainy{background:var(--info)}.alloc-saved{background:var(--good)}.alloc-rest{background:var(--line-strong)}.alloc-legend .swatch{margin-right:.3rem}.shared-summary{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:.25rem;padding-bottom:.75rem;display:grid}.shared-summary .metric-value{font-size:1.05rem}.goal-line{border-bottom:1px solid var(--line);padding:.5rem 0}.goal-line:last-child{border-bottom:0}.goal-line .row{border:0;padding:0}.goal-line .meter{height:6px;margin:.4rem 0 .2rem}.table.compare td,.table.compare th{vertical-align:middle}.table.compare .pill{margin-left:.3rem}.title-with-spark{align-items:center;gap:.5rem;display:flex}.insight-label{color:var(--gold-text);letter-spacing:.09em;text-transform:uppercase;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;display:inline-flex}.card.insight{border-color:var(--gold-line);box-shadow:inset 3px 0 0 var(--gold), var(--shadow)}.card.insight .card-head h2{color:var(--gold-text)}.insight-text{margin:0 0 .5rem}.suggestions{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.suggestions li{color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.3rem .65rem;font-size:.85rem}.bubble.assistant{border-color:var(--gold-line);box-shadow:inset 3px 0 0 var(--gold)}.bubble .insight-label{margin-bottom:.2rem}.rule-key{background:var(--surface-2);min-width:2.9rem;color:var(--muted);letter-spacing:.1em;text-align:center;text-transform:uppercase;border-radius:6px;margin-right:.45rem;padding:.05rem .4rem;font-size:.66rem;font-weight:700;display:inline-block}.rule-key.then{background:var(--accent-soft);color:var(--accent)}.rule-pattern{font-family:var(--mono);border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:.05rem .35rem;font-size:.85rem}.card.severity{border-left-width:3px}.card.severity.warn{border-left-color:var(--warn)}.card.severity.info{border-left-color:var(--info)}.card-head .count{background:var(--surface-2);color:var(--text);letter-spacing:0;border-radius:999px;margin-left:.5rem;padding:0 .45rem;font-size:.72rem}.insight-label.inline{margin-right:.15rem;font-size:.68rem}.tile{background:var(--tile-bg);border:1px solid var(--tile-line);width:1.9rem;height:1.9rem;color:var(--tile-icon);border-radius:9px;flex:none;place-items:center;display:inline-grid}.card-head h2.with-tile{align-items:center;gap:.6rem;display:flex}.account-cell{align-items:center;gap:.7rem;display:flex}.group-total{font-weight:700}.table td{vertical-align:middle}.menu-button,.admin-shell .sidebar-toggle{display:none}@media (width<=760px){.admin-shell .menu-button{display:inline-flex}.admin-shell .content{padding-bottom:3rem}}
