@font-face{font-family:Bungee;src:url(/fonts/bungee.woff2) format("woff2");font-display:swap;font-weight:400}:root{--bg: #14110d;--surface: #1f1a14;--fg: #f0e9dd;--muted: #b0a594;--accent: #5b9cf0;--accent-soft: color-mix(in srgb, var(--accent) 15%, transparent);--expense: #e0654d;--income: #6cbf73;--surface-2: color-mix(in srgb, var(--fg) 7%, var(--surface));--cat-swatch-mint: #6ed1a8;--cat-swatch-peach: #f0b27a;--cat-swatch-sky: #6fb7f0;--cat-swatch-grape: #b08ce0;--cat-swatch-rose: #ef9bb3;--brand-stroke: #d7261e;--brand-extrude: #8a1010;--accent-tint: color-mix(in srgb, var(--accent) 12%, var(--bg));--accent-hi: color-mix(in srgb, var(--accent) 78%, #fff);--gold: #f0b429;--gold-soft: color-mix(in srgb, var(--gold) 14%, transparent);--gold-line: color-mix(in srgb, var(--gold) 80%, #000);--white: #fff;--border: color-mix(in srgb, var(--fg) 14%, transparent);--surface-bar: color-mix(in srgb, var(--bg) 70%, var(--surface));--badge-offline-bg: #3a2a2a;--badge-pending-bg: #1e2a3a;--key-grad-top: #2b3035;--key-grad-bottom: #171a1d;--key-shadow: #0c0e10;--google-btn-fg: #1f1f1f;--google-btn-border: #dadce0;--google-btn-hover: #f1f3f4;--apple-btn-bg: #000;--apple-btn-bg-active: #1a1a1a;--font-body: -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-display: "Bungee", Impact, "Arial Black", sans-serif;--radius-scale: 1;--radius-1: calc(1px * var(--radius-scale));--radius-2: calc(2px * var(--radius-scale));--radius-3: calc(.3rem * var(--radius-scale));--radius-4: calc(.4rem * var(--radius-scale));--radius-5: calc(.45rem * var(--radius-scale));--radius-6: calc(.5rem * var(--radius-scale));--radius-7: calc(.6rem * var(--radius-scale));--radius-8: calc(.7rem * var(--radius-scale));--radius-9: calc(.75rem * var(--radius-scale));--radius-10: calc(.85rem * var(--radius-scale));--radius-11: calc(14px * var(--radius-scale));--radius-12: calc(.9rem * var(--radius-scale));--radius-13: calc(1rem * var(--radius-scale));--radius-14: calc(1.1rem * var(--radius-scale));--radius-pill: calc(999px * var(--radius-scale));--radius-circle: 50%;--radius-sheet: calc(1.25rem * var(--radius-scale));--swipe-slate: #39414b;--swipe-tray-w: 96px;--row-radius: .75rem;--row-pad: .7rem .8rem;color-scheme:dark;--ease-sheet: cubic-bezier(.32, .72, 0, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-row-exit: cubic-bezier(.22, .61, .36, 1);--ease-row-enter: cubic-bezier(.22, .61, .36, 1);--ease-keypad: cubic-bezier(.2, 0, 0, 1);--ease-inbox-zero: cubic-bezier(.2, .8, .3, 1.25);--dur-sheet-open: .4s;--dur-dismiss: .19s;--dur-swipe: .3s;--dur-row-exit-draft: .2s;--dur-row-exit-bank: .22s;--dur-row-collapse: .26s;--dur-row-reorder: .3s;--dur-row-enter: .32s;--dur-accordion: .26s;--dur-caret: .2s;--dur-keypad-reveal: .28s;--dur-count: 1s;--dur-bar-fill: 1.5s;--dur-pulse: .5s;--dur-badge: .28s;--dur-amount-pop: .18s;--dur-cat-pop: .2s;--dur-inbox-zero: .48s;--dur-twinkle: .9s;--dur-press: 30ms;--dur-press-release: 90ms;--dur-state: .15s;--dur-tab: .16s;--dur-switch: .2s;--dur-skeleton: 1.3s;--dur-cta-bounce: 1.7s;--dur-onboarding-pulse: 1.2s;--dur-nudge-dwell: 8s;--dur-reseed-check: .24s}[data-theme=ai-slop]{--accent: #4c8dff;--income: #4caf50;--expense: #e25555;--gold: #ffc107;--warn: #e2a955;--bg: #111315;--surface: #1c1f22;--fg: #f3f5f7;--muted: #a7b0ba;--font-body: -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--radius-scale: .82;color-scheme:dark}[data-theme=terminal]{--accent: #37d2d8;--income: #46c97f;--expense: #e8705f;--gold: #e8c34a;--warn: #e2a955;--bg: #0a0e0a;--surface: #0f160f;--fg: #d4f5d6;--muted: #6f9e75;--font-body: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--radius-scale: 0;--radius-circle: 0;--row-radius: 0;color-scheme:dark;--cat-swatch-mint: #2fbf9f;--cat-swatch-peach: #c9a24b;--cat-swatch-sky: #2f9fd6;--cat-swatch-grape: #8f7fd0;--cat-swatch-rose: #d06f93}[data-theme=dusk]{--accent: #8b7cf0;--income: #46c98a;--expense: #ec5a5a;--gold: #ffc94d;--warn: #e2a955;--bg: #0f1018;--surface: #191b28;--fg: #e8e9f2;--muted: #9a9db5;--font-body: -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--radius-scale: .88;color-scheme:dark}[data-theme=ink]{--accent: #3d8bfd;--income: #2ec27e;--expense: #ff5a4d;--gold: #ffd23d;--warn: #ffb02e;--bg: #000000;--surface: #0c0d0f;--fg: #ffffff;--muted: #8b9097;--font-body: -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--radius-scale: .5;color-scheme:dark}[data-theme=paper]{--accent: #76849c;--income: #5fd97a;--expense: #f0523d;--gold: #f0cf5c;--warn: #d98f3a;--bg: #0c0d10;--surface: #15171c;--fg: #e8ecf2;--muted: #8f97a6;--font-body: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--radius-scale: 0;--radius-circle: 0;--row-radius: 0;color-scheme:dark;--cat-swatch-mint: #4fbfa8;--cat-swatch-peach: #d9a35c;--cat-swatch-sky: #7fa3d9;--cat-swatch-grape: #a98fd9;--cat-swatch-rose: #d97f96}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font-family:var(--font-body);overscroll-behavior:none;overflow:hidden}body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%}button{font-family:inherit;cursor:pointer;border:none;color:var(--fg)}#app{position:fixed;top:var(--app-top, 0);bottom:0;left:0;right:0;display:flex;flex-direction:column;overflow:hidden}#app.kb-open:not(.entry-open) .keypad{display:none}.screen{display:flex;flex-direction:column;gap:.75rem;padding:0 .75rem max(.75rem,env(safe-area-inset-bottom));min-height:100dvh}.content{flex:1;min-height:0;display:flex;flex-direction:column;gap:.75rem;padding:0 .75rem .5rem}#app.entry-open.kb-open .content,#app.inbox-open.kb-open .content{content-visibility:hidden}#app.kb-open .tabbar,#app.entry-open .tabbar,#app.sheet-open .tabbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface-bar)}.content-fixed{overflow:hidden}.content-scroll{overflow-y:auto;overscroll-behavior:none}.tabbar{display:flex;align-items:center;position:relative;z-index:5;padding-bottom:env(safe-area-inset-bottom);background:#16191cb8;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-top:1px solid rgba(255,255,255,.07);box-shadow:0 -1px #0006,0 -12px 24px -12px #00000080;overflow:visible}.tab{flex:1;background:none;border:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 0 6px;min-height:50px;cursor:pointer;font:inherit;position:relative;transition:color var(--dur-tab) ease}.tab-inner{display:inline-flex;flex-direction:column;align-items:center;gap:3px;padding:5px 16px;border-radius:var(--radius-11);transition:background-color var(--dur-tab) ease,transform var(--dur-press-release) ease}.tab svg{width:24px;height:24px}.tab-label{font-size:.625rem;font-weight:600;letter-spacing:.02em;line-height:1}.tab.active{color:var(--accent-hi)}.tab.active .tab-inner{background:var(--accent-soft)}.tab:active .tab-inner{transform:scale(.94)}.tab-fab{flex:0 0 auto;width:3.2rem;height:3.2rem;margin:0 .25rem;border:none;border-radius:var(--radius-circle);background:radial-gradient(circle at 50% 32%,var(--accent-hi),var(--accent) 72%);color:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;transform:translateY(-.6rem);box-shadow:0 6px 16px -4px #00000080,0 0 14px -1px var(--accent),inset 0 1px 1px #ffffff59;transition:transform var(--dur-press-release) ease}.tab-fab svg{width:1.65rem;height:1.65rem}.tab-fab:active{transform:translateY(-.6rem) scale(.94);transition:transform var(--dur-press) ease-out}.tab-spacer{flex:1}.center{align-items:center;justify-content:center}.muted{color:var(--muted)}.topbar{display:flex;align-items:center;gap:.5rem;padding:calc(env(safe-area-inset-top) + .5rem) calc(env(safe-area-inset-right) + 1rem) .6rem calc(env(safe-area-inset-left) + 1rem)}.brand{font-weight:400;font-size:1.5rem;letter-spacing:.02em;line-height:1.4;flex-shrink:0;background:transparent}.settings-sheet{min-height:42vh;display:flex;flex-direction:column;overflow:hidden}.settings-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:none}.settings-sheet>*{flex-shrink:0}.settings-signout{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border, rgba(255, 255, 255, .08))}.sheet.settings-sheet{padding-top:calc(env(safe-area-inset-top) + .5rem)}.brand,.brand-lg{font-family:var(--font-display);color:var(--gold);-webkit-text-fill-color:var(--gold);paint-order:stroke fill}.brand{-webkit-text-stroke:1.9px var(--brand-stroke)}.brand-inline{font-family:var(--font-display);font-weight:400;color:var(--gold);-webkit-text-fill-color:var(--gold);-webkit-text-stroke:1px var(--brand-stroke);paint-order:stroke fill;letter-spacing:.02em}.badges{display:flex;gap:.4rem;flex:1}.badge{font-size:.7rem;padding:.15rem .45rem;border-radius:var(--radius-pill);font-weight:600}.badge.offline{background:var(--badge-offline-bg);color:var(--expense)}.badge.pending{background:var(--badge-pending-bg);color:var(--accent)}.link{background:none;color:var(--muted);font-size:.9rem;display:inline-flex;align-items:center;min-height:2.5rem;padding:.4rem .5rem}.inbox-btn{position:relative;background:none;color:var(--fg);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;border-radius:var(--radius-6)}.inbox-btn:active{background:var(--surface-2)}.inbox-count{position:absolute;top:.25rem;right:.2rem;min-width:1.05rem;height:1.05rem;padding:0 .25rem;border-radius:var(--radius-pill);background:var(--expense);color:var(--white);font-size:.65rem;font-weight:700;line-height:1.05rem;text-align:center;font-variant-numeric:tabular-nums}@keyframes inbox-count-pop{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.inbox-count.bumped{animation:inbox-count-pop var(--dur-badge) ease-out}.toggle{display:flex;gap:.5rem}.toggle button{flex:1;font-size:1rem;font-weight:600;padding:.7rem;border-radius:var(--radius-9);background:var(--surface);color:var(--muted)}.toggle button.active.expense{background:var(--expense);color:var(--white)}.toggle button.active.income{background:var(--income);color:var(--white)}.amount-row{display:flex;align-items:center;gap:.5rem}.amount-row .amount{flex:1}.date-chip{flex-shrink:0;padding:.3rem .6rem;border-radius:var(--radius-7);border:1px solid var(--surface-2);background:var(--surface);color:var(--muted);font-size:.85rem;font-weight:600;white-space:nowrap;cursor:pointer}.date-chip.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.date-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;box-sizing:border-box;width:100%;padding:.85rem .9rem;border-radius:var(--radius-10);background:var(--surface-2);color:var(--fg);border:1px solid var(--surface-2);font-family:inherit;font-size:1rem}.amount{font-size:2.75rem;font-weight:700;text-align:right;padding:.4rem .3rem;font-variant-numeric:tabular-nums;letter-spacing:.01em;transform-origin:right center}@keyframes amount-pop{0%{transform:scale(1)}35%{transform:scale(1.06)}to{transform:scale(1)}}.amount.pop{animation:amount-pop var(--dur-amount-pop) var(--ease-spring)}@keyframes cat-pop{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}.cat.cat-pop{animation:cat-pop var(--dur-cat-pop) var(--ease-spring)}@media(prefers-reduced-motion:reduce){.cat.cat-pop{animation:none}}.owed-amt.owed-amt-bump{animation:cat-pop var(--dur-cat-pop) var(--ease-spring)}@media(prefers-reduced-motion:reduce){.owed-amt.owed-amt-bump{animation:none}}@keyframes net-card-ack{0%{transform:scale(1);filter:drop-shadow(0 0 0 rgb(76 141 255 / 0%))}45%{transform:scale(1.012);filter:drop-shadow(0 0 7px rgb(76 141 255 / 45%))}to{transform:scale(1);filter:drop-shadow(0 0 0 rgb(76 141 255 / 0%))}}.net-card.just-updated{animation:net-card-ack var(--dur-pulse) ease-out}@media(prefers-reduced-motion:reduce){.net-card.just-updated{animation:none}}.amount .sign,.amount .cur{color:var(--muted);font-weight:600;margin-right:.1rem}.amount.expense{color:var(--expense)}.amount.income{color:var(--income)}.amount.empty{color:var(--muted)}.amount-field{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.amount-field .amount{flex:1}.amount-field .amount-box{position:relative;flex:1}.amount-box .cur{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--muted);font-size:1.5rem;font-weight:700;pointer-events:none}.amount-input{width:100%;padding:.4rem .6rem .4rem 1.9rem;border-radius:var(--radius-7);background:var(--surface);border:1px solid var(--surface-2);font-family:inherit;font-size:1.75rem;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.01em}.amount-input::placeholder{color:var(--muted);font-weight:600}.amount-box.income .amount-input{color:var(--income)}.amount-box.expense .amount-input{color:var(--expense)}.amount-box.neutral .amount-input{color:var(--fg)}.payee{padding:.6rem .75rem;border-radius:var(--radius-7);background:var(--surface);color:var(--fg);border:1px solid var(--surface-2);font-size:.95rem;width:100%}.payee::placeholder{color:var(--muted)}.payee:focus,.sheet input:focus,.sheet select:focus,.owed-form input:focus,.date-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.payee-row{display:flex;gap:.5rem;align-items:stretch}.payee-row .payee{flex:1;min-width:0}.entry-type-switch{display:flex;gap:.3rem;padding:.3rem;background:var(--surface-2);border-radius:var(--radius-7)}.entry-type-opt{flex:1;padding:.5rem;border:0;border-radius:var(--radius-5);background:var(--surface-2);color:var(--muted);font:inherit;font-weight:600;cursor:pointer;transition:background var(--dur-switch) ease,color var(--dur-switch) ease}.entry-type-opt.expense.on{background:var(--expense);color:var(--white)}.entry-type-opt.income.on{background:var(--income);color:var(--white)}.repay-person-list{display:flex;flex-direction:column;gap:.4rem;margin:.25rem 0 .5rem;max-height:50vh;overflow-y:auto}.repay-person-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border-radius:var(--radius-7);border:1px solid var(--surface-2);background:var(--surface-2);color:var(--fg);font-size:.95rem;text-align:left;cursor:pointer}.repay-person-row.on{border-color:var(--accent);background:var(--accent-soft)}.repay-person-name{font-weight:600}.repay-person-bal{font-size:.82rem}.repay-person-bal.pos{color:var(--income)}.repay-person-bal.neg{color:var(--expense)}.gc-bank-row{justify-content:flex-start}.gc-bank-row:disabled{opacity:.5;cursor:default}.gc-bank-logo{width:1.6rem;height:1.6rem;flex:0 0 auto;object-fit:contain;border-radius:var(--radius-3)}.gc-bank-logo-empty{display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;flex:1;min-height:0;align-content:start;overflow-y:auto;padding:2px}.cat{--cat-tint: color-mix(in srgb, var(--cat-color, #888) 16%, transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:.7rem .4rem;border-radius:var(--radius-9);background:linear-gradient(90deg,var(--cat-tint),var(--surface) 38%);border-left:3px solid var(--cat-color, #888);font-size:.85rem;line-height:1.2;min-height:3rem}.cat .cat-icon{color:var(--cat-color, #888)}.cat .cat-label{text-align:center}@media(max-height:900px){.grid{gap:.4rem}.cat{gap:.2rem;padding:.5rem .35rem;font-size:.8rem;min-height:2.5rem}.cat .cat-icon{width:.95rem;height:.95rem}.amount{font-size:2.25rem}.keypad{gap:.45rem}.key{min-height:3rem;font-size:1.45rem}}@media(max-height:780px){.grid{gap:.3rem}.cat{gap:.15rem;padding:.4rem .3rem;font-size:.74rem;min-height:2.2rem}.cat .cat-icon{width:.85rem;height:.85rem}.amount{font-size:2rem}.keypad{gap:.4rem}.key{min-height:2.75rem;font-size:1.35rem}.sheet-tall{max-height:90vh}}.cat.active{box-shadow:inset 0 0 0 2px var(--cat-color, var(--accent));background:color-mix(in srgb,var(--cat-color, #888) 22%,var(--surface))}.cat.add{color:var(--accent);font-size:1.5rem;font-weight:600;border:1px dashed var(--accent);background:transparent}.cat,.month-row,.cat-row,.txn-row,.draft-row,.tab,.chip,button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,.payee{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.cat:active,.row--press:not(.expanded):active,.draft-row-open:active,.bank-check-row:active{transform:scale(.98);transition:transform var(--dur-press) ease-out}.submit:active,.btn-secondary:active,.btn-delete:active,.bank-skip:active{transform:scale(.97);transition:transform var(--dur-press) ease-out}.sheet-backdrop{position:fixed;top:0;left:0;right:0;height:var(--app-h, 100%);display:flex;align-items:flex-end;z-index:10;transition:height var(--kb-anim-ms, .25s) var(--kb-anim-ease, cubic-bezier(.32, .72, 0, 1))}@media(prefers-reduced-motion:reduce){.sheet-backdrop{transition:none}}.sheet-backdrop:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:#0000008c;animation:backdrop-in var(--dur-sheet-open) ease-out}.sheet-backdrop.dim-out:before{animation:none;transition:opacity var(--dim-out-ms, var(--dur-swipe)) ease-out;opacity:0}.sheet-backdrop:has(~.sheet-backdrop):not([data-inbox-backdrop]):before{background:transparent}.sheet-backdrop[data-draft-backdrop]:before{background:transparent}.sheet-backdrop[data-draft-backdrop],.sheet-backdrop[data-inbox-backdrop],.sheet-backdrop[data-kb-lift],.sheet-backdrop[data-kb-lift-rest]{height:100%}.sheet-backdrop[data-kb-lift] .sheet{animation:none;transform:translateY(100%)}#app.kb-open .sheet-backdrop[data-kb-lift] .sheet,#app.kb-open .sheet-backdrop[data-kb-lift-rest] .sheet{transform:translateY(calc(-1 * var(--kb-h, 0px)));transition:transform var(--kb-anim-ms, .25s) var(--kb-anim-ease, cubic-bezier(.32, .72, 0, 1))}.sheet-backdrop[data-kb-lift-rest] .sheet{transition:transform var(--kb-anim-ms, .25s) var(--kb-anim-ease, cubic-bezier(.32, .72, 0, 1))}.sheet-backdrop[data-kb-lift-rest] .sheet.dragging{transition:none}#app.kb-lift-fallback .sheet-backdrop[data-kb-lift] .sheet{transform:translateY(0);transition:transform var(--dur-swipe) var(--ease-sheet)}@media(prefers-reduced-motion:reduce){.sheet-backdrop[data-kb-lift] .sheet,.sheet-backdrop[data-kb-lift-rest] .sheet,#app.kb-open .sheet-backdrop[data-kb-lift] .sheet,#app.kb-open .sheet-backdrop[data-kb-lift-rest] .sheet,#app.kb-lift-fallback .sheet-backdrop[data-kb-lift] .sheet{transition:none}}.sheet{width:100%;max-height:100%;overflow-y:auto;background:var(--surface);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;padding:1rem 1.25rem max(1.5rem,calc(env(safe-area-inset-bottom) + 1rem));display:flex;flex-direction:column;gap:1rem;animation:sheet-up var(--dur-sheet-open) var(--ease-sheet)}.sheet.reopening,.sheet-backdrop.reopening,.sheet-backdrop.reopening:before{animation:none}.sheet.dragging{animation:none;transition:none;transform:translateY(var(--drag-y, 0px))}.sheet.snap-back{animation:none;transform:translateY(0);transition:transform var(--dur-swipe) var(--ease-sheet)}#app.kb-open .sheet-backdrop[data-kb-lift] .sheet.dragging,#app.kb-open .sheet-backdrop[data-kb-lift-rest] .sheet.dragging{transform:translateY(calc(var(--drag-y, 0px) - var(--kb-h, 0px)))}#app.kb-open .sheet-backdrop[data-kb-lift] .sheet.snap-back,#app.kb-open .sheet-backdrop[data-kb-lift-rest] .sheet.snap-back{transform:translateY(calc(-1 * var(--kb-h, 0px)))}.sheet.closing{animation:sheet-down var(--dur-swipe) var(--ease-sheet) forwards}.sheet form{display:flex;flex-direction:column;gap:.85rem}.sheet:before{content:"";align-self:center;width:40px;height:4px;border-radius:var(--radius-2);background:var(--surface-2);margin-bottom:.25rem}.sheet-title{margin:0;font-size:1.35rem}.sheet-note{margin:0;font-size:.85rem;color:var(--muted)}.edittxn-merchant{margin:-.35rem 0 .35rem;text-align:center;color:var(--muted)}.mp-year{display:flex;flex-direction:column;gap:.5rem}.mp-year-label{font-size:.78rem;font-weight:700;letter-spacing:.06em;color:var(--muted);font-variant-numeric:tabular-nums}.mp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.mp-month{padding:.7rem 0;border-radius:var(--radius-9);background:var(--surface-2);color:var(--fg);font-size:.95rem;font-weight:600;text-align:center;cursor:pointer}.mp-month.is-selected{box-shadow:inset 0 0 0 2px var(--accent)}.mp-month.is-disabled,.mp-month:disabled{color:var(--muted);opacity:.4;cursor:default;pointer-events:none}.sheet input,.sheet select{padding:1rem;border-radius:var(--radius-9);background:var(--surface-2);color:var(--fg);border:1px solid var(--surface-2);font-size:1.05rem;width:100%}.sheet-actions{display:flex;gap:.6rem}.sweep-block{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem;padding-top:.85rem;border-top:1px solid var(--surface-2)}.field{display:flex;flex-direction:column;gap:.3rem}.field-label{font-size:.78rem;font-weight:600;color:var(--muted)}.sheet-actions .submit{flex:1;background:var(--accent)}.sheet-actions .submit.danger{background:var(--expense)}.confirm-msg{margin:0;font-size:1rem;line-height:1.4}.confirm-body{margin:.5rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.4}.confirm-body strong{color:var(--fg);font-weight:600}.confirm-danger-head{display:flex;gap:.55rem;align-items:center;color:var(--expense);font-size:1.05rem;font-weight:600}.confirm-danger-head svg{flex:none}.confirm-type-label{display:block;margin:.9rem 0 .4rem;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.confirm-type-input{width:100%;padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--radius-9);background:var(--surface-2);color:var(--fg);font-size:1rem;font-weight:600;letter-spacing:.04em}.confirm-type-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.btn-secondary{flex:1;padding:1rem;border-radius:var(--radius-10);background:var(--surface-2);color:var(--fg);font-size:1.1rem;font-weight:600}.btn-delete{flex:1;padding:1rem;border-radius:var(--radius-10);background:transparent;color:var(--expense);border:1px solid var(--expense);font-size:1.1rem;font-weight:600}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-down{0%{transform:translateY(0)}to{transform:translateY(100%)}}.skeleton{position:relative;overflow:hidden;background:var(--surface-2);border-radius:var(--radius-4)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:skeleton-shimmer var(--dur-skeleton) ease-in-out infinite}.skeleton-row{background:var(--surface);border-radius:var(--radius-9);padding:.8rem;display:flex;flex-direction:column;gap:.5rem}.skeleton-list{display:flex;flex-direction:column;gap:.5rem}.skeleton-line{height:.8rem}.skeleton-line.sm{height:.65rem}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.month-head{position:sticky;top:0;z-index:2;display:flex;flex-direction:column;gap:.6rem;background:var(--bg);padding-bottom:.6rem;border-bottom:1px solid var(--surface-2)}.month-body{display:flex;flex-direction:column;gap:.75rem;padding-bottom:9.5rem}.month-body{display:flex;flex-direction:column;gap:.75rem}.owed-body{display:flex;flex-direction:column;gap:.75rem;padding-bottom:9.5rem}.month-section-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem 0 .4rem;border:none;background:none;cursor:pointer}.month-section-title{font-size:.85rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-bottom:.3rem;border-bottom:2px solid var(--gold-line)}.month-section-caret{color:var(--accent);font-size:1rem;line-height:1;transition:transform var(--dur-caret) ease}.month-section.collapsed .month-section-caret{transform:rotate(-90deg)}.month-section-panel{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--dur-accordion) ease}.month-section.collapsed .month-section-panel{grid-template-rows:0fr}.month-section-inner{overflow:hidden;min-height:0}.coach-x{flex-shrink:0;background:none;color:var(--muted);font-size:.85rem;padding:.2rem .35rem;border-radius:var(--radius-4);cursor:pointer}.coach-x:active{background:var(--surface-2)}.month-pill{display:inline-flex;align-items:center;gap:.15rem;font-size:.9rem;font-weight:700;color:var(--gold);background:transparent;border:1.5px solid var(--gold);border-radius:var(--radius-pill);padding:.3rem .7rem;flex-shrink:0;cursor:pointer}.month-caret{font-size:.75em}.net-card{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.1rem;background:linear-gradient(160deg,var(--accent-tint),var(--surface) 70%);border-radius:var(--radius-13);box-shadow:inset 3px 0 0 var(--accent),inset 4px 0 6px color-mix(in srgb,var(--accent-hi) 22%,transparent),0 1px color-mix(in srgb,var(--accent-hi) 18%,transparent) inset,0 6px 18px #00000059;font-variant-numeric:tabular-nums}[data-theme=ledger] .net-card,[data-theme=terminal] .net-card,[data-theme=dusk] .net-card,[data-theme=ink] .net-card,[data-theme=paper] .net-card{box-shadow:0 1px color-mix(in srgb,var(--accent-hi) 18%,transparent) inset,0 6px 18px #00000059}.net-eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:-.15rem}.net-hero{font-size:2rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.net-sub{font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}.net-tobudget{display:flex;flex-direction:column;gap:.3rem;margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--surface-2)}.tb-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.tb-row .k{font-size:.8rem;font-weight:600;color:var(--muted)}.tb-row .v{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums}.tb-row .v.neg{color:var(--expense)}.tb-row .v.dim{color:var(--muted)}.tb-perday{color:var(--muted);font-weight:600;font-size:.88em}.tb-note{font-size:.74rem;color:var(--muted)}.pos{color:var(--income)}.section-head{margin:.5rem 0 0;font-size:.85rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.section-head:after{content:"";display:block;width:40%;max-width:6rem;height:2px;margin-top:.3rem;border-radius:var(--radius-1);background:var(--gold-line)}:where(.bank-body,.bank-detail-sheet,.bank-settings-sheet,.bank-balances-sheet,.bank-section,.bank-linked) .section-head:after{display:none}.month-list{display:flex;flex-direction:column}.month-list>*+*{margin-top:.5rem}.month-row{display:block;width:100%;text-align:left}.month-row-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.month-cat-name{font-weight:600}.row-name{flex:1;min-width:0;display:flex;align-items:center;gap:.4rem;background:none;text-align:left;font-weight:600;font-size:1rem;padding:0}.row-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-caret{flex-shrink:0;font-size:1.3rem;line-height:1;color:var(--accent);font-weight:700;transition:transform var(--dur-caret) var(--ease-sheet)}.month-row.expanded .row-caret{transform:rotate(90deg)}@media(prefers-reduced-motion:reduce){.row-caret{transition:none}}.row-balance:empty{min-height:.96rem}.row-budget{flex-shrink:0;background:none;color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums;white-space:nowrap;padding:.3rem .4rem;margin:-.3rem -.4rem -.3rem 0;border-radius:var(--radius-4)}.row-budget:active{background:var(--surface-2)}.edit-hint{color:var(--accent);margin-left:.3rem}.month-cat-amts{flex-shrink:0;color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}.row-balance{display:block;margin-top:.2rem;padding:0;background:none;text-align:left;font-size:.8rem;line-height:1.2;color:var(--muted);font-variant-numeric:tabular-nums}.spend-bar{display:flex;height:5px;margin-top:.4rem;border-radius:var(--radius-pill);background:var(--surface-2);overflow:hidden}.spend-bar-fill{background:var(--cat-color, var(--accent));border-radius:inherit;transition:width var(--dur-bar-fill) ease-in-out}.spend-bar.over .spend-bar-fill{background:var(--expense)}.row-detail{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-accordion) var(--ease-sheet);--swipe-backdrop: var(--surface)}.month-row.expanded .row-detail{grid-template-rows:1fr}.row-detail-clip{overflow:hidden;min-height:0}.row-detail-inner{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.detail-empty{margin:.2rem 0 .1rem}.month-cat-carried{display:inline-flex;align-items:center;gap:.3rem;margin-top:.3rem;background:#e255551f;color:var(--expense);border-radius:var(--radius-pill);padding:.2rem .5rem;font-size:.72rem;font-weight:600;font-variant-numeric:tabular-nums}.carryover-toggle{display:inline-flex;align-items:center;gap:.45rem;margin-top:.4rem;padding:.25rem .45rem .25rem .3rem;border:1px solid var(--surface-2);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--muted);font-size:.74rem;font-weight:600;cursor:pointer}.carryover-toggle.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.co-switch{position:relative;width:1.6rem;height:.9rem;border-radius:var(--radius-pill);background:var(--muted);flex-shrink:0;transition:background var(--dur-state) ease}.carryover-toggle.on .co-switch{background:var(--accent)}.co-knob{position:absolute;top:.1rem;left:.1rem;width:.7rem;height:.7rem;border-radius:var(--radius-circle);background:var(--white);transition:transform var(--dur-state) ease}.carryover-toggle.on .co-knob{transform:translate(.7rem)}.neg,.link.danger{color:var(--expense)}.detail-carried{display:flex;justify-content:space-between;align-items:center;gap:.5rem;background:var(--surface);border-radius:var(--radius-9);padding:.7rem .8rem;margin-bottom:.4rem;font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}.txn-list{display:flex;flex-direction:column}.txn-list>*+*{margin-top:.4rem}.txn-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.txn-icon{flex-shrink:0;width:2.1rem;height:2.1rem;border-radius:var(--radius-7);background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--cat-color, #888)}.txn-icon .cat-icon,.txn-icon .cat-flag{width:1.2rem;height:1.2rem;font-size:1.2rem}.txn-main{display:flex;flex-direction:column;min-width:0;flex:1}.txn-payee{font-weight:600}.txn-note{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txn-meta{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.txn-amt{font-weight:700;font-variant-numeric:tabular-nums}.txn-amt.pos{color:var(--income)}.txn-date{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.txn-del{flex-shrink:0;background:none;color:var(--muted);font-size:1rem;display:flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;border-radius:var(--radius-6)}.txn-del:active{background:var(--surface-2);color:var(--expense)}.sheet-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;background:var(--surface-2);border-radius:var(--radius-pill);color:var(--muted);font-size:.9rem}.sheet-close:active{color:var(--fg)}.owed-settle{flex-shrink:0;background:none;border:1px solid var(--accent);color:var(--accent);font-size:.8rem;font-weight:600;padding:.25rem .7rem;border-radius:var(--radius-pill);line-height:1.2}.owed-settle:active{background:var(--accent);color:var(--white)}.repaid-field{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted);margin-bottom:.7rem}.repaid-field input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-width:0;box-sizing:border-box;padding:.55rem .7rem;border-radius:var(--radius-7);border:1px solid var(--surface-2);background:var(--surface);color:var(--fg);font-family:inherit;font-size:1rem}.repaid-field input::-webkit-date-and-time-value{text-align:left;margin:0}.bank-jot-pick{display:flex;flex-direction:column;gap:.5rem;margin:.6rem 0}.bank-jot-select{width:100%;box-sizing:border-box;padding:.6rem .75rem;border-radius:var(--radius-7);border:1px solid var(--surface-2);background:var(--surface);color:var(--fg);font-family:inherit;font-size:1rem}.inbox-sheet,.draft-sheet{height:85vh}.inbox-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.draft-list{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;padding:2px}.draft-list>*+*{margin-top:.5rem}.draft-row{display:flex;align-items:center;gap:.25rem;width:100%;--row-pad: .8rem .35rem .8rem .85rem}.draft-row-open{flex:1;min-width:0;display:flex;justify-content:space-between;align-items:center;gap:.5rem;background:none;border:0;padding:0;text-align:left;color:inherit;font:inherit;border-radius:var(--radius-6)}.draft-row-open:active{background:var(--surface-2)}.draft-row-main{display:flex;flex-direction:column;min-width:0;gap:.15rem}.draft-merchant{font-weight:600;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draft-new-dot{color:var(--accent);font-size:.6rem;margin-right:.4rem;vertical-align:middle}.draft-card{font-size:.8rem;color:var(--muted)}.draft-row-meta{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;gap:.15rem}.draft-amt{font-weight:700;font-variant-numeric:tabular-nums}.draft-time{font-size:.8rem;color:var(--muted)}.inbox-empty{flex:1;gap:.3rem}.inbox-empty-title{margin:0;font-size:1.15rem;font-weight:700}.inbox-empty-title.gold{color:var(--gold)}@keyframes inbox-zero-pop{0%{opacity:0;transform:translateY(10px) scale(.9)}55%{opacity:1;transform:translateY(-3px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes inbox-zero-twinkle{0%,to{transform:scale(1) rotate(0);opacity:.85}50%{transform:scale(1.4) rotate(14deg);opacity:1}}.inbox-empty.celebrate .inbox-empty-title{animation:inbox-zero-pop var(--dur-inbox-zero) var(--ease-inbox-zero) both}.inbox-empty.celebrate .inbox-zero-spark{display:inline-block;animation:inbox-zero-twinkle var(--dur-twinkle) ease-in-out 2;animation-delay:.22s}.inbox-empty.celebrate .muted{animation:inbox-zero-pop var(--dur-inbox-zero) ease-out both;animation-delay:80ms}@media(prefers-reduced-motion:reduce){.inbox-empty.celebrate .inbox-empty-title,.inbox-empty.celebrate .inbox-zero-spark,.inbox-empty.celebrate .muted{animation:none}}.owed-empty,.month-empty{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.5rem;text-align:center;padding:1rem .5rem}.owed-empty .muted,.month-empty .muted{max-width:24rem;margin:0 auto;line-height:1.45}.activity-empty-cta{text-align:center;padding:2.75rem 1rem 1rem}.activity-empty-title{font-weight:700;font-size:1.05rem;margin-bottom:.35rem}.activity-empty-cta .cta-plus{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;vertical-align:-.35rem;border-radius:var(--radius-circle);background:radial-gradient(circle at 50% 32%,var(--accent-hi),var(--accent) 72%);color:var(--white);box-shadow:0 1px 4px -1px #00000073,inset 0 1px 1px #ffffff59}.activity-empty-cta .cta-plus svg{width:.95rem;height:.95rem}.activity-empty-cta .cta-arrow{margin-top:1.1rem;font-size:1.7rem;line-height:1;color:var(--accent);text-align:center;animation:cta-bounce var(--dur-cta-bounce) ease-in-out infinite}@keyframes cta-bounce{0%,to{transform:translateY(0);opacity:.65}50%{transform:translateY(6px);opacity:1}}@media(prefers-reduced-motion:reduce){.activity-empty-cta .cta-arrow{animation:none}}@keyframes draft-confirmed{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(45%)}}.draft-confirmed{animation:draft-confirmed var(--dur-row-exit-draft) var(--ease-row-exit) forwards;pointer-events:none}@keyframes bank-row-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(55%)}}.bank-row-exit{animation:bank-row-out var(--dur-row-exit-bank) var(--ease-row-exit) forwards;pointer-events:none}@keyframes row-enter{0%{opacity:0;transform:translateY(-14px) scale(.96)}to{opacity:1;transform:none}}.row--enter{animation:row-enter var(--dur-row-enter) var(--ease-row-enter)}@media(prefers-reduced-motion:reduce){.row--enter{animation:none}}.swipe-wrap{position:relative;overflow:hidden;isolation:isolate}.swipe-tray{position:absolute;top:0;right:0;bottom:0;display:flex;z-index:0}.swipe-content{position:relative;z-index:1;background:var(--swipe-backdrop, var(--bg));touch-action:auto}.swipe-wrap.swipe-bare{overflow:visible}.swipe-wrap.swipe-bare .swipe-content{background:transparent}.swipe-fill{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;width:var(--swipe-tray-w);font-size:.78rem;font-weight:700;background:var(--swipe-slate);color:var(--fg)}.swipe-fill .swipe-icon{font-size:1.1rem;line-height:1}.swipe-fill .swipe-icon svg{width:1.1rem;height:1.1rem;display:block}.swipe-fill.fill-restore{background:var(--accent);color:var(--white)}.swipe-fill.fill-delete{background:var(--expense);color:var(--white)}.swipe-wrap.swipe-firing .swipe-tray{left:0}.swipe-wrap.swipe-firing .swipe-fill{flex:1}.sheet-tall{max-height:85vh;overflow:hidden;will-change:transform}.entry-sheet .entry-sheet-head,.entry-sheet .amount-row,.entry-sheet .payee-row,.entry-sheet .keypad,.entry-sheet>.submit{touch-action:none}.entry-sheet .grid{touch-action:pan-y}.entry-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.entry-sheet-head,.inbox-head{background:linear-gradient(180deg,var(--accent-tint),transparent 1px)}.entry-sheet-title{font-size:1.2rem;font-weight:700}.entry-sheet .grid{flex:1;min-height:0}.entry-sheet{animation:none;height:100%;max-height:100%;padding-top:calc(env(safe-area-inset-top) + 1rem)}.entry-sheet.entry-opening{animation:sheet-up var(--dur-sheet-open) var(--ease-sheet)}.sheet-backdrop[data-entry-backdrop]{height:100%}.sheet-backdrop[data-entry-backdrop]:before{animation:none}.sheet-backdrop[data-entry-backdrop].entry-opening:before{animation:backdrop-in var(--dur-sheet-open) ease-out}.draft-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.draft-progress{font-size:.85rem;color:var(--muted);font-weight:600}button.amount{background:none;border:0;width:100%;display:block;cursor:pointer;font-family:inherit}.draft-keypad{margin:0 0 .25rem}.kp-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-keypad-reveal) var(--ease-sheet)}.kp-wrap.kp-open{grid-template-rows:1fr}.kp-wrap>.draft-keypad{overflow:hidden;min-height:0}@media(prefers-reduced-motion:reduce){.kp-wrap{transition:none}}.draft-grid{flex:1;min-height:4rem;max-height:40vh}.draft-recurring{margin:.1rem 0 .2rem;font-size:.85rem;font-weight:600;color:var(--accent);text-align:center}.draft-class-list{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem}.draft-class-choice{display:flex;align-items:center;gap:.8rem;width:100%;min-height:3.5rem;padding:.8rem 1rem;background:var(--surface-2);border:none;border-radius:var(--radius-12);cursor:pointer;text-align:left}.draft-class-choice:active{background:var(--accent-soft)}.dcc-emoji{font-size:1.4rem;flex-shrink:0}.dcc-text{display:flex;flex-direction:column;gap:.1rem}.dcc-title{font-weight:700;font-size:1rem;color:var(--fg)}.dcc-sub{font-size:.82rem;color:var(--muted)}.draft-class-back{background:none;border:none;color:var(--muted);font-size:.9rem;font-weight:600;cursor:pointer;padding:.3rem 0;align-self:flex-start}.view-head{margin:.25rem 0 .6rem}.view-head-title{margin:0;font-size:1.5rem;font-weight:800;letter-spacing:-.01em}.view-head-sub{margin:.2rem 0 0;font-size:.85rem;font-weight:400;color:var(--muted);letter-spacing:0}.owed-form{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:var(--surface);border-radius:var(--radius-9)}.sheet .owed-form{padding:0;background:none}.owed-form input{padding:.8rem;border-radius:var(--radius-7);background:var(--surface-2);color:var(--fg);border:1px solid var(--surface-2);font-size:1rem;width:100%}.owed-form input::placeholder{color:var(--muted)}.owed-form-row{display:flex;gap:.5rem}.owed-form-row input{flex:1}.owed-form-row .submit{flex-shrink:0;padding:.8rem 1.4rem;font-size:1rem}.owed-form select{padding:.8rem;border-radius:var(--radius-7);background:var(--surface-2);color:var(--fg);border:1px solid var(--surface-2);font-size:1rem;width:100%}.owed-field-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:.35rem .15rem -.1rem}.owed-dir-toggle{display:flex;gap:.4rem}.owed-dir-opt{flex:1;padding:.7rem .5rem;border:1px solid var(--border);border-radius:var(--radius-8);background:none;color:var(--muted);font:inherit;font-weight:700;font-size:.85rem;cursor:pointer;transition:background var(--dur-switch) ease,color var(--dur-switch) ease,border-color var(--dur-switch) ease}.owed-dir-opt.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.owed-log-exp{display:none;align-items:center;gap:.5rem;font-size:.9rem;color:var(--muted)}.owed-form.dir-iowe .owed-log-exp,#settle-form .owed-log-exp{display:flex}.owed-log-exp input[type=checkbox]{width:1.1rem;height:1.1rem;flex-shrink:0;accent-color:var(--accent)}.owed-exp-fields{display:none;flex-direction:column;gap:.5rem}.owed-form.with-exp .owed-exp-fields,#settle-form.with-exp .owed-exp-fields{display:flex}.owed-form.with-exp .owed-note{display:none}.chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--surface-2);color:var(--fg);font-size:.8rem;font-weight:600;padding:.35rem .6rem;border-radius:var(--radius-pill)}.chip.danger{color:var(--expense)}.owed-person{display:flex;flex-direction:column;margin-bottom:.5rem}.owed-person-head{display:flex;align-items:center;gap:.6rem;width:100%;padding:0;background:none;color:var(--fg);text-align:left;font-variant-numeric:tabular-nums}.owed-person>.owed-settle{align-self:flex-end;margin-top:.5rem}.owed-avatar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-8);background:var(--surface-2);color:var(--fg);font-size:.95rem;font-weight:700;transition:background var(--dur-accordion) var(--ease-sheet)}.owed-person.expanded .owed-avatar{background:var(--accent-soft);color:var(--accent)}.owed-person-bal{display:flex;align-items:center;gap:.6rem}.owed-dir{display:inline-flex;align-items:center;padding:.1rem .5rem;border-radius:var(--radius-6);font-size:.8rem;font-weight:600}.owed-dir--in{color:var(--accent);background:var(--accent-soft)}.owed-dir--out{color:var(--fg);background:var(--swipe-slate)}.owed-amt{color:var(--fg);font-variant-numeric:tabular-nums}.owed-person-name{flex:1;min-width:0;font-weight:600;font-size:1rem}.owed-caret{color:var(--accent);font-size:1rem;transition:transform var(--dur-accordion) var(--ease-sheet)}.owed-person.expanded .owed-caret{transform:rotate(180deg)}.owed-person.expanded .row-detail{grid-template-rows:1fr}.owed-records .owed-amt,.owed-all-records .owed-amt{flex-shrink:0}.owed-records .txn-row{background:var(--surface-2)}.owed-records{--swipe-backdrop: var(--surface-2)}.owed-records,.owed-all-records{display:flex;flex-direction:column}.owed-records>*+*,.owed-all-records>*+*{margin-top:.5rem}.owed-even{color:var(--muted);font-weight:600}.owed-noentry{color:var(--muted);font-size:.85rem}.owed-entry-arrow{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:var(--radius-6);font-size:.85rem;font-weight:700}.owed-entry-arrow--in{color:var(--accent);background:var(--accent-soft)}.owed-entry-arrow--out{color:var(--fg);background:var(--swipe-slate)}.owed-remove{align-self:flex-start;background:none;color:var(--expense);font-size:.8rem;font-weight:600;padding:.25rem 0}.owed-code-display{margin:.5rem 0 .3rem;padding:.9rem 1rem;border:1px dashed var(--accent);border-radius:var(--radius-13);text-align:center;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:1.6rem;font-weight:700;letter-spacing:.15em}.owed-code-expiry{color:var(--muted);font-size:.8rem;text-align:center;margin-bottom:.4rem}.owed-code-cancel-invite{color:var(--expense)}.owed-code-close{display:block;margin:.6rem auto 0;background:none;color:var(--muted);font-size:.85rem;padding:.35rem .6rem}.owed-redeem-balance{color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums;margin:.4rem 0}.owed-redeem-next{align-self:flex-start}.owed-people-actions{display:flex;flex-direction:column;gap:.4rem}.owed-link-badge{display:inline-flex;align-items:center;gap:.35rem;margin-left:.4rem;vertical-align:.05em;color:var(--accent);font-size:.78rem;font-weight:600}.owed-link-glyph{font-size:.9rem}.owed-link-badge--frozen{color:var(--muted)}.owed-link-state{color:var(--muted);font-weight:500}.owed-invite-sent{margin-left:.4rem;vertical-align:.05em;align-self:flex-start;color:var(--muted);font-size:.78rem;font-weight:600}.owed-link-action{align-self:flex-start;background:none;color:var(--accent);font-size:.8rem;font-weight:600;padding:.25rem 0}.owed-entry-by{color:var(--muted)}.owed-people{display:flex;flex-direction:column}.owed-add-person{width:100%;margin:.25rem 0 0}.owed-hero{background:var(--surface);border-radius:var(--radius-13);padding:1.1rem 1rem 1rem;margin-bottom:.75rem;text-align:center}.owed-hero-verdict{font-size:.85rem;font-weight:600;color:var(--muted);letter-spacing:.02em}.owed-hero-amt{margin-top:.15rem;font-size:2.1rem;font-weight:800;color:var(--fg);font-variant-numeric:tabular-nums;line-height:1.1}.owed-hero-split{display:flex;flex-direction:column;gap:.3rem;margin:.85rem 0 0;padding-top:.75rem;border-top:1px solid var(--surface-2)}.owed-hero-split .ohs{display:flex;justify-content:space-between;align-items:baseline;font-size:.9rem}.owed-hero-split .ohs .k{color:var(--muted)}.owed-hero-split .ohs .v{color:var(--fg);font-weight:600;font-variant-numeric:tabular-nums}.owed-hero-log{width:100%;margin:.9rem 0 0}.cat-list{display:flex;flex-direction:column}.cat-list>*+*{margin-top:.5rem}.cat-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.cat-row-name{display:inline-flex;align-items:center;gap:.45rem;font-weight:600}.cat-icon{width:1.05rem;height:1.05rem;flex-shrink:0;color:var(--cat-color, #888);stroke-width:2.4px}.cat-flag{display:inline-flex;align-items:center;justify-content:center;width:1.05rem;height:1.05rem;font-size:1.05rem;line-height:1;flex-shrink:0}.cat-icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:0;background:none;border:0;cursor:pointer;flex-shrink:0}.cat-row-budget{font-size:.85rem;font-variant-numeric:tabular-nums}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.key{display:flex;align-items:center;justify-content:center;padding:0;min-height:3.5rem;font-size:1.6rem;font-weight:600;border-radius:var(--radius-12);background:linear-gradient(180deg,var(--key-grad-top) 0%,var(--surface) 55%,var(--key-grad-bottom) 100%);box-shadow:0 1px #ffffff0f inset,0 2px 0 var(--key-shadow),0 4px 8px #00000073;transition:transform var(--dur-press-release) var(--ease-keypad),box-shadow var(--dur-press-release) var(--ease-keypad),filter var(--dur-press-release) ease-out;touch-action:manipulation;user-select:none;-webkit-user-select:none}.key:active,.key.pressed{transform:translateY(2px) scale(.97);box-shadow:0 1px 2px #00000080 inset,0 0 0 var(--key-shadow),0 1px 2px #0006,0 0 10px color-mix(in srgb,var(--gold) 40%,transparent);filter:brightness(1.12);transition-duration:var(--dur-press)}@media(prefers-reduced-motion:reduce){.key{transition:none}.key:active,.key.pressed{transform:none}.amount.pop{animation:none}.draft-confirmed{animation:none;display:none}.row-detail{transition:none}.cat:active,.row--press:not(.expanded):active,.draft-row-open:active,.bank-check-row:active,.submit:active,.btn-secondary:active,.bank-skip:active{transform:none}.inbox-count.bumped,.bank-card.just-updated{animation:none}.bank-row-exit{animation:none;display:none}.sheet-backdrop,.sheet-backdrop:before,.sheet-backdrop.dim-out:before,.sheet-backdrop[data-entry-backdrop].entry-opening:before,.sheet,.sheet.closing,.sheet.snap-back,.entry-sheet.entry-opening{animation:none;transition:none}.skeleton:after{animation:none}.tab,.tab-inner,.tab-fab{transition:none}.tab:active .tab-inner{transform:none}.tab-fab:active{transform:translateY(-.6rem)}}.submit{padding:1rem;border-radius:var(--radius-10);background:var(--accent);color:var(--white);font-size:1.2rem;font-weight:700}.submit.expense{background:var(--expense)}.submit.income{background:var(--income)}.submit:disabled{opacity:.4}.login{justify-content:flex-start;padding-top:clamp(2rem,12vh,6rem);gap:1rem;max-width:360px;margin:0 auto;width:100%;min-height:auto}.brand-lg{text-align:center;font-size:2.5rem;margin:0 0 .5rem;-webkit-text-stroke:2.5px var(--brand-stroke);text-shadow:2px 2px 0 var(--brand-extrude),4px 4px 0 var(--brand-extrude),6px 6px 0 var(--brand-extrude),8px 8px 0 var(--brand-extrude)}.login-tagline{color:var(--muted);text-align:center;font-size:.95rem;margin:0 0 .5rem;line-height:1.45}.google-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.85rem 1rem;border-radius:var(--radius-10);background:var(--white);color:var(--google-btn-fg);border:1px solid var(--google-btn-border);font-size:1rem;font-weight:600}.google-btn:active{background:var(--google-btn-hover)}.google-g{flex-shrink:0}.apple-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.85rem 1rem;border-radius:var(--radius-10);background:var(--apple-btn-bg);color:var(--white);border:0;font-size:1rem;font-weight:600}.apple-btn:active{background:var(--apple-btn-bg-active)}.apple-logo{flex-shrink:0;margin-top:-2px}.test-login{display:flex;flex-direction:column;gap:.6rem;width:100%;margin-top:1.5rem}.test-login-label{font-size:.8rem;text-align:center;margin:0 0 .1rem}.test-login input{width:100%;padding:.7rem .85rem;border-radius:var(--radius-8);background:var(--surface);border:1px solid var(--border);color:var(--fg);font-size:.95rem}.test-login .btn-secondary{width:100%}.test-login .btn-secondary[aria-busy=true]{display:flex;align-items:center;justify-content:center;gap:.5rem;opacity:.75}.error{color:var(--expense);text-align:center;margin:0}.toast{position:fixed;left:50%;bottom:max(1.5rem,calc(env(safe-area-inset-bottom) + 1rem));transform:translate(-50%);background:var(--surface-2);color:var(--fg);padding:.6rem 1rem;border-radius:var(--radius-pill);font-size:.9rem;font-weight:600;box-shadow:0 4px 16px #0006;z-index:30;animation:toast-in var(--dur-state) ease-out}.toast-with-action{display:flex;align-items:center;gap:.75rem}.toast-action{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--accent);cursor:pointer}.coach-card{position:relative;display:flex;align-items:flex-start;gap:.5rem;margin-top:.5rem;padding:.6rem .7rem;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-left:3px solid var(--accent);border-radius:var(--radius-7)}.coach-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.coach-card-title{margin:0;font-size:.92rem;font-weight:700}.coach-card-check{color:var(--income)}.coach-card-body{margin:0;font-size:.82rem;line-height:1.4;color:var(--muted)}.coach-bubble{position:fixed;left:var(--coach-anchor-x, 50%);z-index:30;width:max-content;max-width:min(20rem,calc(100vw - 1.5rem));padding:.7rem .8rem;background:var(--accent);color:var(--white);border-radius:var(--radius-10);box-shadow:0 8px 24px #0006}.coach-bubble[data-tail=down]{top:var(--coach-anchor-y, auto);transform:translateY(-100%)}.coach-bubble[data-tail=up]{top:var(--coach-anchor-y, auto)}.coach-bubble-copy{margin:0 0 .5rem;font-size:.95rem;font-weight:700;line-height:1.3}.coach-bubble-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.coach-bubble-step{font-size:.78rem;font-weight:600;color:color-mix(in srgb,var(--white) 80%,transparent)}.coach-bubble-action{flex-shrink:0;background:var(--white);color:var(--accent);font-weight:700;font-size:.85rem;padding:.35rem .8rem;border-radius:var(--radius-pill);cursor:pointer}.coach-bubble-tail{position:absolute;left:var(--coach-tail-x, 50%);width:.85rem;height:.85rem;background:var(--accent);transform:translate(-50%) rotate(45deg)}.coach-bubble[data-tail=down] .coach-bubble-tail{bottom:-.35rem}.coach-bubble[data-tail=up] .coach-bubble-tail{top:-.35rem}.coach-bubble-in{animation:coach-bubble-in var(--dur-state) var(--ease-sheet)}@keyframes coach-bubble-in{0%{opacity:0}to{opacity:1}}.coach-pulse-target{animation:coach-target-pulse var(--dur-pulse) var(--ease-spring) 2}@keyframes coach-target-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@media(prefers-reduced-motion:reduce){.coach-bubble-in,.coach-pulse-target{animation:none}}.nudge{position:fixed;left:50%;transform:translate(-50%);bottom:calc(64px + env(safe-area-inset-bottom) + .5rem);z-index:6;display:flex;align-items:flex-start;gap:.6rem;width:calc(100% - 1.5rem);max-width:28rem;padding:.8rem .9rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-12);box-shadow:0 8px 24px #00000073}.nudge-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;color:var(--muted)}.nudge-body{flex:1;min-width:0}.nudge-title{margin:0;font-size:.95rem;font-weight:700}.nudge-sub{margin:.15rem 0 0;font-size:.82rem;line-height:1.4;color:var(--muted)}.nudge-actions{display:flex;align-items:center;gap:.5rem;margin-top:.7rem}.nudge-primary{flex:1;background:var(--accent);color:var(--white);font-weight:700;font-size:.9rem;padding:.55rem .9rem;border-radius:var(--radius-9);cursor:pointer}.nudge-secondary{flex-shrink:0;background:none;color:var(--muted);font-weight:700;font-size:.9rem;padding:.55rem .8rem;cursor:pointer}.nudge-in{animation:nudge-in var(--dur-sheet-open) var(--ease-sheet)}@keyframes nudge-in{0%{opacity:0;transform:translate(-50%,1rem)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.nudge-in{animation:none}}.update-banner{position:fixed;left:50%;transform:translate(-50%);top:max(.75rem,calc(env(safe-area-inset-top) + .25rem));z-index:20;display:flex;align-items:center;gap:.75rem;background:var(--surface-2);color:var(--fg);padding:.5rem .5rem .5rem .9rem;border-radius:var(--radius-pill);box-shadow:0 4px 16px #00000080;font-size:.9rem;font-weight:600;max-width:calc(100% - 1.5rem)}.update-btn{background:var(--accent);color:var(--white);font-weight:700;font-size:.85rem;padding:.4rem .9rem;border-radius:var(--radius-pill)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,.5rem)}to{opacity:1;transform:translate(-50%)}}.icon-sheet{max-height:80vh;display:flex;flex-direction:column}.icon-picker-scroll{overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;margin:0 -.25rem;padding:0 .25rem}.icon-group-head{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:.75rem 0 .4rem}.icon-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}.icon-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:3rem;border-radius:var(--radius-8);background:var(--surface-2);border:1px solid transparent;cursor:pointer}.icon-tile .cat-icon{width:1.5rem;height:1.5rem;color:var(--cat-color, #888)}.icon-tile .cat-flag{width:1.5rem;height:1.5rem;font-size:1.4rem}.icon-tile.sel{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.icon-auto-tag{font-size:.65rem;color:var(--muted)}.field-label{display:block;margin:.6rem 0 .3rem;font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.field-label:first-child{margin-top:0}.cat-swatch-row{display:flex;gap:.55rem;flex-wrap:wrap}.cat-swatch{width:2rem;height:2rem;padding:0;border-radius:var(--radius-circle);background:var(--cat-color, #888);border:2px solid transparent;cursor:pointer;flex-shrink:0}.cat-swatch.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.cat-swatch.auto{background:var(--surface-2);box-shadow:inset 0 0 0 3px var(--cat-color, #888)}.cat-swatch.auto.sel{box-shadow:inset 0 0 0 3px var(--cat-color, #888),0 0 0 2px var(--accent)}.cat-type-switch{align-self:flex-start;position:relative;width:3.4rem;height:1.9rem;padding:0;border-radius:var(--radius-pill);transition:background-color var(--dur-switch) ease}.cat-type-switch.expense{background:var(--expense)}.cat-type-switch.income{background:var(--income)}.cat-type-knob{position:absolute;top:.2rem;left:.2rem;width:1.5rem;height:1.5rem;border-radius:var(--radius-circle);background:var(--white);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.05rem;line-height:1;transition:transform var(--dur-switch) var(--ease-sheet)}.cat-type-switch.expense .cat-type-knob{color:var(--expense)}.cat-type-switch.income .cat-type-knob{color:var(--income);transform:translate(1.5rem)}:root{--warn: #e0954a}.bank-body{display:flex;flex-direction:column;gap:.5rem}.bank-card{gap:.35rem}.bank-verdict{font-size:1.35rem;font-weight:800}.bank-verdict.warn{color:var(--warn)}.bank-verdict.pos{color:var(--income)}.bank-action{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.bank-action-lead{min-width:0}.bank-action .bank-verdict{font-size:1.2rem}.bank-review-link{flex-shrink:0;background:none;border:0;padding:0;color:var(--accent);font-weight:700;font-size:.95rem;cursor:pointer}.verdict-sub{display:block;width:100%;padding:0;background:none;border:0;text-align:left;cursor:pointer;font:inherit;font-size:.92rem;font-weight:600}.verdict-sub.pos{color:var(--income)}.verdict-sub.warn{color:var(--warn)}.bank-subhead{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;padding:.15rem 0 .5rem}.bank-subhead .view-head{margin:0}.bank-subhead-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.bank-subhead-btn{display:flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--surface-2);color:var(--muted);cursor:pointer;transition:color var(--dur-state) ease,background-color var(--dur-state) ease}.bank-subhead-btn svg{width:1.15rem;height:1.15rem}.bank-connect-pill{padding:.45rem .8rem;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:.85rem;font-weight:700;white-space:nowrap;cursor:pointer}.view-head-sync{margin:.1rem 0 0;font-size:.78rem;color:var(--muted);transition:color var(--dur-state) ease}.view-head-sync.is-syncing{color:var(--accent)}.bank-resync.is-syncing{border-color:var(--accent-soft)}.bank-resync-pulse{display:inline-flex;gap:.16rem}.bank-resync-pulse span{width:.3rem;height:.3rem;border-radius:var(--radius-circle);background:var(--accent);opacity:.35;animation:onboarding-pulse var(--dur-onboarding-pulse) ease-in-out infinite}.bank-resync-pulse span:nth-child(2){animation-delay:.18s}.bank-resync-pulse span:nth-child(3){animation-delay:.36s}.bank-dim{opacity:.5;transition:opacity var(--dur-state) ease;pointer-events:none}@media(prefers-reduced-motion:reduce){.bank-resync-pulse span{animation:none;opacity:.7}}.bank-balances-panel{overflow:hidden;border-radius:var(--radius-11);background:var(--surface);border:1px solid var(--surface-2)}.bank-balances-head{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem .45rem}.bank-balances-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.bank-balance-cards{display:flex;gap:1px;background:var(--border)}.bank-balance-card{flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:12px 14px;background:var(--surface);border:0;text-align:center;cursor:pointer;transition:color var(--dur-state) ease,background-color var(--dur-state) ease}.bank-balance-card.sel,.bank-balance-card.sel .bank-balance-label,.bank-balance-card.sel .bank-balance-sub{color:var(--accent)}.bank-balance-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.bank-balance-amt{font-size:1.2rem;font-weight:800;font-variant-numeric:tabular-nums}.bank-balance-sub{font-size:11px}.bank-cards-info{width:20px;height:20px;border-radius:var(--radius-circle);background:var(--surface-2);border:0;color:var(--muted);font-size:.72rem;font-weight:700;font-style:italic;line-height:1;cursor:pointer}.bank-credit-debt{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.55rem .75rem;border:0;border-top:1px solid var(--border);border-radius:0;background:var(--surface);text-align:left;cursor:pointer}.bank-credit-debt-label{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--muted)}.bank-debt-icon{width:1rem;height:1rem;flex:none}.bank-debt-amt{font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums;padding:.1rem .5rem;border-radius:var(--radius-pill);transition:background-color var(--dur-state) ease}.bank-debt-amt.on{background:var(--accent-soft)}.bank-month-head{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.bank-filter-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .5rem .3rem .7rem;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:.8rem;font-weight:600}.bank-filter-clear{display:flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;border-radius:var(--radius-circle);background:transparent;color:inherit;font-size:.7rem;line-height:1;cursor:pointer}.bank-banner{padding:.5rem .7rem;border-radius:var(--radius-7);font-size:.85rem;line-height:1.35}.bank-banner.amber{background:#e2a95524;color:var(--warn)}.bank-banner.red{background:#e2555524;color:var(--expense)}.bank-banner code{font-size:.8em}.bank-reconnect-btn{display:inline-block;margin-top:.4rem;padding:.35rem .7rem;border-radius:var(--radius-6);border:1px solid currentColor;background:transparent;color:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.bank-connect{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center;padding:1.5rem 1rem}.bank-connect-icon{display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;border-radius:var(--radius-13);background:var(--accent-soft);color:var(--accent)}.bank-connect-icon svg{width:1.75rem;height:1.75rem}.bank-connect-title{font-size:1.35rem;font-weight:700}.bank-connect-why{max-width:22rem;line-height:1.45}.bank-connect-cta{width:100%;margin-top:.4rem;padding:1rem;border-radius:var(--radius-10);background:var(--accent);color:var(--white);font-size:1.1rem;font-weight:700}.bank-connect-cta:disabled{opacity:.6}.bank-connect-foot{font-size:.8rem}.plus-preview{width:100%;max-width:22rem}.plus-preview .draft-list{opacity:.45;pointer-events:none}.plus-chip{background:var(--gold-soft);color:var(--gold)}.owed-link-blurb{font-size:.8rem}.bank-review-btn{margin-top:.4rem;padding:.8rem;font-size:1rem}.bank-partial{font-size:.78rem}.bank-acct-select{flex:1;min-width:0;padding:.55rem .75rem;border-radius:var(--radius-8);background:var(--surface);color:var(--fg);border:1px solid var(--surface-2);font-size:.9rem;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23a7b0ba' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-mode-switch button,.bank-role-chip,.bank-reconnect-btn,.bank-disconnect{transition:background-color var(--dur-state) ease,border-color var(--dur-state) ease,box-shadow var(--dur-state) ease,color var(--dur-state) ease}.bank-list{display:flex;flex-direction:column;margin-top:.35rem}.bank-list>*+*{margin-top:.45rem}.bank-row{display:flex;align-items:center;gap:.6rem;width:100%;--row-pad: .6rem .75rem;--row-radius: .8rem;text-align:left}.bank-row:active{background:var(--surface-2)}.bank-row .txn-main{flex:1;min-width:0}.bank-row .txn-amt{flex-shrink:0}.bank-removed .txn-payee{text-decoration:line-through;opacity:.6}.bank-dot{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:var(--radius-circle);font-size:.75rem;font-weight:700}.bank-dot.accounted{background:#4caf5029;color:var(--income)}.bank-dot.attention{background:#e2a95529;color:var(--warn)}.bank-dot.aside{background:var(--surface-2);color:var(--muted)}.bank-empty{margin:1rem 0;text-align:center}.bank-detail-sheet,.bank-settings-sheet{display:flex;flex-direction:column;gap:.7rem;max-height:calc(100% - env(safe-area-inset-top,0px) - 2.5rem)}.bank-detail-main{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.bank-detail-merchant{font-size:1.15rem;font-weight:700;min-width:0;overflow-wrap:anywhere}.bank-detail-main .txn-amt{font-size:1.15rem;font-weight:700}.bank-detail-meta{margin:0;font-size:.85rem}.bank-detail-status{display:flex;align-items:flex-start;gap:.5rem;margin:0;font-size:.95rem;line-height:1.4}.bank-basis{display:block;margin-top:.2rem;font-size:.82rem}.bank-explainer{margin:0;padding:.7rem .85rem;border-radius:var(--radius-7);background:var(--surface-2);color:var(--muted);font-size:.9rem;line-height:1.5}.bank-detail-foot{margin:0;font-size:.82rem;line-height:1.45}.bank-ack-chips{display:flex;flex-wrap:wrap;gap:.5rem}.bank-skip{background:none;color:var(--accent);font-size:.9rem;margin-left:auto;margin-right:.6rem}.bank-acct-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem 0;border-bottom:1px solid var(--surface-2)}.bank-mode-switch{display:flex;flex-shrink:0;border-radius:var(--radius-7);overflow:hidden;background:var(--surface-2)}.bank-mode-switch button{display:flex;align-items:center;min-height:2.75rem;padding:.5rem .7rem;background:none;color:var(--muted);font-size:.85rem;font-weight:600}.bank-mode-switch button.active{background:var(--accent);color:var(--white)}.bank-track-toggle{display:inline-flex;align-items:center;gap:.55rem;flex-shrink:0;min-height:2.75rem;padding:0 .15rem;background:none;border:none;cursor:pointer}.bank-track-label{font-size:.85rem;font-weight:600;color:var(--muted)}.bank-track-toggle.tracked .bank-track-label{color:var(--accent-hi)}.bank-track-knob{position:relative;width:2.6rem;height:1.55rem;border-radius:var(--radius-pill);background:var(--surface-2);transition:background var(--dur-state) ease;flex-shrink:0}.bank-track-knob:after{content:"";position:absolute;top:.18rem;left:.18rem;width:1.19rem;height:1.19rem;border-radius:var(--radius-circle);background:var(--white);box-shadow:0 1px 2px #00000059;transition:transform var(--dur-state) ease}.bank-track-toggle.tracked .bank-track-knob{background:var(--accent)}.bank-track-toggle.tracked .bank-track-knob:after{transform:translate(1.05rem)}.bank-mode-note{margin:.35rem 0 0;font-size:.82rem}.bank-acct-row:has(.bank-acct-rowtop){flex-direction:column;align-items:stretch;gap:.5rem}.bank-acct-rowtop{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.bank-type-segmented{display:flex;gap:.4rem}.bank-type-seg{flex:1;min-height:2.4rem;padding:.5rem .4rem;border:1px solid var(--border);border-radius:var(--radius-8);background:none;color:var(--muted);font-size:.82rem;font-weight:700;transition:background var(--dur-switch) ease,color var(--dur-switch) ease,border-color var(--dur-switch) ease}.bank-type-seg.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.bank-settings-done{display:block;width:100%;margin-top:.85rem}.bank-role-chipset{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}.bank-role-chip{display:inline-flex;align-items:center;gap:.3rem;min-height:2.625rem;padding:.45rem .9rem;border-radius:var(--radius-pill);border:1px solid var(--surface-2);background:transparent;color:var(--muted);font-size:.88rem;font-weight:600;cursor:pointer}.bank-role-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hi)}.bank-role-chip-tick{font-size:.85em}.bank-check-row{width:100%;background:none;padding:.15rem .2rem;margin:-.15rem -.2rem;border-radius:var(--radius-4);font:inherit;text-align:inherit}.bank-check-row:active{background:var(--surface-2)}.bank-check-row{align-items:flex-start}.bank-check-row .k{flex-shrink:0;line-height:1.4}.bank-check-row .v{text-align:right;min-width:0;line-height:1.4}.tb-chevron{margin-left:.25rem;color:var(--muted);font-weight:700}.drift-ok{color:var(--income)}.drift-warn,.k.look-warn{color:var(--warn)}.bank-balances-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:none;display:flex;flex-direction:column;gap:.3rem;font-variant-numeric:tabular-nums}.bank-balances-body>*{flex-shrink:0}.bank-balance-note{font-size:.8rem;line-height:1.4;margin:.4rem 0 0}.balance-anchor .k{font-weight:700}.balance-anchor .v{font-size:1.35rem;font-weight:800}.bank-details-toggle{align-self:flex-start;margin-top:.6rem;padding:.35rem 0;background:none;border:0;color:var(--muted);font-size:.85rem;font-weight:600;cursor:pointer}.bank-linked{margin-top:.7rem}.bank-linked .section-head{display:block;margin-bottom:.2rem}.tb-sub{padding-left:.9rem}.bank-asof{font-size:.8rem;font-weight:400}.drift-select{flex:0 1 auto;width:auto;min-width:0;padding:.2rem 1.6rem .2rem .5rem;font-size:.8rem;border-radius:var(--radius-6);background-position:right .5rem center}.push-section{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--surface-2)}.push-head{font-size:.95rem;font-weight:700;margin-bottom:.4rem}.push-section .submit.push-enable{margin-top:.6rem}.settings-head{margin:1.1rem 0 .45rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.settings-group{background:var(--surface);border-radius:var(--radius-9);overflow:hidden}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:2.9rem;border:0;background:none;color:inherit;font:inherit;text-align:left}.row--card{background:var(--surface);border-radius:var(--row-radius);padding:var(--row-pad)}.row--flat{padding:.7rem .9rem;border-bottom:1px solid var(--surface-2)}.row--accent-left{border-left:3px solid var(--cat-color, #888)}[data-theme=ledger] .row--accent-left,[data-theme=terminal] .row--accent-left,[data-theme=dusk] .row--accent-left,[data-theme=ink] .row--accent-left,[data-theme=paper] .row--accent-left{border-left-color:transparent}.row[role=button]{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.settings-group>.settings-row:last-child{border-bottom:0}.settings-row[role=button]{cursor:pointer;transition:transform var(--dur-press) ease,background var(--dur-state) ease}.settings-row[role=button]:active{transform:scale(.985);background:var(--surface-2)}.theme-gallery{display:flex;flex-direction:column;gap:.5rem}.theme-card{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"strip name" "strip desc";column-gap:.7rem;row-gap:.1rem;align-items:center;width:100%;padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius-9);background:var(--surface);color:var(--fg);font:inherit;text-align:left;cursor:pointer;position:relative;transition:box-shadow var(--dur-state) ease,background var(--dur-state) ease}.theme-card.on{box-shadow:inset 0 0 0 2px var(--accent)}.theme-card.on:after{content:"✓";position:absolute;top:.55rem;right:.7rem;color:var(--accent);font-weight:700;font-size:.85rem}.theme-card:active{background:var(--surface-2)}.theme-swatch-strip{grid-area:strip;display:inline-flex;gap:.2rem}.theme-swatch{width:14px;height:14px;border-radius:var(--radius-circle);box-shadow:inset 0 0 0 1px var(--border)}.theme-name{grid-area:name;font-weight:600}.theme-desc{grid-area:desc;font-size:.8rem;color:var(--muted)}.settings-row[disabled]{opacity:.55;cursor:default}.settings-row-icon{display:inline-flex;align-items:center;flex-shrink:0;color:var(--muted)}.settings-row-icon.accent{color:var(--accent)}.settings-row-icon.danger{color:var(--expense)}.settings-row-label{flex:1;font-size:.95rem;font-weight:600}.settings-row-label.accent{color:var(--accent)}.settings-row-label.muted{font-weight:500;color:var(--muted)}.settings-row-label.danger{color:var(--expense)}.settings-hint{margin:.5rem .2rem 0;font-size:.82rem;color:var(--muted)}.push-switch{display:inline-flex;align-items:center;background:none;border:0;padding:.2rem;cursor:pointer;flex-shrink:0}.push-switch .co-switch{width:2.6rem;height:1.5rem;background:var(--muted)}.push-switch .co-knob{width:1.3rem;height:1.3rem;top:.1rem;left:.1rem}.push-switch.on .co-switch{background:var(--accent)}.push-switch.on .co-knob{transform:translate(1.1rem)}.push-switch:disabled{opacity:.55;cursor:default}.bank-section .submit.bank-connect{margin-top:.6rem;background:var(--accent)}.bank-status-line{display:flex;align-items:center;gap:.45rem;margin:.2rem 0 0;font-size:.95rem}.bank-status-dot{width:.5rem;height:.5rem;border-radius:var(--radius-pill);background:var(--muted);flex:none}.bank-status-dot.connected{background:var(--income)}.bank-disconnect{display:inline-block;margin-top:.7rem;font-size:.82rem}.bank-link-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--surface-2)}.settings-row .bank-disconnect{margin:0;flex:none}.bank-reauth-chip{display:inline-block;margin-left:.4rem;padding:.1rem .45rem;border:none;border-radius:var(--radius-pill);background:#e2a95529;color:var(--warn);font-size:.7rem;font-weight:700;white-space:nowrap;cursor:pointer}.subs-summary{margin:.2rem 0 .6rem;font-size:.95rem;font-weight:600}.subs-list{display:flex;flex-direction:column}.subs-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--surface-2)}.subs-row:last-child{border-bottom:none}.subs-row-main{flex:1 1 auto;min-width:0}.subs-merchant{font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subs-category{font-size:.8rem;margin-top:.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subs-row-amts{text-align:right;flex:none}.subs-price{font-size:.9rem;white-space:nowrap}.subs-annual{font-weight:700;font-size:1rem}.subs-lastseen{font-size:.78rem;margin-top:.1rem;white-space:nowrap}.subs-footer{margin-top:1rem;font-size:.8rem;line-height:1.4}.subs-empty{margin-top:.6rem;line-height:1.5}.onboarding-catchup{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.7rem;padding:2.5rem .5rem 1.5rem}.onboarding-pulse{display:flex;gap:.45rem}.onboarding-pulse span{width:.6rem;height:.6rem;border-radius:var(--radius-circle);background:var(--accent);opacity:.35;animation:onboarding-pulse var(--dur-onboarding-pulse) ease-in-out infinite}.onboarding-pulse span:nth-child(2){animation-delay:.18s}.onboarding-pulse span:nth-child(3){animation-delay:.36s}@keyframes onboarding-pulse{0%,80%,to{opacity:.35;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.onboarding-pulse span{animation:none;opacity:.7;transform:none}}.onboarding-headline{font-size:1.15rem;font-weight:700}.onboarding-sub{font-size:.88rem;line-height:1.45;max-width:22rem}.reseed-check{font-size:2.4rem;line-height:1;color:var(--income);animation:reseed-check-pop var(--dur-reseed-check) var(--ease-spring)}@keyframes reseed-check-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.reseed-check{animation:none}}.onboarding-body{display:flex;flex-direction:column;gap:.7rem}.onboarding-count{font-size:1rem;margin:.2rem 0 0}.onboarding-count strong{color:var(--accent);font-size:1.25rem;font-weight:800}.onboarding-note{font-size:.85rem;line-height:1.4;margin:0}.onboarding-once{font-size:.8rem;margin:0}.onboarding-cat-summary{display:flex;flex-direction:column;background:var(--accent-soft);border-radius:var(--radius-7);padding:.3rem .7rem}.onboarding-cat-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem 0;border-bottom:1px solid color-mix(in srgb,var(--accent) 14%,transparent)}.onboarding-cat-row:last-child{border-bottom:none}.onboarding-cat-name{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.onboarding-cat-count{flex:none;font-variant-numeric:tabular-nums;font-size:.85rem}.onboarding-cat-more .muted{font-size:.82rem}.onboarding-actions{display:flex;flex-direction:column;align-items:stretch;gap:.3rem;margin-top:.4rem}.onboarding-skip{align-self:center}.acctpick-sub{font-size:.88rem;line-height:1.45;margin:.1rem 0 .4rem}.acctpick-list{display:flex;flex-direction:column}.acctpick-list .bank-acct-row:last-child{border-bottom:none}.acctpick-actions{display:flex;flex-direction:column;align-items:stretch;margin-top:.9rem}.bank-imported-fact{font-size:.82rem;line-height:1.4;margin:.1rem 0 0}.bank-acct-group{margin-top:.4rem}.bank-acct-grouphead{display:flex;align-items:baseline;gap:.5rem;margin:.6rem 0 .1rem}.bank-acct-grouphead .bank-acct-synced{margin-right:auto}.bank-acct-bankname{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.bank-acct-synced{font-size:.75rem}.bank-acct-empty{margin:.2rem 0;font-size:.82rem}.confirm-detail{margin:.6rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:.88rem;line-height:1.4}.confirm-detail li{margin-top:.3rem}.recap-launch-row{display:flex;justify-content:center;margin:-.1rem 0 .1rem}.recap-launch{padding:.3rem .85rem;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-hi);font-size:.82rem;font-weight:600;letter-spacing:.01em}.recap-launch:active{transform:scale(.96);transition:transform var(--dur-press) ease-out}.recap-sheet{gap:.75rem}.recap-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.recap-kicker{font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-hi)}.recap-state{display:flex;flex-direction:column;gap:1rem;padding:1.5rem 0}.recap-track{display:flex;gap:.85rem;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:.25rem .1rem .5rem}.recap-track::-webkit-scrollbar{display:none}.recap-card{scroll-snap-align:center;flex:0 0 100%;min-height:22rem;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:1rem;padding:1.5rem 1.35rem;border-radius:var(--radius-14);background:var(--accent-tint);border:1px solid var(--surface-2)}@keyframes recap-card-rise{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}.recap-card-enter{animation:recap-card-rise var(--dur-sheet-open) var(--ease-sheet)}@media(prefers-reduced-motion:reduce){.recap-card-enter{animation:none}}.recap-card-title{font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.recap-card-note{font-size:.9rem;color:var(--muted);line-height:1.4}.recap-card-cover{align-items:flex-start;text-align:left}.recap-cover-title{font-size:2.1rem;font-weight:800;line-height:1.1}.recap-cover-count{font-size:1.05rem;color:var(--muted);font-weight:600}.recap-cover-flow{display:flex;align-items:baseline;gap:.5rem;font-size:1.15rem;font-weight:700;flex-wrap:wrap}.recap-flow-sep{color:var(--muted);font-weight:400}.recap-flow-in{color:var(--income)}.recap-cover-net{font-size:1.5rem;font-weight:800}.recap-cover-net.pos{color:var(--income)}.recap-cats{display:flex;flex-direction:column;gap:.9rem}.recap-cat-row{display:flex;flex-direction:column;gap:.4rem}.recap-cat-line{display:flex;align-items:center;gap:.5rem;font-weight:600}.recap-cat-icon{display:inline-flex;align-items:center;color:var(--cat-color, var(--accent))}.recap-cat-icon .cat-icon{width:1.2rem;height:1.2rem}.recap-cat-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recap-cat-amt{font-variant-numeric:tabular-nums}.recap-bar{height:1.1rem;border-radius:var(--radius-pill);background:var(--surface-2);overflow:hidden}.recap-bar-fill{display:flex;align-items:center;justify-content:flex-end;height:100%;min-width:1.6rem;padding-right:.4rem;border-radius:var(--radius-pill);background:var(--cat-color, var(--accent));color:var(--white);font-size:.68rem;font-weight:700}.recap-under-big{font-size:1.45rem;font-weight:700;line-height:1.3;color:var(--income)}.recap-under-big strong{font-size:1.8rem;font-weight:800}.recap-under-amt{color:var(--income);font-weight:700}.recap-card-reconciled{align-items:flex-start}.recap-reconciled-mark{font-size:2.6rem;font-weight:800;line-height:1;color:var(--income)}.recap-reconciled-big{font-size:1.45rem;font-weight:700;line-height:1.3}.recap-card-onward{align-items:flex-start}.recap-onward-kicker{font-size:1.05rem;font-weight:700;letter-spacing:.02em}.recap-onward-gold{color:var(--gold);font-weight:800}.recap-onward-big{font-size:1.8rem;font-weight:800;line-height:1.15}.recap-actions{display:flex;gap:.6rem;width:100%;margin-top:.5rem}.recap-actions .btn-secondary,.recap-actions .submit{flex:1}.recap-actions .submit{background:var(--accent)}.recap-dots{display:flex;justify-content:center;gap:.4rem;padding:.1rem 0 .2rem}.recap-dot{width:.5rem;height:.5rem;border-radius:var(--radius-circle);background:var(--surface-2);transition:background var(--dur-state) ease,transform var(--dur-state) ease}.recap-dot.active{background:var(--accent);transform:scale(1.25)}@media(prefers-reduced-motion:reduce){.recap-dot{transition:none}}.welcome-card{justify-content:flex-start;align-items:flex-start;text-align:left;gap:.85rem}.welcome-card-cover{justify-content:center;gap:1rem}.welcome-brand{font-size:2.6rem;line-height:1.1}.welcome-headline,.welcome-card .recap-card-title{font-family:var(--font-display);font-weight:400;color:var(--gold);-webkit-text-fill-color:var(--gold);-webkit-text-stroke:1.2px var(--brand-stroke);paint-order:stroke fill;text-transform:none;letter-spacing:.01em;line-height:1.18}.welcome-headline{font-size:2.1rem}.welcome-card .recap-card-title{font-size:1.5rem}.welcome-body{font-size:1rem;line-height:1.5;color:var(--fg)}.welcome-card-closer{justify-content:center}.welcome-replay-hint{font-size:.85rem;margin-top:.5rem}
