:root{color-scheme:light dark;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-num: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--step--1: .8125rem;--step-0: 1rem;--step-1: 1.125rem;--step-2: 1.3125rem;--step-3: 1.625rem;--step-4: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-s: 8px;--radius-m: 12px;--radius-l: 20px;--ease-out: cubic-bezier(.2, .8, .2, 1);--motion-fast: .15s;--motion: .22s;--sa-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--sa-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));--sa-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--sa-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--content: 40rem;--content-wide: 64rem;--bottom-nav-h: 4.25rem;--rail-w: 5rem;--side-nav-w: 15rem;--bg: #f7f5f1;--surface: #ffffff;--surface-2: #f1eee8;--surface-3: #e8e4dc;--border: #e0dcd5;--border-strong: #cbc4b8;--control-border: #7d766b;--text: #24221f;--text-2: #56514b;--text-3: #635d55;--brand: #4646c2;--brand-solid: #5b5bd6;--brand-solid-hover: #4646c2;--on-brand: #ffffff;--brand-soft: #ecebfd;--brand-border: #c4c3f4;--income: #22a06b;--income-ink: #137a4e;--income-soft: #e3f6ec;--spend: #f0654f;--spend-ink: #c23a24;--spend-soft: #fdeae6;--cards: #2e90e8;--cards-ink: #1b6cc0;--cards-soft: #e4f1fd;--loans: #9b51e0;--loans-ink: #7a34bd;--loans-soft: #f3eafc;--goals: #f5a623;--goals-ink: #8f5a00;--goals-soft: #fff2d6;--budgets: #13a8a8;--budgets-ink: #0b7474;--budgets-soft: #dff5f5;--fun: #ec4899;--fun-ink: #be1f6e;--fun-soft: #fde7f2;--pos: #137a4e;--pos-soft: #e3f6ec;--neg: #b3261e;--neg-soft: #fcebe9;--warn: #855000;--warn-soft: #fff3d9;--focus: #4646c2;--cat-red: #c62828;--cat-red-soft: #fde8e8;--cat-orange: #c2410c;--cat-orange-soft: #ffedd5;--cat-amber: #b45309;--cat-amber-soft: #fef3c7;--cat-yellow: #806200;--cat-yellow-soft: #fef9c3;--cat-lime: #4d7c0f;--cat-lime-soft: #ecfccb;--cat-green: #15803d;--cat-green-soft: #dcfce7;--cat-teal: #0f766e;--cat-teal-soft: #ccfbf1;--cat-cyan: #0e7490;--cat-cyan-soft: #cffafe;--cat-blue: #1d4ed8;--cat-blue-soft: #dbeafe;--cat-indigo: #4338ca;--cat-indigo-soft: #e0e7ff;--cat-violet: #7c3aed;--cat-violet-soft: #ede9fe;--cat-pink: #be185d;--cat-pink-soft: #fce7f3;--series-1: #0072b2;--series-2: #d55e00;--series-3: #007a5a;--series-4: #b0548f;--series-5: #3d8dcf;--series-6: #a86f00;--series-7: #5b5bd6;--series-8: #5f5950;--shadow-1: 0 2px 8px rgb(28 26 23 / .04);--shadow-2: 0 16px 48px rgb(28 26 23 / .14);--overlay: rgb(20 18 15 / .45)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #151513;--surface: #20201e;--surface-2: #292926;--surface-3: #343430;--border: #3b3b36;--border-strong: #5b5952;--control-border: #8a8478;--text: #f2efe9;--text-2: #bdb9b1;--text-3: #a9a59c;--brand: #a5a6f6;--brand-solid: #5b5bd6;--brand-solid-hover: #4b4bc4;--on-brand: #ffffff;--brand-soft: #25244a;--brand-border: #3d3c78;--income: #22a06b;--income-ink: #5fd39a;--income-soft: #10291d;--spend: #f0654f;--spend-ink: #ff9b88;--spend-soft: #3a1a14;--cards: #2e90e8;--cards-ink: #7fbaf4;--cards-soft: #132a40;--loans: #9b51e0;--loans-ink: #c79bf2;--loans-soft: #2c1a40;--goals: #f5a623;--goals-ink: #ffc561;--goals-soft: #33250a;--budgets: #13a8a8;--budgets-ink: #5fd6d6;--budgets-soft: #0d2c2c;--fun: #ec4899;--fun-ink: #f58cbf;--fun-soft: #3d1427;--pos: #5fd39a;--pos-soft: #10291d;--neg: #ff8f86;--neg-soft: #2e1816;--warn: #f2b84f;--warn-soft: #2b2110;--focus: #a5a6f6;--cat-red: #ff9a9a;--cat-red-soft: #3b1414;--cat-orange: #fdba74;--cat-orange-soft: #3a1d0b;--cat-amber: #fcd34d;--cat-amber-soft: #33240a;--cat-yellow: #fde047;--cat-yellow-soft: #302a06;--cat-lime: #bef264;--cat-lime-soft: #1f2c0b;--cat-green: #86efac;--cat-green-soft: #0f2a18;--cat-teal: #5eead4;--cat-teal-soft: #0b2b28;--cat-cyan: #67e8f9;--cat-cyan-soft: #0b2c33;--cat-blue: #93c5fd;--cat-blue-soft: #152340;--cat-indigo: #a5b4fc;--cat-indigo-soft: #1c1f45;--cat-violet: #c4b5fd;--cat-violet-soft: #251a45;--cat-pink: #f9a8d4;--cat-pink-soft: #3d1427;--series-1: #56b4e9;--series-2: #f08a4b;--series-3: #3cc9a0;--series-4: #e59ac8;--series-5: #8cc8f2;--series-6: #f0c04d;--series-7: #a5a6f6;--series-8: #bdb7ac;--shadow-1: 0 2px 8px rgb(0 0 0 / .14);--shadow-2: 0 16px 48px rgb(0 0 0 / .4);--overlay: rgb(8 7 6 / .66)}}:root[data-theme=dark]{--bg: #151513;--surface: #20201e;--surface-2: #292926;--surface-3: #343430;--border: #3b3b36;--border-strong: #5b5952;--control-border: #8a8478;--text: #f2efe9;--text-2: #bdb9b1;--text-3: #a9a59c;--brand: #a5a6f6;--brand-solid: #5b5bd6;--brand-solid-hover: #4b4bc4;--on-brand: #ffffff;--brand-soft: #25244a;--brand-border: #3d3c78;--income: #22a06b;--income-ink: #5fd39a;--income-soft: #10291d;--spend: #f0654f;--spend-ink: #ff9b88;--spend-soft: #3a1a14;--cards: #2e90e8;--cards-ink: #7fbaf4;--cards-soft: #132a40;--loans: #9b51e0;--loans-ink: #c79bf2;--loans-soft: #2c1a40;--goals: #f5a623;--goals-ink: #ffc561;--goals-soft: #33250a;--budgets: #13a8a8;--budgets-ink: #5fd6d6;--budgets-soft: #0d2c2c;--fun: #ec4899;--fun-ink: #f58cbf;--fun-soft: #3d1427;--pos: #5fd39a;--pos-soft: #10291d;--neg: #ff8f86;--neg-soft: #2e1816;--warn: #f2b84f;--warn-soft: #2b2110;--focus: #a5a6f6;--cat-red: #ff9a9a;--cat-red-soft: #3b1414;--cat-orange: #fdba74;--cat-orange-soft: #3a1d0b;--cat-amber: #fcd34d;--cat-amber-soft: #33240a;--cat-yellow: #fde047;--cat-yellow-soft: #302a06;--cat-lime: #bef264;--cat-lime-soft: #1f2c0b;--cat-green: #86efac;--cat-green-soft: #0f2a18;--cat-teal: #5eead4;--cat-teal-soft: #0b2b28;--cat-cyan: #67e8f9;--cat-cyan-soft: #0b2c33;--cat-blue: #93c5fd;--cat-blue-soft: #152340;--cat-indigo: #a5b4fc;--cat-indigo-soft: #1c1f45;--cat-violet: #c4b5fd;--cat-violet-soft: #251a45;--cat-pink: #f9a8d4;--cat-pink-soft: #3d1427;--series-1: #56b4e9;--series-2: #f08a4b;--series-3: #3cc9a0;--series-4: #e59ac8;--series-5: #8cc8f2;--series-6: #f0c04d;--series-7: #a5a6f6;--series-8: #bdb7ac;--shadow-1: 0 2px 8px rgb(0 0 0 / .14);--shadow-2: 0 16px 48px rgb(0 0 0 / .4);--overlay: rgb(8 7 6 / .66);color-scheme:dark}:root[data-theme=light]{color-scheme:light}:root[data-keyboard=up]{--bottom-nav-h: 0px;--sa-bottom: 0px}@media(min-width:600px){:root{--bottom-nav-h: 0px}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.625rem,2.4vw,2rem);line-height:1.18;font-weight:650;letter-spacing:-.035em}h2{font-size:var(--step-1);line-height:1.3;font-weight:650;letter-spacing:-.015em}h3{font-size:var(--step-0);line-height:1.4;font-weight:650}a{color:var(--brand);text-underline-offset:2px}:where(button,input,select,textarea){font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}::placeholder{color:var(--text-3);opacity:1}.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}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.btn--primary:active{transform:none}}.page{width:100%;max-width:var(--content);margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-6);display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-content:start}.page__cols,.page__col{display:contents}@media(min-width:1200px){.page--wide{max-width:var(--content-wide)}.page{padding-inline:var(--space-5);padding-top:var(--space-6)}.page__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);align-items:start}.page__col{display:grid;gap:var(--space-5);align-content:start;min-width:0}}.page__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);min-height:2.75rem}.title{font-size:clamp(1.625rem,2.4vw,2rem);line-height:1.18;font-weight:650;letter-spacing:-.035em}.page__back{display:inline-flex;align-items:center;gap:var(--space-1);min-height:2.75rem;color:var(--text-2);font-weight:600;text-decoration:none}.muted{color:var(--text-2)}.small{font-size:var(--step--1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:2.75rem;padding:.625rem var(--space-4);border:1px solid var(--control-border);border-radius:var(--radius-m);background:var(--surface);color:var(--text);font-weight:600;line-height:1.35;text-decoration:none;cursor:pointer;transition:background-color var(--motion-fast),border-color var(--motion-fast)}.btn:hover{background:var(--surface-2)}.btn:active{background:var(--surface-3)}.btn[disabled],.btn[aria-busy=true]{opacity:.6;cursor:progress}.btn--primary{background:var(--brand-solid);border-color:var(--brand-solid);color:var(--on-brand);box-shadow:var(--shadow-1);transition:background-color var(--motion-fast),transform var(--motion-fast) var(--ease-out)}.btn--primary:hover,.btn--primary:active{background:var(--brand-solid-hover);border-color:var(--brand-solid-hover)}.btn--primary:active{transform:scale(.97)}.btn--ghost{border-color:transparent;background:transparent;color:var(--brand)}.btn--ghost:hover{background:var(--surface-2)}.btn--danger{border-color:var(--neg);color:var(--neg);background:var(--surface)}.btn--danger:hover{background:var(--neg-soft)}.btn--block{width:100%}.btn--icon{width:2.75rem;flex-shrink:0;padding:0}.actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.search{position:relative}.search>app-icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--text-2);pointer-events:none}.search .input{padding-left:2.5rem}.search-link{display:flex;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-2) var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius-m);background:var(--surface);color:var(--text-2);text-decoration:none}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);min-height:2.75rem;padding:.5rem var(--space-3);border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--text);font-weight:600;font-size:var(--step--1);line-height:1.35;max-width:100%;overflow-wrap:anywhere;text-decoration:none;cursor:pointer}.chip[aria-pressed=true],.chip[aria-checked=true]{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:999px;font-size:var(--step--1);font-weight:650;background:var(--surface-2);color:var(--text-2)}.badge--warn{background:var(--warn-soft);color:var(--warn)}.badge--brand{background:var(--brand-soft);color:var(--brand)}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:var(--radius-l);padding:1.25rem;display:grid;gap:var(--space-4);min-width:0}.card__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.rows{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);overflow:clip}.row{display:flex;align-items:center;gap:var(--space-3);min-height:4rem;padding:var(--space-3) var(--space-4);color:inherit;text-decoration:none;width:100%;border:0;background:transparent;text-align:left}.row+.row{border-top:1px solid var(--border)}.rows>li+li>.row{border-top:1px solid var(--border)}.row__main{flex:1;min-width:0;display:grid;gap:.1875rem}.row__title{font-weight:600;line-height:1.4;overflow-wrap:anywhere}.row__sub{color:var(--text-2);font-size:var(--step--1);line-height:1.5;overflow-wrap:anywhere}.row__end{flex:none;text-align:right}a.row:hover,button.row:hover{background:var(--surface-2);cursor:pointer}.row--child{padding-left:var(--space-6)}@media(min-width:1200px){.rows.rows--tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);background:transparent;border:0;border-radius:0;overflow:visible}.rows.rows--tiles>li>.row,.rows.rows--tiles>li+li>.row{height:100%;border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface)}.rows.rows--tiles>li>a.row:hover{background:var(--surface-2)}}.stack{display:grid;gap:var(--space-3);min-width:0}.stack>.btn{justify-self:start}.danger{padding-top:var(--space-4);border-top:1px solid var(--border)}.asof{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:end}.asof .date-hint{grid-column:1/-1}.owed{display:block;font-size:var(--step-3);font-weight:750}.form{display:grid;gap:1.25rem}.field{display:grid;gap:.375rem;min-width:0}.field__label{font-weight:650;font-size:var(--step--1);color:var(--text)}.field__hint{font-size:var(--step--1);color:var(--text-2)}.field__error{display:flex;gap:var(--space-1);align-items:flex-start;font-size:var(--step--1);color:var(--neg);font-weight:600}.input{width:100%;min-width:0;min-height:2.75rem;padding:var(--space-2) var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius-m);background:var(--surface);color:var(--text);transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 4px var(--brand-soft)}.input[aria-invalid=true]{border-color:var(--neg);border-width:2px}.input--amount{font-size:var(--step-3);font-weight:700;font-variant-numeric:tabular-nums;min-height:3.5rem}input.input[type=file]{padding:var(--space-1)}input.input[type=file]::file-selector-button{min-height:2.5rem;margin-right:var(--space-3);padding:.5rem var(--space-4);border:1px solid var(--control-border);border-radius:var(--radius-m);background:var(--surface-2);color:var(--text);font:inherit;font-weight:600;cursor:pointer}app-amount-calc .calc .input{padding-inline-end:3rem}select.input{appearance:auto}select.input option,select.input optgroup{background:var(--surface);color:var(--text)}textarea.input{min-height:5rem;resize:vertical}fieldset.field{border:0;margin:0;padding:0;min-width:0}fieldset.field>legend{padding:0}.indent{padding-left:2rem}.halves{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.halves>.field__hint{grid-column:1/-1}.check{display:flex;align-items:center;gap:var(--space-2);min-height:2.75rem}.check input{flex:none;width:1.25rem;height:1.25rem;accent-color:var(--brand-solid)}.notice{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.notice--error{background:var(--neg-soft);border-color:transparent;color:var(--neg);font-weight:600}.notice--warn{background:var(--warn-soft);border-color:transparent;color:var(--warn)}.notice--ok{background:var(--pos-soft);border-color:transparent;color:var(--pos);font-weight:600}details.more{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface)}details.more>summary{display:flex;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-3) var(--space-4);cursor:pointer;font-weight:600;line-height:1.4;list-style:none}details.more>summary::-webkit-details-marker{display:none}details.more>summary:before{content:"";width:.5rem;height:.5rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s}details.more[open]>summary:before{transform:rotate(45deg)}details.more>.more__body{padding:var(--space-2) var(--space-4) var(--space-4);display:grid;gap:var(--space-4)}.skeleton{display:block;border-radius:var(--radius-m);background:var(--surface-3);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.slide-in-next{animation:slide-in-next var(--motion) var(--ease-out)}.slide-in-prev{animation:slide-in-prev var(--motion) var(--ease-out)}@keyframes slide-in-next{0%{opacity:0;transform:translate(16px)}}@keyframes slide-in-prev{0%{opacity:0;transform:translate(-16px)}}.draw-check path{stroke-dasharray:24;stroke-dashoffset:24;animation:draw-check .3s var(--ease-out) 80ms forwards}@keyframes draw-check{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.draw-check path{stroke-dashoffset:0}}dialog.sheet{inset:var(--sa-top) var(--sa-right) var(--sa-bottom) var(--sa-left);width:min(100% - 2rem - var(--sa-left) - var(--sa-right),28rem);max-height:calc(100dvh - 4rem - var(--sa-top) - var(--sa-bottom));padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface);color:var(--text);box-shadow:var(--shadow-2)}dialog.sheet::backdrop{background:var(--overlay)}dialog.sheet .sheet__body{display:grid;gap:var(--space-4)}@media(min-width:600px){dialog.sheet{width:min(32rem,100% - 4rem - var(--sa-left) - var(--sa-right));max-height:min(44rem,100dvh - 6rem - var(--sa-top) - var(--sa-bottom));padding:var(--space-6);margin:auto}}.table-scroll{overflow-x:auto}.table-scroll th[scope=row],.table-scroll thead th:first-child{position:sticky;inset-inline-start:0;z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--border)}@media(max-width:599px){dialog.sheet .row:has(>app-reorder-buttons){flex-wrap:wrap}dialog.sheet .row:has(>app-reorder-buttons)>.check{flex-basis:100%}dialog.sheet .row:has(>app-reorder-buttons)>app-reorder-buttons{margin-inline-start:auto}}@media(prefers-reduced-motion:no-preference){.btn>app-icon,app-main-nav .link__icon{transition:transform var(--motion-fast) var(--ease-out)}.btn:not([disabled]):not([aria-busy=true]):active>app-icon,app-main-nav .link:active .link__icon{transform:scale(.92)}app-main-nav .link.is-active .link__icon app-icon{animation:tx-nav-settle .24s var(--ease-out)}.chip[aria-checked=true]>app-tile{animation:tx-choice-pop .18s var(--ease-out)}:is(.page>.rows,.page>.stack,.page>.card):not(.totals,.slide-in-next,.slide-in-prev):not(:has(input,select,textarea,dialog,[role=alert])){animation:tx-surface-in .18s var(--ease-out)}details.more[open]>.more__body{animation:tx-disclosure-in .16s var(--ease-out)}dialog.sheet[open]{animation:tx-sheet-in .2s var(--ease-out)}dialog.sheet[open]::backdrop{animation:tx-backdrop-in .16s var(--ease-out)}.empty app-spot,.start app-spot{transform-origin:center bottom;animation:tx-hello .26s var(--ease-out)}.signin__card>svg{animation:tx-choice-pop .22s var(--ease-out)}}@media(prefers-reduced-motion:no-preference)and (hover:hover)and (pointer:fine){a.row>app-icon:last-child,button.row>app-icon:last-child{transition:transform var(--motion-fast) var(--ease-out)}a.row:hover>app-icon:last-child,button.row:hover>app-icon:last-child{transform:translate(2px)}}@media(prefers-reduced-motion:no-preference){@keyframes tx-nav-settle{0%{transform:translateY(2px) scale(.86)}65%{transform:translateY(-1px) scale(1.06)}to{transform:none}}@keyframes tx-choice-pop{0%{transform:scale(.94)}65%{transform:scale(1.04)}to{transform:none}}@keyframes tx-surface-in{0%{transform:translateY(4px)}to{transform:none}}@keyframes tx-disclosure-in{0%{transform:translateY(-3px)}to{transform:none}}@keyframes tx-sheet-in{0%{transform:translateY(8px) scale(.985)}to{transform:none}}@keyframes tx-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes tx-hello{0%{transform:rotate(-4deg) scale(.96)}65%{transform:rotate(2deg) scale(1.02)}to{transform:none}}}
