:root{color-scheme:light;--bg: #f2f2ef;--card: #ffffff;--surface-2: #f0efea;--ink: #121210;--muted: #6b6a63;--line: #e8e7e1;--field-line: #d6d4cb;--pine: #2b7350;--pine-soft: #e3f0e8;--clay: #b6432b;--clay-soft: #fbece6;--clay-ink: #8a2e1b;--brass: #8f6418;--brass-soft: #f8efdc;--brass-ink: #6e4c10;--on-accent: #ffffff;--hover: rgba(18, 18, 16, .05);--hover-on-fill: rgba(255, 255, 255, .14);--page-fill: var(--card);--shadow-control: 0 0 0 1px rgba(18, 18, 16, .06), 0 1px 2px rgba(18, 18, 16, .08);--radius: 24px;--radius-md: 16px;--radius-sm: 12px;--radius-pill: 999px;--shadow-card: 0 0 0 1px rgba(18, 18, 16, .04), 0 1px 2px rgba(18, 18, 16, .04), 0 16px 32px -20px rgba(18, 18, 16, .16);--shadow-float: 0 0 0 1px rgba(18, 18, 16, .06), 0 18px 40px -16px rgba(18, 18, 16, .28);--nav-h: 64px;--dock-gap: 12px;--dock-bg: rgba(255, 255, 255, .78);--dock-active: var(--surface-2);--ease: cubic-bezier(.32, .72, 0, 1);--dur-fast: .16s;--dur: .28s;--dur-enter: .42s;--dur-fill: .7s;--z-sticky: 5;--z-nav: 10;--z-toast: 20;--font-head: "Geist", system-ui, sans-serif;--font-body: "Geist", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #09090b;--card: #121214;--surface-2: #1b1b1e;--ink: #f4f4f1;--muted: #9d9da3;--line: #1f1f23;--field-line: #3a3a40;--pine: #7ed3a4;--pine-soft: rgba(126, 211, 164, .1);--clay: #f08c78;--clay-soft: rgba(240, 140, 120, .1);--clay-ink: #f5b3a5;--brass: #e6bb6a;--brass-soft: rgba(230, 187, 106, .1);--brass-ink: #efcf95;--on-accent: #0b0b0c;--hover: rgba(255, 255, 255, .06);--hover-on-fill: rgba(0, 0, 0, .12);--page-fill: var(--surface-2);--shadow-control: 0 0 0 1px rgba(255, 255, 255, .06);--shadow-card: 0 0 0 5px rgba(255, 255, 255, .025), 0 0 0 6px rgba(255, 255, 255, .06), inset 0 1px 0 rgba(255, 255, 255, .06);--shadow-float: 0 0 0 1px rgba(255, 255, 255, .08), 0 20px 40px -12px rgba(0, 0, 0, .6);--dock-bg: rgba(28, 28, 31, .72);--dock-active: rgba(255, 255, 255, .1)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;accent-color:var(--pine)}html,body{margin:0;background:var(--bg);color:var(--ink)}body{min-height:100dvh;font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{position:relative;z-index:1}::selection{background:var(--pine-soft)}h1,h2,h3{font-family:var(--font-head);font-weight:600;margin:0;text-wrap:balance}h1{font-size:30px;letter-spacing:-.03em;line-height:1.1}h2{font-size:17px;letter-spacing:-.01em;line-height:1.3}h3{font-size:15px;line-height:1.35}p{margin:0;text-wrap:pretty}b,strong{font-weight:600}code{font-family:var(--font-mono);font-size:.88em;padding:1px 6px;border-radius:6px;background:var(--surface-2);overflow-wrap:anywhere}a{color:var(--ink);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--field-line)}@media(hover:hover){a:hover{text-decoration-color:currentColor}}:focus-visible{outline:2px solid var(--pine);outline-offset:3px}.eyebrow{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.hero-num{font-size:46px;font-weight:600;letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.hero-num .cur{font-size:26px;font-weight:500;letter-spacing:0;color:var(--muted)}.mono{font-family:var(--font-body);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-weight:500}.muted{color:var(--muted);font-size:13px}.big{font-size:26px;font-weight:600;letter-spacing:-.03em;line-height:1.15}.pine{color:var(--pine)}.clay{color:var(--clay)}.brass{color:var(--brass)}.status-ok{color:var(--pine)}.status-low{color:var(--brass)}.status-over{color:var(--clay)}@media(prefers-color-scheme:dark){body:before{content:"";position:fixed;inset:-20% -40% auto;height:520px;z-index:0;pointer-events:none;background:radial-gradient(closest-side,rgba(62,180,120,.18),transparent 70%)}}.page{max-width:720px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top,0px)) 16px calc(var(--nav-h) + 40px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.between{justify-content:space-between}.grid-gap{display:grid;gap:12px}.grid-gap:has(>.card+.card){gap:16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(min-width:640px){.grid3{grid-template-columns:repeat(6,1fr)}}.span-all{grid-column:1 / -1}.fields-top>.field{align-content:start}.scroll-x{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.center{min-height:100dvh;display:grid;place-items:center;padding:16px}.login{width:100%;max-width:360px}.login.card{padding:24px;gap:16px}.chartbox{height:220px}.chartbox.small{height:140px}.sparkline{height:56px}.back-link{min-height:44px;margin:-12px -8px;padding-inline:8px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:6px;justify-self:start;text-decoration:none}.back-link svg{font-size:16px}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;font:inherit;font-size:15px;font-weight:600;line-height:1.2;text-align:center;border:0;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--ink);cursor:pointer}a.btn{text-decoration:none}.btn.block{width:100%}.btn.small{min-height:36px;padding:6px 14px;font-size:13px}.btn.primary{background:var(--ink);color:var(--on-accent)}.btn.danger{background:var(--clay-soft);color:var(--clay-ink)}.btn:disabled{background:var(--surface-2);color:var(--muted);cursor:default}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{position:relative;min-height:40px;padding:8px 16px;font:inherit;font-size:14px;font-weight:500;line-height:1.2;border:0;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--ink);cursor:pointer}.chip.on{background:var(--ink);color:var(--bg)}.chip.pine.on{background:var(--pine);color:var(--on-accent)}.chip.clay.on{background:var(--clay);color:var(--on-accent)}.chip.brass.on{background:var(--brass);color:var(--on-accent)}.btn.small:after,.chip:after{content:"";position:absolute;top:-4px;right:0;bottom:-4px;left:0}.chip:after{top:-2px;right:0;bottom:-2px;left:0}@media(hover:hover){.btn:not(:disabled):hover,.chip:hover{box-shadow:inset 0 0 0 100px var(--hover)}.btn.primary:not(:disabled):hover,.chip.on:hover{box-shadow:inset 0 0 0 100px var(--hover-on-fill)}}.input{width:100%;min-height:46px;padding:11px 14px;font:inherit;font-size:16px;font-weight:400;line-height:1.3;border:0;border-radius:var(--radius-md);background:var(--surface-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--field-line)}.input::placeholder{color:var(--muted);opacity:1}.input:focus{outline:none;box-shadow:inset 0 0 0 1.5px var(--ink),0 0 0 4px var(--pine-soft)}.input:disabled{color:var(--muted)}.input.auto{width:auto;max-width:100%}.input.grow{flex:1}.input.amount{min-height:64px;padding:6px 12px;font-size:40px;font-weight:600;letter-spacing:-.03em;text-align:center;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";background:transparent;box-shadow:none}.input.amount:focus{box-shadow:0 0 0 4px var(--pine-soft)}textarea.input{min-height:88px;resize:vertical;line-height:1.45}select.input{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-left:10px;padding-right:26px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 15px) 55%,calc(100% - 10px) 55%;background-size:5px 5px;background-repeat:no-repeat}.rate-input{width:90px}select.input.month-select{min-height:44px;padding:8px 36px 8px 16px;border-radius:var(--radius-pill);font-weight:500;background-position:calc(100% - 21px) 55%,calc(100% - 16px) 55%}.card .card .btn:not(.primary):not(.danger),.card .card .btn:disabled,.card .card .chip:not(.on),.card .card .input:not(.amount){background-color:var(--nested-fill)}:is(.page,.page>.row,.journal-filters)>:is(.btn:not(.primary):not(.danger),.btn:disabled:not(.quiet),.input){background-color:var(--page-fill)}:is(.page,.page>.row,.journal-filters)>:is(.btn:not(.primary):not(.danger),.btn:disabled:not(.quiet),.input:not(:focus)){box-shadow:var(--shadow-control)}@media(hover:hover){:is(.page,.page>.row)>.btn:not(.primary):not(.danger):not(:disabled):hover{box-shadow:inset 0 0 0 100px var(--hover),var(--shadow-control)}}label.field{display:grid;gap:6px;font-size:13px;font-weight:500;color:var(--muted)}input[type=checkbox]{width:18px;height:18px;margin:0;flex:none;cursor:pointer}.card{min-width:0;padding:18px;display:grid;gap:12px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card .card{padding:14px;background:var(--surface-2);border-radius:var(--radius-md);box-shadow:none}.card .card{--nested-fill: var(--card)}@media(prefers-color-scheme:dark){.card .card{--nested-fill: rgba(255, 255, 255, .07)}}.card .card .tag{background:var(--nested-fill)}.card.current{box-shadow:0 0 0 1.5px var(--pine),var(--shadow-card)}.card.done{opacity:.7}.card.done .title{text-decoration:line-through}.card.archived{background:transparent;box-shadow:none;border:1.5px dashed var(--field-line);color:var(--muted)}.card.list{padding-top:6px;padding-bottom:6px}.list{display:grid}.list .item{min-width:0;padding:12px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.list .item:last-child{border-bottom:0}.tx-row,.acc-row,.menu-row{position:relative;isolation:isolate}.tx-row:before,.acc-row:before,.menu-row:before{content:"";position:absolute;top:4px;right:-10px;bottom:4px;left:-10px;z-index:-1;border-radius:var(--radius-sm);background:var(--hover);opacity:0}@media(hover:hover){.tx-row:hover:before,.acc-row:hover:before,.menu-row:hover:before{opacity:1}}.progress{height:6px;border-radius:var(--radius-pill);background:var(--surface-2);overflow:hidden}.progress>div{height:100%;border-radius:inherit;background:var(--pine)}.progress.clay>div{background:var(--clay)}.progress.brass>div{background:var(--brass)}.tag{display:inline-block;margin-left:6px;padding:2px 7px;vertical-align:1px;border-radius:6px;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:500;line-height:1.4;white-space:nowrap}table.plain{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}table.plain th,table.plain td{text-align:right;padding:8px 6px;border-bottom:1px solid var(--line);white-space:nowrap}table.plain th{color:var(--muted);font-size:12px;font-weight:500}table.plain tr:last-child td{border-bottom:0}table.plain th:first-child,table.plain td:first-child{text-align:left}table.plain td.wrap{white-space:normal;overflow-wrap:anywhere}.cell-note{display:block}tr.current td{background:var(--pine-soft)}.kpi{min-width:0;display:grid;gap:2px;align-content:start}.kpi .v{font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.3;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.empty{padding:24px 0;text-align:center;color:var(--muted);font-size:14px}.banner{padding:12px 14px;display:flex;align-items:center;gap:10px;border-radius:var(--radius-md);background:var(--brass-soft);color:var(--brass-ink);font-size:14px;line-height:1.4}.banner:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--brass)}.banner.clay{background:var(--clay-soft);color:var(--clay-ink)}.banner.clay:before{background:var(--clay)}.banner>*{min-width:0}.banner>:last-child:not(:first-child){margin-left:auto;flex-shrink:0}.banner .row{flex-wrap:nowrap;flex-shrink:0;gap:8px}.banner .btn:not(.primary){background:var(--card)}a.banner{text-decoration:none}@media(hover:hover){a.banner:hover{box-shadow:inset 0 0 0 100px var(--hover)}}.inline-confirm{padding:12px 14px;display:grid;gap:10px;border-radius:var(--radius-md);background:var(--brass-soft)}.inline-confirm .btn:not(.primary):not(.danger){background:var(--card)}.toasts{position:fixed;left:16px;right:16px;z-index:var(--z-toast);top:calc(12px + env(safe-area-inset-top,0px));display:grid;justify-items:center;gap:8px;pointer-events:none}.toast{max-width:440px;min-height:44px;padding:12px 20px;border-radius:22px;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-float);font-size:14px;font-weight:500;line-height:1.4;text-align:center}.toast.error{background:var(--clay);color:var(--on-accent)}.section-toggle{width:100%;min-height:44px;padding:0;display:flex;justify-content:space-between;align-items:center;gap:10px;font:inherit;color:inherit;text-align:left;background:none;border:0;border-radius:var(--radius-sm);cursor:pointer}.chevron{flex:none;display:inline-grid;place-items:center;color:var(--muted);font-size:22px;line-height:1}.section-toggle .chevron{font-size:20px}.section-toggle[aria-expanded=true] .chevron{transform:rotate(90deg)}@media(hover:hover){.section-toggle:hover .chevron{color:var(--ink)}}.inbox-section{display:grid;gap:12px}.menu-row{text-decoration:none;color:inherit}.menu-text{min-width:0;display:grid;gap:2px}.menu-row .chevron{font-size:20px}.ready-bar{position:sticky;z-index:var(--z-sticky);bottom:calc(var(--nav-h) + var(--dock-gap) + 10px + env(safe-area-inset-bottom,0px));padding:6px;border-radius:var(--radius-pill);background:var(--dock-bg);box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4)}.acc-row{text-decoration:none;color:inherit}.acc-amount,.tx-amount{flex:none;max-width:62%;display:grid;gap:2px;justify-items:end;text-align:right}.acc-debt-label{color:var(--muted);font-weight:400}.tx-row{width:100%;font:inherit;color:inherit;text-align:left;background:none;border:0;cursor:pointer}.tx-text{min-width:0;display:grid;gap:2px}.day-head{font-size:12px;font-weight:600;color:var(--muted)}.acc-group{gap:2px;padding-bottom:6px}.acc-archive{padding-top:6px}.acc-archive .section-toggle{font-weight:500}.banner-close.btn.small{width:36px;padding:0}.banner-close.btn.small:after{top:-4px;right:-4px;bottom:-4px;left:-4px}.banner-close svg{font-size:18px}.networth{gap:16px}.networth-sum{display:grid;gap:8px;justify-items:start}.networth-trend{display:grid;gap:6px}.networth-parts{padding-top:16px;border-top:1px solid var(--line);display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px}.networth-parts .muted{font-size:12px}.networth-parts .v{font-size:15px;overflow-wrap:anywhere}.networth-free{display:grid;gap:2px}.networth>.networth-free:not(:first-child){padding-top:16px;border-top:1px solid var(--line)}.networth-free .mono{font-size:17px;font-weight:600}.journal{display:grid;gap:12px}.journal-filters .input{min-height:44px;padding-left:16px;padding-right:32px;border-radius:var(--radius-pill);font-size:14px;font-weight:500}.journal-filters select.input{background-position:calc(100% - 19px) 55%,calc(100% - 14px) 55%}.journal-card{padding-top:6px;padding-bottom:6px;gap:0}.journal-day .day-head{padding:18px 0 2px}.journal-day:first-child .day-head{padding-top:12px}.tx-row[aria-expanded=true]{border-bottom-color:transparent}.tx-row[aria-expanded=true]:before{opacity:1}.tx-edit,.reconcile-form{padding:14px;display:grid;gap:12px;border-radius:var(--radius-md);background:var(--surface-2)}.tx-edit{margin-bottom:12px}.tx-edit-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.tx-edit-actions .danger{margin-left:auto}:is(.tx-edit,.reconcile-form) .input{background-color:var(--card)}:is(.tx-edit,.reconcile-form) :is(.btn:not(.primary):not(.danger),.btn:disabled,.chip:not(.on)){background:var(--card)}.account-head{display:grid;gap:6px}.account-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.account-title h1{min-width:0;overflow-wrap:anywhere}.account-title .tag{margin-left:0}.acc-balance{display:grid;gap:6px;justify-items:start}.inbox-totals{gap:14px}.inbox-totals-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.inbox-totals-row+.inbox-totals-row{padding-top:14px;border-top:1px solid var(--line)}.inbox-totals .muted{font-size:12px}.inbox-totals .v{font-size:15px;overflow-wrap:anywhere}.inbox-day{display:grid;gap:16px}.inbox-day>.day-head{padding:4px 4px 0;margin-bottom:-6px}.inbox-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.inbox-title{min-width:0;display:grid;gap:2px}.inbox-title>:first-child{font-weight:500;overflow-wrap:anywhere}.inbox-amount{flex:none;max-width:55%;text-align:right;font-size:20px;font-weight:600;letter-spacing:-.02em;line-height:1.25}.btn.inbox-suggest{width:100%;justify-content:flex-start;text-align:left;border-radius:var(--radius-md);font-weight:500}.btn.inbox-suggest:not(:disabled){background:var(--pine-soft);color:var(--pine)}.inbox-offer{padding:12px 14px;display:grid;gap:10px;border-radius:var(--radius-md);background:var(--surface-2)}.inbox-offer>.btn{justify-self:start}.inbox-offer :is(.btn:not(.primary),.btn:disabled,.chip:not(.on)){background:var(--card)}.inbox-remember{min-height:44px;cursor:pointer}.ready-bar .btn svg{font-size:18px}.statement-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.statement-text{min-width:0;display:grid;gap:2px}.statement-link>.btn{justify-self:start}.card .statement-link .input{background-color:var(--card)}.card .statement-result .btn:not(.primary),.card .statement-link .btn:disabled{background:var(--card)}.goal-card{gap:14px}.goal-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.goal-top>.btn{flex:none}.goal-heading{min-width:0;display:grid;gap:4px}.goal-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.goal-kicker .tag{margin-left:0}.goal-kicker .eyebrow.pine{font-weight:600}.goal-title{font-size:20px;letter-spacing:-.02em;line-height:1.2;overflow-wrap:anywhere}.goal-amounts{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px}.goal-amounts>:first-child{font-weight:600}.goal-notes{display:grid;gap:4px}.goal-notes:empty{display:none}.goal-account svg{margin-right:4px;font-size:14px;vertical-align:-2px}.goal-scale{display:grid;gap:6px}.goal-scale-bar{position:relative;height:6px;border-radius:var(--radius-pill);background:var(--surface-2)}.goal-scale-fill{height:100%;border-radius:inherit;background:var(--pine)}.goal-scale-bar.clay .goal-scale-fill{background:var(--clay)}.goal-scale-bar.brass .goal-scale-fill{background:var(--brass)}.goal-scale-tick{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:1px;background:var(--ink);opacity:.45}.goal-scale-plan{position:absolute;top:-6px;bottom:-6px;margin-left:-1px;border-left:2px dashed var(--brass)}.goal-scale-lane{position:relative;height:18px}.goal-scale-label{position:absolute;top:0;font-size:11px;line-height:18px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goal-scale-label.reached{color:var(--ink);font-weight:600}.milestones{grid-column:1 / -1;display:grid;gap:8px}.milestones>.btn{justify-self:start}.milestone-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:8px;align-items:center}.milestone-row>.clay{grid-column:1 / -1}.budget-line{padding:12px 0;display:grid;gap:8px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.budget-line:last-child{border-bottom:0}.budget-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.budget-head>span+span{white-space:nowrap}button.budget-head{position:relative;width:100%;padding:0;align-items:center;font:inherit;color:inherit;text-align:left;background:none;border:0;border-radius:8px;cursor:pointer}button.budget-head:after{content:"";position:absolute;top:-12px;right:0;bottom:-11px;left:0}button.budget-head>:first-child{flex:1;min-width:0}button.budget-head .chevron{font-size:18px}button.budget-head[aria-expanded=true] .chevron{transform:rotate(90deg)}@media(hover:hover){button.budget-head:hover .chevron{color:var(--ink)}}.budget-bar,.budget-hint{display:grid;gap:6px}.limit-editor{padding:12px;display:grid;gap:10px;border-radius:var(--radius-md);background:var(--surface-2)}.limit-editor .input{background-color:var(--card)}.limit-fields{display:grid;grid-template-columns:1fr 88px;gap:8px}.plan-header{display:grid;gap:6px}.plan-strategy{margin-top:-4px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;column-gap:16px}.plan-links{display:flex;gap:16px}.plan-link{min-height:44px;justify-self:start;display:inline-flex;align-items:center;font-size:13px;font-weight:500;color:var(--muted);text-decoration:none}@media(hover:hover){.plan-link:hover{color:var(--ink)}}.plan-disclaimer{padding:0 8px;font-size:12px;text-align:center}.month-hero{display:grid;gap:12px}.month-free{display:grid;gap:8px}.month-free .hero-num{overflow-wrap:anywhere}.month-living{display:grid;gap:2px;font-size:13px;color:var(--muted)}.month-living>:first-child{font-size:14px}.month-living .mono{font-weight:600}.month-kpis{padding-top:14px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.month-kpis .muted{font-size:12px}.month-kpis .kpi .v{font-size:15px;overflow-wrap:anywhere}.month-notes{display:grid;gap:2px;font-size:13px;color:var(--muted)}.plan-alert svg{flex:none;font-size:18px;opacity:.7}.pay-list>.pay-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px}.pay-row.done{color:var(--muted)}.pay-name{grid-area:1 / 1;overflow-wrap:anywhere}.pay-date{grid-area:2 / 1}.pay-amount{grid-area:1 / 2;justify-self:end;font-weight:600;white-space:nowrap}.pay-actions{grid-area:2 / 2;justify-self:end;display:flex;align-items:center;gap:4px}@media(min-width:480px){.pay-list{grid-template-columns:minmax(0,1fr) auto auto;column-gap:12px}.pay-list>.pay-row{grid-column:1 / -1;grid-template-columns:subgrid;gap:2px 12px}.pay-amount{grid-area:1 / 2 / 3 / 3}.pay-actions{grid-area:1 / 3 / 3 / 4;justify-self:start}}.pay-ignore{position:relative;flex:none;width:36px;height:36px;padding:0;display:inline-grid;place-items:center;font-size:18px;color:var(--muted);background:none;border:0;border-radius:50%;cursor:pointer}.pay-ignore:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}.pay-ignore:disabled{color:var(--field-line);cursor:default}.pay-ignore:not(:disabled):active{transform:scale(.94)}@media(hover:hover){.pay-ignore:not(:disabled):hover{color:var(--ink);background:var(--surface-2)}}.pay-more{grid-column:1 / -1;min-height:44px;padding:0;display:flex;align-items:center;justify-content:space-between;gap:10px;font:inherit;font-size:13px;font-weight:500;color:var(--muted);text-align:left;background:none;border:0;cursor:pointer}.pay-more[aria-expanded=true]{border-bottom:1px solid var(--line)}.pay-more .chevron{font-size:18px}.pay-more[aria-expanded=true] .chevron{transform:rotate(90deg)}.pay-more:active{transform:scale(.99)}@media(hover:hover){.pay-more:hover,.pay-more:hover .chevron{color:var(--ink)}}.month-scroll{margin-inline:-18px;padding-inline:18px}.month-events{display:grid;gap:2px}.chip-hint{font-weight:400;color:var(--muted)}.chip.on .chip-hint{color:inherit;opacity:.7}.chip.pine.on .chip-hint,.chip.clay.on .chip-hint,.chip.brass.on .chip-hint{opacity:1}.chips.segmented{--seg-thumb: var(--card);--seg-shadow: 0 0 0 1px rgba(18, 18, 16, .04), 0 1px 3px rgba(18, 18, 16, .1);flex-wrap:nowrap;gap:2px;padding:4px;border-radius:var(--radius-pill);background:var(--surface-2)}.chips.segmented .chip{flex:1 1 auto;min-width:0;padding-inline:8px;background:transparent;color:var(--muted);white-space:nowrap}.chips.segmented .chip.on{background:var(--seg-thumb);color:var(--ink);box-shadow:var(--seg-shadow)}.chips.segmented .chip.pine.on{color:var(--pine)}.chips.segmented .chip.clay.on{color:var(--clay)}.chips.segmented .chip.brass.on{color:var(--brass)}@media(max-width:380px){.chips.segmented .chip{padding-inline:4px;font-size:13px}}@media(prefers-color-scheme:dark){.chips.segmented{--seg-thumb: rgba(255, 255, 255, .1);--seg-shadow: inset 0 1px 0 rgba(255, 255, 255, .06)}}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding-block:6px;margin-block:-6px;padding-inline-end:28px;scroll-padding-inline-end:28px;-webkit-mask-image:linear-gradient(to left,transparent,black 28px);mask-image:linear-gradient(to left,transparent,black 28px)}.chips.scroll::-webkit-scrollbar{display:none}.chips.scroll .chip{flex:none;scroll-snap-align:start}.tx-form{display:flex;flex-direction:column;gap:16px}.tx-group{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.tx-label{font-size:13px;font-weight:500;color:var(--muted)}.tx-form .chips.scroll{margin-inline:-18px;padding-inline:18px 32px;scroll-padding-inline:18px 32px;-webkit-mask-image:linear-gradient(to right,transparent,black 14px,black calc(100% - 28px),transparent);mask-image:linear-gradient(to right,transparent,black 14px,black calc(100% - 28px),transparent)}.amount-block{display:grid;gap:2px;justify-items:center;text-align:center}.tx-form .input.amount{caret-color:var(--pine);background:linear-gradient(var(--field-line),var(--field-line)) center bottom / 48px 2px no-repeat}.tx-form .input.amount:focus{box-shadow:none;background-image:linear-gradient(var(--pine),var(--pine));background-size:96px 2px}.input.amount.hero{min-height:76px;padding:4px 12px 14px;font-size:46px;letter-spacing:-.045em;line-height:1.1}.budget-hint{padding:10px 14px;gap:2px;border-radius:var(--radius-md);background:var(--surface-2);font-size:13px}.budget-hint.over{background:var(--clay-soft)}.budget-hint.over .clay{color:var(--clay-ink)}.chip.ai-suggest{align-self:flex-start;background:var(--brass-soft);color:var(--brass-ink)}.tx-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.tx-meta .input{min-width:0}.tx-submit{margin-top:4px}.quick-form{position:relative;display:flex}.quick-form .input{padding-right:116px;border-radius:var(--radius-pill);text-overflow:ellipsis}.quick-form .btn{position:absolute;top:5px;right:5px;bottom:5px}.draft-head{display:grid;gap:4px}.draft-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.draft-actions>:first-child{grid-column:1 / -1}.draft-preview .btn:not(.primary),.draft-preview .btn:disabled{background:var(--card)}.living-left{gap:6px}.living-head{display:grid;gap:2px;margin-bottom:4px}.living-value{font-size:30px;font-weight:600;letter-spacing:-.035em;line-height:1.15}.recent-amount{flex:none;white-space:nowrap}.stats-kpis{gap:18px 12px;grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:640px){.stats-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}.stats-kpis .kpi>.muted{font-size:12px}.stats-kpi-note{padding-top:14px;border-top:1px solid var(--line)}.cat-bars{margin:0;padding:0;list-style:none;display:grid;gap:14px}.cat-bar{display:grid;gap:6px}.cat-bar-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.cat-bar-name{min-width:0;overflow-wrap:anywhere}.cat-bar-head>.mono{flex:none}.cat-bar-row{display:grid;grid-template-columns:minmax(0,1fr) 40px;align-items:center;gap:10px}.cat-bar-fill{height:8px;min-width:2px;border-radius:var(--radius-pill);background:var(--pine);transform-origin:left center;animation:grow-x var(--dur-fill) var(--ease) backwards}.cat-bar-share{font-size:12px;text-align:right}.delta-table .cell-note{font-size:12px;font-weight:400}.chart-legend-text{color:var(--muted)}.ai-review-text{white-space:pre-wrap;line-height:1.55}.set-intro{max-width:62ch;font-size:14px;line-height:1.5;color:var(--muted);text-wrap:pretty}.set-label{font-size:13px;font-weight:500;color:var(--muted)}.set-list{display:grid}.set-list:empty{display:none}.set-row{min-width:0;padding:14px 0;display:grid;gap:10px}.set-row+.set-row{border-top:1px solid var(--line)}.set-list>.set-row:first-child{padding-top:0}.set-list>.set-row:last-child{padding-bottom:0}.set-row.archived .set-name,.set-row.archived .mono{color:var(--muted)}.set-row.done{opacity:.7}.set-row.done .title{text-decoration:line-through}.set-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}.set-head>.eyebrow{flex-basis:100%;margin-bottom:-6px}.set-main{flex:1 1 120px;min-width:0;display:grid;gap:2px}.set-name{font-weight:600;overflow-wrap:anywhere}.set-main>.set-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px}.set-main>.set-name>.tag{margin-left:0}.set-actions{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.set-amount{display:flex;align-items:center;justify-content:space-between;gap:12px}.set-sub{display:grid;gap:10px;padding-left:12px;border-left:1px solid var(--line)}.set-add{justify-self:start}.set-grow{flex:1}.set-bottom{align-items:flex-end}.set-end{margin-left:auto}.set-end-row{display:flex;justify-content:flex-end}.set-danger-zone{padding-top:12px;border-top:1px solid var(--line)}.set-link{min-height:44px;margin:-12px -8px;padding-inline:8px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:2px;font-size:14px;font-weight:500;white-space:nowrap}.set-link svg{flex:none;font-size:16px;color:var(--muted)}.btn.icon-sq{width:36px;padding:0;flex:none;font-size:18px}.btn.icon-sq:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}.reorder{display:inline-flex;gap:8px}.btn.danger.quiet{background:transparent;color:var(--clay)}.btn.danger.quiet:disabled{background:transparent;color:var(--muted)}.check-row{min-height:44px;display:flex;align-items:center;gap:10px;cursor:pointer}.field-half{flex:1 1 160px}.amount-pair{display:flex;gap:6px}.amount-pair>.input:first-child{min-width:0}.cur-select{width:72px;flex:none}.login-shell{width:100%;max-width:360px;display:grid;gap:28px}.login-brand{display:grid;justify-items:center;gap:8px;text-align:center}.wordmark{font-size:48px;font-weight:600;letter-spacing:-.04em;line-height:1}.login-brand p{max-width:30ch;font-size:14px}.nav{position:fixed;z-index:var(--z-nav);left:0;right:0;margin:0 auto;bottom:calc(var(--dock-gap) + env(safe-area-inset-bottom,0px));width:min(100% - 24px,440px);height:var(--nav-h);padding:4px;display:grid;grid-template-columns:repeat(5,minmax(max-content,1fr));gap:2px;border-radius:var(--radius-pill);background:var(--dock-bg);box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4)}.nav a{position:relative;padding:0 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:var(--radius-pill);color:var(--muted);text-decoration:none;font-size:10.5px;font-weight:500;line-height:1.2;white-space:nowrap}.nav a.active{background:var(--dock-active);color:var(--ink)}.nav a span.icon{position:relative;display:grid;place-items:center;font-size:22px}.nav a.fab{color:var(--ink)}.nav a.fab span.icon{width:40px;height:40px;margin-top:-18px;border-radius:50%;background:var(--pine);color:var(--on-accent)}@media(hover:hover){.nav a:not(.active):hover{color:var(--ink)}}@media(max-width:380px){.nav a{font-size:9.5px;letter-spacing:-.01em}}.badge{position:absolute;top:-5px;left:calc(100% - 7px);min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-pill);background:var(--clay);color:var(--on-accent);box-shadow:0 0 0 2px var(--card);font-size:10px;font-weight:600;line-height:16px;text-align:center;font-variant-numeric:tabular-nums}a,button,.btn,.chip,.input,.nav a,.chevron,.tx-row:before,.acc-row:before,.menu-row:before{transition-property:background-color,color,box-shadow,transform,opacity,text-decoration-color;transition-duration:var(--dur);transition-timing-function:var(--ease)}.btn,.chip,.input{transition-duration:var(--dur-fast)}.btn:not(:disabled):active,.chip:active,.nav a:active{transform:scale(.97)}.tx-row:active,.acc-row:active,.menu-row:active,.section-toggle:active,button.budget-head:active,a.banner:active{transform:scale(.99)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes grow-x{0%{transform:scaleX(0)}}@keyframes drop{0%{opacity:0;transform:translateY(-12px)}}.page>*{animation:rise var(--dur-enter) var(--ease) backwards}.page>:nth-child(2){animation-delay:40ms}.page>:nth-child(3){animation-delay:80ms}.page>:nth-child(4){animation-delay:.12s}.page>:nth-child(5){animation-delay:.16s}.page>:nth-child(6){animation-delay:.2s}.page>:nth-child(n+7){animation-delay:.24s}.progress>div,.goal-scale-fill{transform-origin:left center;animation:grow-x var(--dur-fill) var(--ease) backwards}.toast{animation:drop var(--dur) var(--ease) backwards}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
