:root{--accent:#e8590c;--accent-press:#d24e08;--accent-soft:#e8590c1f;--accent-text:#fff;--rub:#2f6fed;--byn:#1f8a5b;--usd:#0f9d8f;--green:#1f8a5b;--red:#e0383e;--r-card:14px;--r-field:12px;--r-pill:999px;--ease:cubic-bezier(.22,.61,.36,1);--shadow-screen:0 30px 80px -30px #0f172373;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,system-ui,sans-serif}.theme-light{--bg:#fff;--secondary-bg:#efeff4;--section-bg:#fff;--section-sep:#e9e9ee;--text:#0f1115;--hint:#8a8f99;--subtitle:#6d7079;--field-bg:#f1f2f6;--field-border:#e3e4ea;--header-bg:#f7f7fa;--backdrop:#d9dbe2;--skeleton:#e8e9ee;--skeleton-hi:#f3f4f8;--page-bg:#c9ccd6}.theme-pink{--accent:#e8459b;--accent-press:#d13d8b;--accent-soft:#e8459b1f;--accent-text:#fff;--bg:#fff5f9;--secondary-bg:#fce8f0;--section-bg:#fff;--section-sep:#f3d4e0;--text:#1a0a12;--hint:#9e7a8a;--subtitle:#7d5a6a;--field-bg:#fdedf3;--field-border:#f0d0dd;--header-bg:#fdf0f5;--backdrop:#f0c8d8;--skeleton:#f5dce6;--skeleton-hi:#fae8f0;--page-bg:#f0c0d4;--green:#1f8a5b;--red:#e0383e;--rub:#e8459b;--byn:#1f8a5b;--usd:#7c3aed}.theme-pink .fab-add{box-shadow:0 10px 24px -6px #e8459b80}.theme-pink .conv-swap{box-shadow:0 4px 12px -2px #e8459b59}.theme-dark{--bg:#17212b;--secondary-bg:#0e1621;--section-bg:#232e3c;--section-sep:#2b3543;--text:#fff;--hint:#6d7f8f;--subtitle:#aab8c2;--field-bg:#18222d;--field-border:#2b3644;--header-bg:#1d2733;--backdrop:#0b121a;--skeleton:#243140;--skeleton-hi:#2c3a4b;--page-bg:#05090d;--accent-soft:#e8590c33}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0;padding:0}body{background:var(--page-bg,#c9ccd6);transition:background .35s var(--ease);overscroll-behavior:none;justify-content:center;align-items:center;display:flex}#root{display:contents}.tg-app{background:var(--bg);width:100%;max-width:412px;height:100dvh;max-height:920px;color:var(--text);box-shadow:var(--shadow-screen);transition:background .35s var(--ease), color .35s var(--ease);border-radius:0;flex-direction:column;display:flex;position:relative;overflow:hidden}.tg-app.in-telegram{max-width:100%;height:100dvh;max-height:100dvh;border-radius:0!important}@media (width>=460px) and (height>=720px){.tg-app:not(.in-telegram){border-radius:28px;height:min(900px,94dvh)}}@media (width>=768px){.tg-app:not(.in-telegram){max-width:480px}}@media (width>=1024px){.tg-app:not(.in-telegram){max-width:540px;max-height:96dvh}.cat-grid{grid-template-columns:repeat(5,1fr)}}.tg-header{background:var(--header-bg);border-bottom:1px solid var(--section-sep);z-index:30;height:52px;transition:background .35s var(--ease);flex:none;grid-template-columns:64px 1fr 64px;align-items:center;display:grid;position:relative}.tg-header__title{text-align:center;letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.tg-header__sub{color:var(--green);margin-top:1px;font-size:11px;font-weight:500;display:block}.tg-back{height:100%;color:var(--accent);cursor:pointer;opacity:0;transition:opacity .2s var(--ease), transform .2s var(--ease);pointer-events:none;background:0 0;border:none;align-items:center;gap:3px;padding-left:12px;font-size:16px;font-weight:500;display:inline-flex;transform:translate(-6px)}.tg-back.is-on{opacity:1;pointer-events:auto;transform:none}.tg-back svg{width:12px;height:20px}.tg-header__right{color:var(--hint);justify-content:flex-end;align-items:center;gap:14px;padding-right:14px;display:flex}.tg-header__dots,.tg-header__close{cursor:pointer;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.tg-body{-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--secondary-bg);transition:background .35s var(--ease);flex:auto;overflow:hidden auto}.tg-body::-webkit-scrollbar{width:0;height:0}.tg-body.is-plain{background:var(--bg)}.screen{flex-direction:column;min-height:100%;display:flex}.screen-pad{padding:14px 14px 28px}.screen-pad--main{padding-bottom:96px}.screen-pad--tab{padding-bottom:78px}@media (prefers-reduced-motion:no-preference){.screen-anim{animation:screenIn .26s var(--ease) both}@keyframes screenIn{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.screen-anim-back{animation:screenInBack .26s var(--ease) both}@keyframes screenInBack{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:none}}}.h-title{letter-spacing:-.02em;margin:4px 2px 14px;font-size:26px;font-weight:700}.h-eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--hint);margin:18px 4px 8px;font-size:12px;font-weight:600}.muted{color:var(--hint)}.subtle{color:var(--subtitle)}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.card{background:var(--section-bg);border-radius:var(--r-card);transition:background .35s var(--ease)}.group{background:var(--section-bg);border-radius:var(--r-card);overflow:hidden}.row{align-items:center;gap:12px;min-height:50px;padding:13px 14px;display:flex;position:relative}.row+.row:before{content:"";border-top:1px solid var(--section-sep);position:absolute;top:0;left:14px;right:0}.row__main{flex:auto;min-width:0}.row__label{font-size:16px}.row__value{color:var(--hint);font-size:16px}.row.tappable{cursor:pointer}.row.tappable:active{background:var(--field-bg)}.chev{color:var(--hint);flex:none}.conv-card{padding:6px 4px;position:relative}.conv-line{align-items:center;gap:10px;padding:16px 14px;display:flex}.conv-line+.conv-line{border-top:1px solid var(--section-sep)}.conv-line__field{flex:auto;min-width:0}.conv-line__cap{color:var(--hint);letter-spacing:.02em;margin-bottom:4px;font-size:12px;font-weight:600}.conv-input{width:100%;color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;padding:0;font-size:30px;font-weight:700}.conv-input::placeholder{color:var(--hint);opacity:.5}.conv-result{letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:clip;font-size:30px;font-weight:700;overflow:hidden}.conv-result.is-empty{color:var(--hint);opacity:.5}.cur-pill{border-radius:var(--r-pill);background:var(--field-bg);border:1px solid var(--field-border);height:40px;color:var(--text);cursor:pointer;flex:none;align-items:center;gap:7px;padding:0 12px 0 8px;font-size:15px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.cur-pill:active{background:var(--accent-soft);border-color:var(--accent)}.cur-flag{color:#fff;letter-spacing:-.04em;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:800;display:inline-flex}.cur-pill .chev{color:var(--hint)}.conv-swap-wrap{z-index:5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.conv-swap{border:3px solid var(--section-bg);background:var(--accent);width:42px;height:42px;color:var(--accent-text);cursor:pointer;box-shadow:0 4px 12px -2px var(--accent-soft);transition:transform .45s var(--ease), background .15s;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.conv-swap:active{background:var(--accent-press)}.conv-swap.spin{transform:rotate(180deg)}.rate-line{justify-content:space-between;align-items:center;padding:12px 16px 2px;font-size:14px;display:flex}.rate-line__pair{font-variant-numeric:tabular-nums;font-weight:600}.rate-line__date{color:var(--hint);font-size:13px}.rate-stale{color:var(--red)}.chips{flex-wrap:wrap;gap:8px;margin:14px 2px 0;display:flex}.chip{border-radius:var(--r-pill);border:1px solid var(--field-border);background:var(--section-bg);min-width:64px;height:38px;color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums;flex:1 1 0;font-size:14px;font-weight:600;transition:transform .1s,background .15s}.chip:active{background:var(--accent-soft);transform:scale(.94)}.btn{border-radius:var(--r-field);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;height:50px;padding:0 18px;font-size:16px;font-weight:600;transition:transform .1s,background .15s,opacity .15s;display:inline-flex}.btn:active{transform:scale(.985)}.btn--accent{background:var(--accent);color:var(--accent-text)}.btn--accent:active{background:var(--accent-press)}.btn--soft{background:var(--accent-soft);color:var(--accent)}.btn--ghost{background:var(--field-bg);color:var(--text)}.btn--danger{background:var(--field-bg);color:var(--red)}.btn[disabled]{opacity:.45;pointer-events:none}.btn-row{gap:10px;display:flex}.link-btn{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0;font-size:16px;font-weight:600}.mainbtn{padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--section-sep);z-index:40;transition:transform .3s var(--ease);position:absolute;bottom:0;left:0;right:0;transform:translateY(120%)}.mainbtn.is-on{transform:none}.mainbtn__inner{background:var(--accent);height:50px;color:var(--accent-text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;font-size:16px;font-weight:600;transition:background .15s,opacity .2s;display:flex}.mainbtn__inner:active{background:var(--accent-press)}.mainbtn__inner.is-disabled{opacity:.5;pointer-events:none}.mainbtn__inner.is-loading{pointer-events:none}.mainbtn .spinner{width:20px;height:20px}.tabbar{height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--header-bg);border-top:1px solid var(--section-sep);z-index:35;transition:background .35s var(--ease), transform .3s var(--ease);grid-template-columns:repeat(4,1fr);display:grid;position:absolute;bottom:0;left:0;right:0}.tabbar.is-hidden{transform:translateY(120%)}.tab{cursor:pointer;color:var(--hint);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:600;transition:color .15s;display:flex}.tab svg{width:24px;height:24px}.tab.is-active{color:var(--accent)}.sheet-overlay{z-index:60;transition:background .28s var(--ease);background:#080c1200;align-items:flex-end;display:flex;position:absolute;inset:0}.sheet-overlay.is-on{background:#080c1280}.sheet{background:var(--bg);width:100%;padding:8px 16px calc(20px + env(safe-area-inset-bottom));transition:transform .3s var(--ease);scrollbar-width:none;border-radius:18px 18px 0 0;max-height:92%;overflow-y:auto;transform:translateY(100%)}.sheet::-webkit-scrollbar{display:none}.sheet-overlay.is-on .sheet{transform:none}.sheet__grab{background:var(--field-border);border-radius:3px;width:38px;height:5px;margin:6px auto 10px}.sheet__title{letter-spacing:-.01em;text-align:center;margin:2px 2px 14px;font-size:19px;font-weight:700}.pick-row{cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:9px 12px;display:flex}.pick-row:active{background:var(--field-bg)}.pick-row.is-sel{background:var(--accent-soft)}.pick-row__name{flex:auto}.pick-row__code{font-size:14px;font-weight:700}.pick-row__full{color:var(--hint);font-size:12px}.pick-check{color:var(--accent)}.field{margin-bottom:14px}.field__label{color:var(--hint);letter-spacing:.01em;margin:0 4px 7px;font-size:13px;font-weight:600}.input{border-radius:var(--r-field);border:1px solid var(--field-border);background:var(--field-bg);width:100%;height:50px;color:var(--text);outline:none;padding:0 14px;font-size:17px;transition:border-color .15s,background .15s}.input:focus{border-color:var(--accent);background:var(--bg)}.input::placeholder{color:var(--hint);opacity:.7}.input.amount{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.input-err{border-color:var(--red)!important}.field__hint{color:var(--hint);margin:6px 4px 0;font-size:12px}.field__hint.err{color:var(--red)}.amount-field{position:relative}.amount-field .sym{color:var(--hint);pointer-events:none;font-size:17px;font-weight:600;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.seg{background:var(--field-bg);border-radius:12px;grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;padding:3px;display:grid}.seg__opt{cursor:pointer;height:40px;color:var(--subtitle);transition:background .18s var(--ease), color .18s, box-shadow .18s;background:0 0;border:none;border-radius:9px;justify-content:center;align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.seg__opt.is-on{background:var(--section-bg);color:var(--text);box-shadow:0 1px 4px #0000001f}.theme-dark .seg__opt.is-on{background:var(--section-bg)}.emoji-grid{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.emoji-cell{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;font-size:22px;transition:background .12s,transform .1s;display:flex}.emoji-cell:active{transform:scale(.9)}.emoji-cell.is-sel{background:var(--accent-soft)}.dot-row{flex-wrap:wrap;gap:12px;padding:2px;display:flex}.dot{cursor:pointer;border:3px solid #0000;border-radius:50%;width:34px;height:34px;transition:transform .1s;position:relative}.dot:active{transform:scale(.9)}.dot.is-sel{border-color:var(--bg);box-shadow:0 0 0 2px}.goal-card{background:var(--section-bg);border-radius:var(--r-card);cursor:pointer;transition:transform .12s var(--ease), background .35s var(--ease);margin-bottom:12px;padding:15px;position:relative;overflow:hidden}.goal-card.is-done{opacity:.92}.goal-card__top{align-items:center;gap:12px;margin-bottom:13px;display:flex}.goal-emoji{border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:flex}.goal-card__name{letter-spacing:-.01em;font-size:16px;font-weight:700}.goal-card__meta{color:var(--hint);flex-wrap:wrap;gap:8px;margin-top:2px;font-size:13px;display:flex}.goal-pct{font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-left:auto;font-size:20px;font-weight:800}.goal-card__amt{justify-content:space-between;align-items:baseline;margin-bottom:9px;display:flex}.goal-card__cur{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.goal-card__tgt{color:var(--hint);font-variant-numeric:tabular-nums;font-size:14px}.badge-done{color:var(--green);align-items:center;gap:4px;font-size:12px;font-weight:700;display:inline-flex}.pbar{background:var(--field-bg);border-radius:6px;height:9px;overflow:hidden}.pbar__fill{background:var(--accent);height:100%;transition:width .6s var(--ease);border-radius:6px;position:relative}.pbar--lg{border-radius:8px;height:12px}.detail-hero{text-align:center;background:var(--section-bg);border-radius:var(--r-card);padding:22px 16px 20px}.detail-emoji{border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:12px;font-size:34px;display:inline-flex}.detail-pct{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:800;line-height:1}.detail-cur{font-variant-numeric:tabular-nums;margin-top:10px;font-size:17px}.detail-cur b{font-weight:700}.detail-rest{color:var(--hint);margin-top:4px;font-size:14px}.pace-hint{background:var(--accent-soft);color:var(--accent);text-align:left;border-radius:11px;align-items:center;gap:8px;margin-top:14px;padding:11px 13px;font-size:13.5px;font-weight:600;display:flex}.tx{align-items:center;gap:12px;padding:12px 14px;display:flex}.tx+.tx:before{content:"";position:absolute}.tx-list .tx{position:relative}.tx-list .tx+.tx:before{content:"";border-top:1px solid var(--section-sep);position:absolute;top:0;left:50px;right:0}.tx-ic{border-radius:50%;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.tx-ic.dep{color:var(--green);background:#1f8a5b24}.tx-ic.wdr{color:var(--red);background:#e0383e24}.tx-main{flex:auto;min-width:0}.tx-title{font-size:15px;font-weight:600}.tx-sub{color:var(--hint);margin-top:1px;font-size:12.5px}.tx-amt{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px;font-weight:700}.tx-amt.dep{color:var(--green)}.tx-amt.wdr{color:var(--red)}.tx-conv{color:var(--hint);text-align:right;font-variant-numeric:tabular-nums;margin-top:1px;font-size:12px}.conv-preview{background:var(--accent-soft);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:13px 14px;display:flex}.conv-preview__lbl{color:var(--accent);font-size:13px;font-weight:600}.conv-preview__val{color:var(--accent);font-variant-numeric:tabular-nums;font-size:17px;font-weight:800}.conv-preview__rate{color:var(--accent);opacity:.8;font-size:12px}.empty{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:6px;padding:40px 30px;display:flex}.empty__art{background:var(--accent-soft);width:96px;height:96px;color:var(--accent);border-radius:28px;justify-content:center;align-items:center;margin-bottom:14px;font-size:44px;display:flex}.empty__title{font-size:19px;font-weight:700}.empty__text{color:var(--hint);max-width:240px;margin-bottom:16px;font-size:14px;line-height:1.45}.sk{background:var(--skeleton);border-radius:8px;position:relative;overflow:hidden}.sk:after{content:"";background:linear-gradient(90deg, transparent, var(--skeleton-hi), transparent);animation:1.3s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.toast-wrap{z-index:70;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:84px;left:0;right:0}.toast{color:#fff;max-width:86%;animation:toastIn .26s var(--ease) both;background:#141c26f0;border-radius:12px;align-items:center;gap:8px;padding:11px 16px;font-size:14px;font-weight:500;display:flex;box-shadow:0 8px 24px -6px #0006}.toast.err{background:#a82428f5}.toast.ok{background:#166e46f5}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.celebrate{z-index:80;transition:background .3s var(--ease);background:#080c1200;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.celebrate.is-on{background:#080c128c}.celebrate canvas{width:100%;height:100%;position:absolute;inset:0}.celebrate__card{z-index:2;background:var(--bg);color:var(--text);text-align:center;opacity:0;width:84%;max-width:320px;transition:transform .35s var(--ease), opacity .35s var(--ease);border-radius:20px;padding:28px 24px 22px;position:relative;transform:scale(.8)}.celebrate.is-on .celebrate__card{opacity:1;transform:none}.celebrate__emoji{font-size:56px}.celebrate__title{letter-spacing:-.01em;margin:8px 0 6px;font-size:22px;font-weight:800}.celebrate__text{color:var(--hint);margin-bottom:18px;font-size:14px;line-height:1.4}.spinner{border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.confirm-card{background:var(--bg);opacity:0;width:84%;max-width:300px;transition:transform .25s var(--ease), opacity .25s var(--ease);border-radius:16px;overflow:hidden;transform:scale(.85)}.celebrate.is-on .confirm-card,.sheet-overlay.is-on .confirm-card{opacity:1;transform:none}.confirm-card__body{text-align:center;padding:20px 18px 16px}.confirm-card__title{margin-bottom:6px;font-size:17px;font-weight:700}.confirm-card__text{color:var(--hint);font-size:13.5px;line-height:1.4}.confirm-card__acts{border-top:1px solid var(--section-sep);grid-template-columns:1fr 1fr;display:grid}.confirm-btn{cursor:pointer;height:48px;color:var(--accent);background:0 0;border:none;font-size:16px}.confirm-btn+.confirm-btn{border-left:1px solid var(--section-sep)}.confirm-btn.danger{color:var(--red);font-weight:700}.confirm-btn.cancel{font-weight:400}.meta-pill{background:var(--field-bg);color:var(--subtitle);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.meta-pill.warn{color:var(--red);background:#e0383e1f}.fab{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.period-bar{align-items:center;gap:10px;margin:2px 2px 14px;display:flex}.period-nav{background:var(--section-bg);width:34px;height:34px;color:var(--text);cursor:pointer;border:none;border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.period-nav:disabled{opacity:.35;pointer-events:none}.period-label{text-align:center;letter-spacing:-.01em;text-transform:capitalize;flex:auto;font-size:15px;font-weight:700}.period-label small{color:var(--hint);text-transform:none;margin-top:1px;font-size:11px;font-weight:500;display:block}.seg--period{margin:0 2px 14px}.bal-card{padding:18px 16px 16px}.bal-row{justify-content:space-between;align-items:flex-end;display:flex}.bal-cap{color:var(--hint);margin-bottom:4px;font-size:12.5px;font-weight:600}.bal-amt{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;line-height:1}.bal-amt.pos{color:var(--green)}.bal-amt.neg{color:var(--red)}.cmp{border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:12.5px;font-weight:700;display:inline-flex}.cmp.up{color:var(--red);background:#e0383e1f}.cmp.down{color:var(--green);background:#1f8a5b24}.cmp.flat{background:var(--field-bg);color:var(--hint)}.bal-split{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.bal-chip{background:var(--field-bg);border-radius:12px;padding:11px 12px}.bal-chip__cap{color:var(--hint);align-items:center;gap:5px;margin-bottom:3px;font-size:12px;display:flex}.bal-chip__val{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.bal-chip__val.inc{color:var(--green)}.bal-chip__val.exp{color:var(--red)}.dot-mark{border-radius:50%;width:8px;height:8px;display:inline-block}.donut-wrap{flex-direction:column;align-items:center;padding:8px 0 4px;display:flex}.donut-svg{transform:rotate(-90deg)}.donut-center{text-align:center}.donut-center .dc-cap{color:var(--hint);font-size:11.5px;font-weight:600}.donut-center .dc-val{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:19px;font-weight:800}.cat-line{align-items:center;gap:11px;padding:11px 4px;display:flex}.cat-ic{border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:19px;display:flex}.cat-line__main{flex:auto;min-width:0}.cat-line__name{justify-content:space-between;gap:8px;font-size:15px;font-weight:600;display:flex}.cat-line__amt{font-variant-numeric:tabular-nums;font-weight:700}.cat-line__bar{background:var(--field-bg);border-radius:4px;height:6px;margin-top:6px;overflow:hidden}.cat-line__fill{height:100%;transition:width .5s var(--ease);border-radius:4px}.cat-line__pct{color:var(--hint);font-variant-numeric:tabular-nums;margin-top:3px;font-size:12px}.dyn{align-items:flex-end;gap:4px;height:130px;padding:6px 2px 0;display:flex}.dyn-col{cursor:default;flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:5px;height:100%;display:flex}.dyn-bar-wrap{flex:auto;justify-content:center;align-items:flex-end;width:100%;display:flex}.dyn-bar{background:var(--accent);width:72%;max-width:22px;min-height:3px;transition:height .5s var(--ease);border-radius:5px 5px 3px 3px}.dyn-bar.muted{background:var(--field-border)}.dyn-lbl{color:var(--hint);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:9.5px}.dyn-val{color:var(--hint);font-variant-numeric:tabular-nums;height:11px;font-size:9px}.op-day-head{justify-content:space-between;align-items:baseline;margin:16px 6px 7px;display:flex}.op-day-date{color:var(--subtitle);text-transform:capitalize;font-size:13px;font-weight:700}.op-day-sum{color:var(--hint);font-variant-numeric:tabular-nums;font-size:12.5px}.op{cursor:pointer;align-items:center;gap:12px;padding:11px 14px;display:flex}.op:active{background:var(--field-bg)}.op-ic{border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.op-main{flex:auto;min-width:0}.op-name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.op-sub{color:var(--hint);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:12.5px;overflow:hidden}.op-amt{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px;font-weight:700}.op-amt.exp{color:var(--text)}.op-amt.inc{color:var(--green)}.op-amt-sub{color:var(--hint);text-align:right;font-variant-numeric:tabular-nums;font-size:11.5px}.fab-add{right:16px;bottom:calc(78px + env(safe-area-inset-bottom));background:var(--accent);color:#fff;cursor:pointer;z-index:38;width:56px;height:56px;transition:transform .15s var(--ease);border:none;border-radius:18px;justify-content:center;align-items:center;display:inline-flex;position:absolute;box-shadow:0 10px 24px -6px #e8590c99}.fab-add:active{transform:scale(.9)}.add-screen,.add-screen2{background:var(--bg);flex-direction:column;height:100%;display:flex}.add-scroll{scrollbar-width:none;flex:auto;overflow-y:auto}.add-scroll::-webkit-scrollbar{display:none}.add-footer{padding:10px 14px calc(12px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--section-sep);flex:none}.amt-field{align-items:center;gap:8px;padding:10px 4px 12px;display:flex}.amt-field__sign{letter-spacing:-.03em;flex:none;font-size:40px;font-weight:800}.amt-field.exp .amt-field__sign{color:var(--text)}.amt-field.inc .amt-field__sign{color:var(--green)}.amt-field__input{letter-spacing:-.03em;font-variant-numeric:tabular-nums;min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:auto;padding:0;font-size:40px;font-weight:800}.amt-field.inc .amt-field__input{color:var(--green)}.amt-field__input::placeholder{color:var(--hint);opacity:.45}.cat-grid{grid-template-columns:repeat(4,1fr);gap:7px;margin-top:4px;display:grid}.add-top{padding:8px 16px 0}.add-type-seg{margin-bottom:12px}.seg__opt.exp.is-on{color:var(--red)}.seg__opt.inc.is-on{color:var(--green)}.add-amount{justify-content:center;align-items:center;gap:8px;min-height:64px;padding:10px 0 6px;display:flex}.add-amount__num{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:800;line-height:1}.add-amount__num.exp{color:var(--text)}.add-amount__num.inc{color:var(--green)}.add-amount__num.zero{color:var(--hint);opacity:.5}.add-cur-pill{background:var(--field-bg);border:1px solid var(--field-border);height:34px;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:0 12px;font-size:15px;font-weight:700;display:inline-flex}.add-cur-conv{text-align:center;color:var(--hint);font-variant-numeric:tabular-nums;margin-bottom:6px;font-size:12.5px}.add-cats-label{color:var(--hint);letter-spacing:.03em;text-transform:uppercase;margin:6px 16px 8px;font-size:12px;font-weight:600}.add-cats{scrollbar-width:none;flex:auto;grid-template-columns:repeat(4,1fr);align-content:start;gap:6px;padding:0 12px 10px;display:grid;overflow-y:auto}.add-cats::-webkit-scrollbar{display:none}.cat-pick{cursor:pointer;background:var(--section-bg);border:2px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;transition:transform .1s,border-color .15s;display:flex}.cat-pick:active{transform:scale(.94)}.cat-pick.is-sel{border-color:currentColor}.cat-pick__ic{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;font-size:21px;display:flex}.cat-pick__name{color:var(--text);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:600;line-height:1.15;overflow:hidden}.cat-pick--add .cat-pick__ic{background:var(--field-bg);color:var(--accent);border:1.5px dashed var(--field-border)}.cat-pick__edit{background:var(--field-bg);border:1px solid var(--field-border);width:22px;height:22px;color:var(--hint);cursor:pointer;opacity:0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex;position:absolute;top:4px;right:4px}.cat-pick:hover .cat-pick__edit,.cat-pick.is-sel .cat-pick__edit{opacity:1}@media (hover:none){.cat-pick__edit{opacity:.7}}.keypad{background:var(--section-sep);border-top:1px solid var(--section-sep);flex:none;grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.keypad__row{display:contents}.key{background:var(--bg);cursor:pointer;height:54px;color:var(--text);font-variant-numeric:tabular-nums;border:none;justify-content:center;align-items:center;font-size:23px;font-weight:600;transition:background 80ms;display:flex}.key:active{background:var(--field-bg)}.key.accent{color:var(--accent)}.add-meta{gap:8px;padding:8px 16px 0;display:flex}.add-meta-row{background:var(--field-bg);color:var(--subtitle);cursor:pointer;border-radius:11px;flex:1 1 0;align-items:center;gap:7px;min-width:0;padding:9px 12px;font-size:13px;display:flex}.add-meta-row .lbl{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.add-note-input{width:100%;color:var(--text);background:0 0;border:none;outline:none;font-size:13px}.cat-row{align-items:center;gap:12px;padding:11px 14px;display:flex}.cat-row__ic{border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:19px;display:flex}.cat-row__name{flex:auto;font-size:15px;font-weight:600}.cat-row__act{color:var(--hint);cursor:pointer;padding:4px}.empty-sm{text-align:center;color:var(--hint);padding:30px 24px;font-size:14px;line-height:1.5}.empty-sm .empty__art{border-radius:22px;width:72px;height:72px;margin:0 auto 12px;font-size:32px}.sec-head{justify-content:space-between;align-items:center;margin:18px 4px 8px;display:flex}.sec-head__title{letter-spacing:.04em;text-transform:uppercase;color:var(--hint);font-size:12px;font-weight:600}.sec-head__act{color:var(--accent);cursor:pointer;font-size:13px;font-weight:600}.cur-filter{flex-wrap:wrap;gap:7px;margin:0 2px 14px;display:flex}.cur-chip{border:1px solid var(--field-border);background:var(--section-bg);height:34px;color:var(--subtitle);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:0 13px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.cur-chip.is-on{background:var(--accent);color:#fff;border-color:var(--accent)}.search-bar{align-items:center;gap:8px;display:flex}.search-field{background:var(--field-bg);border:1px solid var(--field-border);height:40px;color:var(--hint);border-radius:12px;flex:auto;align-items:center;gap:8px;padding:0 12px;display:flex}.search-input{color:var(--text);background:0 0;border:none;outline:none;flex:auto;font-size:14px}.search-input::placeholder{color:var(--hint);opacity:.7}.search-clear{color:var(--hint);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.filter-toggle{background:var(--field-bg);border:1px solid var(--field-border);width:40px;height:40px;color:var(--hint);cursor:pointer;border-radius:12px;flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.filter-toggle.is-on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.rec-toggle{background:var(--field-bg);border:1px solid var(--field-border);cursor:pointer;border-radius:14px;flex:none;width:46px;height:28px;padding:2px;transition:background .2s,border-color .2s;position:relative}.rec-toggle.is-on{background:var(--accent);border-color:var(--accent)}.rec-toggle__dot{width:22px;height:22px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;display:block;box-shadow:0 1px 3px #0003}.rec-toggle.is-on .rec-toggle__dot{transform:translate(18px)}@media (prefers-reduced-motion:no-preference){.anim-item{opacity:0;animation:fadeSlideUp .35s var(--ease) both;animation-delay:calc(var(--i,0) * 50ms);transform:translateY(12px)}@keyframes fadeSlideUp{to{opacity:1;transform:none}}.anim-card{opacity:0;animation:cardUp .4s var(--ease) both;animation-delay:calc(var(--i,0) * 70ms);transform:translateY(18px)scale(.97)}@keyframes cardUp{to{opacity:1;transform:none}}.fab-add{animation:fabIn .5s var(--ease) .15s both}@keyframes fabIn{0%{opacity:0;transform:scale(.3)rotate(-45deg)}60%{transform:scale(1.08)rotate(0)}to{opacity:1;transform:none}}.empty__art{animation:artIn .5s var(--ease) .1s both}@keyframes artIn{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.06)}to{opacity:1;transform:none}}.tab.is-active svg{animation:tabPop .3s var(--ease)}@keyframes tabPop{0%{transform:scale(.8)}50%{transform:scale(1.15)}to{transform:scale(1)}}.bal-card{animation:cardUp .45s var(--ease) 50ms both}.donut-svg{animation:donutIn .7s var(--ease) .2s both}@keyframes donutIn{0%{opacity:0;transform:rotate(-90deg)scale(.7)}to{opacity:1;transform:rotate(-90deg)scale(1)}}.dyn-bar{animation:barGrow .5s var(--ease) both;animation-delay:calc(var(--i,0) * 30ms + .2s);transform-origin:bottom}@keyframes barGrow{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.cat-line__fill{animation:barSlide .6s var(--ease) both;animation-delay:calc(var(--i,0) * 60ms + .3s)}@keyframes barSlide{0%{width:0!important}}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)scale(.92)}60%{transform:translateY(-3px)scale(1.02)}to{opacity:1;transform:none}}.sheet-overlay.is-on .sheet{animation:sheetUp .35s var(--ease) both}@keyframes sheetUp{0%{transform:translateY(100%)}70%{transform:translateY(-2%)}to{transform:none}}.celebrate.is-on .celebrate__card{animation:celebrateIn .45s var(--ease) both}@keyframes celebrateIn{0%{opacity:0;transform:scale(.5)}60%{transform:scale(1.05)}to{opacity:1;transform:none}}.celebrate.is-on .confirm-card,.sheet-overlay.is-on .confirm-card{animation:confirmIn .3s var(--ease) both}@keyframes confirmIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}.goal-pct{animation:fadeSlideUp .4s var(--ease) .15s both}.pbar__fill{animation:pbarFill .8s var(--ease) .1s both}@keyframes pbarFill{0%{width:0!important}}.tg-header__title{animation:titleFade .25s var(--ease) both}@keyframes titleFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes screenIn{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes screenInBack{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}[data-dir=back] .screen-anim{animation-name:screenInBack}}.goal-card{transition:transform .15s var(--ease), box-shadow .15s, background .35s var(--ease)}.goal-card:active{transform:scale(.975)}.cur-chip{transition:background .15s,color .15s,border-color .15s,transform .1s}.cur-chip:active{transform:scale(.94)}.seg__opt:active{transform:scale(.96)}.period-nav{transition:background .15s,transform .1s}.period-nav:active{transform:scale(.88)}.fab:active{transform:scale(.85)}.filter-toggle:active{transform:scale(.9)}.mainbtn__inner:active:not(.is-disabled){transform:scale(.985)}.link-btn{transition:opacity .15s}.link-btn:active{opacity:.6}.stat-row{scrollbar-width:none;gap:8px;margin:12px 0 6px;display:flex;overflow-x:auto}.stat-row::-webkit-scrollbar{display:none}.stat-chip{background:var(--section-bg);min-width:0;transition:background .35s var(--ease);border-radius:12px;flex:1 1 0;padding:10px 12px}.stat-chip__cap{color:var(--hint);white-space:nowrap;margin-bottom:3px;font-size:11px;font-weight:600}.stat-chip__val{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.remind-row{align-items:center;gap:12px;display:flex}.remind-time{background:var(--field-bg);border:1px solid var(--field-border);height:38px;color:var(--text);font-variant-numeric:tabular-nums;border-radius:10px;outline:none;padding:0 10px;font-size:15px;font-weight:600}.remind-time:focus{border-color:var(--accent)}
