:root{--bg:#0b0c10;--bg-2:#0e0f16;--surface:#15161e;--surface-2:#1c1e28;--surface-3:#23252f;--border:#ffffff12;--border-strong:#ffffff1f;--text:#f4f5fa;--text-dim:#9aa1b2;--text-faint:#5f6678;--accent:#7c5cff;--accent-2:#4ad8ff;--grad:linear-gradient(135deg, #8b6bff 0%, #6c4cff 45%, #4ad8ff 110%);--grad-soft:linear-gradient(135deg, #7c5cff2e, #4ad8ff1f);--pos:#36d39a;--neg:#ff5d73;--warn:#ffb454;--r-lg:24px;--r-md:18px;--r-sm:13px;--shadow:0 10px 30px -12px #000000b3;--shadow-accent:0 12px 34px -10px #6c4cff8c;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Inter,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.4}#root{background:radial-gradient(120% 60% at 50% -10%, #7c5cff29, transparent 60%), radial-gradient(80% 40% at 100% 0%, #4ad8ff14, transparent 55%), var(--bg);max-width:520px;min-height:100%;margin:0 auto;position:relative}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:700}.app{padding:calc(var(--safe-top) + 18px) 18px calc(100px + var(--safe-bottom));min-height:100vh;animation:.4s fade}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.row{align-items:center;display:flex}.between{justify-content:space-between}.gap8{gap:8px}.gap12{gap:12px}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.pos{color:var(--pos)}.neg{color:var(--neg)}.mono-num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.topbar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.hello{color:var(--text-dim);font-size:13px}.hello b{color:var(--text);letter-spacing:-.03em;margin-top:2px;font-size:21px;font-weight:700;display:block}.avatar{background:var(--grad);color:#fff;width:44px;height:44px;box-shadow:var(--shadow-accent);border-radius:50%;place-items:center;font-size:17px;font-weight:700;display:grid}.hero{background:var(--grad);border-radius:var(--r-lg);box-shadow:var(--shadow-accent);color:#fff;margin-bottom:16px;padding:22px 22px 20px;position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;background:radial-gradient(60% 80% at 85% 10%,#ffffff38,#0000 60%);position:absolute;inset:0}.hero .label{opacity:.82;font-size:13px;font-weight:500}.hero .amount{letter-spacing:-.04em;margin:6px 0 16px;font-size:38px;font-weight:800}.hero .legs{gap:10px;display:flex}.hero .leg{border-radius:var(--r-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff24;flex:1;padding:10px 12px}.hero .leg .k{opacity:.85;align-items:center;gap:5px;font-size:11px;display:flex}.hero .leg .v{margin-top:3px;font-size:16px;font-weight:700}.dot{border-radius:50%;width:7px;height:7px;display:inline-block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);padding:16px}.card+.card{margin-top:14px}.card-h{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.card-h h3{font-size:16px}.link{color:var(--accent-2);font-size:13px;font-weight:600}.chips{gap:8px;display:flex}.chip{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:600;transition:all .18s}.chip.on{background:var(--grad);color:#fff;box-shadow:var(--shadow-accent);border-color:#0000}.donut-wrap{align-items:center;gap:18px;display:flex}.donut-center{text-align:center}.donut-center .t{color:var(--text-dim);font-size:11px}.donut-center .v{letter-spacing:-.03em;font-size:19px;font-weight:800}.legend{flex-direction:column;flex:1;gap:11px;min-width:0;display:flex}.legend-row{align-items:center;gap:10px;display:flex}.legend-ic{background:var(--surface-2);border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-size:15px;display:grid}.legend-row .nm{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13.5px;overflow:hidden}.legend-row .am{font-size:13.5px;font-weight:700}.legend-row .pc{color:var(--text-faint);text-align:right;width:34px;font-size:11px}.txn{align-items:center;gap:12px;padding:11px 0;display:flex}.txn+.txn{border-top:1px solid var(--border)}.txn-ic{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex:none;place-items:center;width:42px;height:42px;font-size:19px;display:grid}.txn-mid{flex:1;min-width:0}.txn-mid .d{white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.txn-mid .s{color:var(--text-faint);margin-top:2px;font-size:12px}.txn-amt{text-align:right;white-space:nowrap;font-size:15px;font-weight:700}.group-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin:18px 2px 4px;font-size:12px;font-weight:700}.acct{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);align-items:center;gap:13px;padding:14px;display:flex}.acct+.acct{margin-top:10px}.acct-ic{background:var(--grad-soft);border:1px solid var(--border);border-radius:13px;flex:none;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.acct-mid{flex:1;min-width:0}.acct-mid .n{font-weight:600}.acct-natives{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.pill{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:2px 7px;font-size:11px}.acct-bal{text-align:right;white-space:nowrap;font-size:16px;font-weight:700}.section-title{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;margin:22px 2px 11px;font-size:13px;font-weight:700}.section-title:first-child{margin-top:4px}.bar-row{align-items:center;gap:12px;padding:9px 0;display:flex}.bar-ic{background:var(--surface-2);border-radius:10px;flex:none;place-items:center;width:34px;height:34px;font-size:16px;display:grid}.bar-mid{flex:1;min-width:0}.bar-track{background:var(--surface-2);border-radius:999px;height:8px;margin-top:6px;overflow:hidden}.bar-fill{background:var(--grad);border-radius:999px;height:100%;transition:width .6s cubic-bezier(.2,.7,.2,1)}.bar-top{justify-content:space-between;font-size:13.5px;display:flex}.bar-top .nm{font-weight:600}.bar-top .am{font-weight:700}.tabbar{z-index:40;width:100%;max-width:520px;padding:10px 22px calc(12px + var(--safe-bottom));background:linear-gradient(to top, var(--bg) 55%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--text-faint);flex-direction:column;align-items:center;gap:3px;padding:4px 10px;font-size:10px;font-weight:600;transition:color .2s;display:flex}.tab svg{width:24px;height:24px}.tab.on{color:var(--accent-2)}.fab{background:var(--grad);width:56px;height:56px;box-shadow:var(--shadow-accent);border-radius:50%;place-items:center;margin-top:-22px;transition:transform .15s;display:grid}.fab:active{transform:scale(.92)}.fab svg{color:#fff;width:28px;height:28px}.sheet-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;animation:.2s fade;position:fixed;inset:0}.sheet{z-index:51;background:var(--bg-2);border-top:1px solid var(--border-strong);width:100%;max-width:520px;padding:10px 18px calc(22px + var(--safe-bottom));border-radius:26px 26px 0 0;max-height:94vh;animation:.32s cubic-bezier(.2,.8,.2,1) slideup;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}@keyframes slideup{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}.grabber{background:var(--surface-3);border-radius:999px;width:40px;height:4px;margin:4px auto 14px}.type-toggle{background:var(--surface);border-radius:14px;gap:6px;margin-bottom:18px;padding:5px;display:flex}.type-toggle button{color:var(--text-dim);border-radius:10px;flex:1;padding:9px;font-size:13.5px;font-weight:600;transition:all .18s}.type-toggle button.on{background:var(--surface-3);color:var(--text);box-shadow:var(--shadow)}.amount-display{text-align:center;padding:8px 0 4px}.amount-display .cur{color:var(--text-dim);font-size:22px;font-weight:700}.amount-display .val{letter-spacing:-.04em;font-size:48px;font-weight:800}.amount-display.expense .val{color:var(--text)}.field-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin:16px 2px 9px;font-size:12px;font-weight:700}.cat-grid{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.cat-cell{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:center;gap:5px;padding:11px 4px;transition:all .16s;display:flex}.cat-cell .e{font-size:22px}.cat-cell .l{color:var(--text-dim);text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10.5px;line-height:1.2;overflow:hidden}.cat-cell.on{border-color:var(--accent);background:var(--grad-soft)}.cat-cell.on .l{color:var(--text)}.acct-chips{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.acct-chip{white-space:nowrap;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);border-radius:12px;flex:none;padding:9px 14px;font-size:13px;font-weight:600;transition:all .16s}.acct-chip.on{border-color:var(--accent);background:var(--grad-soft);color:var(--text)}.text-input{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text);border-radius:12px;outline:none;padding:13px 14px;font-size:15px}.text-input:focus{border-color:var(--accent)}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;display:grid}.key{background:var(--surface);text-align:center;border-radius:14px;padding:16px 0;font-size:22px;font-weight:600;transition:background .12s}.key:active{background:var(--surface-3)}.save-btn{background:var(--grad);color:#fff;width:100%;box-shadow:var(--shadow-accent);border-radius:16px;margin-top:18px;padding:16px;font-size:16px;font-weight:700;transition:transform .12s,opacity .2s}.save-btn:active{transform:scale(.985)}.save-btn:disabled{opacity:.45;box-shadow:none}.search{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text);border-radius:14px;outline:none;margin-bottom:4px;padding:12px 14px;font-size:15px}.search:focus{border-color:var(--accent)}.empty{text-align:center;color:var(--text-faint);padding:40px 20px;font-size:14px}.spinner{border:3px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;width:30px;height:30px;margin:60px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skel{background:linear-gradient(90deg, var(--surface) 25%, var(--surface-2) 37%, var(--surface) 63%);background-size:400% 100%;border-radius:12px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.toast{left:50%;bottom:calc(110px + var(--safe-bottom));background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text);z-index:60;box-shadow:var(--shadow);border-radius:999px;padding:11px 18px;font-size:13.5px;font-weight:600;animation:.25s fade;position:fixed;transform:translate(-50%)}.tap{cursor:pointer;transition:transform .1s,opacity .15s;display:flex}.tap:active{opacity:.85;transform:scale(.985)}.txn.txn-tap{cursor:pointer}.txn.txn-tap:active{opacity:.6}.legend-row.tap,.bar-row.tap{align-items:center}.card.tap{display:block}.overlay{z-index:45;background:radial-gradient(120% 60% at 50% -10%, #7c5cff29, transparent 60%), var(--bg);max-width:520px;margin:0 auto;animation:.28s cubic-bezier(.2,.8,.2,1) slidein;position:fixed;inset:0;overflow-y:auto}@keyframes slidein{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.drill-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.back-btn{background:var(--surface);border:1px solid var(--border);width:38px;height:38px;color:var(--text);border-radius:12px;place-items:center;display:grid}.back-btn svg{width:22px;height:22px}.back-btn:active{background:var(--surface-3)}.detail-ic{background:var(--grad-soft);border:1px solid var(--border);border-radius:20px;place-items:center;width:64px;height:64px;margin:0 auto;font-size:30px;display:grid}.detail-rows{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:4px 14px}.detail-row{justify-content:space-between;gap:14px;padding:12px 0;font-size:14px;display:flex}.detail-row+.detail-row{border-top:1px solid var(--border)}.leg-row{justify-content:space-between;align-items:center;padding:11px 0;display:flex}.leg-row+.leg-row{border-top:1px solid var(--border)}.leg-mid .leg-acc{font-size:14px;font-weight:600}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text-faint:#9aa1b2;--safe-top:max(env(safe-area-inset-top,0px), var(--telegram-safe-top,0px));--safe-bottom:max(env(safe-area-inset-bottom,0px), var(--telegram-safe-bottom,0px));--safe-left:max(env(safe-area-inset-left,0px), var(--telegram-safe-left,0px));--safe-right:max(env(safe-area-inset-right,0px), var(--telegram-safe-right,0px))}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f6fa;--bg-2:#fff;--surface:#fff;--surface-2:#eceef5;--surface-3:#e3e6f0;--border:#141e3c1a;--border-strong:#141e3c38;--text:#202334;--text-dim:#586077;--text-faint:#626b80;--accent:#6242d8;--accent-2:#4c3db2;--pos:#087a52;--neg:#bb2842;--grad:linear-gradient(125deg, #6946d6, #5042b4);--shadow:0 6px 22px -14px #2323463d;--shadow-accent:0 10px 26px -15px #5338b166}[hidden]{display:none!important}body{overflow-wrap:break-word}button,input,select,textarea,a{touch-action:manipulation}button{min-height:44px}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--accent-2);outline-offset:3px}input,select,textarea{font-family:inherit}.app{min-height:100dvh;padding-left:calc(18px + var(--safe-left));padding-right:calc(18px + var(--safe-right))}h1{margin-bottom:16px;font-size:27px}.topbar h1{margin-bottom:0}.hero{background:linear-gradient(125deg,#6946d6,#5042b4)}.hero .amount{overflow-wrap:anywhere;margin-bottom:10px;font-size:clamp(27px,8vw,38px)}.hero-caption{opacity:.9;font-size:12px;line-height:1.5}.hero .amount.pos,.hero .amount.neg{color:#fff}.native-balances{flex-wrap:wrap;gap:8px;margin-top:12px;font-size:13px;display:flex}.native-balances span{background:#ffffff26;border-radius:9px;padding:4px 9px}.period-chips{margin:14px 0 18px;padding:3px 2px 5px;overflow-x:auto}.chip{white-space:nowrap;flex:none;min-height:44px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0;display:grid}.metric-grid .card{margin:0}.metric{text-align:left;min-width:0;display:block}.metric strong{overflow-wrap:anywhere;margin-top:6px;font-size:clamp(17px,5vw,22px);display:block}.metric>.muted{font-size:13px}.spending-chart{justify-content:center;margin:4px 0 20px;display:flex}.donut-container{position:relative}.donut-container .donut-center{pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.legend-row,.bar-row,.acct,.txn{text-align:left;width:100%}.legend-row{min-height:44px}.legend-row .am{flex:none}.txn{min-height:66px}.txn-mid .d,.txn-mid .s,.acct-mid .n{display:block}.txn-mid .s{overflow-wrap:anywhere;line-height:1.4}.txn-amt{flex:none;font-size:14px}.balance-unit{color:var(--text-dim);margin-top:3px;font-size:11px;font-weight:400;display:block}.acct-bal{font-size:14px}.acct .pill{margin-left:3px}.bar-track,.bar-fill{display:block}.bar-top{gap:10px}.bar-top .am{flex-shrink:0}.tabbar{background:var(--bg);border-top:1px solid var(--border);padding-left:calc(10px + var(--safe-left));padding-right:calc(10px + var(--safe-right))}.tab{min-width:54px;padding:6px;font-size:11px}.fab{width:50px;height:50px;margin-top:0}.sheet{max-height:calc(min(96dvh, var(--tg-viewport-stable-height,96dvh)) - var(--safe-top));padding-left:calc(18px + var(--safe-left));padding-right:calc(18px + var(--safe-right));overscroll-behavior:contain;outline:none}.sheet-heading{justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;display:flex}.sheet-heading h2{font-size:20px}.close-btn{background:var(--surface-2);border-radius:50%;flex:none;width:44px;height:44px;font-size:18px}fieldset{border:0;min-width:0;margin:0;padding:0}fieldset:disabled{opacity:.7}.field{margin:16px 0 0;font-size:13px;font-weight:600;display:block}.field .text-input{margin-top:7px;display:block}.text-input,.search{outline:revert;min-height:48px;font-size:16px}select.text-input{text-overflow:ellipsis;padding-right:24px}.amount-fields{grid-template-columns:minmax(0,1fr) 112px;gap:12px;display:grid}.amount-fields .field{margin-top:0}.amount-input{font-size:28px;font-weight:700}.amount-fields .text-input{height:62px}.field-help{color:var(--text-dim);margin:8px 0 14px;font-size:12px;line-height:1.55}.check-field{align-items:center;gap:10px;min-height:48px;font-size:13px;display:flex}.check-field input{width:20px;height:20px;accent-color:var(--accent)}.form-footer{bottom:calc(-22px - var(--safe-bottom));padding-bottom:calc(14px + var(--safe-bottom));margin-bottom:calc(-22px - var(--safe-bottom));background:var(--bg-2);border-top:1px solid var(--border);margin-top:18px;position:sticky}.form-footer .save-btn{overflow-wrap:anywhere;margin-top:12px}.inline-error{color:var(--neg);background:var(--surface);border:1px solid;border-radius:12px;margin:16px 0;padding:12px;font-size:14px}.inline-error p{color:var(--text);margin-bottom:0}.secondary-btn{border:1px solid var(--border-strong);background:var(--surface-2);min-height:44px;color:var(--text);border-radius:12px;justify-content:center;align-items:center;padding:11px 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.compact-btn{padding:8px 12px;font-size:12px}.danger-btn{color:var(--neg);width:100%;margin-top:12px}.load-state{text-align:center;color:var(--text-dim);padding:26px 12px;font-size:14px}.load-state .spinner{margin:0 auto 12px}.error-state p{margin-top:0}.pagination,.list-end{text-align:center;padding:22px 0}.list-end{color:var(--text-dim);font-size:12px}.transaction-group{padding-top:4px;padding-bottom:4px}.transaction-summary{text-align:center;padding:10px 0 16px}.transaction-summary p{margin-bottom:0}.detail-amount{overflow-wrap:anywhere;margin-top:8px;font-size:clamp(28px,8vw,38px);font-weight:800}.copy-id{text-align:left;width:100%}.detail-value{text-align:right;overflow-wrap:anywhere;max-width:65%}.ledger-details{border-top:1px solid var(--border);margin:20px 0;padding-top:10px}.ledger-details summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:600}.leg-row{gap:12px}.leg-mid{min-width:0}.leg-row .mono-num{flex-shrink:0}.manage-transaction{margin-top:20px}.manage-transaction h3{margin-bottom:12px;font-size:15px}.empty{color:var(--text-dim);padding:24px 12px}.recent-card{margin-top:18px}.toast{text-align:center;max-width:calc(100vw - 32px)}@media (width<=360px){.app{padding-left:calc(12px + var(--safe-left));padding-right:calc(12px + var(--safe-right))}.card{padding:12px}.txn{gap:8px}.txn-ic{width:32px;height:32px;font-size:17px}.acct{gap:8px;padding:12px}.acct-ic{width:32px;height:32px;font-size:18px}.tab{min-width:49px;font-size:10px}.legend-row .am{font-size:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.rate-options{border:1px solid var(--border);border-radius:12px;margin-top:18px;padding:12px}.rate-options summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:14px}
