@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600 700;font-stretch:100%;font-display:swap;src:url(/assets/bricolage-grotesque-latin-C23fTOVi.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 600;font-stretch:100%;font-display:swap;src:url(/assets/instrument-sans-latin-CclBWeUS.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-mono-400-latin-BJoXLJYV.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-mono-500-latin-C820gu2e.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f2f5f3;--surface: #ffffff;--surface-2: #e8eeeb;--ink: #0f1d18;--ink-2: #41524b;--muted: #5c6c65;--line: #d8e0dc;--line-strong: #b9c6c0;--accent: #157a5a;--accent-text: #0e5f44;--accent-soft: #d6ece3;--on-accent: #ffffff;--reserve: #8a5400;--reserve-soft: #f7ead2;--bad: #b8332b;--bad-soft: #f9e0dd;--on-bad: #ffffff;--in: #2a78d6;--in-text: #1f5fae;--in-soft: #dde9f8;--out: #eb6834;--out-text: #b04410;--out-soft: #fbe6dc;--series-1: #157a5a;--series-2: #6250d6;--scrim: rgba(15, 29, 24, .42);--shadow: 0 1px 2px rgba(15, 29, 24, .04), 0 8px 24px rgba(15, 29, 24, .05);--shadow-sheet: 0 -8px 32px rgba(15, 29, 24, .18);--font-display: "Bricolage Grotesque", "Avenir Next", "Segoe UI", system-ui, sans-serif;--font-body: "Instrument Sans", -apple-system, "Segoe UI", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .84375rem;--text-md: .9375rem;--text-lg: 1.125rem;--text-xl: 1.4375rem;--space-xs: 4px;--space-snug: 6px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--radius: 14px;--radius-sm: 10px;--radius-pill: 999px;--tap: 44px;--date-block: 44px;--tabbar-h: 64px;--fab-size: 56px;--rail-w: 232px;--shadow-toast: 0 10px 30px rgba(0, 0, 0, .22);--shadow-fab: 0 10px 24px rgba(15, 29, 24, .28), 0 1px 3px rgba(15, 29, 24, .3);--shadow-chip: 0 1px 2px rgba(15, 29, 24, .12);--ease-out: cubic-bezier(.25, 1, .5, 1);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d1412;--surface: #141d1a;--surface-2: #1d2925;--ink: #e7eeeb;--ink-2: #b0bfb9;--muted: #84948d;--line: #26332e;--line-strong: #3a4a44;--accent: #3fbf91;--accent-text: #3fbf91;--accent-soft: #163a2e;--on-accent: #06140f;--reserve: #e2a845;--reserve-soft: #352812;--bad: #f07a70;--bad-soft: #3a1a17;--on-bad: #2a0d0a;--in: #3987e5;--in-text: #6aa8f0;--in-soft: #14283f;--out: #d95926;--out-text: #f08a5a;--out-soft: #3a1f12;--series-1: #199e70;--series-2: #9085e9;--scrim: rgba(3, 8, 6, .62);--shadow: none;--shadow-sheet: 0 -8px 32px rgba(0, 0, 0, .5);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:var(--text-md) / 1.55 var(--font-body);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}[hidden]{display:none!important}h1,h2,h3,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}h1,h2{color:var(--ink);font-family:var(--font-display);font-weight:700;text-wrap:balance}h1{font-size:clamp(1.75rem,6vw,2.5rem);line-height:1.05;letter-spacing:-.02em}h2{font-size:var(--text-lg);line-height:1.2;letter-spacing:-.01em}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#main:focus,.modal:focus{outline:none}code{font-family:var(--font-mono);font-size:.92em}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.label,.eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.icon{flex:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.tone-in{color:var(--in-text)}.tone-out{color:var(--out-text)}.tone-reserve{color:var(--reserve)}.tone-bad{color:var(--bad)}.tone-good{color:var(--accent-text)}.money .unit{font-family:var(--font-body);font-size:var(--text-md);font-weight:500;letter-spacing:0;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--tap);padding:0 var(--space-lg);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:var(--text-md);font-weight:600;line-height:1.2;white-space:nowrap;text-decoration:none;transition:background-color .15s var(--ease-out),border-color .15s var(--ease-out),transform .1s var(--ease-out)}.btn:hover{border-color:var(--muted)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.sm{padding:0 var(--space-md);font-size:.875rem}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}.btn.danger:hover{background:var(--bad-soft)}.icon-btn{display:inline-grid;place-items:center;flex:none;width:var(--tap);height:var(--tap);padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-2)}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn.danger:hover:not(:disabled){background:var(--bad-soft);color:var(--bad)}.link-btn{min-height:var(--tap);padding:0 var(--space-sm);border:0;background:none;color:var(--accent-text);font-size:var(--text-sm);font-weight:600;text-decoration:underline;text-underline-offset:3px}.chips{display:flex;gap:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xs);scrollbar-width:none}.chips.wrap{flex-wrap:wrap;overflow:visible}.chips::-webkit-scrollbar{display:none}.chip{flex:none;min-height:var(--tap);padding:0 var(--space-lg);border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:transparent;color:var(--ink-2);font-size:var(--text-sm);font-weight:500;transition:background-color .15s var(--ease-out),color .15s var(--ease-out)}.chip:hover{background:var(--surface-2)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}a.btn{text-decoration:none}.status-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:2px 9px 2px 7px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;line-height:1.5;white-space:nowrap}.status-chip.pending{background:var(--surface-2);color:var(--ink-2)}.status-chip.done{background:var(--accent-soft);color:var(--accent-text)}.inactive-tag{padding:2px 8px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--muted);font-size:var(--text-xs);font-weight:600}.status-note{color:var(--accent-text);font-size:var(--text-xs);font-weight:600}.type-tag.neutral{color:var(--muted)}.panel{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);min-width:0;padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.panel-note{margin-top:var(--space-xs);color:var(--muted);font-size:var(--text-sm);max-width:62ch}.ledger>li{border-top:1px solid var(--line)}.ledger>li:first-child{border-top:0}.row-main{display:grid;gap:2px;min-width:0}.row-title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-sm);font-weight:600;line-height:1.35}.row-meta{display:flex;flex-wrap:wrap;gap:0 var(--space-md);color:var(--muted);font-size:var(--text-sm)}.row-meta .late{color:var(--bad);font-weight:600}.row-amount{font-size:var(--text-lg);font-weight:500;white-space:nowrap}.subhead{margin:0 0 var(--space-sm);color:var(--muted);font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;letter-spacing:.09em;text-transform:uppercase}.panel-head.wrap{flex-wrap:wrap}.panel-head.wrap>:first-child{flex:1 1 16rem}.progress-list{display:grid;gap:var(--space-lg)}.progress-row{display:grid;gap:var(--space-snug)}.progress-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 var(--space-md)}.progress-label{font-weight:600}.progress-values{display:inline-flex;align-items:baseline;gap:var(--space-sm);font-size:var(--text-md)}.progress-values .of{color:var(--muted);font-size:var(--text-sm)}.bar{height:6px;overflow:hidden;border-radius:3px;background:var(--surface-2)}.bar>span{display:block;height:100%;border-radius:3px;transform-origin:left center;transition:transform .6s var(--ease-out)}.bar.in>span{background:var(--in-text)}.bar.out>span{background:var(--out-text)}.progress-count{color:var(--muted);font-size:var(--text-sm)}.bar-list{display:grid;gap:var(--space-md)}.bar-list>li{display:grid;gap:var(--space-snug)}.bar-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md)}.bar-list-label{min-width:0;font-weight:600;overflow-wrap:anywhere}.bar-list-values{display:flex;flex:none;align-items:baseline;gap:var(--space-sm)}.bar-list-pct{min-width:3.6em;color:var(--muted);font-size:var(--text-sm);text-align:right}.bar.accent>span{background:var(--series-1)}.empty-state{display:grid;gap:var(--space-xs);justify-items:start;padding:var(--space-md) 0}.empty-title{font-weight:600}.empty-body{max-width:54ch;color:var(--muted);font-size:var(--text-sm)}.form{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.field{display:grid;gap:var(--space-snug)}.field-label{color:var(--ink-2);font-size:var(--text-sm);font-weight:600}.input{width:100%;min-width:0;min-height:var(--tap);padding:0 var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink);font-size:1rem}.input.num{text-align:right}.input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.input[aria-invalid=true]{border-color:var(--bad)}.field-hint{color:var(--muted);font-size:var(--text-sm)}.field-error{color:var(--bad);font-size:var(--text-sm);font-weight:500}.check{display:flex;align-items:flex-start;gap:var(--space-sm);min-height:var(--tap);padding:var(--space-xs) 0;font-weight:600;cursor:pointer}.check input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--bad)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:var(--scrim);animation:fade-in .2s var(--ease-out) both}.modal{display:flex;flex-direction:column;width:100%;max-width:520px;max-height:min(92dvh,760px);overflow:hidden;border-radius:20px 20px 0 0;background:var(--surface);box-shadow:var(--shadow-sheet);animation:sheet-up .28s var(--ease-out) both}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-lg) var(--space-sm) var(--space-sm) var(--space-lg)}.modal-head h2{font-size:var(--text-xl)}.modal-body{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:var(--space-lg);padding:var(--space-sm) var(--space-lg) var(--space-lg);overflow-y:auto;overscroll-behavior:contain}.modal-description{color:var(--ink-2);font-size:var(--text-md);max-width:60ch}.modal-choices{display:grid;gap:var(--space-sm);margin-top:var(--space-md)}.modal-choices .btn{width:100%}.modal-foot{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg) calc(var(--space-md) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--surface)}.modal-foot .btn{flex:1}@media(min-width:640px){.modal-backdrop{align-items:center}.modal{border-radius:20px;animation-name:dialog-in}.modal-foot{justify-content:flex-end;padding-bottom:var(--space-md)}.modal-foot .btn{flex:0 0 auto;min-width:128px}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(32px);opacity:0}}@keyframes dialog-in{0%{transform:translateY(12px) scale(.98);opacity:0}}.toast-region{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + var(--fab-size) + var(--space-xl));z-index:60;display:flex;justify-content:center;padding:0 var(--space-lg);pointer-events:none}.toast{max-width:min(520px,100%);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-sm);background:var(--ink);color:var(--bg);font-size:var(--text-md);font-weight:500;box-shadow:var(--shadow-toast);animation:toast-in .25s var(--ease-out) both}.toast.error{background:var(--bad);color:var(--on-bad)}.toast.has-action{display:flex;align-items:center;gap:var(--space-md);padding-right:var(--space-sm);pointer-events:auto}.toast-action{flex:none;min-height:var(--tap);padding:0 var(--space-md);border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}@media(min-width:900px){.toast-region{bottom:var(--space-xl);left:var(--rail-w)}}.month-nav{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--space-xs)}.month-label{min-width:11.5rem;text-align:center;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);border-top:1px solid var(--line);background:var(--surface)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--tabbar-h);color:var(--ink-2);text-decoration:none}.tab-icon{display:grid;place-items:center;width:56px;height:30px;border-radius:15px;transition:background-color .2s var(--ease-out)}.tab-label{font-size:var(--text-2xs);font-weight:600;letter-spacing:.01em;line-height:1.15;text-align:center;text-wrap:balance}.tab[aria-current=page]{color:var(--ink)}.tab[aria-current=page] .tab-icon{background:var(--accent-soft);color:var(--accent-text)}@media(min-width:900px){.tabbar{top:0;right:auto;width:var(--rail-w);display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-xl) var(--space-md);border-top:0;border-right:1px solid var(--line)}.tab{flex-direction:row;justify-content:flex-start;gap:var(--space-md);min-height:var(--tap);padding:0 var(--space-sm);border-radius:var(--radius-sm)}.tab:hover{background:var(--surface-2)}.tab-icon{width:32px;height:32px;border-radius:10px}.tab-label{font-size:var(--text-md)}.tab[aria-current=page]{background:var(--accent-soft)}.tab[aria-current=page] .tab-icon{background:transparent}.tab[aria-current=page] .tab-label{color:var(--accent-text)}}.offline-banner{display:flex;align-items:center;gap:var(--space-sm);max-width:720px;margin:0 auto var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:var(--reserve-soft);color:var(--ink);font-size:var(--text-sm);font-weight:500}.offline-banner .banner-text{flex:1;min-width:0}.offline-banner .banner-action{flex:none}.skeleton{display:grid;gap:var(--space-md);margin-top:var(--space-lg)}.sk-line{display:block;height:14px;border-radius:7px;background:var(--surface-2);animation:pulse 1.4s ease-in-out infinite}.sk-line.wide{height:var(--tap);border-radius:10px}.sk-line.short{width:55%}@keyframes pulse{50%{opacity:.45}}.privacy-toggle[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text)}.money.masked{letter-spacing:.08em}.fab{position:fixed;right:max(var(--space-lg),env(safe-area-inset-right,0px));bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + var(--space-md));z-index:40;display:grid;place-items:center;width:var(--fab-size);height:var(--fab-size);padding:0;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-fab);transition:transform .15s var(--ease-out),filter .15s var(--ease-out)}.fab:hover{filter:brightness(1.07)}.fab:active{transform:scale(.95)}@media(min-width:900px){.fab{right:var(--space-2xl);bottom:var(--space-2xl)}}.segmented{display:flex;gap:var(--space-xs);width:fit-content;max-width:100%;padding:var(--space-xs);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.segmented a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--space-xl);border-radius:8px;color:var(--ink-2);font-weight:600;text-decoration:none}.segmented a[aria-current=page]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-chip)}.chip-hint{margin-left:var(--space-snug);font-size:var(--text-xs);font-weight:600;opacity:.7}.mode-toggle .chip{flex:1}.link-btn.start{justify-self:start;padding-left:0}.chip.with-icon{display:inline-flex;align-items:center;gap:var(--space-xs)}.amount-input{position:relative;display:flex;align-items:center}.amount-input .input{padding-right:4.75rem}.amount-unit{position:absolute;right:var(--space-md);color:var(--muted);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;pointer-events:none}.amount-input.large .input{min-height:68px;padding-right:5.5rem;font-size:2rem;font-weight:500;letter-spacing:-.02em}.amount-input.large .amount-unit{right:var(--space-lg);font-size:var(--text-md)}.notice{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:var(--ink);font-size:var(--text-sm);font-weight:500}.notice .icon{margin-top:2px}.notice.warn{background:var(--reserve-soft)}.notice.bad{background:var(--bad-soft)}.prompt{display:flex;align-items:center;gap:var(--space-md);width:100%;min-height:56px;padding:var(--space-md) var(--space-lg);border:1px dashed var(--accent);border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-text);text-align:left;text-decoration:none}.prompt>span{display:grid;gap:2px}.prompt strong{font-weight:700}.prompt>span>span{color:var(--ink-2);font-size:var(--text-sm)}.notice-body{display:grid;gap:var(--space-sm);min-width:0}.notice-body>p{margin:0}.rates-strip{display:grid;gap:var(--space-xs);padding-top:var(--space-md);border-top:1px solid var(--line)}.rates-strip ul{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-xl)}.rates-strip li{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-sm);font-size:var(--text-sm)}.rate-name{font-weight:600}.rate-stamp{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-sm);color:var(--muted);font-size:var(--text-sm)}.rate-stamp.missing{color:var(--bad);font-weight:600}.stale-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:var(--radius-pill);background:var(--reserve-soft);color:var(--reserve);font-size:var(--text-xs);font-weight:600}.split{display:grid;gap:var(--space-sm)}.split-bar{display:flex;gap:3px;height:10px;overflow:hidden;border-radius:5px;background:var(--surface-2)}.split-bar .seg{flex-basis:0;min-width:0;border-radius:3px;transition:flex-grow .5s var(--ease-out)}.seg.free,.dot.free{background:var(--accent)}.seg.set,.dot.set{background:var(--in)}.seg.debt,.dot.debt{background:var(--reserve)}.facts.split-legend{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-xs)}.split-legend dt{display:flex;align-items:center;gap:var(--space-snug)}.facts.split-legend dd{font-size:var(--text-md);overflow-wrap:anywhere}.dot{flex:none;width:8px;height:8px;border-radius:50%}.seg.accounts,.dot.accounts{background:var(--accent)}.seg.invested,.dot.invested{background:var(--in)}.seg.assets,.dot.assets{background:var(--ink-2)}.facts.split-legend.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.dot.s1{background:var(--series-1)}.dot.s2{background:var(--series-2)}.gate-card.onboarding{max-width:520px}.choice{display:grid;gap:var(--space-sm);padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.preview-counts{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);color:var(--ink-2);font-size:var(--text-sm);font-weight:500}.issue-list{display:grid;gap:var(--space-xs);margin-top:calc(var(--space-xs) - var(--space-sm))}.issue-list code{color:var(--bad)}.data-table-wrap{min-width:0}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table th,.data-table td{padding:var(--space-sm) var(--space-sm);border-top:1px solid var(--line);text-align:left;vertical-align:baseline}.data-table thead th{border-top:0;color:var(--muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.data-table .end{text-align:right}.data-table th.primary{font-weight:600}.data-table th.primary>span+.type-tag{margin-left:var(--space-sm)}.data-table td .money{font-size:var(--text-md)}@media(max-width:719px){.data-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.data-table,.data-table tbody{display:block}.data-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs) var(--space-lg);padding:var(--space-md) 0;border-top:1px solid var(--line)}.data-table tbody tr:first-child{border-top:0}.data-table th.primary{grid-column:1 / -1;padding:0;border:0}.data-table td{display:grid;gap:0;padding:0;border:0;text-align:left}.data-table td.end{text-align:left}.data-table td:before{content:attr(data-label);color:var(--muted);font-size:var(--text-xs);font-weight:500}}.app{min-height:100dvh}.main{padding-top:max(var(--space-lg),env(safe-area-inset-top,0px));padding-right:max(var(--space-lg),env(safe-area-inset-right,0px));padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + var(--fab-size) + var(--space-3xl));padding-left:max(var(--space-lg),env(safe-area-inset-left,0px))}.page{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-lg);max-width:720px;margin:0 auto}.page>*{animation:rise .4s var(--ease-out) both}.page>:nth-child(2){animation-delay:50ms}.page>:nth-child(3){animation-delay:.1s}.page>:nth-child(4){animation-delay:.15s}.page>:nth-child(n+5){animation-delay:.2s}@keyframes rise{0%{transform:translateY(8px);opacity:0}}@media(min-width:900px){.main{padding-top:var(--space-2xl);padding-bottom:var(--space-3xl);padding-left:calc(var(--rail-w) + var(--space-2xl));padding-right:var(--space-2xl)}.page{max-width:800px;margin:0}.panel{padding:var(--space-xl)}}.page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-xs) var(--space-lg);padding-top:var(--space-sm)}.page-head-tools{display:flex;align-items:center;gap:var(--space-sm)}.page-head>:nth-child(n+3){grid-column:1 / -1}.page-title{display:grid;gap:var(--space-xs)}.month-tools{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--space-md)}.action-bar{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.hero-wrap{container-type:inline-size}.hero{grid-template-areas:"label" "big" "split" "lines" "rates";gap:var(--space-xs) var(--space-xl)}.hero>.label{grid-area:label}.hero>.big{grid-area:big;margin:var(--space-xs) 0 var(--space-md);font-size:clamp(2.5rem,12vw,3.75rem);font-weight:500;letter-spacing:-.04em;line-height:1;overflow-wrap:anywhere}.hero .big .money .unit{font-size:var(--text-lg);letter-spacing:0}.hero .ledger-lines{grid-area:lines;display:grid;align-content:start}.ledger-lines li{display:flex;align-items:baseline;gap:var(--space-sm);padding:9px 0;font-size:var(--text-md)}.ledger-lines li:after{content:"";order:1;flex:1;min-width:16px;border-bottom:1px dotted var(--line-strong);transform:translateY(-3px)}.ledger-lines li>.money,.ledger-lines li>.line-amounts{order:2;white-space:nowrap}.line-amounts{display:grid;justify-items:end}.hero .hero-split{grid-area:split;display:grid;gap:var(--space-xs)}.hero .rates-strip{grid-area:rates}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-md) var(--space-lg);margin-top:var(--space-md)}.facts>div{min-width:0;padding-top:var(--space-sm);border-top:1px solid var(--line)}.facts dt{color:var(--muted);font-size:var(--text-sm)}.facts dd{margin-top:2px;font-size:var(--text-xl);font-weight:500}.facts dd .money .unit{font-size:var(--text-sm)}@container (min-width: 540px){.hero{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-areas:"label lines" "big lines" "split lines" "rates rates";align-content:start}}.date-block{display:grid;justify-items:center;align-content:center;width:var(--date-block);min-height:var(--date-block);border-radius:var(--radius-sm);background:var(--surface-2);line-height:1.1}.date-block .day{font-size:var(--text-lg);font-weight:500}.date-block .mon{color:var(--muted);font-size:var(--text-2xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.date-block.flat{background:transparent}.upcoming-row{display:grid;grid-template-columns:var(--date-block) minmax(0,1fr) auto;align-items:center;gap:var(--space-md);width:100%;min-height:60px;padding:var(--space-sm) var(--space-xs);border:0;border-radius:var(--radius-sm);background:none;text-align:left;transition:background-color .15s var(--ease-out)}.upcoming-row:hover{background:var(--surface-2)}.upcoming-row .row-title{display:block}.type-tag{font-size:var(--text-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.type-tag.income{color:var(--in-text)}.type-tag.fixed,.type-tag.planned{color:var(--out-text)}.type-tag.debt{color:var(--reserve)}.schedule-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main actions" "amount actions";align-items:center;gap:var(--space-xs) var(--space-md);padding:var(--space-md) 0}.schedule-row>.row-main{grid-area:main}.schedule-row>.row-amount,.schedule-row>.debt-amount{grid-area:amount}.schedule-row>.row-actions{grid-area:actions;display:flex;justify-content:flex-end}.debt-amount{display:flex;align-items:baseline;gap:var(--space-sm)}@media(min-width:640px){.schedule-row{grid-template-columns:minmax(0,1fr) auto 148px;grid-template-areas:"main amount actions"}.schedule-row>.debt-amount{flex-direction:column;align-items:flex-end;gap:0}.schedule-row>.row-actions .btn{width:100%}}.change-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-xs) 0;font-size:var(--text-sm)}.movement-row{display:grid;grid-template-columns:var(--date-block) minmax(0,1fr) auto auto;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0}.movement-row .row-amount{font-size:var(--text-md)}.opening-tag{font-style:italic}.totals{margin:0;padding-bottom:var(--space-sm)}.totals dd{font-size:var(--text-lg)}.settings-row{display:grid;gap:var(--space-sm);padding:var(--space-md) 0}.settings-row.is-inactive .row-main{opacity:.7}.settings-row .row-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.session{gap:var(--space-sm)}.session .btn{margin-top:var(--space-sm)}.gate{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-height:100dvh;padding:var(--space-xl) max(var(--space-lg),env(safe-area-inset-right,0px)) var(--space-xl) max(var(--space-lg),env(safe-area-inset-left,0px))}.gate-card{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);width:100%;max-width:480px;margin:0 auto;animation:rise .45s var(--ease-out) both}.gate-card h1{font-size:clamp(1.75rem,7vw,2.25rem)}.gate-card .wordmark{font-size:clamp(3rem,16vw,4.5rem);letter-spacing:-.035em;line-height:.95}.gate-lead{color:var(--ink-2);max-width:52ch}.gate-subtitle{margin-top:var(--space-md);font-size:var(--text-md)}.gate-note{color:var(--muted);font-size:var(--text-sm)}.gate-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.gate-card .form{margin-top:var(--space-sm)}.loading-text{color:var(--ink-2);font-weight:500}.boot-splash .gate-card{animation:none}.env-list{display:grid;gap:var(--space-xs)}.env-list li{display:flex;align-items:center;gap:var(--space-sm);min-height:40px;padding:0 var(--space-md);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.env-list code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:.8125rem}.env-list .missing{border-color:var(--bad);color:var(--bad)}.env-list .present{color:var(--accent-text)}.env-state{font-size:var(--text-sm);font-weight:600}.steps{display:grid;gap:var(--space-sm);padding-left:var(--space-xl);list-style:decimal;color:var(--ink-2)}.big-sm{font-size:2rem;font-weight:500;letter-spacing:-.03em;line-height:1.1}.account-head{flex-wrap:wrap}.account-head>:first-child{flex:1 1 11rem;min-width:0}.account-balance{display:grid;justify-items:end;gap:2px;margin-left:auto;text-align:right;white-space:nowrap}.account-amount{font-size:var(--text-xl);font-weight:500}.rate-line{flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-sm)}.source-switch{display:grid;gap:var(--space-xs)}.earn{display:grid;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--line)}.earn-facts{margin-top:0}.earn-facts dd{font-size:var(--text-lg)}.panel .row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.extras{margin-top:0}.extras dd{font-size:var(--text-lg)}.goal-row{display:grid;gap:var(--space-xs);padding:var(--space-lg) 0}.priority-tag{margin-left:var(--space-sm);color:var(--muted);font-size:var(--text-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.goal-suggestion{color:var(--accent-text);font-size:var(--text-sm);font-weight:600}.goal-row .row-actions{margin-top:var(--space-xs)}.transfer-result{font-weight:600}.menu-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:var(--space-md);min-height:64px;padding:var(--space-md) var(--space-xs);border-radius:var(--radius-sm);color:inherit;text-decoration:none}.menu-row:hover{background:var(--surface-2)}.menu-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--accent-text)}.off-tag{color:var(--accent-text);font-size:var(--text-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.invest-summary .label{margin-bottom:calc(-1 * var(--space-sm))}.invest-facts{margin-top:var(--space-xs)}.invest-facts dd{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-sm);font-size:var(--text-lg)}.pct{font-size:var(--text-sm)}.price-line{display:grid;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--line)}.portfolio-note{align-items:center;margin-top:calc(-1 * var(--space-sm))}.allocation{display:grid;gap:var(--space-xl)}@media(min-width:720px){.allocation{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xl)}}.holding-row{display:grid;gap:var(--space-sm);padding:var(--space-lg) 0}.holding-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.holding-values{display:grid;flex:none;justify-items:end;gap:2px}.holding-row.is-inactive .holding-top{opacity:.7}.holding-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin:0}.holding-facts dt{color:var(--muted);font-size:var(--text-xs)}.holding-facts dd{margin:0;font-size:var(--text-sm);overflow-wrap:anywhere}.txn-total{min-height:1.4em}.networth-links{display:flex;flex-wrap:wrap;gap:0 var(--space-lg)}.networth-links a{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--accent-text);font-size:var(--text-sm);font-weight:600;text-underline-offset:3px}.asset-row{display:grid;gap:var(--space-sm);padding:var(--space-lg) 0}.asset-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.asset-suggestion{color:var(--accent-text);font-size:var(--text-sm);font-weight:500}.facts.projection-facts dd{font-size:var(--text-lg)}.projection-controls{display:grid;gap:var(--space-xs)}.projection-facts dt{display:flex;align-items:center;gap:var(--space-snug)}.sim-status{display:inline-flex;align-items:center;gap:var(--space-sm)}.sim-badge{display:inline-flex;align-items:center;gap:var(--space-snug);padding:3px 10px 3px 8px;border-radius:var(--radius-pill);background:var(--reserve-soft);color:var(--reserve);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sim-block{display:grid;gap:var(--space-sm)}.sim-block+.sim-block{padding-top:var(--space-md);border-top:1px solid var(--line)}.sim-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) 0}.sim-row.is-inactive .row-main{opacity:.6;text-decoration:line-through}.sim-form{max-width:28rem}.goal-outlook-row{display:grid;gap:var(--space-xs);padding:var(--space-md) 0}.goal-outcome{display:flex;align-items:flex-start;gap:var(--space-sm);color:var(--ink-2);font-size:var(--text-sm);font-weight:600}.goal-outcome .icon{margin-top:1px}.goal-outcome.good{color:var(--accent-text)}.goal-deadline{display:block;color:var(--muted);font-weight:500}.review-meta{align-items:baseline}.top-list{display:grid;gap:var(--space-xs)}.top-list li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-top:1px solid var(--line)}.top-list li:first-child{border-top:0}.top-list .rank{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-2);color:var(--ink-2);font-size:var(--text-sm);font-weight:600}.goal-progress-list{display:grid;gap:var(--space-lg)}.goal-progress-list>li{display:grid;gap:var(--space-snug)}.import-list>li{padding:var(--space-md) 0}.import-row{display:grid;gap:var(--space-sm)}.import-top{display:grid;grid-template-columns:var(--date-block) minmax(0,1fr) auto;align-items:center;gap:var(--space-md)}.import-ref{overflow-wrap:anywhere}.import-controls{display:grid;gap:var(--space-sm);padding-left:calc(var(--date-block) + var(--space-md))}.import-controls .field{max-width:28rem}.import-link{padding-left:calc(var(--date-block) + var(--space-md));color:var(--accent-text);font-size:var(--text-sm);font-weight:500}.bulk-choice{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-md)}.bulk-choice .field{flex:1 1 14rem;max-width:24rem}@media(max-width:479px){.import-controls,.import-link{padding-left:0}}
