@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-arabic-wght-normal-CGnJ-sf6.woff2) format("woff2-variations");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-cyrillic-ext-wght-normal-BjodpZir.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-cyrillic-wght-normal-DveCct9I.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-hebrew-wght-normal-BIkpbuMU.woff2) format("woff2-variations");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-latin-ext-wght-normal-OacczzuJ.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-latin-wght-normal-CnQIisVs.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #151517;--surface: #1e1e21;--surface-2: #26262b;--line: #2a2a2f;--text: #f2f2f4;--dim: #98989f;--faint: #5b5b63;--accent: #f2a33c;--accent-soft: rgba(242, 163, 60, .14);--on-accent: #1a1204;--wegovy: #b07cff;--wegovy-soft: rgba(176, 124, 255, .14);--good: #6bcb77;--danger: #ff6b6b;--hover: rgba(255, 255, 255, .02);--radius: 14px;color-scheme:dark}:root[data-theme=light]{--bg: #f4f4f6;--surface: #ffffff;--surface-2: #ececf0;--line: #e2e2e7;--text: #1d1d20;--dim: #71717a;--faint: #b3b3bc;--accent: #d9820b;--accent-soft: rgba(217, 130, 11, .12);--on-accent: #ffffff;--wegovy: #7b3ff2;--wegovy-soft: rgba(123, 63, 242, .1);--good: #2f9e44;--danger: #d92d2d;--hover: rgba(0, 0, 0, .03);color-scheme:light}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{height:100%}body{min-height:100%;background:var(--bg);color:var(--text);font-family:Rubik Variable,Rubik,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.45;overscroll-behavior-y:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,textarea{font:inherit;color:inherit;background:none;border:none;outline:none}.splash{min-height:100dvh;background:var(--bg)}.app{max-width:640px;margin:0 auto;padding:0 16px calc(48px + env(safe-area-inset-bottom))}.header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px;padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:8px;position:sticky;top:0;z-index:10;background:var(--bg)}.header:after{content:"";position:absolute;inset-inline:0;top:100%;height:14px;background:linear-gradient(var(--bg),transparent);pointer-events:none}.header h1{font-size:26px;font-weight:700;letter-spacing:-.01em}.balance-amount{font-size:40px;font-weight:700;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;text-align:end;unicode-bidi:isolate;transition:opacity .2s}.balance-loading{opacity:.35}.tabs{display:flex;align-items:stretch;gap:2px;padding:3px;background:var(--surface);border-radius:12px;align-self:flex-start;margin-top:4px}.tabs button{width:clamp(44px,calc((100vw - 140px)/5),60px);height:38px;border-radius:9px;color:var(--dim);display:grid;place-items:center;transition:background .15s,color .15s}.tabs button.active{background:var(--accent-soft);color:var(--accent)}.header-actions{margin-inline-start:auto;display:flex;gap:6px;padding-top:4px}.icon-btn{position:relative;width:38px;height:38px;border-radius:12px;background:var(--surface);color:var(--dim);display:grid;place-items:center;transition:background .15s,color .15s}.icon-btn:active{background:var(--surface-2)}.icon-btn-active{background:var(--accent-soft);color:var(--accent)}.icon-btn-wide{width:auto;display:flex;gap:6px;padding-inline:12px}.icon-btn-text{font-size:13px;font-weight:600}.alerts{display:flex;flex-direction:column;gap:8px;margin-top:14px}.alerts:empty{display:none}.alert{padding:13px 16px;border-radius:18px;background:var(--surface);border-inline-start:3px solid var(--accent);font-size:14.5px;font-weight:500}.alert-urgent{background:var(--accent);color:var(--on-accent);font-weight:600}.card{background:var(--surface);border-radius:22px;padding:16px 16px 18px;margin-top:14px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.card-head h2{font-size:17px;font-weight:700}.card-head-value{color:var(--dim);font-size:14.5px;font-variant-numeric:tabular-nums}.goal-check{color:var(--good);font-weight:700}.eatout-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.eatout-month{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:14px;background:var(--surface-2);text-align:center}.eatout-current{background:var(--accent-soft)}.eatout-name{font-size:13.5px;color:var(--dim)}.eatout-total{font-size:20px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;unicode-bidi:isolate}.eatout-orders{font-size:12.5px;color:var(--dim)}.eatout-trend{margin-inline-start:3px;font-size:12px;vertical-align:.15em}.eatout-up{color:var(--danger)}.eatout-down{color:var(--good)}.balance-card .card-head{margin-bottom:4px}.input-row{display:flex;gap:8px}.input-row input{flex:1;min-width:0;min-height:48px;padding-inline:14px;background:var(--bg);border-radius:var(--radius);font-size:16px;unicode-bidi:plaintext}.input-row input::placeholder{color:var(--faint)}.add-btn{flex-shrink:0;width:48px;height:48px;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);display:grid;place-items:center;transition:opacity .15s}.add-btn:disabled{opacity:.35}.add-task{margin-bottom:6px}.add-task-last{margin-top:10px;margin-bottom:0}.card-head-btn{flex-shrink:0;align-self:center;display:inline-flex;align-items:center;gap:2px;min-height:32px;margin-block:-4px;padding-block:0;padding-inline:12px 8px;border-radius:999px;color:var(--accent);font-size:14px;font-weight:600;transition:background .15s}.card-head-btn:hover,.card-head-btn:active{background:var(--accent-soft)}.card-head-btn svg{margin-top:1px}.txn-sheet{max-height:70dvh;overflow-y:auto}.txn-month{position:sticky;top:0;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-block:10px 8px;background:var(--surface);border-bottom:1px solid var(--line);font-size:15.5px;font-weight:700}section+section>.txn-month{margin-top:10px}.txn-month-total{color:var(--dim);font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums;unicode-bidi:isolate}.txn-row{display:flex;align-items:center;gap:10px;min-height:48px;border-bottom:1px solid var(--line)}.txn-row:last-child{border-bottom:none}.txn-pending{opacity:.6}.txn-date{flex-shrink:0;width:60px;display:flex;flex-direction:column;align-items:flex-start;color:var(--faint);font-size:12.5px;font-variant-numeric:tabular-nums}.txn-date-rel{color:var(--dim);font-size:11.5px;white-space:nowrap;font-weight:600;line-height:1.25}.txn-text{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding-block:7px}.txn-desc{font-size:15px;unicode-bidi:plaintext}.txn-party{max-width:100%;color:var(--dim);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext}.txn-end{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end}.txn-amount{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;unicode-bidi:isolate}.txn-in{color:var(--good)}.txn-actions{display:flex;gap:4px;margin-bottom:-4px}.txn-action{width:28px;height:30px;display:grid;place-items:center;border-radius:10px;color:var(--faint);transition:color .15s,background .15s}.txn-action:hover,.txn-action:active{color:var(--accent);background:var(--accent-soft)}.txn-action-done,.txn-action-done:hover{color:var(--good);background:none}.log-empty{color:var(--faint);font-size:14px;padding-block:8px}.card-wegovy-due{box-shadow:inset 0 0 0 1.5px var(--wegovy)}.progress-bar{height:14px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-bottom:14px}.wegovy-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--wegovy),#d7bcff)}.wegovy-fill-due{background:linear-gradient(90deg,var(--accent),var(--wegovy))}.wegovy-status{color:var(--dim);font-size:13.5px;font-weight:600;margin:-6px 0 12px}.wegovy-status-due{color:var(--wegovy)}.chip.chip-done{background:var(--accent-soft);color:var(--accent);font-weight:600}.wegovy-last{display:inline-block;margin-bottom:0}.juicy-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.quick-btn{min-width:0;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:10px 4px;border-radius:18px;background:var(--wegovy-soft);color:var(--wegovy);white-space:nowrap;transition:filter .15s,background .15s,color .15s,opacity .15s,box-shadow .2s}.quick-btn:active{filter:brightness(1.15)}.quick-btn:disabled{opacity:.5}.juicy-row .quick-btn{min-height:84px;gap:6px;background:linear-gradient(170deg,color-mix(in srgb,var(--wegovy) 20%,transparent),color-mix(in srgb,var(--wegovy) 8%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--wegovy) 22%,transparent)}.juicy-row .quick-btn-active{background:linear-gradient(160deg,#c49bff,var(--wegovy));color:#fff;box-shadow:0 6px 18px -6px color-mix(in srgb,var(--wegovy) 70%,transparent)}.juicy-row .juicy-label{font-size:13.5px;letter-spacing:-.01em}.quick-btn-wide{width:100%;min-height:54px;flex-direction:row;gap:8px}.juicy-sub{font-size:12px;opacity:.8;font-weight:600}.other-actions{display:flex;flex-direction:column;gap:10px}.quick-panel{overflow:hidden}.quick-panel-inner{padding-top:12px}.quick-panel .add-task{margin-bottom:0}.quick-check{color:var(--good)}.juicy-label{font-size:14px;font-weight:700}.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.list-toolbar-start{display:flex;align-items:center;gap:8px}.done-today-num{font-size:15px;font-weight:700;color:var(--accent)}.task-cat-prefix{color:var(--dim)}.task-row-draggable{position:relative;background:var(--surface)}.drag-handle{flex-shrink:0;width:40px;height:46px;display:grid;place-items:center;color:var(--faint);touch-action:none;cursor:grab}.drag-handle:active{cursor:grabbing;color:var(--dim)}.flag-btn{flex-shrink:0;width:40px;height:46px;display:grid;place-items:center;color:var(--faint);transition:color .15s}.flag-btn.flag-on{color:var(--accent)}.task-row{display:flex;align-items:center;gap:2px;min-height:46px;border-bottom:1px solid var(--line)}.card .task-row:last-child{border-bottom:none}.card .task-row{margin-inline:-8px}.check-btn{flex-shrink:0;width:42px;height:46px;display:grid;place-items:center}.checkbox{width:23px;height:23px;border-radius:50%;border:1.6px solid var(--faint);display:grid;place-items:center;transition:border-color .15s,background .15s}.checkbox svg{width:21px;height:21px}.checkbox-checked{background:var(--accent);border-color:var(--accent)}.task-title-btn{flex:1;display:flex;align-items:center;gap:8px;min-height:46px;padding-block:10px;text-align:start}.task-title{flex:1;font-size:16px;word-break:break-word;unicode-bidi:plaintext}.task-done .task-title{color:var(--dim)}.btn-icon-text{display:inline-flex;align-items:center;justify-content:center;gap:7px}.suggest-list{overflow:hidden}.suggest-item{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding-block:4px;padding-inline:14px;color:var(--dim);font-size:15px;text-align:start;border-bottom:1px solid var(--line);transition:background .15s,color .15s}.suggest-item:active,.suggest-item:hover{background:var(--hover);color:var(--text)}.suggest-title{flex:1;word-break:break-word;unicode-bidi:plaintext}.suggest-count{flex-shrink:0;color:var(--faint);font-size:12.5px;font-variant-numeric:tabular-nums}.done-list{margin-top:8px}.done-row{gap:10px;width:100%;padding-inline-start:4px;text-align:start}.done-check{flex-shrink:0;width:23px;height:23px;border-radius:50%;background:var(--accent);display:grid;place-items:center}.done-check svg{width:21px;height:21px}.done-row .task-title{flex:1;padding-block:10px}.done-meta{flex-shrink:0;display:flex;align-items:baseline;gap:8px;font-size:12.5px}.done-category{color:var(--dim)}.done-time{color:var(--faint);font-variant-numeric:tabular-nums}.done-empty{text-align:center;color:var(--dim);padding-block:32px;font-size:15px}.empty-state{text-align:center;color:var(--dim);padding-block:80px 40px;font-size:16px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:40}.sheet{position:fixed;inset-inline:0;bottom:0;z-index:50;max-width:640px;margin:0 auto;background:var(--surface);border-radius:22px 22px 0 0;padding:8px 20px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px #00000073;touch-action:none}.sheet-handle{width:40px;height:4.5px;border-radius:3px;background:var(--faint);margin:6px auto 14px}.sheet-heading{font-size:18px;font-weight:700;margin-bottom:14px}.sheet-title-input{width:100%;font-size:19px;font-weight:600;resize:none;unicode-bidi:plaintext;margin-bottom:14px;border-radius:10px}.sheet-section-label{font-size:12.5px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.chip{padding:7px 14px;border-radius:20px;background:var(--surface-2);color:var(--dim);font-size:14px;font-weight:500;transition:background .15s,color .15s}.chip-active{background:var(--accent);color:var(--on-accent);font-weight:600}.sheet-meta{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:var(--bg);border-radius:var(--radius);margin-bottom:18px;font-size:13.5px}.sheet-meta>div{display:flex;gap:8px}.meta-label{color:var(--dim)}.meta-done{color:var(--accent)}.sheet-actions{display:flex;flex-direction:column;gap:10px}.sheet-btn{min-height:48px;border-radius:var(--radius);background:var(--surface-2);font-size:16px;font-weight:500;transition:filter .15s}.sheet-btn:active{filter:brightness(1.2)}.sheet-btn:disabled{opacity:.4}.sheet-btn-accent{background:var(--accent-soft);color:var(--accent)}.sheet-btn-danger{color:var(--danger)}.sheet-heading-time{margin-inline-start:10px;color:var(--faint);font-size:13.5px;font-weight:500;font-variant-numeric:tabular-nums}.when-section{margin-bottom:18px}.sheet .when-chips{margin-bottom:0}.when-time-input{display:block;margin-top:10px;min-height:44px;padding-inline:14px;background:var(--bg);border-radius:var(--radius);font-size:16px;font-variant-numeric:tabular-nums;color:inherit}.category-manager{max-height:70dvh;overflow-y:auto}.category-row{display:flex;align-items:center;gap:10px;min-height:52px;border-bottom:1px solid var(--line)}.category-arrows{display:flex;gap:2px}.category-arrows button{width:30px;height:34px;border-radius:8px;background:var(--surface-2);color:var(--dim);font-size:14px}.category-arrows button:disabled{opacity:.3}.category-row>input{flex:1;min-height:52px;font-size:16px;unicode-bidi:plaintext}.category-delete{width:40px;height:40px;border-radius:10px;color:var(--danger);font-size:15px;font-weight:600;flex-shrink:0}.category-add{display:flex;gap:10px;margin-top:16px}.category-add input{flex:1;min-height:48px;padding-inline:14px;background:var(--bg);border-radius:var(--radius);font-size:16px;unicode-bidi:plaintext}.category-add input::placeholder{color:var(--faint)}.category-add .sheet-btn{padding-inline:16px;white-space:nowrap}.category-hint{color:var(--faint);font-size:12.5px;margin-top:12px}.login-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--surface);border-radius:22px;padding:36px 28px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.login-icon{width:68px;height:68px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:8px}.login-card h1{font-size:21px;font-weight:700}.login-card p{color:var(--dim);font-size:14.5px;margin-bottom:14px}.login-card input{width:100%;min-height:50px;background:var(--bg);border-radius:var(--radius);padding-inline:16px;font-size:17px;text-align:center;letter-spacing:.15em}.login-error{color:var(--danger);font-size:13.5px}.login-card button[type=submit]{width:100%;min-height:50px;margin-top:8px;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-size:16px;font-weight:700;transition:opacity .15s}.login-card button[type=submit]:disabled{opacity:.45}@media(min-width:700px){.task-row:hover{background:var(--hover)}.sheet{border-radius:22px;bottom:24px;inset-inline:24px}}.confetti-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:60}.count-pop{position:fixed;inset-inline:0;top:20vh;display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;z-index:70;animation:count-pop-in .35s cubic-bezier(.2,1.6,.4,1),count-pop-out .35s ease-in 1.4s forwards}.count-pop:before{content:"";position:absolute;top:-70px;width:280px;height:280px;border-radius:50%;background:radial-gradient(closest-side,var(--accent-soft),transparent);z-index:-1}.count-roll{position:relative;height:1.05em;min-width:1.4em;overflow:hidden;font-size:92px;font-weight:700;line-height:1.05;color:var(--accent);text-align:center;font-variant-numeric:tabular-nums}.count-roll span{position:absolute;inset-inline:0}.count-old{animation:count-roll-out .45s cubic-bezier(.55,0,.7,.4) .3s forwards}.count-new{transform:translateY(1.05em);animation:count-roll-in .5s cubic-bezier(.2,.9,.3,1.15) .3s forwards}.count-big{font-size:84px;font-weight:700;line-height:1.05;color:var(--accent);text-align:center}.count-label{font-size:15px;font-weight:500;color:var(--dim)}.count-praise{margin-top:6px;padding:5px 16px;max-width:88vw;text-align:center;border-radius:999px;background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 18px #0000001f;font-size:21px;font-weight:600;color:var(--text)}.count-pop-grand{animation:count-pop-in .35s cubic-bezier(.2,1.6,.4,1),count-pop-out .35s ease-in 2.3s forwards}.count-pop-grand .count-praise{font-size:25px;color:var(--accent)}@keyframes count-pop-in{0%{opacity:0;transform:scale(.6) translateY(14px)}to{opacity:1;transform:none}}@keyframes count-pop-out{to{opacity:0;transform:scale(.92) translateY(-10px)}}@keyframes count-roll-out{to{transform:translateY(-1.05em)}}@keyframes count-roll-in{to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.count-pop,.count-pop-grand{animation:count-pop-out .3s ease-in 1.3s forwards}.count-old{display:none}.count-new{transform:none;animation:none}}.plan-when{color:var(--accent);font-size:13.5px;font-weight:600}.plan-line{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;border-bottom:1px solid var(--line)}.plan-lines>:last-child .plan-line,.plan-lines>.plan-line:last-child{border-bottom:none}.plan-label{min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding-block:7px}.plan-name{font-size:15px;unicode-bidi:plaintext}.plan-amount{flex-shrink:0;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;unicode-bidi:isolate}.plan-strong .plan-name,.plan-strong .plan-amount{font-weight:700}.plan-today{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;margin-block:6px 4px;padding:10px 12px;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:14px;font-weight:700}.plan-today-balance{font-variant-numeric:tabular-nums}.plan-section-label{margin-top:12px;color:var(--dim);font-size:12.5px;font-weight:600}.plan-item-btn{display:block;width:100%;text-align:start}.plan-item-btn:active{background:var(--hover)}.plan-add-btn{margin-top:8px}.plan-add{margin-top:10px}.plan-sign{margin-bottom:8px}.plan-amount-input{flex:0 0 96px!important;text-align:end}.plan-edit-inputs{margin-bottom:18px}.plan-copy{width:100%;margin-top:10px}.plan-totals{margin-top:12px;padding-top:4px;border-top:2px solid var(--line)}.plan-totals .plan-line:last-child{border-bottom:none}.plan-total .plan-name{font-weight:700}.plan-total .plan-amount{font-size:22px;font-weight:700;letter-spacing:-.01em}.plan-timeline{display:block;width:100%;text-align:start}.plan-step{position:relative;display:flex;align-items:center;gap:12px;min-height:58px}.plan-step:not(:last-child):after{content:"";position:absolute;inset-inline-start:5px;top:calc(50% + 7px);height:calc(100% - 14px);width:2px;background:var(--line)}.plan-dot{flex-shrink:0;width:12px;height:12px;border-radius:50%;border:2px solid var(--faint);background:var(--surface)}.plan-step-current .plan-dot{border-color:var(--accent);background:var(--accent)}.plan-step-when{flex:1;min-width:0;display:flex;flex-direction:column}.plan-step-month{font-size:15px;font-weight:600}.plan-step-label{color:var(--dim);font-size:12.5px}.plan-step-current .plan-step-label{color:var(--accent);font-weight:600}.plan-step-end{display:flex;flex-direction:column;align-items:flex-end}.plan-step-balance{font-size:20px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;unicode-bidi:isolate}.plan-step-change{color:var(--dim);font-size:12.5px;font-variant-numeric:tabular-nums;unicode-bidi:isolate}:root{--flow-expense: #c9791c;--flow-income: #4c8df0}:root[data-theme=light]{--flow-expense: #d9820b;--flow-income: #2f6fd6}.cf-swatch{display:inline-block;width:9px;height:9px;border-radius:3px;flex-shrink:0}.cf-swatch-expense{background:var(--flow-expense)}.cf-swatch-income{background:var(--flow-income)}.cf-hero{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;text-align:start}.cf-hero-stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.cf-hero-label{display:inline-flex;align-items:center;gap:6px;color:var(--dim);font-size:13px;font-weight:600}.cf-hero-value{align-self:stretch;font-size:28px;font-weight:800;letter-spacing:-.025em;line-height:1.15;font-variant-numeric:tabular-nums;text-align:end;unicode-bidi:isolate}.cf-hero-note{margin-top:8px;color:var(--faint);font-size:12px}.cf-trend{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.cf-hero-stat .cf-trend{font-size:13px}.cf-hero-stat .cf-trend>span{font-size:13px}.cf-good{color:var(--good)}.cf-bad{color:var(--danger)}.cf-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:2px}.cf-head{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:5px 0 6px;border-radius:8px;color:var(--dim);font-size:12px;font-weight:700;line-height:1.2}.cf-head-sub{font-size:9.5px;font-weight:600;opacity:.85}.cf-now{background:var(--accent-soft)}.cf-head.cf-now{color:var(--accent)}.cf-line{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;padding-block:7px 8px;border-top:1px solid var(--line);text-align:start}.cf-caption{grid-column:1 / -1;display:flex;align-items:center;gap:7px;min-width:0;margin-bottom:5px;font-size:13px;font-weight:600}.cf-cell{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:4px;padding:4px 3px;border-radius:7px;text-align:center;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em;unicode-bidi:isolate}.cf-row:active{background-color:var(--hover)}.cf-cat-emoji{flex-shrink:0;width:26px;height:26px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;font-size:14px}.cf-cat-name{min-width:0;font-size:13.5px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cf-avg{flex-shrink:0;margin-inline-start:auto;color:var(--faint);font-size:11.5px;font-weight:500;font-variant-numeric:tabular-nums}.cf-amount{display:inline-flex;align-items:baseline;justify-content:center;gap:2px;unicode-bidi:isolate}.cf-cell:not(.cf-now) .cf-amount{color:var(--dim);font-weight:500}.cf-mini{display:flex;justify-content:flex-start;height:3px;border-radius:2px;background:var(--surface-2)}.cf-mini>i{display:block;height:100%;border-radius:2px;background:var(--flow-expense);opacity:.5}.cf-income .cf-mini>i{background:var(--flow-income)}.cf-now .cf-mini>i{opacity:1}.cf-total-line{border-top:1.5px solid var(--faint)}.cf-total{font-weight:700}.cf-unit{color:var(--faint);font-weight:500}.cf-overview-grid{margin-top:16px}.cf-bars{display:flex;align-items:flex-end;justify-content:center;gap:3px;height:110px;padding-top:8px;border-radius:8px 8px 0 0}.cf-bar{display:block;width:11px;border-radius:3px 3px 0 0}.cf-bar-income{background:var(--flow-income)}.cf-bar-expense{background:var(--flow-expense)}.cf-overview-grid .cf-bars+.cf-bars~.cf-head,.cf-overview-grid .cf-head{border-radius:0 0 8px 8px}.cf-overview-grid .cf-caption{color:var(--dim);font-size:12.5px;margin-bottom:3px}.cf-net{font-weight:700;font-size:11.5px;letter-spacing:-.03em;padding-inline:1px}.cf-categorizing{display:flex;align-items:center;gap:8px;margin-top:12px;padding-inline:4px;color:var(--accent);font-size:13px;font-weight:600}.cf-spinner{width:13px;height:13px;border-radius:50%;border:2px solid var(--accent-soft);border-top-color:var(--accent);animation:cf-spin .8s linear infinite}@keyframes cf-spin{to{transform:rotate(360deg)}}.cf-dash-hero{margin-bottom:0}.cf-top{display:flex;flex-direction:column;margin-top:12px}.cf-top-row{display:flex;align-items:center;gap:10px;padding-block:8px;border-top:1px solid var(--line);text-align:start;width:100%}.cf-top-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.cf-top-line{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.cf-top-amount{display:inline-flex;align-items:baseline;gap:4px;flex-shrink:0;font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums;unicode-bidi:isolate}.cf-track{position:relative;height:6px;border-radius:3px;background:var(--surface-2)}.cf-track>i{position:absolute;inset-block:0;inset-inline-start:0;border-radius:3px;background:var(--flow-expense)}.cf-tick{position:absolute;top:-3px;bottom:-3px;width:2px;margin-inline-start:-1px;border-radius:1px;background:var(--text);opacity:.55}.cf-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:8px;color:var(--dim);font-size:12px}.cf-legend>span{display:inline-flex;align-items:center;gap:6px}.cf-legend-fill{width:14px;height:6px;border-radius:3px;background:var(--flow-expense)}.cf-legend-tick{width:2px;height:12px;border-radius:1px;background:var(--text);opacity:.55}.cf-emoji-input{flex:0 0 46px!important;width:46px;min-height:44px;text-align:center;font-size:20px!important;background:var(--bg);border-radius:12px;padding-inline:0!important}.txn-pickable{cursor:pointer}.txn-cat{margin-top:1px;padding:1px 8px;border-radius:999px;background:var(--surface-2);color:var(--dim);font-size:11.5px;font-weight:600;white-space:nowrap}.txn-cat-waiting{color:var(--accent);background:var(--accent-soft)}.picker{max-height:80dvh;overflow-y:auto}.picker-merchant{margin-bottom:4px;unicode-bidi:plaintext;text-align:start}.picker-info{display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:14px;color:var(--dim);font-size:13.5px}.picker-source{color:var(--faint)}.picker-scope{display:flex;gap:4px;padding:4px;margin-bottom:14px;background:var(--bg);border-radius:12px}.picker-scope button{flex:1;min-width:0;padding:8px 10px;border-radius:9px;color:var(--dim);font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-scope button.active{background:var(--accent-soft);color:var(--accent)}.picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.picker-cat{display:flex;align-items:center;gap:8px;min-height:46px;padding-inline:12px;border-radius:14px;background:var(--surface-2);font-size:14px;font-weight:500;text-align:start}.picker-cat-active{background:var(--accent);color:var(--on-accent);font-weight:600}.picker-emoji{font-size:18px}.picker-reset{width:100%;margin-top:14px}.app-buddy{position:fixed;top:var(--vv-top, 0px);inset-inline:0;height:var(--vv-height, 100dvh);display:flex;flex-direction:column;padding-bottom:0}.app-buddy .main,.buddy{flex:1;min-height:0;display:flex;flex-direction:column}.buddy-agents{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-bottom:10px;flex-shrink:0}.buddy-agents::-webkit-scrollbar{display:none}.buddy-agent{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap}.buddy-agent svg{opacity:.75}.buddy-agent .buddy-dot{margin-inline-start:0}.buddy-agent-add{padding-inline:10px}.agent-name-row{margin-bottom:18px}.agent-name-row .agent-emoji-input{flex:0 0 56px;padding-inline:0;text-align:center;font-size:22px}.agent-persona{display:block;width:100%;min-height:132px;max-height:40dvh;margin-bottom:14px;padding:12px 14px;background:var(--bg);border-radius:var(--radius);font:inherit;font-size:16px;line-height:1.5;color:inherit;border:0;outline:none;resize:vertical;unicode-bidi:plaintext}.agent-persona::placeholder{color:var(--faint)}.agent-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}.agent-toggle-text{display:flex;flex-direction:column;gap:2px;font-size:15.5px;font-weight:500}.agent-toggle-hint{font-size:13px;font-weight:400;color:var(--dim)}.agent-toggle input{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex-shrink:0;position:relative;width:46px;height:28px;margin:0;border-radius:999px;background:var(--faint);transition:background .15s;cursor:pointer}.agent-toggle input:after{content:"";position:absolute;inset-block-start:3px;inset-inline-start:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .15s}.agent-toggle input:checked{background:var(--accent)}.agent-toggle input:checked:after{transform:translate(-18px)}.agent-note{margin:12px 0 4px;font-size:13px;color:var(--dim)}.buddy-card{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:0}.buddy-card .buddy-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:16px;margin-inline:-8px;padding-inline:8px}.buddy-head{align-items:center}.buddy-head h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext}.buddy-head-actions{display:flex;flex-shrink:0;gap:2px}.buddy-new{padding-inline:8px}.buddy-count{margin-inline-start:5px;min-width:20px;padding:0 6px;border-radius:999px;background:var(--accent-soft);font-size:12.5px;line-height:20px;text-align:center;font-variant-numeric:tabular-nums}.buddy-dot{display:inline-block;width:7px;height:7px;margin-inline-start:5px;border-radius:50%;background:var(--accent);animation:buddy-pulse 1.2s infinite ease-in-out}@keyframes buddy-pulse{50%{opacity:.3}}.buddy-threads{max-height:72dvh;overflow-y:auto}.buddy-threads-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.buddy-thread{display:flex;align-items:center;gap:4px;min-height:64px;border-bottom:1px solid var(--line)}.buddy-thread-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:1px;padding:10px 12px;border-radius:14px;text-align:start}.buddy-thread-main:active{background:var(--hover)}.buddy-thread-current .buddy-thread-main{background:var(--accent-soft)}.buddy-thread-title{font-weight:600;font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext;text-align:start}.buddy-thread-preview{color:var(--dim);font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext;text-align:start}.buddy-thread-meta{color:var(--faint);font-size:12.5px;display:flex;align-items:center;gap:4px}.buddy-thread-meta .buddy-dot{margin-inline-start:0}.buddy-thread-input{flex:1;min-width:0;min-height:44px;padding-inline:12px;background:var(--bg);border-radius:12px;font-size:16px;unicode-bidi:plaintext}.buddy-thread-actions{display:flex;flex-shrink:0}.buddy-thread-actions button{min-width:40px;height:40px;padding-inline:8px;border-radius:12px;color:var(--faint);display:grid;place-items:center;font-size:15px}.buddy-thread-actions button:active{background:var(--hover)}.buddy-thread-actions .buddy-thread-confirm{color:var(--danger);font-weight:600}.buddy-messages{display:flex;flex-direction:column;gap:8px}.buddy-hint{color:var(--dim);font-size:15px;padding-block:8px}.buddy-error{color:var(--danger);font-size:14px}.buddy-bubble{max-width:88%;padding:9px 13px;border-radius:18px;font-size:15.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;unicode-bidi:plaintext}.buddy-mine{align-self:flex-start;background:var(--accent-soft);border-end-start-radius:6px}.buddy-theirs{align-self:flex-end;background:var(--surface-2);border-end-end-radius:6px;white-space:normal}.buddy-failed{color:var(--dim)}.buddy-theirs p+p,.buddy-theirs p+ul,.buddy-theirs ul+p{margin-top:6px}.buddy-theirs ul{padding-inline-start:20px}.buddy-theirs li+li{margin-top:2px}.buddy-theirs code{font-size:.9em;padding:1px 5px;border-radius:6px;background:var(--bg)}.buddy-typing{display:inline-flex;gap:4px;padding-block:6px}.buddy-typing i{width:7px;height:7px;border-radius:50%;background:var(--dim);animation:buddy-dot 1.2s infinite ease-in-out}.buddy-typing i:nth-child(2){animation-delay:.15s}.buddy-typing i:nth-child(3){animation-delay:.3s}@keyframes buddy-dot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.buddy-composer{flex-shrink:0;padding:10px 0 calc(12px + env(safe-area-inset-bottom))}.keyboard-open .buddy-composer{padding-bottom:10px}.buddy-composer textarea{flex:1;min-width:0;min-height:48px;max-height:160px;padding:12px 14px;background:var(--surface);border-radius:var(--radius);font:inherit;font-size:16px;line-height:1.5;color:inherit;border:0;outline:none;resize:none;unicode-bidi:plaintext}.buddy-composer textarea::placeholder{color:var(--faint)}.buddy-composer .add-btn{align-self:flex-end}
