:root{--bg: #2A3950;--bg-2: #334864;--ink: #F4F1EA;--muted: #C9D2DF;--line: rgba(255, 255, 255, .08);--slate: #41436A;--wine: #984063;--flame: #F64668;--peach: #ffce55;--serif: Georgia, "Iowan Old Style", Palatino, "Palatino Linotype", serif;--sans: "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{color-scheme:dark;background:var(--bg)}body{margin:0;min-height:100vh;min-height:100dvh;background:radial-gradient(880px 420px at 110% -10%,rgba(246,70,104,.16),transparent 60%),radial-gradient(640px 360px at -20% -10%,rgba(65,67,106,.7),transparent 55%),var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.4}button,input,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}::selection{background:var(--flame);color:#fff}:focus-visible{outline:2px solid var(--peach);outline-offset:3px}.topbar{position:sticky;top:0;z-index:5;background:#2a3950f5}.topbar-inner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;max-width:1040px;margin:0 auto;padding:16px 20px 10px}.brand{order:1;display:flex;align-items:center;margin:0;font-size:20px;font-weight:650;letter-spacing:-.03em}.mark{display:inline-flex;margin-right:10px}.mark i,.empty-mark i{display:block;border-radius:50%}.mark i{width:11px;height:11px;margin-left:-4px;box-shadow:0 0 0 1.5px var(--bg)}.mark i:first-child{margin-left:0;background:var(--slate)}.mark i:nth-child(2){background:var(--wine)}.mark i:nth-child(3){background:var(--flame)}.mark i:nth-child(4){background:var(--peach)}.settings-btn{order:2;margin-left:auto}.month-switch{order:3;flex:1 0 100%;display:flex;align-items:center;justify-content:space-between;gap:8px}.month-readout{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0}#month-label{font-size:18px;font-weight:650;letter-spacing:-.02em}#back-today{border:0;background:none;color:var(--peach);font-size:12px;font-weight:650;padding:0}.icon-btn{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:#ffffff0d;color:var(--ink)}.icon-btn svg,.tab svg,.add-btn svg,.bubble svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-btn svg,.tab svg{width:22px;height:22px}svg .fill{fill:currentColor;stroke:none}main{padding:8px 20px calc(112px + env(safe-area-inset-bottom))}.home{display:flex;flex-direction:column;gap:18px}.balance-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.balance-head .kicker{margin:0}.privacy-toggle{flex:0 0 auto;width:36px;height:36px;color:var(--muted)}.privacy-toggle[aria-pressed=true]{color:var(--peach)}.privacy-toggle:hover,.privacy-toggle:focus-visible{color:var(--ink);outline:none}.hero{order:1}.alerts{order:2}.latest-block{order:3}.budgets-block{order:4}.chart-block{order:5}.empty{order:6}.narrow{max-width:680px;margin:0 auto}.alerts{display:flex;flex-direction:column;gap:8px}.alert-row{display:flex;align-items:stretch;gap:6px}.alert{display:block;flex:1;min-width:0;border:0;border-radius:14px;padding:12px 14px;text-align:left;font:inherit;font-size:13px;font-weight:650;cursor:pointer;background:#fc6e5124;color:#ffceb0}.alert.due{background:#5d9cec29;color:#c5d9f5}.alert.near{background:#ffce541f;color:#ffe2a0}.alert.pay{background:#a0d46824;color:#c8e6a0}.alert-dismiss{flex:0 0 auto;width:40px;border:0;border-radius:14px;background:#ffffff0f;color:var(--muted);font:inherit;font-size:18px;line-height:1;cursor:pointer}.check{display:flex;align-items:center;gap:10px;margin:8px 0 12px;font-size:14px;font-weight:650}.check input{width:18px;height:18px;accent-color:var(--flame)}#sheet-payfirst .primary,#sheet-payfirst .ghost{margin-top:12px}.goal-pulse,.goal-card{display:flex;flex-direction:column;gap:10px;width:100%;border:0;background:transparent;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.goal-pulse-top{display:flex;align-items:center;gap:12px}.goal-swatch{width:12px;height:36px;border-radius:999px;flex:0 0 auto}.goal-pulse-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.goal-pulse-copy .name,.goal-card .name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:15px;font-weight:700;color:var(--ink);letter-spacing:0;text-transform:none}.goal-pulse-copy .meta{color:var(--muted);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.goal-pct{font-variant-numeric:tabular-nums;font-weight:750;color:var(--peach);font-size:15px}.goal-list{display:flex;flex-direction:column;gap:12px}.goal-card{background:#ffffff0a;border-radius:18px;padding:14px}.goal-left{color:var(--muted);font-size:12px}.plan-tabs{flex-wrap:wrap;margin:0 0 8px}.plan-tabs button{padding:6px 10px}.plan-section{margin-top:22px}.plan-section:first-of-type{margin-top:10px}.plan-note-actions{display:flex;gap:12px}.plan-empty{padding:18px 8px}.plan .lede{margin-bottom:12px}.badge{display:inline-flex;align-items:center;flex:0 0 auto;margin:0;padding:2px 7px;border-radius:999px;background:#ffce5529;color:#ffce54;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.2}.badge-track{background:#48cfad24;color:#6ee7c5;box-shadow:inset 0 0 0 1px #48cfad47}.plan-section>.filters{margin-bottom:12px}.plan-section>.goal-list{margin-bottom:8px}.tax-sub{margin-top:18px}.tax-list{max-height:220px;overflow-y:auto;margin:6px 0 4px;padding:4px 12px;border-radius:16px;background:#ffffff0a}.tax-list .check{margin:10px 0}.share-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.12em;color:var(--peach)}.view-banner{margin:0 0 14px}#sheet-debt .amount,#sheet-whatif .amount{margin-top:4px;margin-bottom:12px}#sheet-debt .primary,#sheet-debt .danger,#goal-suggest-wrap .ghost{margin-top:12px}#whatif-result{margin-top:14px}#whatif-result .afford-verdict{margin-top:0;margin-bottom:6px}#sheet-whatif .switch{margin-top:4px}body.view-only .add-btn,body.view-only [data-action=new-goal],body.view-only [data-action=new-debt],body.view-only [data-action=new-note],body.view-only [data-action=new-list],body.view-only [data-action=load-sample],body.view-only [data-action=start-fresh],body.view-only [data-action=upload-statement],body.view-only [data-action=inflate-budgets],body.view-only [data-action=restore-backup],body.view-only [data-action=download-backup],body.view-only [data-action=save-tax-cats],body.view-only [data-action=household-join]{display:none!important}.home-tools{display:flex;flex-direction:column;gap:8px;margin-top:14px}.home-tools .ghost{width:100%;margin:0}.chart-open{margin-top:0}.bill-list{display:flex;flex-direction:column;gap:2px}.bill-day{margin:12px 0 6px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.bill-day:first-child{margin-top:4px}.bill-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:4px 0 14px}.bill-cal-head{text-align:center;font-size:.68rem;font-weight:600;letter-spacing:.06em;color:var(--muted);padding:2px 0 6px}.bill-cal-day{aspect-ratio:1;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.82rem;color:var(--ink);background:transparent;border:0;padding:0;position:relative}.bill-cal-day.empty{visibility:hidden}.bill-cal-day.past{color:var(--muted)}.bill-cal-day.today{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--peach) 55%,transparent)}.bill-cal-day.has{background:color-mix(in srgb,var(--flame) 18%,transparent);font-weight:650;cursor:pointer}.bill-cal-day.has:hover,.bill-cal-day.has:focus-visible{background:color-mix(in srgb,var(--flame) 28%,transparent);outline:none}.bill-cal-day .dot{width:5px;height:5px;border-radius:50%;background:var(--flame)}.bill-cal-day .dots{font-size:.62rem;font-weight:700;line-height:1;color:var(--peach)}.plan-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.field.check{display:flex;align-items:center;gap:10px;margin:8px 0}.field.check input{width:1.1rem;height:1.1rem;accent-color:var(--flame)}.field.check span{font-size:.92rem}.api-key-once{margin-top:12px;padding:12px;border-radius:14px;background:#ffce551a;border:1px solid rgba(255,206,85,.28)}.api-key-token{display:block;margin:8px 0 10px;padding:10px 12px;border-radius:10px;background:#00000047;color:var(--peach);font-size:12px;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.api-key-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}.api-key-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.api-key-copy .name{font-weight:650;font-size:14px}.api-key-copy .meta{font-size:12px;color:var(--muted)}#agent-keys-block code{font-size:.9em;color:var(--peach)}.summary-line{margin:0 0 10px;font-size:14px;font-weight:650;color:var(--ink)}.afford-verdict{display:flex;flex-direction:column;gap:6px;margin:14px 0 4px;padding:14px;border-radius:16px;background:#ffffff0d}.afford-verdict strong{font-size:16px;font-weight:750}.afford-verdict span{color:var(--muted);font-size:14px;line-height:1.4}.afford-verdict.yes{background:#a0d46824}.afford-verdict.yes strong{color:#a0d468}.afford-verdict.careful{background:#ffce541f}.afford-verdict.careful strong{color:#ffce54}.afford-verdict.no{background:#fc6e5124}.afford-verdict.no strong{color:#fc8772}.afford-verdict.idle strong{color:var(--muted)}#sheet-afford .ghost,#sheet-leftover .primary{margin-top:16px}.ghost:disabled,.primary:disabled{opacity:.45;cursor:not-allowed}.sheet-wide{max-width:min(560px,calc(100vw - 24px))}#chart-body .panel{background:transparent;padding:0}#chart-body .block-head{margin-bottom:10px}.insights-panel{margin-top:8px}.insight-hero{margin:4px 0 14px}.insight-amount{margin:4px 0 0;font-family:var(--serif);font-size:clamp(36px,9vw,52px);font-weight:560;letter-spacing:-.03em;line-height:1;color:var(--peach);font-variant-numeric:tabular-nums}.insight-stat,.insight-change{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:14px}.insight-stat span,.insight-change span{color:var(--muted)}.insight-stat b,.insight-change b{font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.insight-change b.worse,.insight-stat b.worse{color:var(--flame)}.insight-change b.better,.insight-stat b.better{color:var(--peach)}.insight-change b.muted{color:var(--muted);font-weight:650}.insight-top{margin-top:12px}.compare-head,.compare-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:baseline;padding:8px 0;font-size:13px}.compare-head{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1)}.compare-row{border-bottom:1px solid rgba(255,255,255,.06)}.compare-label{color:var(--muted)}.compare-now,.compare-was{font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.compare-was{color:var(--muted);font-weight:650}.split-hero{display:flex;align-items:center;gap:18px;margin:8px 0 16px}.split-pie{width:112px;height:112px;border-radius:50%;flex:0 0 auto;box-shadow:inset 0 0 0 10px var(--bg-2);background-color:#ffffff14}.split-legend{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.split-legend>div{display:flex;align-items:center;gap:8px;font-size:13px}.split-legend i{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.split-legend i.need{background:#5d9cec}.split-legend i.want{background:#fc6e51}.split-legend i.save{background:#a0d468}.split-legend span{flex:1;color:var(--muted)}.split-legend b{font-variant-numeric:tabular-nums}.split-targets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}.split-targets label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.split-targets input{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#0000002e;color:var(--ink);padding:10px 12px;font:inherit}.split-targets .ghost{grid-column:1 / -1;margin:0}.split-bucket{margin-top:16px}.split-bucket-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.split-bucket-head b{font-variant-numeric:tabular-nums}.split-delta{margin:4px 0 10px;font-size:12px;font-weight:650;color:var(--muted)}.split-delta.worse{color:#fc8772}.split-delta.better{color:#a0d468}.split-delta.ok{color:var(--peach)}.split-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.split-item-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.split-item-copy .name{font-size:14px;font-weight:650}.split-item-copy .meta{font-size:12px;color:var(--muted)}.split-select{max-width:96px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#0000002e;color:var(--ink);padding:8px 10px;font:inherit;font-size:12px;font-weight:650}.merchant-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}.merchant-row .linkish{flex:0 0 auto}.hello{margin:0 0 12px;color:var(--muted);font-size:14px;font-weight:650}.kicker{margin:0;font-size:12px;font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.balance{margin:6px 0 16px;font-family:var(--serif);font-size:clamp(46px,12vw,76px);font-weight:560;letter-spacing:-.035em;line-height:.95;color:var(--peach);font-variant-numeric:tabular-nums}.balance.out{color:var(--flame)}.balance.zero{color:var(--ink)}.hint{margin:8px 0 0;color:var(--muted);font-size:14px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stats-trio .stat.goal{grid-column:1 / -1}.stat{background:#ffffff0a;border-radius:18px;padding:12px 14px}.stat span{display:block;color:var(--muted);font-size:11px;font-weight:650;letter-spacing:.14em;text-transform:uppercase}.stat b{display:block;margin-top:4px;font-size:18px;font-weight:650;font-variant-numeric:tabular-nums}.stat.in b{color:var(--peach)}.stat.out b{color:var(--flame)}.stat.goal{display:flex;flex-direction:column;gap:8px;min-width:0}.stat.goal .block-head{margin:0;min-height:0}.stat.goal .block-head span{margin:0}.stat.goal .goal-pulse span{display:revert;color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:none}.stat.goal .goal-pulse{gap:8px}.stat.goal .goal-pulse-top{display:flex;align-items:center;gap:12px}.stat.goal .goal-swatch{display:block;height:28px}.stat.goal .goal-pulse-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.stat.goal .goal-pulse-copy .name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:14px;font-weight:700;color:var(--ink)}.stat.goal .goal-pulse-copy .meta{display:block;color:var(--muted);font-size:12px;font-weight:500}.stat.goal .goal-pct{display:block;color:var(--peach);font-size:15px;font-weight:750;letter-spacing:0;text-transform:none}.stat.goal .meter span{display:block}.stat.goal .badge{display:inline-flex;color:#ffce54;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.stat.goal .badge-track{color:#6ee7c5}.stat.goal .goal-empty{margin:0;font-size:13px}.stat.goal .goal-empty-btn{align-self:flex-start;margin-top:2px;padding:6px 10px;font-size:13px}.panel{background:#ffffff0a;border-radius:22px;padding:16px}.block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.linkish{border:0;background:none;color:var(--peach);font-size:14px;font-weight:650;padding:4px 0}.chart-head{align-items:flex-start;flex-wrap:wrap}.chart-head .filters{margin:0}.chart-head .filters button{padding:6px 10px}.spending-panel .insight-hero{margin-bottom:4px}.spending-panel .insight-amount{color:var(--peach)}.spending-panel .filters{margin:0 0 10px}.spending-panel .lede{margin-bottom:10px;font-size:13px}.chart{height:148px;display:flex;align-items:flex-end;justify-content:space-between;gap:2px;padding:36px 0 0;margin-top:4px;border-bottom:1px solid rgba(255,255,255,.14);box-sizing:border-box;overflow:hidden}.bar-hit{position:relative;flex:1 1 0;min-width:0;height:100%;display:flex;align-items:flex-end;justify-content:center;border:0;padding:0;background:none;cursor:pointer}.bar-hit .tip{position:absolute;z-index:2;left:50%;bottom:calc(var(--h) + 10px);transform:translate(-50%);padding:4px 8px;border-radius:999px;background:#1c2940;border:1px solid rgba(255,255,255,.14);color:var(--ink);font-size:12px;font-weight:650;white-space:nowrap;opacity:0;pointer-events:none}.bar-hit:hover .tip,.bar-hit:focus-visible .tip,.bar-hit.on .tip{opacity:1}.bar-hit.edge-start .tip{left:0;transform:none}.bar-hit.edge-end .tip{left:auto;right:0;transform:none}.bar{width:70%;max-width:12px;min-width:4px;border-radius:4px 4px 1px 1px;background:transparent;transition:height .15s ease,background .15s ease}.bar.empty{width:100%;max-width:none;min-width:0;height:0!important;background:transparent}.bar-hit:hover .bar.empty,.bar-hit.on .bar.empty,.bar-hit:focus-visible .bar.empty{height:6px!important;background:#ffffff2e;border-radius:1px}.bar.has{background:var(--peach)}.bar.is-today{background:var(--flame)}.bar.upcoming{background:#fc6e5166;box-shadow:inset 0 0 0 1px #fc6e5159}.bar-hit:hover .bar.has,.bar-hit.on .bar.has{background:#ffe08a}.bar-hit:hover .bar.is-today,.bar-hit.on .bar.is-today{background:#ff8f7a}.chart-note{margin-top:10px}#chart-body .chart{min-height:148px}.chart-scale{display:flex;justify-content:space-between;margin-top:8px;color:var(--muted);font-size:11px;font-weight:650}.chart-run{margin:8px 0 2px;font-size:13px;font-weight:650;color:var(--muted);min-height:1.2em}.stmt-table{margin-top:8px;border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:auto;background:#0000001f}.stmt-head,.stmt-row,.stmt-open,.stmt-close{display:grid;grid-template-columns:4.2rem minmax(8rem,1.6fr) 5.4rem 5.6rem;gap:8px;align-items:center;width:100%;min-width:420px;padding:10px 12px;text-align:left}.stmt-head{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.08)}.stmt-row{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.stmt-row.alt{background:#ffffff08}.stmt-row:hover,.stmt-row:focus-visible{background:#ffce541a}.stmt-date,.stmt-bal{color:var(--muted);font-size:12px}.stmt-desc{display:flex;flex-direction:column;gap:2px;min-width:0}.stmt-title{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stmt-cat{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stmt-cat i{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.stmt-amt,.stmt-bal{text-align:right;font-variant-numeric:tabular-nums;font-weight:650}.stmt-open,.stmt-close{font-size:13px;font-weight:650;color:var(--muted);border-top:1px solid rgba(255,255,255,.08)}.stmt-close{color:var(--ink)}.stmt-empty{padding:18px 12px;color:var(--muted);text-align:center}.bubble-map{width:100%;margin:8px 0 12px;border-radius:20px;overflow:hidden;background:radial-gradient(circle at 30% 30%,rgba(255,206,84,.08),transparent 45%),radial-gradient(circle at 70% 65%,rgba(77,137,220,.08),transparent 40%),#00000024;border:1px solid rgba(255,255,255,.08)}.bubble-map svg{display:block;width:100%;height:auto}.bubble-hit{cursor:pointer}.bubble-hit circle{stroke:#ffffff24;stroke-width:1;transition:stroke .16s ease,filter .16s ease}.bubble-hit:hover circle,.bubble-hit:focus-visible circle{stroke:#ffffff59;filter:brightness(1.06)}.bubble-hit.on circle{stroke:var(--peach);stroke-width:3}.bubble-hit text{pointer-events:none;font-family:inherit}.bubble-detail{margin-top:4px}.bubble-detail .block-head{margin-bottom:4px}.note-actions{margin:0 0 16px}.note-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sticky{display:flex;flex-direction:column;gap:6px;min-height:132px;padding:14px;border:0;border-radius:4px 18px 18px;box-shadow:0 10px 24px #0000002e;text-align:left;font:inherit;cursor:pointer}.sticky-kind{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.7}.sticky-title{font-size:16px;font-weight:750;line-height:1.2}.sticky-preview{font-size:13px;line-height:1.35;opacity:.85;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.note-colors{display:flex;flex-wrap:wrap;gap:8px}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;padding:0;cursor:pointer}.swatch.on{border-color:#fff;box-shadow:0 0 0 2px #ffffff59}#note-body{width:100%;resize:vertical;min-height:140px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#0000002e;color:var(--ink);padding:12px 14px;font:inherit}.note-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08)}.note-item .done{text-decoration:line-through;color:var(--muted)}.note-item .icon-btn{width:32px;height:32px}.note-add-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0 18px}.note-add-row input{border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#0000002e;color:var(--ink);padding:12px 14px;font:inherit}.tx,.limit{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:8px;border:0;border-radius:14px;background:none;text-align:left}.tx-copy,.limit-copy{min-width:0}.name{display:block;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta{display:block;margin-top:2px;color:var(--muted);font-size:13px}.meta.over{color:var(--flame)}.amt{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.amt.in{color:var(--peach)}.amt.out{color:var(--flame)}.tx.fresh{animation:glow .9s ease}@keyframes glow{0%{background:#ffce5538}to{background:transparent}}.bubble{width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.tx .bubble,.limit .bubble,.detail-bubble{width:40px;height:40px}.bubble svg{width:18px;height:18px}.meter{height:6px;margin-top:8px;border-radius:99px;background:#ffffff14;overflow:hidden}.meter span{display:block;height:100%;border-radius:inherit;background:var(--peach)}.meter.over span{background:var(--flame)}.limit input{width:104px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#ffffff0d;text-align:right;font-variant-numeric:tabular-nums}.day{margin:16px 8px 4px;color:var(--muted);font-size:13px;font-weight:650}.day:first-child{margin-top:4px}.filters{display:flex;gap:8px;margin:4px 0 8px}.filters button{border-radius:999px;border:1px solid rgba(255,255,255,.12);background:transparent;padding:8px 14px;font-size:14px;font-weight:650}.filters button.on{background:var(--peach);border-color:transparent;color:var(--bg)}.banner,.warn{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;justify-content:space-between;border-radius:18px;padding:12px 14px}.banner{background:#ffce551f;border:1px solid rgba(255,206,85,.3)}.warn{background:#f646681f;border:1px solid rgba(246,70,104,.35)}.banner p,.warn p{margin:0;flex:1 1 220px;font-size:14px}.banner-actions{display:flex;gap:8px}.mini{border-radius:999px;border:1px solid rgba(255,255,255,.16);background:transparent;padding:8px 12px;font-size:13px;font-weight:650}.empty{text-align:center;padding:12px 8px 8px}.empty-mark{display:flex;justify-content:center;margin:8px 0 18px}.empty-mark i{width:64px;height:64px;margin-left:-16px}.empty-mark i:first-child{margin-left:0;background:var(--slate)}.empty-mark i:nth-child(2){background:var(--wine)}.empty-mark i:nth-child(3){background:var(--flame)}.empty-mark i:nth-child(4){background:var(--peach)}.empty h2{margin:0;font-size:22px;letter-spacing:-.03em}.empty p{margin:8px auto 16px;max-width:280px;color:var(--muted)}.empty .primary,.empty .ghost{max-width:280px;margin-left:auto;margin-right:auto}.err-list{margin:0 0 8px;padding-left:18px;color:var(--flame);font-size:14px}.err-list li{margin:4px 0}.file-block{margin-top:22px}.file-block .lede{margin-bottom:4px}.file-block .hint{margin-bottom:8px}.settings-tabs{flex-wrap:wrap;margin:0 0 14px}.settings-tabs button{padding:6px 10px}.settings-panel .file-block:first-child{margin-top:4px}.settings-panel>.ghost,.settings-panel>.danger{width:100%;margin-top:12px}#sheet-settings.sheet-settings{max-width:min(520px,calc(100vw - 24px))}.slip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.slip-row .ghost{margin-top:0}.slip-preview{margin-top:14px;border-radius:14px;overflow:hidden;background:var(--panel);border:1px solid color-mix(in srgb,var(--line) 80%,transparent)}.slip-preview img{display:block;width:100%;max-height:280px;object-fit:contain;background:#111827}.slip-preview a{display:block;padding:12px 14px;color:var(--ink);text-decoration:none;font-weight:600}.stmt{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:12px 0;border-top:1px solid var(--line)}.stmt input{margin-top:4px}.stmt-copy{min-width:0}.stmt-top,.stmt-line{display:flex;justify-content:space-between;gap:10px}.stmt-top b{font-variant-numeric:tabular-nums}.stmt select{width:100%;margin-top:8px;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:#ffffff0d}#gate{min-height:100dvh;display:grid;place-items:center;padding:24px}.auth-card{width:min(440px,100%);background:#ffffff0a;border-radius:28px;padding:28px 22px 22px}.auth-card .brand{font-size:28px}.auth-card .switch{margin-top:4px}body.booting #gate,body.booting #app,body.guest #app,body.guest #backdrop,body.guest .sheet,body.app #gate{display:none}.lede{margin:0 0 16px;color:var(--muted);font-size:15px}.summary-line{margin:0 0 8px;font-weight:650}.summary-line.over{color:var(--flame)}.budget-plan{margin:0 0 14px}.budget-plan .lede{margin-bottom:10px}.budget-plan .warn{margin-top:10px}.budget-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}.budget-card{display:flex;flex-direction:column;gap:8px;min-height:128px;padding:14px;border-radius:18px;border:1px solid color-mix(in srgb,var(--group) 35%,rgba(255,255,255,.08));background:linear-gradient(160deg,color-mix(in srgb,var(--group) 18%,transparent),transparent 55%),#ffffff0a;color:inherit;text-align:left;cursor:pointer}.budget-card:hover,.budget-card:focus-visible{border-color:color-mix(in srgb,var(--group) 70%,white);background:linear-gradient(160deg,color-mix(in srgb,var(--group) 26%,transparent),transparent 60%),#ffffff0f}.budget-card-icons{display:grid;grid-template-columns:repeat(2,36px);gap:8px;min-height:80px;align-content:start}.budget-card-icons .bubble{width:36px;height:36px}.budget-card-more{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#ffffff1a;color:var(--muted);font-size:12px;font-weight:700}.budget-card-name{font-weight:700;font-size:14px}.budget-card-meta{color:var(--muted);font-size:12px;font-weight:650}.budget-section{margin-top:8px}.budget-section-title{display:flex;align-items:center;gap:8px;margin-top:18px}.budget-section-title i{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.budget-group-open{margin-top:4px}@media(max-width:420px){.budget-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.tabbar{position:fixed;z-index:10;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;align-items:center;padding:6px 12px calc(8px + env(safe-area-inset-bottom));background:#243246f5;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;color:var(--muted);font-size:11px;font-weight:650;padding:6px 0}.tab[aria-current=page]{color:var(--peach)}.add-btn{width:52px;height:52px;margin-left:8px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--flame);color:#fff;box-shadow:0 10px 24px #f6466852}.add-btn svg{width:26px;height:26px}.add-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0a0e1694;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s}.backdrop.open{opacity:1;visibility:visible}.sheet{position:fixed;z-index:30;background:var(--bg-2);color:var(--ink);visibility:hidden;overflow:auto}.grabber{width:42px;height:4px;margin:4px auto 12px;border-radius:99px;background:#fff3}.sheet-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.sheet-bar h2{margin:0;font-size:22px;letter-spacing:-.03em}.switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:14px;border-radius:999px;background:#ffffff0d}.switch button{border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:650;padding:10px}.switch button[aria-selected=true]{background:var(--flame);color:#fff}.switch button[data-type=income][aria-selected=true]{background:var(--peach);color:var(--bg)}.amount{display:flex;align-items:baseline;gap:6px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.14)}.amount span{font-family:var(--serif);font-size:28px;color:var(--muted)}.amount input{width:100%;min-width:0;border:0;outline:none;background:transparent;color:inherit;padding:6px 0 10px;font-family:var(--serif);font-size:48px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;box-shadow:none;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.amount input::placeholder{color:#f4f1ea47}.amount input:focus{outline:none}.err{margin:6px 0 0;color:var(--flame);font-size:13px;font-weight:650}.add-form .amount-compact input{font-size:36px;padding:2px 0 6px}#sheet-goal .amount,#sheet-repeat .amount{margin-top:4px;margin-bottom:12px}#sheet-goal .amount input,#sheet-repeat .amount input{font-size:40px;padding:4px 0 8px}.add-form .field{margin-top:10px}.add-form .primary{margin-top:12px}.add-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cat-field{position:relative}.cat-search-wrap{display:grid;gap:8px}.cat-selected{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:8px 10px;border-radius:999px;background:color-mix(in srgb,var(--cat, var(--peach)) 22%,transparent);border:1px solid color-mix(in srgb,var(--cat, var(--peach)) 55%,transparent);font-size:13px;font-weight:650}.cat-selected .bubble{width:28px;height:28px}.cat-pins{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;min-height:0}.cat-pin{display:inline-flex;align-items:center;gap:6px;padding:7px 10px 7px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;font-size:12px;font-weight:650;color:inherit}.cat-pin .bubble{width:26px;height:26px}.cat-pin.on{border-color:var(--cat);background:color-mix(in srgb,var(--cat) 24%,transparent)}.cat-pin .pin-star,.cat-result .pin-star{border:0;background:transparent;color:var(--muted);font-size:14px;padding:0 2px;line-height:1}.cat-pin .pin-star.on,.cat-result .pin-star.on{color:var(--peach)}.cat-results{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 4px);max-height:min(320px,42vh);overflow:auto;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#1c2940;box-shadow:0 12px 30px #00000059}.cat-result{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:0;background:transparent;color:inherit;text-align:left;font:inherit;font-weight:650}.cat-result:hover,.cat-result:focus-visible{background:#ffce541f}.cat-result .bubble{width:28px;height:28px}.cat-result .meta{margin-left:auto;color:var(--muted);font-size:12px;font-weight:600}.cat-create{margin-top:8px;padding:10px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:#00000029}.cat-create select{width:100%;margin:6px 0 8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#ffffff0d;color:inherit;font:inherit}.cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 4px}.cat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border-radius:16px;border:1px solid transparent;background:#ffffff0a;font-size:12px;font-weight:650}.cat.on{border-color:var(--cat);background:color-mix(in srgb,var(--cat) 24%,transparent)}.field{display:block;margin-top:14px}@media(max-width:420px){.add-grid{grid-template-columns:1fr 1fr}}.field-label{display:block;margin-bottom:6px;color:var(--muted);font-size:13px;font-weight:650}.field input,.field select,.stack input,.stack select{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#ffffff0d;color:var(--ink);font-size:16px;outline:none;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.field input:hover,.field select:hover,.stack input:hover,.stack select:hover{background:#ffffff12;border-color:#ffffff29}.field input:focus,.field select:focus,.stack input:focus,.stack select:focus{border-color:#ffce558c;background:#ffffff12;box-shadow:0 0 0 3px #ffce5524}.field select,.stack select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:42px;cursor:pointer;background-color:#ffffff0d;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9D2DF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}.field select:hover,.stack select:hover{background-color:#ffffff12}.field select:focus,.stack select:focus{background-color:#ffffff12}.field select option,.stack select option{background:#2a3950;color:#f4f1ea}.primary,.ghost,.danger{width:100%;margin-top:12px;border-radius:999px;padding:14px 16px;font-weight:650}.primary{border:0;background:var(--flame);color:#fff}.primary.income{background:var(--peach);color:var(--bg)}.ghost{border:0;background:#ffffff0f;color:var(--ink)}.danger{border:1px solid rgba(246,70,104,.45);background:transparent;color:var(--flame)}.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pair .primary,.pair .ghost,.pair .danger{margin-top:16px}.detail-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}.detail-amount{margin:8px 0 4px;font-family:var(--serif);font-size:42px;letter-spacing:-.03em}.detail-amount.in{color:var(--peach)}.detail-amount.out{color:var(--flame)}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html.lock,html.lock body{overflow:hidden}@media(hover:hover){.tx:hover,.tab:hover{color:#fff}.tab[aria-current=page]:hover{color:var(--peach)}.tx:hover{background:#ffffff0a}}.add-btn:active,.primary:active{transform:scale(.98)}@media(max-width:899px){.sheet{left:0;right:0;bottom:0;max-height:92vh;max-height:92dvh;border-radius:24px 24px 0 0;padding:8px 18px calc(18px + env(safe-area-inset-bottom));transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1),visibility .28s}.sheet.open{visibility:visible;transform:translateY(0)}}@media(min-width:900px){.topbar-inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;column-gap:18px;padding:14px 28px;max-width:1096px}.brand,.settings-btn,.month-switch{order:0;margin:0;flex:none}.month-switch{width:auto;justify-content:flex-end}.tabbar{position:static;display:flex;width:max-content;justify-self:center;gap:2px;padding:6px;border:1px solid var(--line);border-radius:999px;background:#ffffff0a}.tab{flex-direction:row;gap:8px;padding:8px 14px;border-radius:999px;font-size:14px}.tab[aria-current=page]{background:#ffce5524}.add-btn{width:auto;height:42px;margin:0 0 0 4px;padding:0 14px 0 12px;display:flex;gap:6px;border-radius:999px;box-shadow:none}.add-btn svg{width:18px;height:18px}.add-label{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;font-size:14px;font-weight:650}main{padding:22px 28px 56px}.home{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);column-gap:36px;row-gap:22px;align-items:start;max-width:1040px;margin:0 auto}.span-2,.hero{grid-column:1 / -1}.latest-block{grid-column:1}.budgets-block{grid-column:2}.alerts{order:2;grid-column:1 / -1}.latest-block{order:3}.budgets-block{order:4}.stats-trio{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.35fr);align-items:stretch}.stats-trio .stat.goal{grid-column:auto}.stats-trio .stat{display:flex;flex-direction:column;justify-content:center;min-height:92px}.sheet-wide{width:min(620px,calc(100vw - 48px))}.grabber{display:none}.sheet{left:50%;top:50%;width:min(460px,calc(100vw - 48px));max-height:min(820px,calc(100vh - 48px));border-radius:24px;padding:22px;box-shadow:0 24px 80px #00000059;opacity:0;transform:translate(-50%,-48%) scale(.98);transition:opacity .2s ease,transform .2s ease,visibility .2s}.sheet.open{visibility:visible;opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
