@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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{--bg:#f4f5f7;--surface:#fff;--surface-2:#eef0f3;--border:#e4e7ec;--text:#101828;--muted:#667085;--accent:#6366f1;--accent-2:#8b5cf6;--accent-text:#fff;--danger:#dc2626;--good:#16a34a;--warn:#d97706;--hero-from:#4f46e5;--hero-to:#7c3aed;--radius:18px;--radius-sm:12px;--shadow:0 1px 2px #1018280d, 0 4px 12px #1018280d;--shadow-lg:0 8px 30px #10182824;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0a0c10;--surface:#14171d;--surface-2:#1c2027;--border:#262b34;--text:#eef1f5;--muted:#8b95a3;--accent:#818cf8;--accent-2:#a78bfa;--danger:#f87171;--good:#4ade80;--warn:#fbbf24;--hero-from:#4338ca;--hero-to:#6d28d9;--shadow:none;--shadow-lg:0 8px 30px #00000073}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-family:Inter Variable,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3,p,ul{margin:0}button{font:inherit;color:inherit;-webkit-user-select:none;user-select:none}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--danger);font-size:13px}.grow{flex:1}.wide{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card-title-row{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.card-title{letter-spacing:-.01em;font-size:15px;font-weight:600}.section-heading{letter-spacing:-.01em;padding:4px 2px 0;font-size:15px;font-weight:600}.btn{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:500;transition:filter .15s,opacity .15s,transform 50ms;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-text);border-color:#0000;font-weight:600}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, transparent);background:color-mix(in srgb, var(--danger) 8%, transparent)}.icon-btn{color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px;transition:background .15s,color .15s;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.round{border-radius:50%;padding:9px}.icon-btn.copied{color:var(--good)}.card-btn{position:relative}.alert-dot{background:var(--warn);width:8px;height:8px;box-shadow:0 0 0 2px var(--bg);border-radius:50%;position:absolute;top:5px;right:5px}.cards-manager{gap:8px;display:grid}.cards-section-head{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.cards-section-head h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12.5px;font-weight:650}.cards-stats{padding:2px 2px 6px}.cards-grid{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=720px){.cards-grid{grid-template-columns:1fr 1fr}}.ccard{text-align:left;cursor:pointer;color:#fff;border:none;border-radius:16px;gap:6px;padding:15px 17px;transition:transform .1s,filter .15s;display:grid;box-shadow:inset 0 1px #ffffff26,0 4px 14px #00000038}.ccard:hover{filter:brightness(1.07);transform:translateY(-2px)}.ccard.wish{opacity:.88;outline-offset:-6px;outline:1.5px dashed #fff6}.ccard-top{justify-content:space-between;align-items:center;display:flex}.ccard-chip{background:linear-gradient(135deg,#e7c968,#b3892f);border-radius:5px;width:30px;height:22px;position:relative;box-shadow:inset 0 0 0 1px #00000040}.ccard-chip:after{content:"";border:1px solid #0000004d;border-radius:3px;position:absolute;inset:4px 6px}.ccard-name{letter-spacing:.01em;text-shadow:0 1px 2px #0000004d;font-size:15.5px;font-weight:700}.ccard-purpose{opacity:.95;font-size:12.5px;font-weight:550}.ccard-benefits{opacity:.82;gap:1px;font-size:11.5px;line-height:1.45;display:grid}.ccard-meta{opacity:.95;justify-content:space-between;gap:10px;margin-top:4px;font-size:11.5px;font-weight:600;display:flex}.ccard .plan-chip{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ccard .plan-chip.keep{color:#bbf7d0;background:#4ade8038}.ccard .plan-chip.cancel{color:#fecaca;background:#f8717142}.ccard .plan-chip.review{color:#fde68a;background:#fbbf243d}.ccard .due-amber{color:#fde68a}.ccard .due-red{color:#fecaca}.plan-chip{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600}.plan-chip.keep{background:color-mix(in srgb, var(--good) 14%, transparent);color:var(--good)}.plan-chip.cancel{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.plan-chip.review{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.card-row-purpose{font-size:13px}.card-row-meta{font-size:12px}.due-amber{color:var(--warn)}.due-red{color:var(--danger)}textarea{font:inherit;width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;padding:10px 12px}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.icon-btn-label{font-size:13px;font-weight:500}.pill-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:500;transition:background .15s,color .15s}.pill-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.pill-btn.solid{background:var(--accent);color:var(--accent-text);border-color:#0000}input,select{font:inherit;width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input{outline-offset:-1px}.cat-icon{border-radius:12px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:19px;display:inline-flex}.cat-icon.big{border-radius:16px;width:54px;height:54px;font-size:28px}.app{max-width:640px;padding:0 16px calc(96px + env(safe-area-inset-bottom));margin:0 auto}.app-header{justify-content:space-between;align-items:center;gap:12px;padding:16px 0 10px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:9px;font-size:16px;font-weight:650;display:flex}.brand-mark{font-size:20px}.header-right{align-items:center;gap:2px;display:flex}.avatar{border:1px solid var(--border);border-radius:50%;width:30px;height:30px;display:block}.avatar-fallback{background:var(--accent);color:var(--accent-text);place-items:center;font-size:13px;font-weight:600;display:grid}.user-chip{margin:0 4px}.app-main{gap:14px;display:grid}.app-main>*,.dash>*{min-width:0}.month-nav{justify-content:space-between;align-items:center;gap:8px;padding:2px 0;display:flex}.month-nav,.hero,.kpis{touch-action:pan-y}.month-center{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;min-width:0;display:flex}.nav-scope button{padding:4px 12px}.month-label{letter-spacing:-.02em;white-space:nowrap;font-size:19px;font-weight:650}.hero{color:#fff;background:linear-gradient(135deg, var(--hero-from), var(--hero-to));box-shadow:var(--shadow-lg);border-radius:22px;padding:22px 20px 18px;position:relative;overflow:hidden}.hero-glow{pointer-events:none;background:radial-gradient(90% 60% at 85% -10%,#ffffff2e,#0000 60%),radial-gradient(60% 50% at 10% 110%,#ffffff1a,#0000 60%);position:absolute;inset:0}.hero>*{position:relative}.hero-label{opacity:.85;font-size:13px;font-weight:500}.hero-total{letter-spacing:-.03em;margin:2px 0 10px;font-size:40px;font-weight:700;line-height:1.15}.hero-badges{flex-wrap:wrap;gap:6px;display:flex}.badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff29;border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:550}.badge.bad{background:#fecaca47}.badge.good{background:#bbf7d042}.hero-budget{gap:8px;margin-top:16px;display:grid}.hero .bar{background:#ffffff38;border-radius:999px;height:7px;overflow:hidden}.hero .bar-fill{background:#fff;border-radius:999px;height:100%;transition:width .4s}.hero .bar-fill.warn{background:#fde68a}.hero .bar-fill.over{background:#fca5a5}.hero-budget-row{justify-content:space-between;align-items:center;gap:10px;min-height:30px;display:flex}.hero-budget-text{opacity:.92;font-size:13.5px;font-weight:500}.hero .pill-btn{color:#fff;border-color:#ffffff59}.hero .pill-btn:hover:not(:disabled){color:#fff;background:#ffffff26}.hero .pill-btn.solid{color:var(--hero-from);background:#fff}.budget-edit{align-items:center;gap:6px;width:100%;display:flex}.hero .budget-edit input{color:#fff;background:#ffffff24;border-color:#ffffff4d;max-width:180px}.hero .budget-edit input::placeholder{color:#fff9}.trend-scroll{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;-webkit-user-select:none;user-select:none;margin:0 -6px;padding:0 6px 4px;overflow-x:auto}@media (hover:hover){.trend-scroll,.mtrend-scroll{cursor:grab}}.trend-scroll.dragging,.mtrend-scroll.dragging{scroll-snap-type:none;cursor:grabbing}.trend-bars{align-items:stretch;gap:3px;height:130px;padding-top:14px;display:flex;position:relative}.trend-grid{pointer-events:none;position:absolute;inset:14px 0 18px}.trend-line{border-top:1px dashed color-mix(in srgb, var(--muted) 38%, transparent);height:0;position:absolute;left:0;right:0}.trend-line.top{border-top-color:color-mix(in srgb, var(--muted) 60%, transparent)}.trend-line.top span{color:var(--text);font-weight:600}.trend-line span{color:var(--muted);background:var(--surface);border-radius:5px;padding:0 5px;font-size:9.5px;display:inline-block;position:sticky;left:2px;transform:translateY(-58%)}.trend-col{cursor:pointer;scroll-snap-align:start;background:0 0;border:none;border-radius:6px;flex-direction:column;flex:1 0 24px;gap:4px;min-width:0;padding:0;display:flex}.trend-col:disabled{cursor:default}.trend-track{flex:1;align-items:flex-end;display:flex}.trend-day{font-variant-numeric:tabular-nums;font-size:10px;font-weight:550}.trend-bar{background:color-mix(in srgb, var(--accent) 72%, var(--accent-2));opacity:.85;border-radius:4px 4px 0 0;width:100%;min-height:2px;transition:opacity .15s,box-shadow .15s;display:block}.trend-col:hover:not(:disabled) .trend-bar{opacity:1;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent)}.trend-col.today .trend-bar{background:var(--accent-2);opacity:1;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-2) 35%, transparent)}.trend-col.future .trend-bar{background:var(--border)}.trend-col.picked .trend-bar{opacity:1;background:var(--accent-2);box-shadow:0 0 0 2.5px var(--accent)}.breakdown{gap:14px;padding:0;list-style:none;display:grid}.breakdown li{align-items:center;gap:12px;display:flex}.breakdown-main{flex:1;gap:4px;min-width:0;display:grid}.breakdown-name-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.breakdown-name{font-size:14px;font-weight:550}.breakdown-amount{font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.breakdown-bar{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.breakdown-bar>span{border-radius:999px;height:100%;transition:width .4s;display:block}.breakdown-sub{font-size:12px}.breakdown-card .pill-btn{margin-top:14px}.list{gap:10px;display:grid}.day-group{gap:6px;display:grid}.day-header{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-variant-numeric:tabular-nums;justify-content:space-between;padding:0 6px;font-size:12.5px;font-weight:600;display:flex}.day-card{padding:4px 6px}.tx{align-items:center;display:flex}.tx+.tx{border-top:1px solid var(--border)}.tx-body{cursor:pointer;text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;flex:1;align-items:center;gap:12px;min-width:0;padding:10px 6px;display:flex}.tx-body:hover{background:var(--surface-2)}.tx-main{flex:1;min-width:0;display:grid}.tx-title{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:500;overflow:hidden}.tx-sub{font-size:12.5px}.tx-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14.5px;font-weight:600}.tx-delete{margin-right:2px;padding:6px}.tx-delete:hover{color:var(--danger)}.tx-confirm{border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger);cursor:pointer;white-space:nowrap;border-radius:999px;margin-right:2px;padding:5px 12px;font-size:12.5px;font-weight:600;animation:.14s confirm-pop}@keyframes confirm-pop{0%{opacity:.4;transform:scale(.85)}}.btn-danger.arming{background:var(--danger);border-color:var(--danger);color:#fff}.empty{text-align:center;justify-items:center;gap:4px;padding:44px 20px;display:grid}.tx-toggle{cursor:pointer;text-align:left;align-items:center;gap:10px;width:100%;padding:13px 16px;display:flex}.tx-toggle .section-heading{flex:1;padding:0}.tx-chev{color:var(--muted);flex:none;transition:transform .18s}.tx-chev.open{transform:rotate(180deg)}.empty-icon{margin-bottom:6px;font-size:34px}.fab{right:max(20px,50vw - 560px);bottom:calc(22px + env(safe-area-inset-bottom));background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;cursor:pointer;width:56px;height:56px;box-shadow:0 6px 20px color-mix(in srgb, var(--accent) 45%, transparent);z-index:40;border:none;border-radius:50%;place-items:center;transition:transform .12s,filter .15s;display:grid;position:fixed}.fab:hover{filter:brightness(1.08)}.fab:active{transform:scale(.94)}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#080a0e8c;place-items:end center;animation:.18s fade-in;display:grid;position:fixed;inset:0}.sheet{background:var(--surface);border:1px solid var(--border);border-bottom:none;border-radius:24px 24px 0 0;flex-direction:column;width:100%;max-width:560px;max-height:calc(100dvh - 48px);animation:.24s cubic-bezier(.32,.72,.25,1) slide-up;display:flex}.sheet-handle{background:var(--border);border-radius:999px;flex:none;width:40px;height:4px;margin:10px auto 0}.sheet-header{flex:none;justify-content:space-between;align-items:center;padding:8px 18px 0;display:flex}.sheet-title{letter-spacing:-.01em;font-size:17px;font-weight:650}.sheet-body{padding:14px 18px calc(20px + env(safe-area-inset-bottom));overflow-y:auto}@media (width>=640px){.overlay{place-items:center}.sheet{border-bottom:1px solid var(--border);max-height:calc(100dvh - 96px);box-shadow:var(--shadow-lg);border-radius:22px}.sheet.wide{max-width:840px}.sheet-handle{display:none}.sheet-header{padding-top:16px}}@keyframes fade-in{0%{opacity:0}}@keyframes slide-up{0%{opacity:.6;transform:translateY(48px)}}@media (prefers-reduced-motion:reduce){.overlay,.sheet{animation:none}}.sheet-form{gap:18px;display:grid}.amount-input{justify-content:center;align-items:center;gap:6px;padding:6px 0 2px;display:flex}.amount-symbol{color:var(--muted);font-size:26px;font-weight:600}.amount-input input{letter-spacing:-.02em;text-align:left;background:0 0;border:none;min-width:1.6ch;max-width:60vw;padding:0;font-size:38px;font-weight:700}.amount-input input:focus-visible{outline:none}.amount-input input::-webkit-outer-spin-button{-webkit-appearance:none}.amount-input input::-webkit-inner-spin-button{-webkit-appearance:none}.field-block{gap:7px;display:grid}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12.5px;font-weight:600}.sheet-row{flex-wrap:wrap;gap:10px;display:flex}.sheet-actions{gap:10px;margin-top:2px;display:flex}.merchant-field{flex:0 180px}@media (width<=560px){.merchant-field{flex-basis:100%}}.cat-grid{flex-wrap:wrap;gap:7px;display:flex}.cat-chip{border:1.5px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:13.5px;font-weight:500;transition:border-color .12s,background .12s;display:inline-flex}.cat-chip.selected{font-weight:600}.cat-chip.sub{padding:6px 11px;font-size:13px}.cat-chip.sub.selected.accent{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.cat-chip.sub.dashed{color:var(--muted);border-style:dashed}.merchant-suggest{flex-wrap:wrap;gap:7px;margin-top:-6px;display:flex}.sub-create{align-items:center;gap:8px;display:flex}.sub-create input{flex:1;min-width:120px}.sub-list{padding:0;list-style:none;display:grid}.sub-list li{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px;display:flex}.sub-list li.armed{background:color-mix(in srgb, var(--danger) 8%, transparent)}.sub-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.sub-usage{white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.sub-usage.highlight{color:var(--danger);font-weight:600}.cat-manager{gap:14px;display:grid}.cat-list{padding:0;list-style:none;display:grid}.cat-row{border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:9px 8px;display:flex}.cat-row:hover{background:var(--surface-2)}.cat-row-name{flex:1;font-weight:500}.cat-row-swatch{border-radius:5px;width:14px;height:14px}.cat-form{gap:18px;display:grid}.cat-preview{align-items:center;gap:14px;display:flex}.cat-name-input{font-size:18px;font-weight:600}.emoji-grid{grid-template-columns:repeat(8,1fr);gap:5px;display:grid}.emoji-cell{aspect-ratio:1;background:var(--surface-2);cursor:pointer;border:1.5px solid #0000;border-radius:10px;place-items:center;font-size:19px;transition:border-color .12s,transform 60ms;display:grid}.emoji-cell:hover{transform:scale(1.08)}.emoji-cell.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.color-grid{grid-template-columns:repeat(8,1fr);gap:8px;display:grid}.color-cell{aspect-ratio:1;cursor:pointer;border:2.5px solid #0000;border-radius:50%;transition:transform 60ms}.color-cell:hover{transform:scale(1.1)}.color-cell.selected{border-color:var(--text);box-shadow:inset 0 0 0 2px var(--surface)}.screen-center{place-items:center;min-height:100%;padding:24px;display:grid}.login-screen{background:radial-gradient(70% 45% at 50% -8%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%), var(--bg)}.login{text-align:center;background:var(--surface);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border-radius:24px;padding:36px 30px}.login h1{letter-spacing:-.02em;margin-bottom:2px;font-size:23px;font-weight:700}.login-mark{margin-bottom:12px;font-size:40px}.login-features{text-align:left;color:var(--muted);gap:10px;margin:22px 0;padding:0;font-size:13.5px;list-style:none;display:grid}.login-features li{align-items:center;gap:10px;display:flex}.login-features span[aria-hidden]{font-size:16px}.skeleton-stack{gap:14px;display:grid}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface) 25%, var(--surface-2) 50%, var(--surface) 75%);border:1px solid var(--border);background-size:200% 100%;animation:1.4s infinite shimmer}.skeleton.hero{border-radius:22px;height:190px}.skeleton.row{height:150px}.skeleton.block{height:260px}@keyframes shimmer{to{background-position:-200% 0}}.error-card{border-color:color-mix(in srgb, var(--danger) 45%, transparent);justify-content:space-between;align-items:center;gap:12px;display:flex}.dash{flex-direction:column;gap:14px;transition:opacity .15s;display:flex}.dash.refetching{opacity:.55;pointer-events:none}.col-main,.col-side{display:contents}.a-hero{order:1}.a-kpi{order:2}.a-daily{order:3}.a-donut{order:4}.a-mtrend{order:5}.a-merchants{order:6}.a-tx-wrap{order:7}.a-heat{order:8}.tx-anchor{gap:10px;scroll-margin-top:14px;display:grid}.tx-search{align-items:center;display:flex;position:relative}.tx-search>svg{color:var(--muted);pointer-events:none;position:absolute;left:13px}.tx-search input{background:var(--surface);border-color:var(--border);border-radius:var(--radius-sm);padding-left:37px;padding-right:40px}.tx-search input::-webkit-search-cancel-button{display:none}.tx-search-clear{padding:7px;position:absolute;right:4px}.filter-bar{background:color-mix(in srgb, var(--accent) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:9px 12px;font-size:13.5px;display:flex}.filter-label{font-weight:600}.filter-clear{margin-left:auto}@media (width>=980px){.app{max-width:1180px}.dash{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:16px;display:grid}.a-kpi,.a-heat{order:-1;grid-column:1/-1}.col-main,.col-side{flex-direction:column;gap:16px;min-width:0;display:flex}}.kpis{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}@media (width>=980px){.kpis{grid-template-columns:repeat(4,1fr);gap:16px}}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-content:start;gap:2px;padding:14px 16px;display:grid}.tile-label{color:var(--muted);font-size:12.5px;font-weight:550}.tile-value{letter-spacing:-.02em;font-size:23px;font-weight:700;line-height:1.25}.tile-delta{color:var(--muted);font-size:12px;font-weight:500}.tile-delta.up{color:var(--danger)}.tile-delta.down{color:var(--good)}.donut-wrap{align-items:center;gap:20px;display:flex}.donut{flex:none;width:148px;position:relative}.donut svg{width:100%;display:block;transform:rotate(0)}.donut-center{text-align:center;pointer-events:none;place-content:center;gap:0;display:grid;position:absolute;inset:0}.donut-total{letter-spacing:-.01em;font-size:17px;font-weight:700}.donut-sub{font-size:11.5px}.legend{flex:1;gap:2px;min-width:0;padding:0;list-style:none;display:grid}.legend-row{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;width:100%;min-width:0;padding:5px 6px;font-size:13px;transition:background .12s;display:flex}.legend-row:hover{background:var(--surface-2)}.legend-row.picked{background:color-mix(in srgb, var(--accent) 12%, transparent)}.donut-seg.clickable{cursor:pointer;transition:opacity .15s,stroke-width .15s}.donut-seg.clickable:hover{opacity:.85}.donut-seg.dimmed{opacity:.3}.scope-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.scope-toggle button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:550;transition:background .15s,color .15s}.scope-toggle button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.legend-key{border-radius:3.5px;flex:none;width:10px;height:10px}.legend-icon{flex:none;font-size:13px}.legend-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.legend-share{flex:none;margin-left:auto;font-size:12px}.legend-amount{font-variant-numeric:tabular-nums;text-align:right;flex:none;min-width:62px;font-weight:600}@media (width<=420px){.donut{width:118px}.legend-share{display:none}}.mtrend-scroll{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;-webkit-user-select:none;user-select:none;margin:0 -6px;padding:0 6px 6px;overflow-x:auto}.mtrend-col{scroll-snap-align:center}.mtrend{align-items:stretch;gap:8px;height:150px;display:flex}.mtrend-col{cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;flex:1 0 46px;align-items:center;gap:4px;min-width:0;padding:0;display:flex}.mtrend-col:disabled{cursor:default}.mtrend-value{color:var(--muted);white-space:nowrap;letter-spacing:-.02em;min-height:14px;font-size:10px;font-weight:600}.mtrend-col.selected .mtrend-value{color:var(--text)}.mtrend-track{flex:1;align-items:flex-end;width:100%;max-width:26px;display:flex}.mtrend-bar{background:color-mix(in srgb, var(--muted) 30%, transparent);border-radius:4px 4px 0 0;width:100%;min-height:2px;transition:height .3s,background .15s}.mtrend-col:hover:not(:disabled) .mtrend-bar{background:color-mix(in srgb, var(--muted) 45%, transparent)}.mtrend-col.selected .mtrend-bar,.mtrend-col.selected:hover .mtrend-bar{background:linear-gradient(180deg, var(--accent-2), var(--accent))}.mtrend-label{white-space:nowrap;font-size:11.5px;font-weight:550}.mtrend-year{color:var(--muted);margin-left:2px;font-size:9.5px}.heat-scroll{overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-user-select:none;user-select:none;margin:0 -6px;padding:0 6px 4px;overflow-x:auto}@media (hover:hover){.heat-scroll{cursor:grab}}.heat-scroll.dragging{cursor:grabbing}.heat-inner{padding-top:18px;position:relative}.heat-months{height:14px;position:absolute;top:0;left:0;right:0}.heat-months span{color:var(--muted);font-size:10px;position:absolute}.heat-grid{grid-template-rows:repeat(7,11px);gap:3px;display:grid}.heat-cell{background:var(--surface-2);cursor:default;border:none;border-radius:3px;width:11px;height:11px;padding:0}.heat-cell:not(:disabled){cursor:pointer}.heat-cell:not(:disabled):hover{outline:1.5px solid var(--accent);outline-offset:1px}.heat-cell.future{border:1px dashed var(--border);background:0 0}.hl1{background:color-mix(in srgb, var(--accent) 22%, var(--surface-2))}.hl2{background:color-mix(in srgb, var(--accent) 45%, var(--surface-2))}.hl3{background:color-mix(in srgb, var(--accent) 70%, var(--surface-2))}.hl4{background:var(--accent)}.hl5{background:var(--accent-2);box-shadow:0 0 6px color-mix(in srgb, var(--accent-2) 60%, transparent)}.heat-legend{align-items:center;gap:4px;display:inline-flex}.heat-legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.merchant-list{gap:4px;padding:0;list-style:none;display:grid}.merchant-row{border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:11px;width:100%;padding:7px 8px;transition:background .12s;display:flex}.merchant-row:hover{background:var(--surface-2)}.merchant-row.picked{background:color-mix(in srgb, var(--accent) 12%, transparent)}.merchant-avatar{background:var(--surface-2);border:1px solid var(--border);width:32px;height:32px;color:var(--muted);border-radius:10px;flex:none;place-items:center;font-size:14px;font-weight:650;display:grid}.merchant-main{flex:1;gap:3px;min-width:0;display:grid}.merchant-name-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.merchant-name{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:550;overflow:hidden}.merchant-amount{font-variant-numeric:tabular-nums;flex:none;font-size:13.5px;font-weight:600}.merchant-bar{background:var(--surface-2);border-radius:999px;height:5px;overflow:hidden}.merchant-bar>span{background:color-mix(in srgb, var(--accent) 72%, var(--accent-2));border-radius:999px;height:100%;transition:width .35s;display:block}.merchant-sub{font-size:11.5px}.merchant-note{margin-top:12px}.insights{gap:12px;padding:0;list-style:none;display:grid}.insights li{border-left:2.5px solid var(--border);align-items:flex-start;gap:10px;padding-left:10px;font-size:13.5px;line-height:1.45;display:flex}.insights li.good{border-left-color:var(--good)}.insights li.bad{border-left-color:var(--danger)}.insight-icon{flex:none;font-size:15px;line-height:1.4}@media (width<=560px){input,select{font-size:16px}.amount-input input{font-size:36px}.hero-total{font-size:34px}.icon-btn-label{display:none}.emoji-grid,.color-grid{grid-template-columns:repeat(8,1fr)}.month-label{font-size:17px}}
