:root{--paper: #f3eee4;--card: #fffdf8;--ink: #1c1915;--muted: #4e4942;--line: rgba(28, 25, 20, .12);--forest: #1b3a2f;--forest-2: #234838;--cream: #f7f3ea;--copper: #9a4f28;--good: #0e6a40;--watch: #8a5a10;--alert: #8d2c28;--info: #1e4460;--shadow: 0 1px 0 rgba(255, 255, 255, .72) inset, 0 1px 2px rgba(48, 32, 16, .04), 0 16px 40px rgba(48, 32, 16, .05);--sans: "Outfit", "Avenir Next", "Segoe UI", sans-serif;--serif: "Fraunces", "Iowan Old Style", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--ease-out: cubic-bezier(.23, 1, .32, 1);color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.5;accent-color:var(--forest);color-scheme:light}*{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none}body{margin:0;min-height:100dvh;background:radial-gradient(1000px 420px at 0% -8%,rgba(154,79,40,.09),transparent 55%),radial-gradient(860px 380px at 100% 0%,rgba(27,58,47,.07),transparent 52%),var(--paper)}button,input,select{font:inherit;color:inherit}button,a,.file-btn,[role=button]{touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}button{cursor:pointer}h1,h2,p{margin:0;overflow-wrap:break-word}h1,h2,.lede{text-wrap:balance}p{text-wrap:pretty}ul{margin:0;padding:0;list-style:none}::selection{background:#1b3a2f29}::placeholder{color:#5c564c}:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.topbar :focus-visible{outline-color:#e7c4a4}.skip{position:absolute;left:12px;top:-48px;background:var(--card);color:var(--ink);padding:8px 12px;border-radius:8px;z-index:20}.skip:focus{top:calc(12px + env(safe-area-inset-top,0px))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.topbar{background:var(--forest);color:var(--cream);padding:calc(16px + env(safe-area-inset-top,0px)) calc(28px + env(safe-area-inset-right,0px)) 16px calc(28px + env(safe-area-inset-left,0px));box-shadow:inset 0 -1px #e7c4a459}.topbar-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px}.brand-lockup{display:flex;align-items:center;gap:14px;min-width:0;flex:1 1 280px}.brand-lockup p{color:#f7f3eac7;max-width:48ch;margin-top:3px;font-size:14.5px;line-height:1.4}h1{font-family:var(--serif);font-weight:560;font-size:clamp(26px,3vw,34px);letter-spacing:-.03em;line-height:1}h1 em{font-style:italic;font-weight:520;color:#e7c4a4}.mark{width:36px;height:36px;flex:none;display:block}.toolbar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:10px calc(28px + env(safe-area-inset-right,0px)) 10px calc(28px + env(safe-area-inset-left,0px));background:#f3eee4e6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.month-switch{display:flex;align-items:center;gap:6px}.month-switch h2{font-family:var(--serif);font-size:22px;font-weight:560;letter-spacing:-.03em;min-width:15ch;text-align:center}.tabs{display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button,.chips button,.kind-toggle button{border:0;background:transparent;color:var(--muted);border-radius:999px;padding:8px 14px;min-height:40px;transition:transform .14s var(--ease-out),background-color .16s ease,color .16s ease,border-color .16s ease}.tabs button[aria-current=page]{background:var(--forest);color:var(--cream)}.wrap{width:min(1080px,calc(100% - 40px));margin:0 auto;padding:22px 0 56px}.sample-note{display:flex;align-items:flex-start;gap:8px;width:fit-content;max-width:100%;margin:0 0 16px;padding:8px 12px;border-radius:12px;background:#9a4f281a;color:#6a3d1d;font-size:14px;line-height:1.4}.sample-note:before{content:"";width:7px;height:7px;margin-top:.42em;border-radius:99px;background:var(--copper);flex:none}.muted,.footnote,.hint{color:var(--muted)}.footnote{font-size:14px}.stack{display:grid;gap:18px}.stack>*,.split>*,.insight,.card{min-width:0}.split{display:grid;grid-template-columns:1.35fr .9fr;gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px 20px 20px;box-shadow:var(--shadow)}.card h2,.insight h2{font-family:var(--serif);font-size:22px;font-weight:560;letter-spacing:-.03em;line-height:1.15}.kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--muted)}.figure{font-family:var(--serif);font-optical-sizing:auto;font-weight:620;font-size:clamp(48px,6vw,72px);letter-spacing:-.045em;line-height:.92;margin:4px 0 8px;font-variant-numeric:tabular-nums}.lede{max-width:62ch;color:var(--muted)}.lede.tight{margin:2px 0 16px;max-width:68ch}.hero{display:grid;gap:16px}.hero-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.hero-stats div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:0;padding:10px 12px;border-radius:14px;background:#1b3a2f0b}.hero-stats dt{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.hero-stats dd{margin:0;font-family:var(--serif);font-size:clamp(20px,2vw,26px);font-weight:560;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}.good{color:var(--good)}.bad{color:var(--alert)}.bars{display:grid;gap:2px}.bar-btn,.recent-btn{width:100%;display:grid;gap:8px 12px;align-items:center;text-align:left;background:transparent;border:0;border-radius:12px;transition:background-color .16s ease,color .16s ease}.bar-btn{grid-template-columns:9rem minmax(0,1fr) auto;padding:8px;margin:0 -8px;width:calc(100% + 16px)}.bar-label,.budget-name{display:flex;align-items:center;gap:8px;min-width:0}.bar-label{font-weight:600}.swatch{width:9px;height:9px;border-radius:99px;flex:none}.track{display:block;height:10px;border-radius:99px;background:#1c191414;overflow:hidden}.fill{display:block;width:100%;height:100%;border-radius:inherit;transform-origin:left center;background:var(--forest);transition:transform .2s var(--ease-out)}.bar-amt,.amt,.col-amt{font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:13px}.bar-amt{min-width:6.75rem;text-align:right}.track.ok .fill{background:var(--forest)}.track.warm .fill{background:var(--copper)}.track.over .fill{background:var(--alert)}.pace-list{display:grid;gap:14px;margin-top:4px}.pace-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;font-variant-numeric:tabular-nums}.section-head,.sheet-head,.sheet-actions,.footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-head{margin-bottom:8px}.section-head h2{min-width:0}.recent{display:grid;margin:0 -8px}.recent-btn{grid-template-columns:4.6rem minmax(0,1fr) auto;padding:10px 8px;border-radius:12px}.recent-btn+.recent-btn{box-shadow:inset 0 1px 0 var(--line)}.recent-btn span,.plain li span{display:grid;min-width:0}.recent-btn strong,.plain strong,.merchant-btn{font-weight:600}.merchant-btn{background:none;border:0;padding:0;text-align:left;border-radius:6px;transition:color .16s ease}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}.chips button{border:1px solid var(--line);background:#ffffff8c}.chips button[aria-pressed=true],.kind-toggle button[aria-pressed=true]{background:var(--forest);color:var(--cream);border-color:var(--forest)}.search{min-width:0;flex:1 1 220px;max-width:280px}.search input,.sheet-card input,.sheet-card select,.ask input,.money-input input{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;font-size:16px;line-height:1.3}.tx-list{display:grid}.tx{display:grid;grid-template-columns:4.6rem minmax(0,1fr) auto;grid-template-areas:"date merchant amt" "cat cat cat";gap:4px 12px;align-items:start;padding:12px 0;border-top:1px solid var(--line)}.tx time{grid-area:date;color:var(--muted);font-size:14px}.tx-main{grid-area:merchant;min-width:0}.tx .cat-select{grid-area:cat}.tx .amt{grid-area:amt;justify-self:end;padding-top:2px}.cat-select select{width:100%;border-radius:12px;border:1px solid var(--line);background:#fff;padding:8px 10px;font-size:16px;min-height:44px}.budget-list{display:grid;gap:4px}.budget-row{display:grid;grid-template-columns:1fr;gap:8px;padding:12px 0;border-top:1px solid var(--line)}.money-input{display:flex;align-items:center;gap:6px;max-width:148px}.money-input input{font-variant-numeric:tabular-nums}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.insight-grid .insight:last-child:nth-child(odd){grid-column:1 / -1}.insight{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:16px 18px 18px;box-shadow:inset 3px 0 0 var(--info),var(--shadow);animation:settle .2s var(--ease-out) both}.insight:nth-child(2){animation-delay:35ms}.insight:nth-child(3){animation-delay:70ms}.insight:nth-child(n+4){animation-delay:105ms}.insight h2{font-size:22px;margin:4px 0 8px}.tone-good{box-shadow:inset 3px 0 0 var(--good),var(--shadow)}.tone-watch{box-shadow:inset 3px 0 0 var(--watch),var(--shadow)}.tone-alert{box-shadow:inset 3px 0 0 var(--alert),var(--shadow)}.tone-info{box-shadow:inset 3px 0 0 var(--info),var(--shadow)}.tone-good .kicker{color:var(--good)}.tone-watch .kicker{color:var(--watch)}.tone-alert .kicker{color:var(--alert)}.tone-info .kicker{color:var(--info)}@keyframes settle{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ask form{display:flex;gap:8px;margin-top:12px;align-items:center}.ask form label{flex:1}.answer{margin-top:12px;padding:12px 14px;border-radius:14px;background:#f6f1e7;opacity:1;transform:translateY(0);transition:opacity .16s var(--ease-out),transform .16s var(--ease-out)}@starting-style{.answer{opacity:0;transform:translateY(4px)}}.chart{height:220px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:stretch;margin-top:18px;min-width:0}.col{display:grid;grid-template-rows:16px minmax(0,1fr) 18px;height:100%;align-items:stretch;justify-items:center;gap:6px;min-width:0}.col-amt{grid-row:1;align-self:end}.col-bar{grid-row:2;width:min(42px,78%);height:var(--h, 8%);align-self:end;justify-self:center;background:#d9cbb8;border-radius:6px 6px 2px 2px;transform-origin:bottom center;animation:rise .24s var(--ease-out) both}.col.current .col-bar{background:var(--forest)}.col.current .col-label{color:var(--ink);font-weight:600}.col-label{grid-row:3;align-self:start;font-size:13px;color:var(--muted)}.col-amt{font-size:11px;min-height:1.2em}@keyframes rise{0%{transform:scaleY(.92)}to{transform:scaleY(1)}}.plain{display:grid}.plain li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 0;border-top:1px solid var(--line);align-items:start}.footer{margin-top:28px;padding-top:16px;border-top:1px solid var(--line);flex-wrap:wrap;color:var(--muted);font-size:14px}.footer-actions{display:flex;flex-wrap:wrap;gap:4px 16px}.text-btn,.file-btn{background:none;border:0;padding:8px 0;color:var(--forest);font-weight:600;border-radius:8px;transition:color .16s ease}.file-btn input{display:none}.btn,.icon-btn{transition:transform .14s var(--ease-out),background-color .16s ease,color .16s ease,border-color .16s ease}.btn{border-radius:999px;border:1px solid transparent;padding:10px 16px;min-height:42px;font-weight:620}.btn-primary{background:var(--forest);color:var(--cream)}.btn-cream{background:var(--cream);color:var(--forest)}.btn-ghost{background:transparent;border-color:var(--line)}.btn-danger{background:transparent;color:var(--alert);padding-left:0}.btn:active,.icon-btn:active,.tabs button:active,.chips button:active,.kind-toggle button:active{transform:scale(.97)}.icon-btn{width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;line-height:0;padding:0;flex:none}.icon-btn:disabled,.icon-btn:disabled:active{opacity:1;color:#1c191452;background:transparent;border-color:#1c19141a;cursor:not-allowed;transform:none}.sheet{border:0;padding:0;background:transparent;width:min(480px,calc(100% - 24px));max-height:calc(100dvh - 24px);opacity:1;transform:scale(1);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out),overlay .2s allow-discrete,display .2s allow-discrete}.sheet::backdrop{background:#16120e7a;opacity:1;transition:opacity .2s var(--ease-out),overlay .2s allow-discrete,display .2s allow-discrete}@starting-style{.sheet{opacity:0;transform:scale(.96)}.sheet::backdrop{opacity:0}}.sheet-card{background:var(--card);border-radius:20px;padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));display:grid;gap:12px;box-shadow:0 24px 80px #1c161047;max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}.sheet-card label,.ask label{display:grid;gap:6px;font-size:14px;font-weight:600}.split-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kind-toggle{display:grid;grid-template-columns:1fr 1fr;gap:6px}.kind-toggle button{border:1px solid var(--line);min-height:42px}.sheet-actions-right{display:flex;gap:8px}.form-error{color:var(--alert);margin:0}.hint{font-size:13px;margin:0}.empty{display:grid;gap:8px;justify-items:start;padding:32px 24px;background:linear-gradient(180deg,rgba(27,58,47,.045),transparent 88px),var(--card)}.empty h2{font-size:28px}.empty p{color:var(--muted);max-width:46ch}.empty-note{margin:8px 0 4px;padding:22px 16px;border:1px dashed rgba(28,25,20,.18);border-radius:14px;color:var(--muted);background:#ffffff73}.toast{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;translate:-50% 0;background:var(--ink);color:var(--cream);padding:10px 16px;border-radius:999px;z-index:30;opacity:1;transition:opacity .18s var(--ease-out),translate .18s var(--ease-out)}@starting-style{.toast{opacity:0;translate:-50% 8px}}@media(hover:hover)and (pointer:fine){.btn-cream:hover{background:#fff}.btn-primary:hover{background:var(--forest-2)}.btn-ghost:hover{background:#1c19140a}.tabs button:hover,.chips button:hover,.kind-toggle button:hover{color:var(--ink);background:#1c19140d}.tabs button[aria-current=page]:hover,.chips button[aria-pressed=true]:hover,.kind-toggle button[aria-pressed=true]:hover{background:var(--forest);color:var(--cream)}.text-btn:hover,.merchant-btn:hover,.file-btn:hover{color:var(--copper)}.bar-btn:hover,.recent-btn:hover{background:#1b3a2f0b}.icon-btn:hover:not(:disabled){border-color:#1c191447}}.bar-btn:active,.recent-btn:active{background:#1b3a2f12}.merchant-btn:active{color:var(--copper)}@media(pointer:coarse){.icon-btn{width:44px;height:44px}.tabs button,.chips button,.btn,.kind-toggle button{min-height:44px}}@media(max-width:800px){.topbar,.toolbar{padding-left:calc(16px + env(safe-area-inset-left,0px));padding-right:calc(16px + env(safe-area-inset-right,0px))}.brand-lockup{flex:1 1 auto;min-width:0}.brand-lockup p{font-size:13px}h1{font-size:24px}.topbar .btn{width:100%}.wrap{width:min(1080px,calc(100% - 28px));padding-top:16px}.month-switch h2{min-width:12.5ch;font-size:18px}.section-head{flex-wrap:wrap;align-items:stretch}.search{flex-basis:100%;max-width:none}.hero-stats{grid-template-columns:1fr 1fr}.split,.insight-grid,.ask form,.split-fields{grid-template-columns:1fr}.ask form{display:grid}.col-amt{display:none}.col{grid-template-rows:minmax(96px,1fr) 18px}.col-bar{grid-row:1}.col-label{grid-row:2}.bar-btn{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label amt" "track track";width:100%;margin:0}.bar-label{grid-area:label}.bar-amt{grid-area:amt}.bar-btn .track{grid-area:track}.chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:-20px;margin-right:-20px;padding:0 20px 4px}.chips::-webkit-scrollbar{display:none}.chips button{flex:none}.sheet-actions{flex-wrap:wrap}}@media(min-width:800px){.tx{grid-template-columns:5.5rem minmax(0,1fr) 11.5rem auto;grid-template-areas:"date merchant cat amt";align-items:center}.budget-row{grid-template-columns:11rem 9.5rem minmax(0,1fr);align-items:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition-property:opacity,color,background-color,border-color!important;transition-duration:.12s!important}.btn:active,.icon-btn:active,.tabs button:active,.chips button:active,.kind-toggle button:active{transform:none}}
