:root{color-scheme:light;--bg: #f3f5f2;--surface: #ffffff;--surface-2: #eaefeb;--ink: #17211e;--ink-2: #4a5a55;--line: #d9e0db;--brand: #0b6e5f;--brand-strong: #07574b;--brand-soft: #ddf0eb;--on-brand: #ffffff;--amber-bg: #fff3d6;--amber-ink: #7a4e00;--amber-line: #e9c46a;--danger: #b3261e;--danger-bg: #fce8e6;--pos: #0b6e5f;--focus: #1a5fd0;--shadow: 0 1px 2px rgb(23 33 30 / 6%), 0 6px 20px rgb(23 33 30 / 6%);--radius: 14px;--radius-sm: 10px;--tap: 44px;--font: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1513;--surface: #17201d;--surface-2: #1f2b27;--ink: #e7eeea;--ink-2: #a5b5af;--line: #2a3631;--brand: #3cc3a9;--brand-strong: #6fdcc6;--brand-soft: #173029;--on-brand: #04201a;--amber-bg: #3a2d0e;--amber-ink: #f2c766;--amber-line: #6b531a;--danger: #f2b8b5;--danger-bg: #3a1a18;--pos: #6fdcc6;--focus: #8ab4ff;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 6px 20px rgb(0 0 0 / 30%)}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg: #0e1513;--surface: #17201d;--surface-2: #1f2b27;--ink: #e7eeea;--ink-2: #a5b5af;--line: #2a3631;--brand: #3cc3a9;--brand-strong: #6fdcc6;--brand-soft: #173029;--on-brand: #04201a;--amber-bg: #3a2d0e;--amber-ink: #f2c766;--amber-line: #6b531a;--danger: #f2b8b5;--danger-bg: #3a1a18;--pos: #6fdcc6;--focus: #8ab4ff;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 6px 20px rgb(0 0 0 / 30%)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}body{margin:0;background:var(--bg);color:var(--ink);font:500 15px/1.5 var(--font);-webkit-font-smoothing:antialiased;overflow-x:clip;max-width:100%}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}@media(max-width:1024px){input,select,textarea{font-size:16px}}a{color:var(--brand-strong)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}a,button,summary,label,select,input,textarea{touch-action:manipulation}button,.btn,.tab,.nav-card{-webkit-tap-highlight-color:transparent}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:absolute;left:8px;top:-60px;background:var(--surface);padding:10px 14px;border-radius:8px;z-index:100}.skip:focus{top:8px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.small{font-size:13px}:root{--tabbar-h: calc(var(--tap) + 13px)}html{scroll-padding-top:calc(var(--tap) + 24px + env(safe-area-inset-top));scroll-padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 16px)}.app{min-height:100dvh}.sidebar{display:none}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));background:var(--bg);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;letter-spacing:-.02em;color:var(--ink);text-decoration:none}.brand-mark{width:30px;height:30px;border-radius:9px;display:block;object-fit:contain;flex:none}.page{padding:16px max(16px,env(safe-area-inset-right)) calc(var(--tabbar-h) + 48px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));max-width:1120px;margin:0 auto}.page>*+*{margin-top:16px}.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.page-head h1{font-size:24px;font-weight:800;letter-spacing:-.02em}.page-head h1:focus{outline:none}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--line);padding:6px max(4px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--tap);font-size:12px;line-height:1.15;font-weight:700;color:var(--ink-2);text-decoration:none;border:0;background:none;border-radius:10px}.tab svg{width:24px;height:24px}.tab-ico{display:grid;place-items:center;width:56px;height:28px;border-radius:999px}.tab[aria-current]{color:var(--brand-strong);font-weight:800}.tab[aria-current] .tab-ico{background:var(--brand-soft)}.tab[aria-current] svg{stroke-width:2.5}.fab{width:56px;height:56px;margin-top:-26px;justify-self:center;border-radius:50%;border:4px solid var(--bg);background:var(--brand);color:var(--on-brand);display:grid;place-items:center;box-shadow:var(--shadow);cursor:pointer}.fab svg{width:28px;height:28px}@media(min-width:860px){.app{display:grid;grid-template-columns:248px minmax(0,1fr)}.topbar,.tabbar{display:none}html{scroll-padding:0}.sidebar{display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100dvh;padding:20px 14px 20px max(14px,env(safe-area-inset-left));border-right:1px solid var(--line);background:var(--surface)}.sidebar .brand{padding:4px 10px 18px}.nav{display:flex;align-items:center;gap:12px;min-height:var(--tap);padding:0 12px;border-radius:10px;color:var(--ink-2);text-decoration:none;font-weight:700}.nav svg{width:20px;height:20px}button.nav{border:0;background:none;width:100%;text-align:left;font:inherit;font-weight:700;cursor:pointer}.nav:hover{background:var(--surface-2)}.nav[aria-current=page]{background:var(--brand-soft);color:var(--brand-strong)}.sidebar .grow{flex:1}.page{padding:28px max(36px,env(safe-area-inset-right)) 56px 36px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-weight:700;cursor:pointer;text-decoration:none;color:var(--ink)}@media(hover:hover){.btn:hover{background:var(--surface-2)}}.btn svg{width:18px;height:18px}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}@media(hover:hover){.btn.primary:hover{background:var(--brand-strong)}}.btn.danger{background:var(--danger);border-color:var(--danger);color:var(--on-brand)}.btn.ghost{background:transparent;border-color:transparent;color:var(--brand-strong)}.btn.block{width:100%}.btn.link{background:none;border:0;min-height:0;padding:4px 0;text-decoration:underline;color:var(--accent, inherit)}.btn.sm{min-height:36px;padding:0 12px;font-size:13.5px;border-radius:10px}.btn[disabled]{opacity:.55;cursor:not-allowed}.icon-btn{width:var(--tap);height:var(--tap);display:grid;place-items:center;border:0;background:transparent;border-radius:12px;cursor:pointer;color:var(--ink-2)}@media(hover:hover){.icon-btn:not([disabled]):hover{background:var(--surface-2)}}.icon-btn[disabled]{opacity:.4;cursor:not-allowed}.icon-btn svg{width:20px;height:20px}.field{display:flex;flex-direction:column;gap:6px}.field>label,.field>.label,legend.label{font-weight:700;font-size:13.5px}.input,select.input,textarea.input{min-height:var(--tap);width:100%;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.input,select.input,textarea.input{border-color:color-mix(in srgb,var(--ink-2) 70%,var(--surface))}@media(hover:hover){.input:hover{border-color:var(--ink-2)}}.input[aria-invalid=true]{border-color:var(--danger)}.err{color:var(--danger);font-weight:600;font-size:13.5px}fieldset{border:0;padding:0;margin:0;min-width:0}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.row.end{justify-content:flex-end}.grow{flex:1;min-width:0}.seg{display:flex;padding:4px;gap:4px;background:var(--surface-2);border-radius:14px}.seg button{flex:1;min-height:40px;border:0;border-radius:10px;background:transparent;font-weight:700;color:var(--ink-2);cursor:pointer}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000024}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center}.chip[aria-pressed=true]{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong);font-weight:800}.btn:not([disabled]):active{background:var(--surface-2)}.btn.primary:active{background:var(--brand-strong)}.btn.danger:active{background:var(--danger);filter:brightness(.9)}.btn.ghost:active{background:var(--brand-soft)}.btn.link:active{background:none}.icon-btn:not([disabled]):active,.txrow:active,.nav-card:active{background:var(--surface-2)}.tab:active .tab-ico{background:var(--surface-2)}.tab[aria-current]:active .tab-ico{background:var(--brand-soft);filter:brightness(.94)}.chip:active,.seg button:active{transform:scale(.97)}.fab:active{transform:scale(.94)}button.linkish:active{opacity:.65}@media(prefers-reduced-motion:no-preference){.btn,.icon-btn,.chip,.seg button,.tab-ico,.fab,.txrow,.nav-card,.input{transition:background-color .12s ease,border-color .12s ease,transform .12s ease,filter .12s ease}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card h2{font-size:16px;font-weight:800}.card>*+*{margin-top:12px}.nav-card{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap);text-decoration:none;color:inherit}.nav-card>*+*{margin-top:0}.nav-card>svg{flex:none;width:20px;height:20px;color:var(--ink-2)}.nav-card p{margin-top:2px}@media(hover:hover){.nav-card:hover{background:var(--surface-2)}}.grid{display:grid;gap:16px}@media(min-width:720px){.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.grid.main{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.stat .label{font-size:13px;font-weight:700;color:var(--ink-2)}.stat .value{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:4px}.stat .delta{font-size:13px;margin-top:4px;color:var(--ink-2)}.pos{color:var(--pos)}.neg{color:var(--ink)}.banner{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--amber-bg);color:var(--amber-ink);border:1px solid var(--amber-line);font-weight:600}.banner svg{width:20px;height:20px;flex:none;margin-top:2px}.banner>span{min-width:0;overflow-wrap:anywhere}.banner:has(>.btn){flex-wrap:wrap}.banner:has(>.btn)>span{flex:1 1 16rem}.banner>.btn{margin-left:auto}.banner a,.banner button.linkish{color:inherit;font-weight:800}.banner.info{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand)}.banner.bad{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}button.linkish{background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}.progress{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.progress>span{display:block;height:100%;background:var(--brand);border-radius:99px}.catlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.cat-top{display:flex;justify-content:space-between;gap:12px;font-weight:700}.cat-top>:first-child,.budget-list .top>:first-child{min-width:0;overflow-wrap:anywhere}.cat-top .num{flex:none}.bar{height:8px;border-radius:99px;background:var(--surface-2);margin-top:6px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--brand);border-radius:99px}.cat-unc{background:var(--amber-bg);border:1px solid var(--amber-line);color:var(--amber-ink);border-radius:12px;padding:12px}.cat-unc .bar{background:#0000001a}.cat-unc .bar>span{background:var(--amber-ink)}.chart{width:100%;max-width:520px;margin-inline:auto;height:auto;display:block}.chart text{fill:var(--ink-2);font:600 11px var(--font)}.chart text.current{fill:var(--ink);font-weight:800}.chart .bar-fill{fill:var(--brand-soft);fill:color-mix(in srgb,var(--brand) 28%,var(--surface));stroke:var(--brand);stroke-width:1.5}.chart .bar-fill.current{fill:var(--brand);stroke:var(--brand-strong)}.chart .cur-mark{fill:var(--brand-strong)}.chart .axis{stroke:var(--line)}@media(max-width:359px){.chart text{font-size:18px}}@media(min-width:360px)and (max-width:429px){.chart text{font-size:15px}}@media(min-width:430px)and (max-width:479px){.chart text{font-size:12px}}.filters{display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto}.filters .search{min-width:0}.filters-toggle{padding-inline:12px}.filters-toggle svg{width:16px;height:16px;transform:rotate(90deg)}.filters-toggle[aria-expanded=true] svg{transform:rotate(-90deg)}.filters-toggle.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong);font-weight:800}.filters-panel{grid-column:1 / -1;display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.filters-panel.open{display:grid}.filters-panel .field{min-width:0}@media(prefers-reduced-motion:no-preference){.filters-toggle svg{transition:transform .12s ease}}@media(min-width:860px){.filters{grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr))}.filters-toggle{display:none}.filters-panel,.filters-panel.open{display:contents}}.txlist{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.txhead{display:none}.txrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;width:100%;text-align:left;padding:12px 16px;min-height:60px;border:0;border-top:1px solid var(--line);background:transparent;cursor:pointer;align-items:center}li:first-child>.txrow{border-top:0}@media(hover:hover){.txrow:hover{background:var(--surface-2)}}.txrow .d{display:none}.txrow .desc{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txrow .meta{grid-column:1;font-size:13px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txrow .cat,.txrow .acct{display:none}.txrow .amt{grid-column:2;grid-row:1 / span 2;text-align:right;font-weight:800}.txrow .amt small{display:block;font-weight:600;font-size:12px;color:var(--ink-2)}.amt.income,.amt.refund{color:var(--pos)}.amt.transfer{color:var(--ink-2)}.tag{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;font-weight:800;background:var(--surface-2);color:var(--ink-2);margin-left:6px;vertical-align:1px}.tag.warn{background:var(--amber-bg);color:var(--amber-ink)}@media(min-width:860px){.txhead,.txrow{grid-template-columns:92px minmax(0,2.2fr) minmax(0,1.2fr) minmax(0,1fr) 150px;gap:12px}.txhead{display:grid;padding:10px 16px;font-size:12px;font-weight:800;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2)}.txhead span:last-child{text-align:right}.txrow{min-height:56px}.txrow .d,.txrow .cat,.txrow .acct{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txrow .d{color:var(--ink-2);font-weight:600}.txrow .meta{display:none}.txrow .desc,.txrow .cat,.txrow .acct{grid-column:auto}.txrow .amt{grid-column:auto;grid-row:auto}}.empty{text-align:center;padding:32px 16px 36px;color:var(--ink-2)}.empty p{max-width:420px;margin-inline:auto}.empty-art{width:160px;height:120px;display:block;margin:0 auto 4px}.empty h2{color:var(--ink);font-size:18px;margin-bottom:6px}.empty .row{justify-content:center;margin-top:14px}dialog.sheet{border:0;padding:0;background:var(--surface);color:var(--ink);border-radius:20px;width:min(580px,calc(100vw - 24px));max-height:min(92dvh,860px,calc(100dvh - var(--kb, 0px) - 24px));box-shadow:0 20px 60px #00000059;overflow:hidden}dialog.sheet[open]{display:flex;flex-direction:column}dialog.sheet::backdrop{background:#08100d8c}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 8px 6px 20px}.sheet-head h2{font-size:18px;font-weight:800}.sheet-body{padding:8px 20px 16px;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:16px}.sheet-foot{position:relative;display:flex;flex-direction:column;gap:8px;padding:12px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}.sheet-foot .btn{width:100%}.sheet-foot .btn.primary{min-height:48px}.sheet-added{position:absolute;left:20px;right:20px;bottom:calc(100% + 8px);box-shadow:var(--shadow);pointer-events:none}.amount-row{display:grid;grid-template-columns:1fr 96px;gap:10px}.amount-input{font-size:28px;font-weight:800;min-height:60px;letter-spacing:-.01em}.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13.5px}.history li{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--surface-2);border-radius:10px}details>summary{cursor:pointer;font-weight:700;min-height:32px;display:flex;align-items:center}.raw{font:500 12.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-2);padding:8px 10px;border-radius:8px;overflow-x:auto;white-space:pre}@media(max-width:600px){dialog.sheet{width:100%;max-width:100%;margin:auto 0 var(--kb, 0px);border-radius:20px 20px 0 0;max-height:min(94dvh,calc(100dvh - var(--kb, 0px) - env(safe-area-inset-top) - 8px))}}@media(min-width:601px){.sheet-foot{flex-direction:row-reverse;gap:10px}.sheet-foot .btn{width:auto}.sheet-foot .btn.primary{flex:1;min-width:140px;min-height:var(--tap)}dialog.sheet{translate:0 calc(var(--kb, 0px) / -2)}}dialog.sheet[data-kb] .sheet-foot{padding-bottom:12px}@media(max-height:500px){dialog.sheet[data-kb] .sheet-head{display:none}}@media(pointer:coarse){html:has(dialog[open]){overflow:hidden}}@media(prefers-reduced-motion:no-preference){dialog.sheet[open]{animation:sheet-in .2s ease-out}dialog.sheet[open]::backdrop{animation:sheet-fade .2s ease-out}.sheet-added{animation:sheet-in .16s ease-out}}@keyframes sheet-in{0%{opacity:0;transform:translateY(16px)}}@keyframes sheet-fade{0%{opacity:0}}@media(max-width:360px){.seg button{padding-inline:2px;font-size:14px}}.toasts{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + 28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:8px;z-index:60;pointer-events:none;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}@media(min-width:860px){.toasts{bottom:24px}}.toast{pointer-events:auto;display:flex;align-items:center;gap:14px;background:#17211e;color:#fff;padding:10px 10px 10px 16px;border-radius:12px;box-shadow:var(--shadow);font-weight:600;max-width:520px}.toast .btn{min-height:34px;background:transparent;color:#9fe6d5;border-color:transparent}.toast.bad{background:var(--danger);color:var(--on-brand)}.toast.bad .btn{color:inherit;text-decoration:underline}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);padding:8px 10px;background:var(--surface-2)}.table td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:top}.scroll-x{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.list{list-style:none;margin:0;padding:0}.list>li{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.list>li:first-child{border-top:0}.list .grow{font-weight:700}@media(max-width:599px){.deleted-list>li .grow{flex:1 1 100%}.deleted-list>li .btn{flex:1 1 0}}.stepper{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:700;color:var(--ink-2)}.stepper span{padding:4px 12px;border-radius:99px;background:var(--surface-2)}.stepper span[aria-current=step]{background:var(--brand);color:var(--on-brand)}.drop{border:2px dashed var(--line);border-radius:var(--radius);padding:28px 16px;text-align:center;background:var(--surface)}.welcome{max-width:560px;margin:0 auto;padding:28px max(16px,env(safe-area-inset-right)) 56px max(16px,env(safe-area-inset-left))}.welcome>*+*{margin-top:18px}.welcome h1{font-size:28px;font-weight:800;letter-spacing:-.02em}@media(prefers-reduced-motion:no-preference){.toast{animation:rise .18s ease-out}@keyframes rise{0%{transform:translateY(8px);opacity:0}}}.skel{border-radius:8px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--line) 37%,var(--surface-2) 63%);background-size:400% 100%}.app[aria-busy=true] .card>*+*{margin-top:12px}@media(prefers-reduced-motion:no-preference){.skel{animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}}.install-banner{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;padding:14px 16px;border-radius:var(--radius);background:var(--brand-soft);border:1px solid var(--brand)}.install-banner h2{font-size:15px;font-weight:800;color:var(--ink)}.install-banner .brand-mark{width:40px;height:40px;border-radius:12px}.install-banner .grow{flex:1 1 220px}.fullscreen-state{min-height:100dvh;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-right)) 24px max(16px,env(safe-area-inset-left));background:var(--bg)}.state-card{width:min(480px,100%);text-align:center;display:flex;flex-direction:column;gap:14px}.state-card h1{font-size:26px;font-weight:800;letter-spacing:-.02em}.state-card details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 14px 14px}.state-card pre{margin:8px 0;max-height:160px;overflow:auto}.stack{display:flex;flex-direction:column;gap:8px}details.disclose{border-top:1px solid var(--line);padding:10px 0}details.disclose>summary{cursor:pointer;font-weight:600;min-height:32px;display:flex;align-items:center}details.disclose[open]>summary{margin-bottom:8px}ul.plain{list-style:none;margin:0;padding:0;display:grid;gap:12px}.pill{font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--brand-soft);color:var(--brand-strong)}.update-banner{position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));top:calc(12px + env(safe-area-inset-top));z-index:70;display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;max-width:520px;margin:0 auto;padding:12px 14px;border-radius:var(--radius);background:var(--brand-soft);border:1px solid var(--brand);color:var(--ink);box-shadow:var(--shadow);font-weight:700}.update-banner .grow{flex:1 1 100%}.update-banner .btn{flex:1 1 0}@media(min-width:600px){.update-banner .grow{flex:1 1 auto}.update-banner .btn{flex:none}}.progress.near>span{background:var(--amber-ink)}.progress.over>span{background:var(--danger)}.budget-list,.insight-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.budget-list .top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.budget-list .top a{color:inherit;text-decoration:none;font-weight:700}.insight-list li{display:flex;gap:10px;align-items:flex-start}.insight-list .dot{flex:none;box-sizing:border-box;width:10px;height:10px;border-radius:99px;margin-top:6px;background:transparent;border:2px solid var(--brand)}.insight-list .dot.warn{background:var(--amber-ink);border-color:var(--amber-ink);border-radius:2px;margin-top:7px;transform:rotate(45deg)}.insight-list .dot.good{background:var(--brand-strong);border-color:var(--brand-strong)}.budget-row{display:grid;gap:8px;padding:12px 0;border-top:1px solid var(--line)}.budget-row:first-child{border-top:0}.budget-row .edit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.budget-row .edit label{grid-column:1 / -1}.budget-row .edit .input{width:100%;min-width:0}@media(min-width:560px){.budget-row .edit{grid-template-columns:minmax(8rem,1fr) 11rem auto}.budget-row .edit label{grid-column:auto}}.budget-row.child{margin-left:18px}@media(pointer:coarse){.btn.sm,.seg button,details>summary,details.disclose>summary,.toast .btn{min-height:var(--tap)}.toast{padding-block:6px}.chip,.cat-top a,.cat-unc a,.budget-list .top a,.card>.row>a:not([class]),.page-head>a:not([class]),.banner a,button.linkish{position:relative}.chip:after{content:"";position:absolute;inset:-3px 0}.cat-top a:after,.cat-unc a:after,.budget-list .top a:after,.card>.row>a:not([class]):after,.page-head>a:not([class]):after,.banner a:after,button.linkish:after{content:"";position:absolute;inset:-12px -8px}}@media(max-width:719px){.grid.cols-3{gap:10px}.stat{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:baseline;padding:12px 16px}.stat>*+*{margin-top:0}.stat .label{grid-column:1}.stat .value{grid-column:2;grid-row:1;margin-top:0;font-size:22px;text-align:right}.stat .delta{grid-column:1 / -1;margin-top:0}}@media(max-width:599px){.page-head>.row[role=group]{width:100%;justify-content:space-between}.page-head>.row[role=group]>div{flex:1}}@media(max-width:859px){.btn.add-inline{display:none}}
