@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;font-stretch:75% 100%;src:url(/gastos/assets/instrument-sans-latin-ext-wdth-normal-C5E2Gvlv.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;font-stretch:75% 100%;src:url(/gastos/assets/instrument-sans-latin-wdth-normal-BVScPF0l.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font:"Instrument Sans Variable", "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--bg:#f4f4f7;--surface:#fff;--rail:#fff;--sunk:#f2f1f6;--ink:#1d1b29;--ink-2:#474456;--muted:#6c697a;--faint:#a5a2b3;--line:#e9e7ef;--line-2:#d9d6e2;--brand:#3d39a8;--brand-ink:#fff;--brand-hover:color-mix(in srgb, var(--brand) 85%, #000);--brand-soft:color-mix(in srgb, var(--brand) 10%, var(--surface));--gain:#1b7a4b;--gain-soft:#e3f2ea;--owe:#96600a;--owe-soft:#fbf0db;--owe-bar:#d6961c;--loss:#b3352a;--loss-soft:#fbe8e4;--bar:var(--brand);--bar-idle:color-mix(in srgb, var(--brand) 17%, var(--surface));--t0:#4b47b8;--t1:#23825a;--t2:#c2553a;--t3:#a46d0b;--t4:#1d7896;--t5:#8a4fa8;--t6:#4f68a6;--t7:#b4467a;--tn:#7a778a;--tone-mix:13%;--toast-bg:#1d1b29;--toast-ink:#f4f3f8;--toast-action:color-mix(in srgb, var(--brand) 40%, #fff);--scrim:#1816245c;--shadow-sheet:0 28px 70px -18px #1d1b2959, 0 0 0 1px #1d1b290f;--shadow-raise:0 1px 2px #1d1b2912, 0 0 0 1px #1d1b290d;--shadow-card:0 1px 2px #1d1b290a;--r-s:8px;--r:10px;--r-l:16px;--ease:cubic-bezier(.2, .8, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--spring:linear(0, .031, .11, .216, .335, .455, .569, .672, .761, .836, .897, .944, .98, 1.005, 1.022, 1.032, 1.037, 1.038, 1.037, 1.034, 1.03, 1.025, 1.02, 1.016, 1.012, 1.009, 1.006, 1.004, 1);--spring-soft:linear(0, .035, .121, .233, .354, .473, .582, .679, .761, .829, .883, .924, .956, .979, .994, 1.005, 1.011, 1.014, 1.015, 1.015, 1.014, 1.012, 1.01, 1.008, 1.007, 1.005, 1.004, 1.003, 1);--side:248px;--tabbar:64px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121118;--surface:#1b1a23;--rail:#16151d;--sunk:#23222d;--ink:#ecebf3;--ink-2:#c6c4d2;--muted:#9895a8;--faint:#66637a;--line:#2a2936;--line-2:#383645;--brand:#aaa7ff;--brand-ink:#15141c;--brand-hover:color-mix(in srgb, var(--brand) 85%, #fff);--brand-soft:color-mix(in srgb, var(--brand) 18%, var(--surface));--gain:#71d09d;--gain-soft:#1a3327;--owe:#e8b660;--owe-soft:#392c15;--owe-bar:#e8b660;--loss:#f08c7f;--loss-soft:#3d201c;--bar:var(--brand);--bar-idle:color-mix(in srgb, var(--brand) 22%, var(--surface));--t0:#aaa7ff;--t1:#71d09d;--t2:#f29a7f;--t3:#e8b660;--t4:#6cc3e0;--t5:#cf9bec;--t6:#97acea;--t7:#ec8fba;--tn:#9895a8;--tone-mix:18%;--toast-bg:#ecebf3;--toast-ink:#1b1a23;--toast-action:color-mix(in srgb, var(--brand) 55%, #000);--scrim:#06050c94;--shadow-sheet:0 28px 70px -18px #0009, 0 0 0 1px #ffffff0f;--shadow-raise:0 1px 2px #0006, 0 0 0 1px #ffffff0d;--shadow-card:none}:root[data-bg=warm]{--bg:#f5f2ec;--surface:#fffdf9;--rail:#fffdf9;--sunk:#f1ede5;--line:#ebe5da;--line-2:#dbd3c5;--ink:#221f1a;--ink-2:#4a453c;--muted:#706a5f;--faint:#a9a294}:root[data-bg=warm][data-theme=dark]{--bg:#15130f;--surface:#1f1c17;--rail:#1a1814;--sunk:#29251f;--line:#332e27;--line-2:#433c33;--ink:#efebe3;--ink-2:#cdc6ba;--muted:#a19a8d;--faint:#6e675b}:root[data-bg=cool]{--bg:#eef3f9;--surface:#fff;--rail:#fff;--sunk:#edf2f8;--line:#e1e8f1;--line-2:#cfd9e6;--ink:#162033;--ink-2:#3f4a5e;--muted:#5f6b80;--faint:#9aa5b7}:root[data-bg=cool][data-theme=dark]{--bg:#0d1320;--surface:#151c2c;--rail:#111827;--sunk:#1c2537;--line:#253046;--line-2:#323f58;--ink:#e8edf6;--ink-2:#c3cbda;--muted:#8f9bb2;--faint:#5d6a82}:root[data-bg=pure]{--bg:#fff;--surface:#fff;--rail:#fff;--sunk:#f3f3f5;--line:#e2e2e7;--line-2:#cbcbd3;--ink:#0f0f14;--ink-2:#33333c;--muted:#585863;--faint:#9a9aa5;--shadow-card:none}:root[data-bg=pure][data-theme=dark]{--bg:#000;--surface:#0f0f12;--rail:#000;--sunk:#18181c;--line:#232328;--line-2:#303036;--ink:#f2f2f5;--ink-2:#cfcfd6;--muted:#9a9aa6;--faint:#62626c;--shadow-card:none}*,:before,:after{box-sizing:border-box}html{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;font-size:15px;line-height:1.5}body{background:var(--bg);min-height:100dvh;margin:0}h1,h2,h3,p,ul,dl,dd{margin:0}ul{padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}img{display:block}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-s)}::selection{background:var(--brand-soft)}kbd{opacity:.55;border:1px solid;border-radius:5px;padding:3px 5px;font-family:inherit;font-size:11px;font-weight:600;line-height:1}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.is-positive{color:var(--gain)}.is-negative{color:var(--loss)}.is-owe{color:var(--owe)}.with-icon{align-items:center;gap:4px;display:inline-flex}.money{white-space:nowrap;font-variant-numeric:tabular-nums}.money-unit{color:var(--muted);margin-right:.28em;font-size:.8em;font-weight:450}.money.is-positive .money-unit,.money.is-negative .money-unit,.money.is-owe .money-unit{color:inherit;opacity:.72}.money-hidden{letter-spacing:.08em;color:var(--muted)}.btn{border-radius:var(--r);white-space:nowrap;height:38px;transition:background-color .12s var(--ease), color .12s var(--ease), border-color .12s var(--ease), transform .12s var(--ease);justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:14.5px;font-weight:550;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45}.btn-primary{background:var(--brand);color:var(--brand-ink)}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-ghost{border:1px solid var(--line-2);background:var(--surface)}.btn-ghost:hover:not(:disabled){background:var(--sunk)}.btn-quiet{color:var(--ink-2);padding:0 10px}.btn-quiet:hover:not(:disabled){background:var(--sunk);color:var(--ink)}.btn.danger{color:var(--loss)}.btn.is-armed{background:var(--loss);border-color:var(--loss);color:#fff}.btn-small{border-radius:9px;height:32px;padding:0 11px;font-size:13.5px}.btn-quiet.btn-small{padding:0 8px}.icon-btn{width:34px;height:34px;color:var(--muted);transition:background-color .12s var(--ease), color .12s var(--ease), transform .16s var(--spring);border-radius:9px;flex:none;place-items:center;display:inline-grid}.icon-btn:active{transform:scale(.9)}.icon-btn:hover{background:var(--sunk);color:var(--ink)}.icon-btn[aria-pressed=true]{color:var(--brand)}.link-btn{color:var(--brand);text-align:left;font-weight:550}.link-btn:hover{text-underline-offset:3px;text-decoration:underline}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}input:not([type=checkbox]):not([type=month]),select,textarea{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);width:100%;height:44px;transition:border-color .12s var(--ease), box-shadow .12s var(--ease);padding:0 12px;font-size:15px}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}input::placeholder{color:var(--faint)}select{-webkit-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' viewBox='0 0 12 8'%3E%3Cpath stroke='%238a8798' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.6' d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat;padding-right:36px}input[type=date]{min-width:0}input[list]::-webkit-calendar-picker-indicator{display:none!important}input[type=search]::-webkit-search-cancel-button{display:none}.select-compact{width:auto;height:38px!important;font-size:14.5px!important}.segmented{border-radius:var(--r);background:var(--sunk);gap:2px;max-width:100%;padding:3px;display:inline-flex;position:relative}.segmented button{height:32px;color:var(--muted);white-space:nowrap;transition:background-color .14s var(--ease), color .14s var(--ease), box-shadow .14s var(--ease);border-radius:8px;padding:0 12px;font-size:14px;font-weight:500}.segmented button:hover{color:var(--ink)}.segmented button{z-index:1;position:relative}.segmented button.is-on{color:var(--ink);font-weight:600}.segmented-thumb{width:var(--iw,0px);height:var(--ih,0px);background:var(--surface);box-shadow:var(--shadow-raise);transform:translate(var(--ix,0px), var(--iy,0px));pointer-events:none;border-radius:8px;position:absolute;top:0;left:0}[data-indicator=on]>.segmented-thumb{transition:transform .38s var(--spring), width .38s var(--spring)}.chip{border:1px solid var(--line-2);height:30px;color:var(--ink-2);border-radius:999px;padding:0 12px;font-size:13.5px;font-weight:500}.chip.is-on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.tag{background:var(--sunk);height:20px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;padding:0 7px;font-size:12px;font-weight:550;display:inline-flex}.tag-due-soon,.tag-pending{background:var(--owe-soft);color:var(--owe)}.tag-due-overdue{background:var(--loss-soft);color:var(--loss)}.tag-ok{background:var(--gain-soft);color:var(--gain)}.check{cursor:pointer;align-items:center;gap:10px;font-size:14.5px;display:flex}.check input{width:18px;height:18px;accent-color:var(--brand)}.switch{cursor:pointer;flex:none;width:44px;height:26px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;top:0;bottom:0;left:0;right:0}.switch span[aria-hidden]{background:var(--line-2);transition:background-color .16s var(--ease);pointer-events:none;border-radius:999px;position:absolute;top:0;bottom:0;left:0;right:0}.switch span[aria-hidden]:after{content:"";width:20px;height:20px;transition:transform .32s var(--spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:after{transform:translate(18px)}.switch input:disabled+span{opacity:.4}.switch input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}.cat-icon{--t:var(--tn);color:var(--t);background:color-mix(in srgb, var(--t) var(--tone-mix), var(--surface));border-radius:10px;flex:none;place-items:center;font-size:12px;font-weight:650;display:inline-grid}.cat-icon-sm{border-radius:7px;width:24px;height:24px;font-size:10.5px}.cat-icon-md{width:38px;height:38px}.cat-icon-lg{border-radius:12px;width:44px;height:44px}.tone-0{--t:var(--t0)}.tone-1{--t:var(--t1)}.tone-2{--t:var(--t2)}.tone-3{--t:var(--t3)}.tone-4{--t:var(--t4)}.tone-5{--t:var(--t5)}.tone-6{--t:var(--t6)}.tone-7{--t:var(--t7)}.tone-neutral{--t:var(--tn)}.avatar-initial{--t:var(--brand);border-radius:50%;font-size:15px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-card);padding:18px 20px 20px}.card-head{justify-content:space-between;align-items:center;gap:12px;min-height:32px;margin-bottom:6px;display:flex}.card-head h2{letter-spacing:-.005em;font-size:16.5px;font-weight:620;font-stretch:92%}.card-figure{font-weight:600}.card-figure.is-owe{color:var(--owe)}.card-note{color:var(--muted);padding:10px 0 2px;font-size:14.5px}.card-more{border-top:1px solid var(--line);width:100%;color:var(--brand);text-align:center;margin-top:6px;padding:10px 0 0;font-size:14px;font-weight:550;display:block}.meter{background:var(--sunk);border-radius:999px;height:6px;display:block;position:relative;overflow:hidden}.meter>span{border-radius:inherit;background:var(--brand);transform-origin:0;height:100%;animation:grow-x .62s var(--ease-out) both;transition:width .46s var(--spring-soft);display:block}@keyframes grow-x{0%{transform:scaleX(0)}}.meter-gain>span{background:var(--gain)}.meter-owe>span{background:var(--owe-bar)}.meter-loss>span{background:var(--loss)}.notice{--n:var(--brand);border-radius:var(--r);background:color-mix(in srgb, var(--n) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--n) 18%, transparent);color:var(--ink-2);align-items:center;gap:12px;padding:10px 10px 10px 14px;font-size:14px;display:flex}.notice-owe{--n:var(--owe)}.notice-loss{--n:var(--loss)}.notice-gain{--n:var(--gain)}.notice-icon{color:var(--n);flex:none;display:grid}.notice-text{flex:1;min-width:0}.notice-text strong{color:var(--ink);font-weight:600}.notice .btn{flex:none}.app{min-height:100dvh}.side{width:var(--side);background:var(--rail);border-right:1px solid var(--line);z-index:10;flex-direction:column;gap:16px;padding:20px 14px 14px;display:flex;position:fixed;top:0;bottom:0;left:0;right:auto;overflow-y:auto}.brand{letter-spacing:-.01em;align-items:center;gap:10px;padding:2px 8px;font-size:20px;font-weight:650;font-stretch:85%;display:flex}.brand img,.login-logo{border-radius:8px}.side-add{justify-content:flex-start;width:100%;height:40px}.side-add kbd{margin-left:auto}.side-nav{gap:1px;display:grid}.side-group{color:var(--faint);padding:6px 10px 4px;font-size:12.5px;font-weight:550}.side-nav-low{border-top:1px solid var(--line);padding-top:12px}.nav-indicator{width:var(--iw,0px);height:var(--ih,0px);background:var(--brand-soft);transform:translate(var(--ix,0px), var(--iy,0px));pointer-events:none;border-radius:9px;position:absolute;top:0;left:0}[data-indicator=on]>.nav-indicator{transition:transform .42s var(--spring), height .42s var(--spring)}.side-link{z-index:1;height:36px;color:var(--ink-2);transition:background-color .12s var(--ease), color .12s var(--ease);border-radius:9px;align-items:center;gap:12px;padding:0 10px;font-weight:500;display:flex;position:relative}.side-link svg{color:var(--muted);flex:none}.side-link:hover{background:var(--sunk);color:var(--ink)}.side-link.is-active,.side-link.is-active:hover{color:var(--brand);background:0 0;font-weight:600}.side-link.is-active svg{color:var(--brand)}.nav-badge{background:var(--owe-soft);min-width:20px;height:20px;color:var(--owe);text-align:center;border-radius:999px;margin-left:auto;padding:0 6px;font-size:11.5px;font-weight:700;line-height:20px}.side-foot{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:12px 4px 2px 8px;display:flex}.avatar{object-fit:cover;background:var(--brand-soft);width:32px;height:32px;color:var(--brand);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.side-user{flex:1;min-width:0;line-height:1.3;display:grid}.side-user strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.sync{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex;overflow:hidden}.sync:before{content:"";background:var(--gain);border-radius:50%;flex:none;width:6px;height:6px}.sync.is-busy:before{background:var(--owe);animation:1.2s ease-in-out infinite breathe}.sync.is-offline:before{background:var(--faint)}@keyframes breathe{50%{opacity:.3}}.main{margin-left:var(--side);padding:30px 44px 96px}.route{view-transition-name:route;animation:route-in .22s var(--ease-out) both}@supports (view-transition-name:none){.route{animation:none}}@keyframes route-in{0%{opacity:0;transform:translateY(6px)}}.page{align-content:start;gap:16px;max-width:1160px;margin:0 auto;display:grid}.page-narrow{max-width:760px}.page-list{max-width:900px}.page-tabs{view-transition-name:page-tabs}.page-head{view-transition-name:page-head;justify-content:space-between;align-items:center;gap:16px;min-height:42px;margin-bottom:8px;display:flex}.page-head h1{letter-spacing:-.02em;font-size:30px;font-weight:640;font-stretch:86%;line-height:1.1}.page-head-title p{color:var(--muted);margin-top:3px;font-size:14.5px}.page-head-tools{align-items:center;gap:8px;display:flex}.banner{border-radius:var(--r);background:var(--loss-soft);max-width:1160px;color:var(--loss);justify-content:space-between;align-items:center;gap:12px;margin:0 auto 16px;padding:8px 8px 8px 14px;font-size:14px;display:flex}.banner-quiet{background:var(--sunk);color:var(--ink-2);justify-content:flex-start;padding:10px 14px}.tabbar,.tab-add{display:none}.month-switch{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:2px;padding:2px;display:inline-flex}.month-switch .icon-btn{width:32px;height:32px}.month-switch-label{text-align:center;cursor:pointer;white-space:nowrap;border-radius:8px;min-width:140px;padding:5px 8px;font-size:15px;font-weight:620;position:relative}.month-switch-label:hover{background:var(--sunk)}.month-switch-label:focus-within{outline:2px solid var(--brand);outline-offset:1px}.month-switch-year{color:var(--muted);font-weight:500}.month-switch-label input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.overview-top{grid-template-columns:minmax(0,1fr) 340px;align-items:stretch;gap:20px;display:grid}.hero{border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);padding:22px 24px 18px}.hero-label{color:var(--muted);font-size:15px}.hero-figure{letter-spacing:-.025em;margin:6px 0 10px;font-size:clamp(54px,7.4vw,96px);font-weight:600;font-stretch:75%;line-height:.92}.hero-figure .money-unit{letter-spacing:0;vertical-align:.95em;margin-right:.35em;font-size:.3em;font-weight:500;font-stretch:100%;display:inline-block}.hero-facts{color:var(--ink-2);flex-wrap:wrap;gap:4px 18px;font-size:14px;display:flex}.delta-text.is-up{color:var(--loss)}.delta-text.is-down{color:var(--gain)}.projection{border-radius:var(--r-l);background:var(--brand);color:var(--brand-ink);flex-direction:column;gap:8px;padding:22px 22px 18px;display:flex}.projection .money-unit,.projection .money.is-positive,.projection .money.is-negative,.projection .money.is-positive .money-unit,.projection .money.is-negative .money-unit,.projection-text.is-negative{color:inherit}.projection-label{opacity:.78;font-size:15px}.projection-figure{letter-spacing:-.02em;font-size:46px;font-weight:600;font-stretch:76%;line-height:1}.projection-figure .money-unit{letter-spacing:0;opacity:.7;font-size:.38em;font-stretch:100%}.projection-text{font-size:15px;line-height:1.45}.projection-text .money{font-weight:650}.projection-hint{opacity:.75;font-size:13.5px}.projection-pace{opacity:.92;gap:8px;margin-top:6px;font-size:13px;display:grid}.projection-meter{background:color-mix(in srgb, var(--brand-ink) 22%, transparent);border-radius:999px;height:8px;display:block;position:relative}.projection-meter>span{border-radius:inherit;background:var(--brand-ink);height:100%;display:block}.projection-meter>i{background:var(--brand-ink);opacity:.6;border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.projection-foot{border-top:1px solid color-mix(in srgb, var(--brand-ink) 20%, transparent);gap:10px;margin-top:auto;padding-top:14px;font-size:14px;display:flex}.projection-foot svg{opacity:.8;flex:none;margin-top:2px}.projection-foot .money{font-weight:650}.projection-foot small{opacity:.75;margin-top:2px;font-size:12.5px;display:block}.projection-empty{background:var(--surface);color:var(--ink);border:1px dashed var(--line-2);justify-content:center}.projection-empty .projection-label{opacity:1;font-weight:600}.projection-empty .projection-text{color:var(--muted)}.projection-empty .btn{align-self:flex-start;margin-top:6px}.daystrip{margin-top:26px}.daystrip-bars,.daystrip-axis{--gap:4px;grid-template-columns:repeat(var(--days), minmax(0, 1fr));column-gap:var(--gap);display:grid}.daystrip-bars{align-items:end;height:112px}.daystrip-day{border-radius:4px;align-items:flex-end;height:100%;display:flex;position:relative}.daystrip-day:after{content:"";background:var(--line-2);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:-1px;left:50%}.daystrip-day.has-value:after{display:none}.daystrip-day.is-future:after{box-shadow:inset 0 0 0 1px var(--line-2);background:0 0}.daystrip-bar{width:100%;height:var(--h);background:var(--bar);opacity:.86;transform-origin:bottom;animation:grow .52s var(--ease) both;animation-delay:calc(var(--i) * 14ms);transition:height .32s var(--ease), opacity .16s var(--ease);border-radius:3px 3px 1px 1px}.daystrip-day.is-future .daystrip-bar{opacity:.35}@keyframes grow{0%{transform:scaleY(0)}}.daystrip-day.has-value:hover .daystrip-bar{opacity:1}.daystrip-bars:has(.is-selected) .daystrip-bar{opacity:.25}.daystrip-bars:has(.is-selected) .is-selected .daystrip-bar{opacity:1}.daystrip-day.is-today:before{content:"";background:var(--ink);border-radius:1px;height:2px;position:absolute;bottom:-9px;left:-2px;right:-2px}.daystrip-tip{bottom:calc(var(--h) + 8px);left:calc((100% + var(--gap)) * var(--x) - var(--gap) / 2);opacity:0;transition:left .24s var(--ease-out), bottom .24s var(--ease-out), translate .24s var(--ease-out), opacity .16s var(--ease);z-index:3;background:var(--toast-bg);color:var(--toast-ink);text-align:left;white-space:nowrap;pointer-events:none;border-radius:9px;gap:1px;padding:7px 10px;font-size:12.5px;display:grid;position:absolute;translate:-50%}.daystrip-tip.is-start{translate:-14px}.daystrip-tip.is-end{translate:calc(14px - 100%)}.daystrip-tip strong{opacity:.75;font-weight:500}.daystrip-tip .money{font-size:14px;font-weight:650}.daystrip-tip .money-unit{color:inherit;opacity:.7}.daystrip-axis{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:12px;font-size:12px}.overview-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px;display:grid}.overview-main,.overview-side{gap:16px;min-width:0;display:grid}.mini-ledger{display:grid}.mini-ledger div{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;font-size:14.5px;display:flex}.mini-ledger dt{color:var(--ink-2)}.mini-ledger dd{font-weight:550}.mini-ledger .mini-ledger-total{border-bottom:0;padding-top:11px;font-size:16px}.mini-ledger-total dt{color:var(--ink);font-weight:600}.mini-ledger-total dd{font-weight:650}.alerts{gap:12px;padding-top:4px;display:grid}.alerts li{color:var(--ink-2);gap:10px;font-size:14px;line-height:1.45;display:flex}.alerts li>:first-child{flex:none;margin-top:1px}.alerts strong,.alerts .money{color:var(--ink);font-weight:600}.alert-icon{border-radius:7px;place-items:center;width:24px;height:24px;display:grid}.alert-icon.is-owe{background:var(--owe-soft);color:var(--owe)}.alert-icon.is-loss{background:var(--loss-soft);color:var(--loss)}.catsplit-bar{height:10px;animation:reveal-x .64s var(--ease-out) both;border-radius:999px;gap:2px;margin:6px 0 10px;display:flex;overflow:hidden}@keyframes reveal-x{0%{clip-path:inset(0 100% 0 0 round 999px)}to{clip-path:inset(0 round 999px)}}.catsplit-bar span{background:var(--t);flex-basis:0;min-width:3px}.catsplit-row{text-align:left;border-radius:9px;grid-template-columns:24px minmax(0,1fr) auto 64px;align-items:center;gap:10px;width:calc(100% + 12px);margin:0 -6px;padding:7px 6px;font-size:14.5px;display:grid}button.catsplit-row:hover{background:var(--sunk)}.catsplit-name{text-overflow:ellipsis;white-space:nowrap;gap:5px;display:grid;overflow:hidden}.catsplit-name .meter{height:4px}.catsplit-share{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13.5px}.catsplit-amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:550}.catsplit-row.is-rest{color:var(--muted)}.monthbars{grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;margin-top:6px;display:grid}.monthbar{border-radius:6px;grid-template-rows:16px 104px auto;justify-items:center;gap:6px;padding:0;display:grid}.monthbar-value{white-space:nowrap;color:var(--ink-2);opacity:0;transition:opacity .12s var(--ease);font-size:11px;font-weight:600}.monthbar:hover .monthbar-value,.monthbar.is-selected .monthbar-value{opacity:1}.monthbar-track{align-items:flex-end;width:100%;height:100%;display:flex;position:relative}.monthbar-avg{border-top:1px dashed var(--faint);z-index:1;pointer-events:none;height:0;position:absolute;left:-2px;right:-2px}.monthbar-fill{background:var(--bar-idle);transform-origin:bottom;width:100%;animation:grow .56s var(--ease-out) both;transition:height .42s var(--spring-soft), background-color .16s var(--ease);border-radius:3px 3px 1px 1px}.monthbar:hover .monthbar-fill{background:color-mix(in srgb, var(--bar) 45%, var(--bar-idle))}.monthbar.is-selected .monthbar-fill{background:var(--bar)}.monthbar-label{color:var(--muted);text-align:center;font-size:11.5px;line-height:1.2}.monthbar-label small{color:var(--faint);font-size:10.5px;display:block}.monthbar.is-selected .monthbar-label{color:var(--ink);font-weight:600}.monthbars-note{color:var(--muted);margin-top:10px;font-size:13px}.monthbars-note:before{content:"";vertical-align:middle;border-top:1px dashed var(--faint);width:14px;margin-right:6px;display:inline-block}.minibars{grid-template-columns:repeat(6,12px);align-items:end;gap:4px;height:46px;display:grid}.minibars span{grid-template-rows:1fr auto;gap:3px;height:100%;display:grid}.minibars i{background:var(--gain);opacity:.8;border-radius:2px;align-self:end;display:block}.minibars small{text-align:center;color:var(--faint);font-size:9.5px}.rows{display:grid}.row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:62px;display:grid}.rows>.row:last-child{border-bottom:0}.row-main{text-align:left;align-items:center;gap:12px;min-width:0;padding:10px 0;display:flex}.row-lead{flex:none;display:inline-flex;position:relative}.row-lead .cat-icon{transition:transform .2s var(--spring)}.row-main:active .row-lead .cat-icon{transform:scale(.92)}.row.is-fresh{animation:row-in .42s var(--spring-soft) both, row-flash 1.8s var(--ease) both;border-radius:6px}@keyframes row-in{0%{opacity:0;transform:translateY(-8px)}}@keyframes row-flash{0%{background-color:var(--brand-soft);box-shadow:-8px 0 0 var(--brand-soft), 8px 0 0 var(--brand-soft)}60%{background-color:var(--brand-soft);box-shadow:-8px 0 0 var(--brand-soft), 8px 0 0 var(--brand-soft)}}.paid-pop{background:var(--gain);color:#fff;width:18px;height:18px;box-shadow:0 0 0 2px var(--surface);animation:paid-pop .9s var(--spring) both;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-4px;right:-4px}@keyframes paid-pop{0%{transform:scale(0)}35%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.6)}}.row-amount{transition:color .3s var(--ease)}.row-text{gap:3px;min-width:0;display:grid}.row-title{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;font-weight:550;display:flex;overflow:hidden}.row-flag{color:var(--muted);flex:none}.row-main:hover .row-title{color:var(--brand)}.row-sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;display:flex}.row-end{justify-items:end;gap:4px;display:grid}.row-amount{text-align:right;font-weight:600}.row.is-overdue .row-amount{color:var(--loss)}.row-actions{gap:4px;display:flex}.pay-btn{border:1px solid color-mix(in srgb, var(--gain) 35%, transparent);height:24px;color:var(--gain);transition:background-color .12s var(--ease), color .12s var(--ease), transform .12s var(--ease);border-radius:999px;align-items:center;gap:4px;padding:0 9px 0 7px;font-size:12.5px;font-weight:600;display:inline-flex}.pay-btn:hover{background:var(--gain);border-color:var(--gain);color:var(--surface)}.pay-btn:active{transform:scale(.94)}.pay-btn-neutral{border-color:var(--line-2);color:var(--ink-2);padding:0 9px}.pay-btn-neutral:hover{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.rows-card{border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);padding:4px 20px}.daygroups{gap:12px;display:grid}.daygroup{border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);padding:0 20px 4px}.daygroup-head{border-bottom:1px solid var(--line);color:var(--ink-2);justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0 8px;font-size:13.5px;font-weight:600;display:flex}.daygroup-total{color:var(--muted);font-weight:500}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar-end{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.search{flex:240px;align-items:center;max-width:340px;display:flex;position:relative}.search>svg{color:var(--muted);pointer-events:none;position:absolute;left:12px}.search input{height:38px!important;padding-left:38px!important;padding-right:36px!important}.search .icon-btn{width:32px;height:32px;position:absolute;right:2px}.summary-line{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:6px 22px;font-size:14.5px;display:flex}.summary-line .money{color:var(--ink);font-weight:600}.summary-line .money.is-positive{color:var(--gain)}.is-pending-text .money{color:var(--owe)}.empty{text-align:center;justify-items:center;gap:8px;padding:40px 16px;display:grid}.empty-icon{background:var(--gain-soft);width:48px;height:48px;color:var(--gain);border-radius:50%;place-items:center;margin-bottom:4px;display:grid}.empty-title{font-size:16.5px;font-weight:600}.empty-text{max-width:46ch;color:var(--muted);font-size:14.5px}.empty .btn,.empty-actions{margin-top:8px}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.empty-actions .btn{margin-top:0}.placeholder{gap:14px;max-width:1160px;margin:0 auto;display:grid}.ph{border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);animation:1.6s ease-in-out infinite breathe}.ph-title{border-radius:10px;width:180px;height:34px;margin-bottom:8px}.ph-hero{grid-template-columns:minmax(0,1fr) 340px;gap:20px;display:grid}.ph-hero>div{gap:12px;display:grid}.ph-line{border-radius:6px;width:200px;height:18px}.ph-figure{width:min(420px,80%);height:76px}.ph-strip{height:112px}.ph-card{min-height:240px}.ph-row{height:58px}.sheet-layer{z-index:50;position:fixed;top:0;bottom:0;left:0;right:0}.sheet-scrim{background:color-mix(in srgb, var(--scrim) calc(var(--scrim-k,1) * 100%), transparent);animation:fade-in .2s var(--ease-out) both;position:absolute;top:0;bottom:0;left:0;right:0}.sheet{transition:translate .42s var(--spring-soft);border-radius:var(--r-l);background:var(--surface);width:min(468px,100% - 24px);max-height:calc(100% - 24px);box-shadow:var(--shadow-sheet);animation:sheet-in-side .44s var(--spring-soft) both;outline:none;flex-direction:column;display:flex;position:absolute;top:12px;right:12px}.sheet-wide{width:min(600px,100% - 24px)}.sheet.sheet-morph{animation:none}.sheet-layer[data-state=closing] .sheet{view-transition-name:none!important}.sheet-layer[data-state=closing]{pointer-events:none}.sheet-layer[data-state=closing] .sheet-scrim{animation:fade-out .17s var(--ease-in) both}.sheet-layer[data-state=closing] .sheet{animation:sheet-out-side .17s var(--ease-in) both}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes sheet-in-side{0%{opacity:0;transform:translate(32px)}}@keyframes sheet-out-side{to{opacity:0;transform:translate(20px)}}.sheet-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 14px 8px 24px;display:flex}.sheet-head h2{letter-spacing:-.012em;padding-top:3px;font-size:21px;font-weight:640;font-stretch:88%;line-height:1.25}.sheet-sub{color:var(--muted);max-width:46ch;margin-top:4px;font-size:14px}.sheet-body{overscroll-behavior:contain;flex:1;padding:10px 24px 24px;overflow-y:auto}.sheet-foot{border-top:1px solid var(--line);align-items:center;gap:8px;padding:12px 16px 12px 20px;display:flex}.spacer{flex:1}.sheet-lede{color:var(--ink-2)}.sheet-extra{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.more-list{gap:2px;margin:0 -8px;display:grid}.more-link{border-radius:var(--r);text-align:left;align-items:center;gap:14px;height:50px;padding:0 12px;font-size:16px;font-weight:500;display:flex}.more-link svg{color:var(--muted)}.more-link:hover,.more-link.is-active{background:var(--sunk)}.more-link.is-active{font-weight:600}.more-link.is-active svg{color:var(--brand)}.more-link.danger,.more-link.danger svg{color:var(--loss)}.more-foot{color:var(--muted);text-align:center;margin-top:14px;font-size:13px}.form{gap:18px;display:grid}.field{align-content:start;gap:6px;min-width:0;display:grid}.field-label{color:var(--ink-2);align-items:center;gap:6px;font-size:13.5px;font-weight:550;display:inline-flex}.field-hint{color:var(--muted);font-size:12.5px}.field-label-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.field-label-row .segmented{padding:2px}.field-label-row .segmented button{height:26px;padding:0 10px;font-size:13px}.amount-input-lg .amount-input-unit+input{padding-left:52px!important}.field-hint .money{color:var(--ink-2);font-weight:600}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-row .segmented,.field>.segmented{display:flex}.form-row .segmented button,.field>.segmented button{flex:1;padding:0 6px}.form-error{border-radius:var(--r);background:var(--loss-soft);color:var(--loss);padding:10px 12px;font-size:14px}.form-note{color:var(--owe);font-size:14px}.quick-entry{background:var(--brand-soft);border-radius:12px;gap:6px;padding:14px;display:grid}.quick-entry .field-label{color:var(--brand)}.quick-entry input{border-color:#0000!important;height:46px!important;font-size:16px!important}.quick-entry input:focus{border-color:var(--brand)!important}.quick-entry .field-hint{color:var(--ink-2);opacity:.8}.amount-input{align-items:center;display:flex;position:relative}.amount-input-unit{color:var(--muted);pointer-events:none;font-size:15px;font-weight:500;position:absolute;left:14px}.amount-input-lg input{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-weight:600;font-stretch:78%;height:58px!important;padding-left:46px!important;font-size:30px!important}.amount-input-md input{font-variant-numeric:tabular-nums;font-weight:600;font-stretch:86%;padding-left:42px!important;font-size:17px!important}.amount-input-inline input{text-align:right;width:200px;font-weight:600;font-stretch:85%;height:40px!important;padding-left:40px!important;font-size:18px!important}.amount-input-inline .amount-input-unit{font-size:14px;left:12px}.category-select{align-items:center;display:flex;position:relative}.category-select .cat-icon{pointer-events:none;position:absolute;left:10px}.category-select select{padding-left:44px}.date-field{align-items:center;gap:8px;display:flex}.date-chips{flex:none;gap:6px;display:flex}.stepper{align-items:center;gap:6px;display:flex}.stepper input{text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;width:64px!important}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none}.stepper span{color:var(--muted);font-size:14px}.installments{gap:8px;margin-top:6px;display:grid}.inline-action{justify-self:start}.suggestion{border-radius:var(--r);background:var(--sunk);color:var(--ink-2);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.suggestion .money{color:var(--ink);font-weight:600}.replicate{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.replicate-side{border-radius:var(--r);background:var(--sunk);gap:8px;padding:14px;display:grid}.replicate-side .month-switch{width:100%}.replicate-side .month-switch-label{flex:1;min-width:0}.replicate-side p{color:var(--muted);font-size:13.5px}.plan-preview{border-radius:var(--r);background:var(--gain-soft);gap:8px;padding:16px;display:grid}.plan-preview.is-short{background:var(--owe-soft)}.plan-preview-figure{font-size:26px;font-weight:600;font-stretch:80%}.plan-preview-figure>span:last-child{color:var(--ink-2);font-size:15px;font-weight:500;font-stretch:100%}.plan-preview ul{color:var(--ink-2);gap:4px;font-size:14px;display:grid}.recurring-list{margin:0 -4px;display:grid}.recurring{border-bottom:1px solid var(--line);padding:4px}.recurring:last-child{border-bottom:0}.recurring-main{align-items:center;gap:12px;padding:8px 0;display:flex}.recurring.is-off .recurring-main>:not(.switch){opacity:.45}.recurring-text{text-align:left;flex:1;gap:2px;min-width:0;display:grid}.recurring-text strong{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.recurring-text span{color:var(--muted);font-size:13px}.recurring-text:hover strong{color:var(--brand)}.recurring-amount{font-weight:600}.recurring-edit{gap:10px;padding:4px 0 14px 50px;display:grid}.recurring-edit-actions{justify-content:space-between;gap:8px;display:flex}.close-month{gap:14px;display:grid}.close-figures{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.close-figures>div{border-radius:var(--r);background:var(--sunk);gap:2px;padding:12px 14px;display:grid}.close-figures span{color:var(--muted);font-size:13px}.close-figures .money{font-size:20px;font-weight:600;font-stretch:84%}.close-figures small{font-size:12px}.close-figures .is-total{background:var(--brand-soft)}.close-title{margin-top:6px;font-size:14px;font-weight:600}.close-list{display:grid}.close-list li{border-bottom:1px solid var(--line);grid-template-columns:24px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 0;font-size:14.5px;display:grid}.close-list li:last-child{border-bottom:0}.close-list li>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.close-list .money{text-align:right;font-weight:600}.delta{align-items:center;gap:2px;font-size:12.5px;font-weight:600;display:inline-flex}.delta.is-up{color:var(--loss)}.delta.is-down{color:var(--gain)}.toasts{left:calc(50% + var(--side) / 2);z-index:60;pointer-events:none;justify-items:center;gap:8px;display:grid;position:fixed;bottom:24px;transform:translate(-50%)}.toast{background:var(--toast-bg);max-width:min(520px,100vw - 32px);min-height:44px;color:var(--toast-ink);pointer-events:auto;animation:toast-in .46s var(--spring) both;border-radius:12px;align-items:center;gap:14px;padding:8px 8px 8px 16px;font-size:14.5px;display:flex;box-shadow:0 12px 32px -8px #00000059}.toast.is-leaving{pointer-events:none;animation:toast-out .16s var(--ease-in) both}@keyframes toast-out{to{opacity:0;transform:translateY(6px)scale(.97)}}.toast:not(:has(.toast-action)){padding-right:16px}.toast-error{background:var(--loss);color:#fff}.toast-action{height:30px;color:var(--toast-action);border-radius:8px;flex:none;padding:0 10px;font-weight:650}.toast-action:hover{background:color-mix(in srgb, var(--toast-ink) 12%, transparent)}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)scale(.96)}}.balance-layout{grid-template-columns:minmax(0,600px) minmax(0,1fr);align-items:start;gap:20px;display:grid}.ledger-card{padding:8px 24px 18px}.ledger-line{border-bottom:1px solid var(--line);grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:18px 0;display:grid}.ledger-op{color:var(--faint);font-size:22px;font-weight:500;line-height:1}.ledger-name{gap:2px;font-size:16px;font-weight:550;display:grid}.ledger-name a:hover{color:var(--brand)}.ledger-name small{color:var(--muted);font-size:13px;font-weight:400}.ledger-name small .money{color:var(--ink-2)}.ledger-value{text-align:right;font-size:20px;font-weight:560;font-stretch:88%}.ledger-result{border-bottom:0;border-top:2px solid var(--ink);margin-top:-1px;padding-top:20px}.ledger-result .ledger-op{color:var(--ink)}.ledger-result .ledger-name{font-size:18px;font-weight:620}.ledger-result .ledger-value{letter-spacing:-.02em;font-size:clamp(34px,4.4vw,50px);font-weight:600;font-stretch:75%;line-height:1}.ledger-result .money-unit{letter-spacing:0;font-size:.4em;font-stretch:100%}.opening-form{justify-content:flex-end;align-items:center;gap:8px;display:flex}.ledger-foot{border-radius:var(--r);background:var(--sunk);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:12px 14px;display:flex}.ledger-state{color:var(--ink-2);align-items:center;gap:8px;font-size:14px;display:inline-flex}.ledger-actions{gap:6px;display:flex}.table-scroll{margin:0 -4px;padding:0 4px;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14.5px}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:10px}.table tbody tr:last-child th,.table tbody tr:last-child td{border-bottom:0}.table thead th{color:var(--muted);padding-top:4px;font-size:12.5px;font-weight:550}.table tbody th{font-weight:550}.table th:first-child,.table td:first-child{padding-left:8px}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table tbody tr{cursor:pointer;transition:background-color .1s var(--ease)}.page-narrow .table tbody tr{cursor:default}.table tbody tr:hover{background:var(--sunk)}.table tbody tr.is-current{background:var(--brand-soft)}.table tbody th .link-btn{color:var(--ink)}.table tbody tr:hover .link-btn{color:var(--brand)}.table td:nth-child(2):not(.num){white-space:normal;min-width:180px}.budget-summary,.debt-total,.savings-summary{border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);gap:10px;padding:20px 22px;display:grid}.budget-summary-label{color:var(--muted);font-size:14px}.budget-summary-figure,.debt-total-figure{letter-spacing:-.015em;font-size:34px;font-weight:600;font-stretch:78%;line-height:1.1}.budget-of{color:var(--muted);font-size:16px;font-weight:500;font-stretch:100%}.budget-summary-figure .money:last-child{color:var(--muted)}.budget-summary .meter{height:8px}.budget-summary-note{color:var(--muted);font-size:13.5px}.budget-list,.debt-list{display:grid}.budget-list li,.debt-list li{border-bottom:1px solid var(--line)}.budget-list li:last-child,.debt-list li:last-child{border-bottom:0}.budget-row,.debt-row{text-align:left;align-items:center;gap:14px;width:100%;padding:14px 0;display:flex}.budget-main,.debt-main{flex:1;gap:7px;min-width:0;display:grid}.budget-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.budget-top strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}button.budget-row:hover .budget-top strong,button.debt-row:hover .budget-top strong{color:var(--brand)}.budget-amounts{white-space:nowrap;color:var(--ink-2);font-size:14px}.budget-amounts .money{color:var(--ink);font-weight:600}.budget-meter{position:relative}.budget-pace{background:var(--ink);opacity:.35;border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.budget-left,.debt-sub{color:var(--muted);font-size:13px}.budget-left.is-owe{color:var(--owe)}.budget-left.is-negative{color:var(--loss)}.debt-sub .money{color:var(--ink-2);font-weight:550}.lede{max-width:64ch;color:var(--ink-2);font-size:15px}.lede .money{font-weight:600}.savings-summary{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:28px}.plans{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;display:grid}.plan{border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-card);align-content:start;gap:12px;padding:20px;display:grid}.plan.is-done{border-color:color-mix(in srgb, var(--gain) 40%, transparent)}.plan-head{justify-content:space-between;gap:12px;display:flex}.plan-kind{color:var(--muted);font-size:13px}.plan-head h2{font-size:19px;font-weight:640;font-stretch:88%}.plan-head .icon-btn{margin:-6px -8px 0 0}.plan-progress-figure{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:14.5px;display:flex}.plan-progress-figure>.money{letter-spacing:-.015em;color:var(--ink);font-size:32px;font-weight:600;font-stretch:76%}.plan .meter{height:8px}.plan-meta{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.plan-status{border-radius:var(--r);padding:9px 12px;font-size:13.5px}.plan-status.is-ok{background:var(--gain-soft);color:var(--gain)}.plan-status.is-behind{background:var(--owe-soft);color:var(--owe)}.plan-status .money{font-weight:650}.plan-status .money-unit{color:inherit}.plan-actions{gap:8px;display:flex}.plan-advice summary{cursor:pointer;color:var(--brand);font-size:14px;font-weight:550}.plan-advice ul{color:var(--ink-2);gap:4px;margin-top:8px;font-size:14px;display:grid}.contribution-list li{justify-content:space-between;align-items:center;gap:8px;display:flex}.contribution-list li>span:first-child{color:var(--muted);flex:1}.contribution-list .icon-btn{width:28px;height:28px}.year-label{cursor:default;min-width:80px}.year-label:hover{background:0 0}.year-figures{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.year-figures .card{gap:6px;display:grid}.year-compare{color:var(--muted);align-items:center;gap:6px;font-size:13.5px;display:flex}.year-compare .money{color:var(--ink-2);font-weight:600}.legend{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.legend i{border-radius:3px;width:10px;height:10px;margin-left:6px}.legend .is-in,.yearbar-pair .is-in{background:var(--gain)}.legend .is-out,.yearbar-pair .is-out{background:var(--bar)}.yearbars{grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.yearbar{border-radius:8px;grid-template-rows:16px 160px auto;justify-items:center;gap:6px;padding:4px 0;display:grid}.yearbar:hover:not(:disabled){background:var(--sunk)}.yearbar.is-future{opacity:.35}.yearbar-net{color:var(--ink-2);white-space:nowrap;font-size:11px;font-weight:600}.yearbar-pair{align-items:flex-end;gap:3px;width:70%;height:100%;display:flex}.yearbar-pair i{opacity:.88;transform-origin:bottom;min-height:1px;animation:grow .56s var(--ease-out) both;transition:height .42s var(--spring-soft);border-radius:3px 3px 1px 1px;flex:1}.year-cat{align-items:center;gap:10px;display:inline-flex}.sparkbars{align-items:flex-end;gap:2px;height:22px;display:inline-flex}.sparkbars i{background:var(--bar);opacity:.7;border-radius:1px;width:5px}.year-table tbody tr{cursor:default}.ask-page{grid-template-rows:auto 1fr auto auto auto;min-height:calc(100dvh - 140px)}.ask-suggestions{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-content:start;gap:10px;display:grid}.ask-suggestion{border:1px solid var(--line);background:var(--surface);text-align:left;min-height:52px;transition:border-color .12s var(--ease), transform .12s var(--ease);border-radius:12px;align-items:center;gap:10px;padding:10px 14px;font-size:14.5px;display:flex}.ask-suggestion svg{color:var(--brand);flex:none}.ask-suggestion:hover{border-color:var(--brand)}.ask-suggestion:active{transform:scale(.99)}.chat{align-content:start;gap:14px;display:grid}.chat-question{background:var(--brand);max-width:80%;color:var(--brand-ink);border-radius:14px 14px 4px;justify-self:end;padding:10px 14px;font-size:15px}.chat-answer{background:var(--surface);border:1px solid var(--line);border-radius:14px 14px 14px 4px;justify-self:start;max-width:92%;padding:14px 16px;font-size:15px;line-height:1.55}.answer{gap:8px;display:grid}.answer ul{gap:4px;padding-left:18px;list-style:outside;display:grid}.answer strong{font-weight:650}.chat-thinking{color:var(--muted);align-items:center;gap:5px;font-size:14px;display:flex}.chat-thinking span{background:var(--brand);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite breathe}.chat-thinking span:nth-child(2){animation-delay:.15s}.chat-thinking span:nth-child(3){margin-right:6px;animation-delay:.3s}.ask-form{background:var(--surface);border:1px solid var(--line-2);border-radius:14px;gap:8px;padding:6px;display:flex;position:sticky;bottom:12px;box-shadow:0 10px 30px -14px #1d1b2940}.ask-form input{box-shadow:none!important;border:0!important;font-size:15.5px!important}.ask-send{flex:none;width:44px;height:44px;padding:0}.ask-note{color:var(--muted);text-align:center;font-size:12.5px}@media (max-width:899px){.ask-form{bottom:calc(var(--tabbar) + 10px + env(safe-area-inset-bottom))}}.receipt-box{gap:8px;display:grid}.receipt-preview{border:1px solid var(--line);background:var(--sunk);border-radius:12px;display:block;position:relative;overflow:hidden}.receipt-preview img{object-fit:contain;width:100%;max-height:260px}.receipt-actions{flex-wrap:wrap;gap:8px;display:flex}.review-progress{color:var(--muted);gap:6px;font-size:13.5px;display:grid}.review-card{gap:6px;padding:24px;display:grid}.review-count{color:var(--muted);font-size:13.5px}.review-title{letter-spacing:-.015em;overflow-wrap:anywhere;font-size:28px;font-weight:640;font-stretch:84%}.review-total{color:var(--ink-2);font-size:15px}.review-total .money{color:var(--ink);font-weight:650}.review-dates{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.review-dates li{background:var(--sunk);color:var(--ink-2);border-radius:999px;padding:4px 10px;font-size:12.5px}.review-hint{color:var(--muted);margin-top:6px;font-size:14px}.review-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.review-choice{border:1px solid var(--line);background:var(--surface);text-align:left;min-height:46px;transition:border-color .12s var(--ease), background-color .12s var(--ease), transform .12s var(--ease);border-radius:12px;align-items:center;gap:10px;padding:0 12px 0 10px;font-size:14.5px;font-weight:500;display:flex}.review-choice span:not(.cat-icon){flex:1;min-width:0}.review-choice:hover{border-color:var(--brand)}.review-choice:active{transform:scale(.98)}.review-choice.is-suggested{border-color:color-mix(in srgb, var(--brand) 45%, transparent);background:var(--brand-soft);font-weight:600}.review-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:6px;font-size:13.5px;display:flex}.dropzone{border:1.5px dashed color-mix(in srgb, var(--faint) 70%, transparent);border-radius:var(--r-l);background:var(--surface);text-align:center;color:var(--muted);transition:border-color .14s var(--ease), background-color .14s var(--ease);justify-items:center;gap:10px;padding:56px 24px;display:grid}.dropzone.is-over{border-color:var(--brand);background:var(--brand-soft)}.dropzone-title{color:var(--ink);font-size:18px;font-weight:600}.dropzone-text{max-width:48ch;margin-bottom:8px}.dropzone .form-error{margin-top:8px}.import-review{gap:16px;display:grid}.import-review .table-scroll{border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);margin:0;padding:8px 12px}.import-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.import-table-card{padding:6px 12px}.import-review .import-table-card .table-scroll{background:0 0;border:0;padding:0}.import-table td:nth-child(3){white-space:normal;min-width:200px}.import-table tbody tr{cursor:default}.import-table tr.is-off td:not(:first-child){opacity:.45}.import-tag{margin-left:8px}.row-checkbox{width:18px;height:18px;accent-color:var(--brand)}.category-select-sm select{min-width:190px;padding-left:40px;height:34px!important;font-size:13.5px!important}.mapping-card summary{cursor:pointer;font-weight:600}.mapping-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-top:14px;display:grid}.setting{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:14px 0;display:flex}.card .setting:last-child{border-bottom:0;padding-bottom:4px}.setting h3{font-size:15px;font-weight:600}.setting p{max-width:52ch;color:var(--muted);margin-top:2px;font-size:14px}.setting-icon-text{gap:12px;display:flex}.setting-icon-text>svg{color:var(--muted);flex:none;margin-top:2px}.setting-stack{flex-direction:column;align-items:stretch;gap:12px}.setting-reset{padding-top:4px}.swatches{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px;display:grid;position:relative}.swatch{color:var(--muted);transition:background-color .12s var(--ease);border-radius:12px;justify-items:center;gap:6px;padding:8px 4px;font-size:12.5px;display:grid}.swatch:hover{background:var(--sunk)}.swatch-dot{background:var(--swatch);width:36px;height:36px;transition:transform .14s var(--ease), box-shadow .14s var(--ease);border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #00000014}.swatch-dot svg,.bg-name svg{animation:pop .32s var(--spring) both}@keyframes pop{0%{transform:scale(0)}}.swatch.is-on .swatch-dot{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--swatch);transform:scale(1.06)}.swatch.is-on .swatch-name{color:var(--ink);font-weight:600}.swatch-custom:not(.is-on) .swatch-dot{color:#fff;background:conic-gradient(from 180deg,#e0425b,#f59e0b,#22c55e,#06b6d4,#6366f1,#d946ef,#e0425b)}.swatch-custom:not(.is-on) .swatch-dot svg{filter:drop-shadow(0 1px 1px #0006)}.swatch-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;bottom:0;right:0}.backgrounds{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.bg-option{border:1px solid var(--line);text-align:left;transition:border-color .12s var(--ease);border-radius:14px;gap:8px;padding:6px;display:grid}.bg-option:hover{border-color:var(--line-2)}.bg-option.is-on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.bg-preview{border-radius:9px;place-items:center;height:64px;display:grid;box-shadow:inset 0 0 0 1px #0000000f}.bg-preview-card{border-radius:6px;gap:5px;width:70%;padding:8px;display:grid;box-shadow:0 0 0 1px #00000012}.bg-preview-card i{border-radius:3px;height:5px;display:block}.bg-preview-card i:last-child{width:60%}.bg-name{color:var(--ink-2);align-items:center;gap:4px;padding:0 4px 2px;font-size:13px;display:inline-flex}.bg-option.is-on .bg-name{color:var(--ink);font-weight:600}@media (max-width:640px){.backgrounds{grid-template-columns:repeat(2,minmax(0,1fr))}.swatches{grid-template-columns:repeat(5,minmax(0,1fr))}}.connect-card{gap:4px;display:grid}.connect-section{border-bottom:1px solid var(--line);gap:12px;padding:14px 0;display:grid}.connect-section:last-child{border-bottom:0;padding-bottom:2px}.connect-section h3{font-size:15px;font-weight:600}.connect-section header p{color:var(--muted);margin-top:2px;font-size:14px}.connect-steps{gap:12px;margin:0;padding:0;list-style:none;display:grid}.connect-step{color:var(--ink-2);grid-template-columns:26px minmax(0,1fr);gap:10px;font-size:14.5px;line-height:1.5;display:grid}.connect-step strong{color:var(--ink);font-weight:600}.connect-step code,.connect-section code{background:var(--sunk);border-radius:5px;padding:1px 5px;font-size:13px}.connect-step-n{background:var(--brand-soft);width:26px;height:26px;color:var(--brand);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.connect-link{width:-moz-fit-content;width:fit-content;margin-top:8px;display:flex}.connect-form{gap:8px;display:flex}.connect-form input{flex:1;min-width:0;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:14px!important}.connect-done{border-radius:var(--r);background:var(--gain-soft);color:var(--gain);gap:10px;padding:10px 12px;font-size:14.5px;display:flex}.connect-done svg{flex:none;margin-top:1px}.connect-actions{flex-wrap:wrap;gap:8px;display:flex}.server-features{gap:12px;padding:4px 0 14px;display:grid}.server-features li{align-items:flex-start;gap:12px;display:flex}.server-features span:last-child{display:grid}.server-features strong{font-size:14.5px;font-weight:600}.server-features small{color:var(--muted);font-size:13px}.feature-dot{background:var(--line-2);border-radius:50%;flex:none;width:8px;height:8px;margin-top:7px}.feature-dot.is-on{background:var(--gain)}.usd-rate{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.usd-rate .amount-input{width:150px}.shortcuts{gap:8px;padding-top:4px;display:grid}.shortcuts div{grid-template-columns:90px 1fr;gap:12px;font-size:14px;display:grid}.shortcuts dt{color:var(--muted)}.login{background:var(--bg);place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;gap:12px;width:min(420px,100%);padding:36px 32px 32px;display:grid;box-shadow:0 30px 60px -30px #1d1b292e}.login-logo{margin-bottom:12px}.login h1{letter-spacing:-.025em;font-size:50px;font-weight:620;font-stretch:75%;line-height:1}.login-card>p{color:var(--ink-2);font-size:17px}.login-strip{border-bottom:1px solid var(--line-2);align-items:flex-end;gap:3px;height:72px;margin:24px 0 28px;display:flex}.login-strip span{height:var(--h);background:var(--bar);opacity:.85;transform-origin:bottom;animation:grow .6s var(--ease) both;animation-delay:calc(.2s + var(--i) * 18ms);border-radius:2px 2px 0 0;flex:1}.btn-google{border:1px solid var(--line-2);background:var(--surface);width:100%;height:48px;font-size:15.5px}.btn-google:hover:not(:disabled){border-color:var(--faint);background:var(--sunk)}@media (max-width:1220px){.overview-grid,.overview-top{grid-template-columns:minmax(0,1fr) 300px}.main{padding:26px 28px 96px}.balance-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:899px){.side{display:none}.main{padding:14px 14px calc(var(--tabbar) + 40px + env(safe-area-inset-bottom));margin-left:0}.tabbar{z-index:20;height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding:0 6px env(safe-area-inset-bottom);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);align-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.tab-indicator{background:var(--brand-soft);width:56px;height:30px;transform:translate(calc(var(--ix,0px) + var(--iw,0px) / 2 - 28px), calc(var(--iy,0px) + 2px));pointer-events:none;border-radius:999px;position:absolute;top:0;left:0}[data-indicator=on]>.tab-indicator{transition:transform .44s var(--spring)}.tab{z-index:1;color:var(--muted);justify-items:center;gap:3px;padding:8px 0 6px;font-size:11.5px;font-weight:500;display:grid;position:relative}.tab.is-active{color:var(--brand);font-weight:600}.tab svg{transition:transform .2s var(--spring)}.tab:active svg{transform:scale(.86)}.tab .nav-badge{min-width:17px;height:17px;margin:0;padding:0 4px;font-size:10.5px;line-height:17px;position:absolute;top:3px;left:calc(50% + 6px)}.tab-add{background:var(--brand);width:52px;height:44px;color:var(--brand-ink);transition:transform .12s var(--ease);border-radius:14px;justify-self:center;place-items:center;display:grid}.tab-add:active{transform:scale(.94)}.toasts{left:50%;bottom:calc(var(--tabbar) + 14px + env(safe-area-inset-bottom));width:calc(100% - 28px)}.toast{justify-content:space-between;width:100%}.page{gap:14px}.page-head{margin-bottom:2px}.page-head h1{font-size:25px}.overview-grid,.overview-top,.ph-hero{grid-template-columns:minmax(0,1fr)}.overview-grid{gap:14px}.banner{margin-bottom:12px}.savings-summary{grid-template-columns:minmax(0,1fr);gap:8px}}@media (max-width:640px){.page-head{flex-wrap:wrap;row-gap:8px}.page-head-tools{gap:4px}.month-switch-label{min-width:0;padding:5px 4px;font-size:14.5px}.card{padding:14px 16px 16px}.hero{padding:18px 16px 14px}.hero-figure{font-size:clamp(50px,16vw,72px)}.projection{padding:18px}.projection-figure{font-size:40px}.daystrip{margin-top:20px}.daystrip-bars{height:84px}.daystrip-bars,.daystrip-axis{--gap:2px}.toolbar{gap:8px}.search{flex-basis:100%;max-width:none}.toolbar .segmented{flex:100%}.toolbar .segmented button{flex:1;padding:0 8px}.toolbar .select-compact{flex:1 1 0;min-width:0}.toolbar-end{margin-left:0}.summary-line{gap:2px 16px;font-size:14px}.daygroup,.rows-card{padding:0 14px 2px}.row-main{gap:10px}.cat-icon-md{width:34px;height:34px}.sheet{width:100%;max-height:92dvh;animation:sheet-in-up .46s var(--spring-soft) both;border-radius:20px 20px 0 0;top:auto;bottom:0;left:0;right:0}.sheet:after{content:"";background:var(--surface);height:48px;position:absolute;top:calc(100% - 1px);left:0;right:0}.sheet-head{touch-action:none;cursor:grab}.sheet-wide{width:100%}.sheet-layer[data-state=closing] .sheet{animation:sheet-out-down .18s var(--ease-in) both}.sheet:before{content:"";background:var(--line-2);border-radius:2px;width:36px;height:4px;margin-left:-18px;position:absolute;top:7px;left:50%}.sheet-head{padding:20px 10px 4px 20px}.sheet-body{padding:8px 20px 20px}.sheet-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom)) 16px;flex-wrap:wrap}.form-row,.replicate{grid-template-columns:minmax(0,1fr)}.close-figures{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.close-figures .is-total{grid-column:1/-1}.date-field{flex-wrap:wrap}.date-field input{flex:160px}.ledger-card{padding:4px 16px 14px}.ledger-line{grid-template-columns:22px minmax(0,1fr) auto;padding:14px 0}.ledger-value{font-size:18px}.ledger-line-opening{grid-template-columns:22px minmax(0,1fr);row-gap:10px}.ledger-line-opening .ledger-value{grid-column:2}.ledger-line-opening .opening-form{justify-content:flex-start}.amount-input-inline{flex:1}.amount-input-inline input{width:100%}.ledger-foot{flex-direction:column;align-items:stretch}.ledger-actions .btn{flex:1}.hide-sm{display:none}.setting{flex-direction:column;align-items:flex-start;gap:12px}.plans{grid-template-columns:minmax(0,1fr)}.catsplit-row{grid-template-columns:24px minmax(0,1fr) auto 58px}.budget-top{flex-direction:column;gap:2px}.debt-row .minibars{display:none}.review-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.review-choice kbd{display:none}.review-title{font-size:24px}.login-card{padding:28px 22px 24px}}@keyframes sheet-in-up{0%{transform:translateY(100%)}}@keyframes sheet-out-down{to{transform:translateY(100%)}}@media (hover:none){.row-main:hover .row-title{color:inherit}.pay-btn:hover{color:var(--gain);border-color:color-mix(in srgb, var(--gain) 35%, transparent);background:0 0}}.btn.is-done,.btn.is-done:hover:not(:disabled){background:var(--gain);color:var(--surface);pointer-events:none}.btn-done{animation:done-in .36s var(--spring) both;align-items:center;gap:6px;display:inline-flex}.btn-done svg{animation:pop .42s var(--spring) 60ms both}@keyframes done-in{0%{opacity:0;transform:translateY(6px)}}.pop-in{animation:pop .38s var(--spring) both}.pay-btn.is-done{background:var(--gain);border-color:var(--gain);color:var(--surface);animation:pay-done 1.1s var(--ease) both}.pay-btn.is-done svg{animation:pop .36s var(--spring) both}@keyframes pay-done{0%{transform:scale(.88)}18%{transform:scale(1.04)}30%,72%{opacity:1;transform:none}to{opacity:0;transform:scale(.92)}}.tag.is-leaving{animation:tag-out .42s var(--ease-in) both}@keyframes tag-out{to{opacity:0;transform:scale(.9)}}.close-figures{position:relative}.seal-outline{pointer-events:none;width:calc(100% + 12px);height:calc(100% + 12px);position:absolute;top:-6px;bottom:-6px;left:-6px;right:-6px;overflow:visible}.seal-outline rect{fill:none;width:calc(100% - 2px);height:calc(100% - 2px);stroke:var(--brand);stroke-width:2px;stroke-dasharray:1;stroke-dashoffset:1px;animation:seal-draw .7s var(--ease-out) both}@keyframes seal-draw{to{stroke-dashoffset:0}}.close-figures .seal-stamp{z-index:1;background:var(--brand);color:var(--brand-ink);box-shadow:0 0 0 3px var(--surface);animation:stamp .52s var(--spring) .38s both;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12.5px;font-weight:650;display:inline-flex;position:absolute;top:-14px;right:14px}@keyframes stamp{0%{opacity:0;transform:scale(1.7)rotate(-8deg)}to{transform:rotate(-3deg)}}.meter.is-complete>span{position:relative;overflow:hidden}.meter.is-complete>span:after{content:"";animation:shine .9s var(--ease-out) .2s both;background:linear-gradient(90deg,#0000,#ffffffa6,#0000);position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-100%)}.meter.is-complete{animation:ring-gain 1.2s var(--ease-out) both}@keyframes shine{to{transform:translate(100%)}}@keyframes ring-gain{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--gain) 45%, transparent)}to{box-shadow:0 0 0 8px #0000}}.meter.is-alert{animation:shake .46s var(--ease) both}.meter.is-alert>span,.meter.is-warn>span{animation:alert-pulse .9s var(--ease) both}@keyframes shake{20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes alert-pulse{30%{filter:brightness(1.35)saturate(1.2)}}.odo{display:inline-block;position:relative}.odo-ghost{color:#0000}.odo-layer{pointer-events:none;-webkit-user-select:none;user-select:none;height:calc(1lh + .28em);display:flex;position:absolute;top:-.14em;left:0;right:0}.odo-col{height:100%;overflow:visible clip}.odo-strip{transform:translateY(calc(var(--d) * -10%));transition:transform .76s var(--spring-soft);flex-direction:column;display:flex}.odo-strip>span,.odo-sep{box-sizing:border-box;height:calc(1lh + .28em);padding-top:.14em}.daystrip-bars{position:relative}.daystrip-tip.is-on{opacity:1}.catsplit-bar span,.catsplit-list>li{transition:opacity .2s var(--ease)}.catsplit.has-focus .catsplit-bar span:not(.is-focus){opacity:.25}.catsplit.has-focus .catsplit-list>li:not(.is-focus){opacity:.45}.sync.is-done:before{animation:sync-done .9s var(--ease-out) both}@keyframes sync-done{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--gain) 55%, transparent);transform:scale(1.5)}to{box-shadow:0 0 0 7px #0000}}.ph{animation:none;position:relative;overflow:hidden}.ph:after{content:"";background:linear-gradient(100deg, transparent 20%, color-mix(in srgb, var(--sunk) 90%, transparent) 50%, transparent 80%);animation:1.4s ease-in-out infinite shimmer;position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.route.is-launch .page>:not(.page-head-compact),.route.is-launch .placeholder>*{animation:launch-in .52s var(--ease-out) backwards}.route.is-launch .page>:nth-child(2){animation-delay:45ms}.route.is-launch .page>:nth-child(3){animation-delay:90ms}.route.is-launch .page>:nth-child(4){animation-delay:.135s}.route.is-launch .page>:nth-child(5){animation-delay:.18s}.route.is-launch .page>:nth-child(n+6){animation-delay:.22s}@keyframes launch-in{0%{opacity:0;transform:translateY(10px)}}.row{position:relative}@media (pointer:coarse){.row{touch-action:pan-y}}.row.is-swiping>.row-main,.row.is-swiping>.row-end,.row.is-settling>.row-main,.row.is-settling>.row-end{translate:var(--swipe-x,0px) 0}.row.is-settling>.row-main,.row.is-settling>.row-end{transition:translate .34s var(--spring-soft)}.swipe-bg{width:var(--swipe-w,0px);color:var(--surface);white-space:nowrap;pointer-events:none;border-radius:12px;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:650;display:flex;position:absolute;top:6px;bottom:6px;overflow:hidden}.row.is-settling .swipe-bg{transition:width .34s var(--spring-soft)}.swipe-right{background:var(--gain);justify-content:flex-start;left:0}.swipe-right.is-undo{background:var(--owe-bar)}.swipe-left{background:var(--loss);justify-content:flex-end;right:0}.swipe-bg svg{opacity:.7;transition:transform .26s var(--spring), opacity .16s var(--ease);flex:none;transform:scale(.75)}.row.is-armed .swipe-bg svg{opacity:1;transform:scale(1.15)}@media (pointer:coarse){html,body{overscroll-behavior-y:contain}}.ptr{z-index:40;pointer-events:none;transform:translate(-50%, calc(var(--pull,0px) - 100%));transition:transform .38s var(--spring-soft);position:fixed;top:0;left:50%}.ptr.is-pulling{transition:none}.ptr-dot{width:38px;height:38px;margin-top:calc(env(safe-area-inset-top) + 8px);background:var(--surface);color:var(--muted);box-shadow:0 6px 18px -6px #0000004d, 0 0 0 1px var(--line);opacity:var(--pull-k,0);border-radius:50%;place-items:center;display:grid}.ptr-dot svg{transform:rotate(var(--turn,0deg))}.ptr.is-armed .ptr-dot,.ptr[data-phase=loading] .ptr-dot{color:var(--brand)}.ptr[data-phase=loading] .ptr-dot svg{animation:.8s linear infinite spin}.ptr[data-phase=done] .ptr-dot{background:var(--gain);color:var(--surface)}.ptr[data-phase=done] .ptr-dot svg{animation:pop .38s var(--spring) both}.page-head-compact{display:none}@media (max-width:899px){@supports (animation-timeline:scroll()){.page-head-compact{z-index:15;height:calc(46px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);color:var(--ink);text-align:center;visibility:hidden;opacity:0;font-size:16px;font-weight:650;animation:linear both compact-in;animation-timeline:scroll(root);animation-range:56px 100px;display:block;position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}}}@keyframes compact-in{0%{visibility:hidden;opacity:0;transform:translateY(-100%)}1%{visibility:visible}to{visibility:visible;opacity:1;transform:none}}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition{pointer-events:none}::view-transition-old(*){mix-blend-mode:normal}::view-transition-new(*){mix-blend-mode:normal}::view-transition-group(*){animation-duration:.3s;animation-timing-function:var(--ease-out)}:root[data-vt=route]::view-transition-old(route){animation:vt-fade-out 90ms var(--ease-in) both}:root[data-vt=route]::view-transition-old(page-head){animation:vt-fade-out 90ms var(--ease-in) both}:root[data-vt=route]::view-transition-new(route){animation:vt-rise-in .28s var(--ease-out) both}:root[data-vt=route]::view-transition-new(page-head){animation:vt-rise-in .28s var(--ease-out) both}:root[data-vt=forward]::view-transition-old(route){animation:vt-out-start .14s var(--ease-in) both}:root[data-vt=forward]::view-transition-new(route){animation:vt-in-end .32s var(--ease-out) both}:root[data-vt=back]::view-transition-old(route){animation:vt-out-end .14s var(--ease-in) both}:root[data-vt=back]::view-transition-new(route){animation:vt-in-start .32s var(--ease-out) both}:root[data-vt=forward]::view-transition-old(page-head){opacity:0;animation:none}:root[data-vt=back]::view-transition-old(page-head){opacity:0;animation:none}:root[data-vt=forward]::view-transition-old(page-tabs){opacity:0;animation:none}:root[data-vt=back]::view-transition-old(page-tabs){opacity:0;animation:none}:root[data-vt=forward]::view-transition-new(page-head){animation:none}:root[data-vt=back]::view-transition-new(page-head){animation:none}:root[data-vt=forward]::view-transition-new(page-tabs){animation:none}:root[data-vt=back]::view-transition-new(page-tabs){animation:none}:root[data-vt=route]::view-transition-old(page-tabs){animation:vt-fade-out 90ms var(--ease-in) both}:root[data-vt=route]::view-transition-new(page-tabs){animation:vt-rise-in .28s var(--ease-out) both}:root[data-vt=morph]::view-transition-old(route){animation:none}:root[data-vt=morph]::view-transition-new(route){animation:none}:root[data-vt=morph]::view-transition-old(page-head){animation:none}:root[data-vt=morph]::view-transition-new(page-head){animation:none}:root[data-vt=morph]::view-transition-old(page-tabs){animation:none}:root[data-vt=morph]::view-transition-new(page-tabs){animation:none}:root[data-vt=morph]::view-transition-group(route){animation:none}:root[data-vt=morph]::view-transition-group(page-head){animation:none}:root[data-vt=morph]::view-transition-group(page-tabs){animation:none}::view-transition-group(morph-card){border-radius:var(--r-l);animation-duration:.42s;animation-timing-function:cubic-bezier(.2,.9,.25,1);overflow:clip}::view-transition-image-pair(morph-card){overflow:clip}::view-transition-old(morph-card){object-fit:none;object-position:left top;width:100%;height:100%}::view-transition-new(morph-card){object-fit:none;object-position:left top;width:100%;height:100%}::view-transition-old(morph-card){animation:vt-fade-out .18s var(--ease-in) both}::view-transition-new(morph-card){animation:vt-fade-in .24s var(--ease-out) 60ms both}:root[data-vt=theme]::view-transition-old(*){animation:none}:root[data-vt=theme]::view-transition-new(*){animation:vt-fade-in .26s var(--ease) both}:root[data-vt=theme]::view-transition-group(*){animation:none}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}}@keyframes vt-rise-in{0%{opacity:0;transform:translateY(8px)}}@keyframes vt-out-start{to{opacity:0;transform:translate(-20px)}}@keyframes vt-out-end{to{opacity:0;transform:translate(20px)}}@keyframes vt-in-end{0%{opacity:0;transform:translate(28px)}}@keyframes vt-in-start{0%{opacity:0;transform:translate(-28px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-delay:0s!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}@media (max-width:640px){.year-figures{grid-template-columns:minmax(0,1fr);gap:10px}.yearbars{gap:2px}.yearbar{grid-template-rows:14px 110px auto}.yearbar-net{font-size:9px}.yearbar-pair{gap:1px;width:86%}}
