@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");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-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");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: #0b1120;--surface: #111a2e;--surface-2: #16213a;--surface-3: #1d2a47;--line: rgba(148, 163, 184, .14);--line-strong: rgba(148, 163, 184, .3);--ink: #e8ecf1;--ink-dim: #8f9bad;--income: #34d399;--income-soft: rgba(52, 211, 153, .13);--expense: #fb7185;--expense-soft: rgba(251, 113, 133, .13);--accent: #34d399;--accent-ink: #052e1f;--accent-soft: rgba(52, 211, 153, .12);--warn: #fbbf24;--warn-soft: rgba(251, 191, 36, .12);--radius: 16px;--radius-sm: 12px;--radius-lg: 22px;--tap: 44px;--gutter: 1rem;--shadow-lg: 0 18px 40px rgba(0, 0, 0, .45);--ease: cubic-bezier(.2, .8, .2, 1);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--topbar-h: 3.5rem;--tabbar-h: 4.25rem;--font-display: "Bricolage Grotesque Variable", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font-display);font-size:1rem;line-height:1.4;color:var(--ink);background:radial-gradient(60rem 28rem at 70% -10%,rgba(52,211,153,.07),transparent 60%),radial-gradient(40rem 20rem at -10% 0%,rgba(99,132,255,.05),transparent 55%),var(--bg);background-attachment:fixed;min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.income{color:var(--income)}.expense{color:var(--expense)}.dim{color:var(--ink-dim)}@media(max-width:25.99rem){.hide-narrow{display:none!important}}@media(max-width:29.99rem){.wide-only{display:none!important}}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100dvh}.app-main{min-width:0}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.6rem;min-height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) calc(var(--gutter) + var(--safe-right)) 0 calc(var(--gutter) + var(--safe-left));background:#0b1120db;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topbar .context-picker{margin-left:auto}.brand{font-weight:800;font-size:1.2rem;letter-spacing:-.02em;white-space:nowrap;color:var(--ink);text-decoration:none}.brand-dot{color:var(--accent)}.context-picker{min-width:0;max-width:min(15rem,62vw)}.context-picker .select-btn{max-width:100%;min-height:var(--tap);border-radius:999px;padding:.35rem .8rem .35rem .6rem;gap:.45rem;font-weight:600;font-size:.9rem;background:var(--surface-2)}.context-picker-icon{flex-shrink:0;color:var(--accent)}.shell{width:100%;max-width:36rem;margin-inline:auto;padding:1rem calc(var(--gutter) + var(--safe-right)) calc(var(--tabbar-h) + var(--safe-bottom) + 2rem) calc(var(--gutter) + var(--safe-left))}@media(min-width:48rem){.shell{max-width:44rem;padding-top:1.5rem}}.tabbar{position:fixed;inset:auto 0 0;z-index:30;display:flex;align-items:stretch;justify-content:space-around;padding:.3rem calc(.4rem + var(--safe-right)) calc(.3rem + var(--safe-bottom)) calc(.4rem + var(--safe-left));background:#0b1120eb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line)}.tab{flex:1 1 0;min-width:0;min-height:3.4rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.25rem .15rem;border:0;border-radius:var(--radius-sm);background:none;color:var(--ink-dim);text-decoration:none;cursor:pointer;font-size:.7rem;font-weight:650;letter-spacing:.01em;transition:color .15s ease,background .15s ease}.tab-label{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tab-icon{display:grid;place-items:center;width:3rem;height:1.75rem;border-radius:999px;transition:background .15s ease}.tab[aria-current=page],.tab.active{color:var(--ink)}.tab[aria-current=page] .tab-icon,.tab.active .tab-icon{background:var(--accent-soft);color:var(--accent)}.tab:active .tab-icon{background:var(--surface-2)}@media(hover:hover){.tab:hover{color:var(--ink)}}.tab-secondary,.rail-head,.rail-label,.rail-foot{display:none}.action-slot{display:flex;flex:1 1 0;justify-content:center;align-items:center;min-width:0}.action-slot:empty{display:none}.primary-action{display:grid;place-items:center;width:3.6rem;height:3.6rem;margin-top:-1.35rem;border:4px solid var(--bg);border-radius:999px;background:var(--accent);color:var(--accent-ink);cursor:pointer;box-shadow:0 10px 26px #34d39954;transition:transform .12s var(--ease),filter .15s ease}.primary-action:active{transform:scale(.92)}.primary-action-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-height:30rem)and (orientation:landscape)and (max-width:63.99rem){:root{--tabbar-h: 3.25rem;--topbar-h: 3rem}.tab{min-height:2.75rem;flex-direction:row;gap:.4rem}.tab-icon{width:2.25rem}.primary-action{width:3rem;height:3rem;margin-top:0;border-width:0}}@media(min-width:64rem){.app{display:grid;grid-template-columns:16.5rem minmax(0,1fr)}.topbar{display:none}.tabbar{position:sticky;inset:auto;height:100dvh;flex-direction:column;justify-content:flex-start;gap:.15rem;padding:1.25rem .9rem;overflow-y:auto;background:#0b112099;border-top:0;border-right:1px solid var(--line)}.rail-head{order:-2}.action-slot{order:-1}.tab-more{display:none}.tab-secondary{display:flex}.rail-head{display:grid;gap:1rem;padding:0 .35rem 1rem}.rail-head .brand{font-size:1.45rem}.rail-head .context-picker{max-width:100%}.rail-head .context-picker .select-btn{width:100%;justify-content:flex-start}.rail-head .context-picker .select-btn-icon{margin-left:auto}.rail-label{display:block;padding:1rem .75rem .35rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tab{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:.7rem;min-height:var(--tap);padding:.4rem .75rem;font-size:.92rem}.tab-icon{width:auto;height:auto;background:none!important}.tab[aria-current=page],.tab.active{background:var(--accent-soft);color:var(--accent)}@media(hover:hover){.tab:hover{background:var(--surface-2)}}.action-slot{flex:0 0 auto;display:block;margin-bottom:.5rem}.primary-action{display:flex;gap:.5rem;justify-content:center;align-items:center;width:100%;height:var(--tap);margin:0;border:0;border-radius:var(--radius-sm);font-weight:700;box-shadow:none}.primary-action:hover{filter:brightness(1.07)}.primary-action-label{position:static;width:auto;height:auto;overflow:visible;clip:auto}.rail-foot{display:grid;gap:.35rem;margin-top:auto;padding:1rem .35rem 0;border-top:1px solid var(--line)}.rail-user{font-size:.8rem;color:var(--ink-dim);padding:0 .4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell{max-width:58rem;padding:2rem 2.5rem 3rem}}.offline-banner{position:sticky;top:calc(var(--topbar-h) + var(--safe-top));z-index:25;display:flex;align-items:center;gap:.5rem;justify-content:center;padding:.45rem 1rem;font-size:.82rem;font-weight:600;text-align:center;background:var(--warn-soft);color:var(--warn);border-bottom:1px solid rgba(251,191,36,.25);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media(min-width:64rem){.offline-banner{top:0}}.page-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.25rem 0 1rem;min-height:var(--tap)}.page-head-text{min-width:0}.page-title{font-size:1.6rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}.page-sub{margin-top:.15rem;color:var(--ink-dim);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-head-actions{display:flex;gap:.5rem;flex-shrink:0}@media(min-width:64rem){.page-title{font-size:2rem}}.section{margin-top:1.5rem}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.6rem}.section-title{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--tap);padding:.5rem 1.1rem;font-weight:650;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;background:none;color:var(--ink);text-decoration:none;white-space:nowrap;transition:transform .08s ease,background .15s ease,border-color .15s ease,filter .15s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn-primary{background:var(--accent);color:var(--accent-ink)}@media(hover:hover){.btn-primary:hover:not(:disabled){filter:brightness(1.07)}}.btn-ghost{border-color:var(--line-strong)}.btn-ghost:hover:not(:disabled),.btn-ghost:active{background:var(--surface-2)}.btn-quiet{color:var(--ink-dim)}.btn-quiet:hover:not(:disabled){color:var(--ink);background:var(--surface-2)}.btn-danger{color:var(--expense);border-color:#fb718561}.btn-danger:hover:not(:disabled),.btn-danger:active{background:var(--expense-soft)}.btn-danger.armed{background:var(--expense);color:#2a0710;border-color:var(--expense)}.btn-block{width:100%}.btn-lg{min-height:3.25rem;font-size:1.02rem}.icon-btn{display:inline-grid;place-items:center;flex-shrink:0;width:var(--tap);height:var(--tap);padding:0;border-radius:var(--radius-sm);border:1px solid var(--line);background:none;color:var(--ink-dim);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.icon-btn:hover:not(:disabled),.icon-btn:active{background:var(--surface-2);color:var(--ink)}.icon-btn:disabled{opacity:.45;cursor:default}.icon-btn.bare{border-color:transparent}.icon-btn.danger{color:var(--expense)}.icon-btn.armed{background:var(--expense);border-color:var(--expense);color:#2a0710}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;width:100%;min-height:3.75rem;padding:.6rem .9rem;background:none;border:0;color:inherit;text-align:left;text-decoration:none}.list-row+.list-row{border-top:1px solid var(--line)}.list-row.no-lead{grid-template-columns:minmax(0,1fr) auto}:is(button,a).list-row{cursor:pointer;transition:background .15s ease}:is(button,a).list-row:active{background:var(--surface-2)}@media(hover:hover){:is(button,a).list-row:hover{background:#94a3b80f}}.list-row.muted .row-icon{opacity:.5}.list-row.muted .row-title{color:var(--ink-dim)}.list-row:focus-visible{outline-offset:-2px}@media(max-width:25.99rem){.list-row{gap:.65rem;padding-inline:.75rem}.list-row .row-icon{width:2.15rem;height:2.15rem;border-radius:10px}.row-chevron{display:none}}.row-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-dim);flex-shrink:0}.row-icon.income{background:var(--income-soft);color:var(--income)}.row-icon.expense{background:var(--expense-soft);color:var(--expense)}.row-icon.accent{background:var(--accent-soft);color:var(--accent)}.row-main{min-width:0;display:grid;gap:.1rem}.row-title{display:block;font-weight:600;font-size:.97rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sub{display:block;color:var(--ink-dim);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-trail{display:flex;align-items:center;gap:.35rem;justify-self:end}.row-trail-stack{display:grid;justify-items:end;gap:.1rem}.amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.amount.income{color:var(--income)}.amount.expense{color:var(--expense)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .5rem;border-radius:999px;flex-shrink:0;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--surface-3);color:var(--ink-dim);white-space:nowrap}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.chip{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:.8rem;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.field{display:grid;gap:.4rem;margin-bottom:1rem}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));column-gap:.75rem}.field-row>.field{min-width:0}.label{font-size:.82rem;color:var(--ink-dim);font-weight:600;letter-spacing:.01em}.input{width:100%;min-height:3rem;padding:.65rem .85rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);font-size:1rem;transition:border-color .15s ease,background .15s ease}.input:focus{border-color:var(--line-strong);background:var(--surface-3)}.input:disabled{opacity:.6}.input[aria-invalid=true]{border-color:#fb718599}.input::placeholder{color:var(--ink-dim);opacity:1}.input[type=date],.input[type=month]{min-width:0;-webkit-appearance:none;appearance:none}.input::-webkit-date-and-time-value{text-align:left}.input-amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600;text-align:right;min-height:3.75rem}.input-amount.income{color:var(--income)}.input-amount.expense{color:var(--expense)}.error-text{color:var(--expense);font-size:.82rem}.hint-text{color:var(--ink-dim);font-size:.8rem}.form-error{display:flex;gap:.5rem;align-items:flex-start;padding:.65rem .8rem;margin-bottom:.9rem;border-radius:var(--radius-sm);background:var(--expense-soft);color:var(--expense);font-size:.86rem}.check{display:flex;align-items:center;gap:.75rem;min-height:var(--tap);padding:.55rem .8rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);cursor:pointer;font-weight:550;font-size:.92rem}.check input{width:1.2rem;height:1.2rem;margin:0;accent-color:var(--accent);flex-shrink:0;cursor:pointer}.check:has(input:checked){border-color:#34d39973;background:var(--accent-soft)}.check-list{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}.segmented{display:inline-flex;gap:.15rem;padding:.15rem;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;max-width:100%}.segmented button{min-height:var(--tap);padding:.35rem .9rem;border:0;border-radius:999px;background:transparent;color:var(--ink-dim);font-weight:650;font-size:.88rem;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.segmented button[aria-pressed=true]{background:var(--bg);color:var(--ink);box-shadow:0 1px 6px #00000059}.segmented.block{display:flex;width:100%}.segmented.block button{flex:1 1 0;min-width:0}.segmented.lg button{min-height:2.9rem;font-size:.95rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.segmented button[data-tone=income][aria-pressed=true]{background:var(--income-soft);color:var(--income);box-shadow:inset 0 0 0 1px #34d39966}.segmented button[data-tone=expense][aria-pressed=true]{background:var(--expense-soft);color:var(--expense);box-shadow:inset 0 0 0 1px #fb718566}.select-btn{display:inline-flex;align-items:center;gap:.45rem;min-width:0;max-width:16rem;min-height:var(--tap);padding:.45rem .8rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.select-btn:hover:not(:disabled){border-color:var(--line-strong)}.select-btn:disabled{opacity:.6;cursor:default}.select-btn-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-btn-icon{flex-shrink:0;color:var(--ink-dim)}.field .select-btn{width:100%;max-width:100%;min-height:3rem;justify-content:space-between;padding:.6rem .85rem}.filters{display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem;margin-bottom:1rem}.filters-row{display:flex;gap:.5rem;align-items:center;min-width:0}.filters-row .segmented{flex:1 1 auto}.filters-row .segmented button{flex:1 1 0;min-width:0;padding-inline:.5rem}.filters-row .select-btn{flex:0 1 auto;max-width:45%}.filters-row.wrap{flex-wrap:wrap}.filters-row.wrap .segmented{flex:1 1 17rem}.filters-row.wrap .select-btn{flex:1 1 8rem;max-width:100%}.month-nav{display:flex;align-items:center;justify-content:space-between;gap:.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.2rem}.month-nav .icon-btn{border-color:transparent}.month-label{flex:1;text-align:center;font-weight:700;font-size:1rem;text-transform:capitalize}.month-label-btn{background:none;border:0;min-height:var(--tap);padding:0 .5rem;border-radius:var(--radius-sm);cursor:pointer}.month-label-btn:disabled{cursor:default}.picker-search{margin-bottom:.6rem}.picker-list{display:grid;grid-template-columns:minmax(0,1fr);gap:.15rem}.picker-search::-webkit-search-decoration{-webkit-appearance:none}.picker-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;min-height:3.1rem;text-align:left;background:none;border:0;color:var(--ink);font-weight:600;padding:.6rem .8rem;padding-left:calc(.8rem + var(--depth, 0) * 1.1rem);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,color .15s ease}.picker-row:hover,.picker-row:active{background:var(--surface-2)}.picker-row.active{color:var(--accent);background:var(--accent-soft)}.picker-row-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-empty{padding:1rem .8rem;color:var(--ink-dim);font-size:.9rem}.menu-section+.menu-section{margin-top:1.1rem}.menu-title{padding:0 .25rem .45rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-row-chevron{color:var(--ink-dim)}dialog.sheet{position:fixed;inset:auto 0 var(--kb, 0px) 0;margin:0;width:100%;max-width:100%;max-height:calc(var(--vvh, 100dvh) - var(--safe-top) - .75rem);padding:0;border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg);overflow:hidden;transform:translateY(var(--drag, 0px))}html:has(dialog[open]){overflow:hidden}dialog.sheet:focus-visible{outline:none}dialog.sheet[open]{display:flex;flex-direction:column;animation:sheet-up .28s var(--ease)}dialog.sheet::backdrop{background:#03060e9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@media(min-width:48rem){dialog.sheet{inset:0;margin:auto;height:fit-content;max-width:30rem;max-height:min(calc(var(--vvh, 100dvh) - 3rem),48rem);border-bottom:1px solid var(--line);border-radius:var(--radius-lg)}dialog.sheet[open]{animation-name:sheet-pop}}.sheet-head{flex-shrink:0;padding:.55rem 1.25rem .75rem;touch-action:none}.sheet-grip{width:2.5rem;height:.28rem;margin:0 auto .6rem;border-radius:999px;background:var(--line-strong)}@media(min-width:48rem){.sheet-grip{display:none}.sheet-head{padding-top:1.1rem}}.sheet-title-row{display:flex;align-items:center;gap:.75rem}.sheet-title-text{flex:1;min-width:0}.sheet-title{font-size:1.2rem;font-weight:750;letter-spacing:-.01em}.sheet-sub{margin-top:.1rem;color:var(--ink-dim);font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:.25rem 1.25rem calc(1.25rem + var(--safe-bottom));scroll-padding-bottom:6rem}.sheet-body:has(>form>.form-actions,>.form-actions){padding-bottom:0}.sheet-text{color:var(--ink-dim);font-size:.9rem;margin-bottom:1rem}.form-actions{position:sticky;bottom:0;z-index:1;display:flex;gap:.6rem;align-items:center;margin:.5rem -1.25rem 0;padding:.85rem 1.25rem calc(.85rem + var(--safe-bottom));background:var(--surface);border-top:1px solid var(--line)}.form-actions .spacer{flex:1}.form-actions .btn-primary{flex:1 1 auto;max-width:14rem}@media(min-width:48rem){.form-actions .btn-primary{flex:0 0 auto}}.skeleton{height:3.75rem;border-radius:var(--radius-sm);margin:.4rem 0;background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite linear}.skeleton.sm{height:1rem;width:40%}.skeleton.hero{height:10rem;border-radius:var(--radius-lg)}.skeleton.block{height:12rem;border-radius:var(--radius)}.empty{display:grid;justify-items:center;gap:.5rem;padding:2.5rem 1.25rem;color:var(--ink-dim);text-align:center}.empty-icon{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:999px;background:var(--surface-2);color:var(--ink-dim);margin-bottom:.25rem}.empty-icon.danger{background:var(--expense-soft);color:var(--expense)}.empty-title{color:var(--ink);font-weight:700;font-size:1.05rem}.empty-text{font-size:.9rem;max-width:22rem}.empty-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:.6rem}.empty.boxed{background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius)}.empty.page{min-height:55dvh;align-content:center}.load-more{margin-top:.75rem}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:calc(1.5rem + var(--safe-top)) calc(1.25rem + var(--safe-right)) calc(1.5rem + var(--safe-bottom)) calc(1.25rem + var(--safe-left))}.login-card{width:100%;max-width:23rem}.login-brand{font-size:2.6rem;font-weight:800;letter-spacing:-.035em;line-height:1;margin-bottom:.4rem}.login-sub{color:var(--ink-dim);margin-bottom:2rem;font-size:.95rem}.login-form{display:grid}.input-wrap{position:relative}.input-wrap .input{padding-right:3.25rem}.input-wrap .icon-btn{position:absolute;right:.15rem;top:50%;transform:translateY(-50%);border-color:transparent}@media(min-width:30rem){.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:2rem}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes sheet-pop{0%{opacity:0;transform:translateY(12px) scale(.98)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.hero{container-type:inline-size;padding:1.25rem 1.1rem 1.1rem;border-radius:var(--radius-lg);border:1px solid var(--line);background:radial-gradient(120% 90% at 100% 0%,rgba(52,211,153,.14),transparent 55%),linear-gradient(180deg,var(--surface-2),var(--surface))}.hero-label{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.hero-amount{margin:.35rem 0 1.1rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.03em;line-height:1.05;white-space:nowrap;font-size:clamp(1.35rem,calc(100cqi / (var(--len, 12) * .6)),3rem)}.hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.stat{display:flex;align-items:center;gap:.6rem;min-width:0;padding:.6rem .7rem;border-radius:var(--radius-sm);background:#0b112073}.stat .row-icon{width:2.1rem;height:2.1rem;border-radius:10px}.stat-text{min-width:0}.stat-label{font-size:.75rem;color:var(--ink-dim);font-weight:600}.stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@container (max-width: 25rem){.hero-stats{grid-template-columns:1fr;gap:.4rem}.stat{padding:.45rem .6rem}.stat-text{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;column-gap:.5rem}.stat-label{font-size:.85rem}.stat-value{font-size:.95rem;overflow:visible;margin-left:auto}}.hero-note{margin-top:.75rem;font-family:var(--font-mono);font-size:.78rem;color:var(--ink-dim)}.trend{padding:1.1rem .9rem 1rem}.trend-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;flex-wrap:wrap;padding:0 .2rem;margin-bottom:.9rem}.trend-legend{display:flex;gap:.75rem;font-size:.75rem;color:var(--ink-dim)}.trend-key{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink-dim)}.trend-key:before{content:"";width:.6rem;height:.6rem;border-radius:3px}.trend-key.income:before{background:var(--income)}.trend-key.expense:before{background:var(--expense)}.trend-grid{display:flex;align-items:stretch;gap:.15rem;height:9rem}.trend-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.35rem .1rem .25rem;border:0;border-radius:10px;background:none;color:inherit;cursor:pointer;transition:background .15s ease}.trend-col.selected{background:var(--surface-2)}.trend-bars{flex:1;min-height:0;width:100%;display:flex;gap:2px;align-items:flex-end;justify-content:center}.trend-bar{flex:0 1 .55rem;height:var(--bar-h, 0%);min-height:2px;border-radius:3px 3px 1px 1px;transition:height .45s var(--ease)}.trend-bar.income{background:var(--income)}.trend-bar.expense{background:var(--expense)}.trend-col:not(.selected) .trend-bar{opacity:.7}.trend-month{font-family:var(--font-mono);font-size:.62rem;color:var(--ink-dim);white-space:nowrap}.trend-col.selected .trend-month{color:var(--ink);font-weight:600}.trend-detail{margin-top:.9rem;padding:.8rem .2rem 0;border-top:1px solid var(--line)}.trend-detail-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:-.35rem -.4rem .35rem}.trend-detail-month{font-weight:700;text-transform:capitalize;text-align:center}.trend-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:0}.trend-detail-grid dt{font-size:.72rem;color:var(--ink-dim);font-weight:600}.trend-detail-grid dd{margin:.1rem 0 0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-row{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"icon name amount chev" "icon sub  amount chev";row-gap:.1rem}.company-row-icon{grid-area:icon}.company-row-name{grid-area:name}.company-row-sub{grid-area:sub}.company-row-amount{grid-area:amount;justify-self:end}.company-row-chevron{grid-area:chev}@media(max-width:25.99rem){.company-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon name   chev" "icon amount chev"}.company-row-sub{display:none}.company-row-amount{justify-self:start;font-size:.95rem}.company-row-chevron{display:block}}@media(min-width:64rem){.dash-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.5rem;align-items:start}.trend-grid{height:11rem}}.days{display:grid;gap:1.1rem}.day-head{padding:0 .25rem .45rem;font-size:.82rem;font-weight:700;color:var(--ink-dim)}.day-head:first-letter{text-transform:uppercase}.tx{animation:rise .3s both;animation-delay:calc(min(var(--i, 0),12)*22ms)}.tx .amount{font-size:.98rem}.form-fieldset{border:0;margin:0;padding:0;min-width:0}.readonly-note{display:flex;align-items:center;gap:.4rem;margin-bottom:1rem}.group-row{grid-template-columns:auto minmax(0,1fr) auto;padding-left:calc(.9rem + var(--depth, 0) * 1.1rem);min-height:3.5rem}.group-icon{display:grid;place-items:center;width:1.5rem;color:var(--ink-dim)}.group-row .row-trail{gap:0;margin-right:-.4rem}.group-child{font-weight:550}.members-list{display:grid;gap:.75rem}.member-card{display:grid;gap:.9rem;padding:.9rem}.member-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem}.member-email{display:flex;align-items:center;gap:.4rem;min-width:0}.member-note{margin:0}.member-role{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem}.member-role .select-btn{max-width:100%;justify-self:end}.member-access{display:grid;gap:.45rem}.access-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.access-edit{min-height:var(--tap);padding-inline:.7rem;margin-right:-.4rem}.access-diff{display:grid;gap:.4rem;margin-bottom:.5rem}.access-diff-row{display:flex;align-items:center;gap:.5rem;min-height:2.5rem;padding:.45rem .75rem;border-radius:var(--radius-sm);font-weight:600}.access-diff-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.access-diff-added{color:var(--income);background:var(--income-soft)}.access-diff-removed{color:var(--expense);background:var(--expense-soft)}.rec-hint{margin:-.4rem 0 .6rem .25rem}.rec-row{padding:0 .4rem 0 0;gap:.25rem}.rec-hit{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.8rem;min-height:4rem;padding:.6rem .4rem .6rem .9rem;background:none;border:0;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:background .15s ease}.rec-hit:active{background:var(--surface-2)}@media(hover:hover){.rec-hit:hover{background:#94a3b80f}}.rec-hit:focus-visible{outline-offset:-2px}.rec-sub-line{display:flex;align-items:baseline;gap:.5rem;min-width:0}.rec-sub-line .amount{flex-shrink:0;font-size:.88rem}.rec-badge{justify-self:start;margin-top:.2rem}.rec-row.paused .row-icon{opacity:.5}.rec-row.paused .row-title{color:var(--ink-dim)}.rec-note{display:flex;align-items:flex-start;gap:.4rem;margin-bottom:1rem}.rec-note svg{flex-shrink:0;margin-top:.15rem}.report-summary{container-type:inline-size;padding:1.15rem 1.1rem 1.1rem;border-radius:var(--radius-lg);border:1px solid var(--line);background:radial-gradient(120% 90% at 100% 0%,rgba(52,211,153,.12),transparent 55%),linear-gradient(180deg,var(--surface-2),var(--surface))}.report-label{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.report-balance{margin:.3rem 0 1rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.03em;line-height:1.05;white-space:nowrap;font-size:clamp(1.35rem,calc(100cqi / (var(--len, 12) * .6)),2.75rem)}.report-split{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.report-stat{display:flex;align-items:flex-start;gap:.6rem;min-width:0;padding:.6rem .7rem;border-radius:var(--radius-sm);background:#0b112073}.report-stat .row-icon{width:2.1rem;height:2.1rem;border-radius:10px}.report-stat-text{min-width:0}.report-stat-label{font-size:.75rem;color:var(--ink-dim);font-weight:600}.report-stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:.92rem;white-space:nowrap}.report-stat-note{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-dim);white-space:nowrap}@container (max-width: 25rem){.report-split{grid-template-columns:1fr;gap:.4rem}.report-stat{align-items:center;padding:.45rem .6rem}.report-stat-text{flex:1;display:grid;grid-template-columns:1fr auto;column-gap:.5rem;align-items:baseline}.report-stat-label{font-size:.85rem}.report-stat-value{font-size:.95rem;text-align:right}.report-stat-note{grid-column:1 / -1}}.rg-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name bal" "meta meta";column-gap:.75rem;row-gap:.2rem;align-items:center;padding:.7rem .9rem .7rem calc(.9rem + var(--depth, 0) * .9rem)}.rg-row+.rg-row{border-top:1px solid var(--line)}.rg-row.archived .rg-name-text{color:var(--ink-dim)}.rg-header{background:var(--surface-2);padding-top:.5rem;padding-bottom:.5rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;color:var(--ink-dim)}.rg-header .rg-meta{display:none}.rg-name{grid-area:name;display:flex;align-items:center;gap:.4rem;min-width:0}.rg-name-text{min-width:0;font-weight:600;font-size:.93rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rg-header .rg-name{font-weight:700}.rg-branch{flex-shrink:0;color:var(--ink-dim)}.rg-meta{grid-area:meta;display:flex;flex-wrap:wrap;column-gap:.75rem;row-gap:.1rem;font-size:.78rem;color:var(--ink-dim)}.rg-bal{grid-area:bal;text-align:right;font-size:.95rem}.rg-header .rg-bal{font-family:inherit;font-size:inherit;font-weight:700}@media(min-width:48rem){.rg-row{grid-template-columns:minmax(0,1fr) 8.5rem 8.5rem 9rem;grid-template-areas:"name in out bal" "own  in out bal";padding-left:calc(1rem + var(--depth, 0) * 1.25rem)}.rg-header{grid-template-areas:"name in out bal"}.rg-meta,.rg-header .rg-meta{display:contents}.rg-own{grid-area:own;font-size:.78rem;color:var(--ink-dim)}.rg-in{grid-area:in;text-align:right;font-size:.85rem}.rg-out{grid-area:out;text-align:right;font-size:.85rem}.rg-header .rg-in,.rg-header .rg-out{color:var(--ink-dim);font-size:inherit}}
