:root{--bg: var(--tg-theme-bg-color, #f2f2f7);--text: var(--tg-theme-text-color, #0f0f13);--sub: var(--tg-theme-hint-color, #8e8e93);--card: var(--tg-theme-secondary-bg-color, #ffffff);--accent: var(--tg-theme-button-color, #457fef);--accent-text: var(--tg-theme-button-text-color, #ffffff);--danger: #ff453a;--ok: #30d158;--warn: #ff9f0a;--line: rgba(118, 118, 128, .14);--line-strong: rgba(118, 118, 128, .28);--radius-lg: 20px;--radius: 16px;--radius-sm: 12px;--shadow-card: 0 1px 2px rgba(16, 16, 24, .04), 0 4px 16px rgba(16, 16, 24, .05);--shadow-float: 0 8px 32px rgba(16, 16, 24, .18);--t-fast: .15s cubic-bezier(.32, .72, 0, 1);--t-med: .28s cubic-bezier(.32, .72, 0, 1);--font-body: "Onest", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, sans-serif;--font-display: "Russo One", "Onest", -apple-system, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: var(--tg-theme-bg-color, #0f0f13);--text: var(--tg-theme-text-color, #f5f5f7);--sub: var(--tg-theme-hint-color, #98989f);--card: var(--tg-theme-secondary-bg-color, #1c1c21);--line: rgba(120, 120, 135, .18);--line-strong: rgba(120, 120, 135, .34);--shadow-card: 0 1px 2px rgba(0, 0, 0, .25), 0 6px 20px rgba(0, 0, 0, .28)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(58% 42% at 12% -4%,color-mix(in srgb,var(--accent) 13%,transparent) 0%,transparent 70%),radial-gradient(50% 40% at 100% 100%,color-mix(in srgb,var(--ok) 8%,transparent) 0%,transparent 70%),radial-gradient(36% 30% at 92% 8%,color-mix(in srgb,var(--warn) 8%,transparent) 0%,transparent 65%)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}.num{font-variant-numeric:tabular-nums}.app{display:flex;flex-direction:column;height:100%;max-width:560px;margin:0 auto}.page{flex:1;overflow-y:auto;padding:10px 16px 110px;-webkit-overflow-scrolling:touch}.page>*{animation:rise .5s cubic-bezier(.22,1,.36,1) both}.page>*:nth-child(1){animation-delay:0s}.page>*:nth-child(2){animation-delay:.05s}.page>*:nth-child(3){animation-delay:.1s}.page>*:nth-child(4){animation-delay:.15s}.page>*:nth-child(5){animation-delay:.2s}.page>*:nth-child(n+6){animation-delay:.25s}@keyframes rise{0%{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}h1.page-title{font-family:var(--font-display);font-size:21px;font-weight:800;letter-spacing:-.6px;margin:10px 2px 18px;line-height:1.25}h2.section{font-size:12px;color:var(--sub);margin:22px 4px 8px;font-weight:700;text-transform:uppercase;letter-spacing:.6px}.card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-card),inset 0 1px #ffffff0a;border:1px solid var(--line)}.row{display:flex;align-items:center;gap:10px}.spacer{flex:1}.muted{color:var(--sub);font-size:13px}.tabs{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:560px;display:flex;background:color-mix(in srgb,var(--card) 78%,transparent);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);border-top:1px solid var(--line);padding:8px 6px calc(10px + env(safe-area-inset-bottom));z-index:20}.tabs button{position:relative;flex:1;border:0;background:none;color:var(--sub);font-size:10px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 0;cursor:pointer;transition:color var(--t-fast)}.tabs button .ico{font-size:21px;line-height:1;transition:transform var(--t-fast);filter:grayscale(.6) opacity(.75)}.tabs button.active{color:var(--accent)}.tabs button.active .ico{transform:translateY(-1px) scale(1.12);filter:none}.tabs button.active:after{content:"";position:absolute;top:-8px;width:18px;height:3px;border-radius:3px;background:var(--accent)}.btn{display:block;width:100%;border:0;border-radius:var(--radius-sm);padding:15px;font-size:16px;font-weight:700;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,white) 0%,var(--accent) 100%);color:var(--accent-text);cursor:pointer;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 35%,transparent);transition:transform var(--t-fast),opacity var(--t-fast),box-shadow var(--t-fast)}.btn:active{transform:scale(.975)}.btn:disabled{opacity:.4;box-shadow:none}.btn.ghost{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);box-shadow:none}.btn.small{padding:9px 14px;font-size:14px;width:auto;border-radius:10px}.btn.danger{background:linear-gradient(180deg,#ff5f55,var(--danger));color:#fff;box-shadow:0 6px 16px #ff453a59}.input,select.input{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:16px;padding:12px 14px;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}select.input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238e8e93' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:30px}.amount-display{font-family:var(--font-display);text-align:center;font-size:38px;font-weight:800;letter-spacing:-1px;padding:10px 0 4px;min-height:66px;font-variant-numeric:tabular-nums;line-height:1.2}.amount-display .cur{color:var(--sub);font-size:20px;font-weight:700;letter-spacing:0}.amount-display .placeholder{color:var(--line-strong)}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.keypad button{border:0;background:var(--bg);color:var(--text);font-size:23px;font-weight:600;padding:15px 0;border-radius:14px;cursor:pointer;box-shadow:0 1px 0 var(--line-strong),0 2px 6px #1010180f;transition:transform .08s,background .08s;font-variant-numeric:tabular-nums}.keypad button:active{transform:scale(.94);background:color-mix(in srgb,var(--accent) 14%,var(--bg))}.keypad button:nth-child(12){color:var(--sub);font-size:19px}.cat-grid{display:flex;flex-wrap:wrap;gap:8px}.cat-chip{border:1.5px solid var(--line-strong);background:var(--card);color:var(--text);border-radius:999px;padding:10px 15px;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:transform var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.cat-chip:active{transform:scale(.95)}.cat-chip.sel{border-color:currentColor;font-weight:700;box-shadow:0 4px 14px color-mix(in srgb,currentColor 30%,transparent)}.day-head{display:flex;justify-content:space-between;font-size:13px;color:var(--sub);font-weight:600;margin:18px 4px 8px}.expense{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid var(--line)}.expense:last-child{border-bottom:0}.expense .cat-ico,.cat-ico{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:19px;flex:none}.expense .sum{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.expense .del{border:0;background:none;color:var(--sub);font-size:15px;padding:8px 4px 8px 8px;cursor:pointer;opacity:.7}.seg{display:flex;background:var(--line);border-radius:12px;padding:3px;margin-bottom:14px;gap:2px}.seg button{flex:1;border:0;background:none;color:var(--sub);padding:9px 0;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--t-fast)}.seg button.active{background:var(--card);color:var(--text);box-shadow:0 2px 8px #1010181f}.kpi{display:flex;gap:12px;margin-bottom:12px}.kpi .card{flex:1;margin:0}.kpi .val{font-family:var(--font-display);font-size:17px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.kpi .delta{font-size:12px;font-weight:700}.kpi .delta.up{color:var(--danger)}.kpi .delta.down{color:var(--ok)}.cat-row{display:flex;align-items:center;gap:10px;padding:9px 2px}.cat-row .bar-wrap{flex:1;min-width:0}.cat-row .bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:4px}.cat-row .bar>i{display:block;height:100%;border-radius:3px;transition:width var(--t-med)}.cat-row .lbl{font-size:14px;font-weight:500}.cat-row .amt{font-size:14px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.budget .top{display:flex;justify-content:space-between;font-size:14px;font-weight:600;margin-bottom:8px;gap:8px}.budget .top>span:last-child{font-variant-numeric:tabular-nums}.progress{height:9px;border-radius:5px;background:var(--line);overflow:hidden}.progress>i{display:block;height:100%;border-radius:5px;transition:width var(--t-med);background-image:linear-gradient(90deg,#ffffff2e,#fff0)}.cat-manage-row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line)}.cat-manage-row:last-child{border-bottom:0}.toast{position:fixed;bottom:96px;left:50%;transform:translate(-50%);background:#14141ae6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;padding:12px 18px;border-radius:14px;font-size:14px;font-weight:500;z-index:50;max-width:92%;text-align:center;box-shadow:var(--shadow-float);animation:toast-in var(--t-med) both}.toast.err{background:color-mix(in srgb,var(--danger) 88%,black)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}.center-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px;text-align:center;max-width:440px;margin:0 auto;animation:page-in .4s both}.center-screen .big{font-size:56px;width:96px;height:96px;display:flex;align-items:center;justify-content:center;background:var(--card);border-radius:28px;box-shadow:var(--shadow-card)}.back{border:0;background:none;color:var(--accent);font-size:16px;font-weight:600;padding:8px 0;cursor:pointer;margin-bottom:2px}.empty{text-align:center;color:var(--sub);padding:36px 12px;font-size:14px}
