:root{--bg:var(--tg-theme-bg-color,#17212b);--card:var(--tg-theme-secondary-bg-color,#232e3c);--text:var(--tg-theme-text-color,#f5f5f5);--hint:var(--tg-theme-hint-color,#8fa0b3);--link:var(--tg-theme-link-color,#6ab3f3);--btn:var(--tg-theme-button-color,#3390ec);--btn-text:var(--tg-theme-button-text-color,#fff);--danger:#e5484d;--radius:14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.4;padding-bottom:88px}button,input,select,textarea{font:inherit;color:inherit}.wrap{max-width:640px;margin:0 auto;padding:12px 12px 0}.topbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.topbar h1{font-size:17px;margin:0;flex:1 1;font-weight:600}.month-select{background:var(--card);border:none;border-radius:10px;padding:7px 10px;color:var(--text)}.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -12px 14px;padding:0 12px 2px}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;background:var(--card);border:none;border-radius:999px;padding:8px 13px;color:var(--hint);white-space:nowrap;cursor:pointer}.tab.active{background:var(--btn);color:var(--btn-text)}.tab .count{opacity:.65;margin-left:5px;font-size:13px}.total{background:var(--card);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.total .label{color:var(--hint);font-size:13px}.total .sum{font-size:26px;font-weight:600;margin-top:2px}.total .sum+.sum{font-size:17px;opacity:.8}.cat-row{display:flex;align-items:baseline;gap:8px;padding:7px 0 3px}.cat-row .name{flex:1 1;text-transform:capitalize}.cat-row .cnt{color:var(--hint);font-size:12px}.cat-row .val{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bar{height:4px;background:hsla(0,0%,50%,.25);overflow:hidden}.bar,.bar>span{border-radius:4px}.bar>span{display:block;height:100%;background:var(--btn)}.group-title{color:var(--hint);font-size:13px;margin:16px 2px 6px;text-transform:uppercase;letter-spacing:.4px}.card{background:var(--card);border-radius:var(--radius);padding:12px 14px;margin-bottom:8px;cursor:pointer}.card.done{opacity:.5}.card .head{display:flex;align-items:baseline;gap:8px}.card .title{flex:1 1;word-break:break-word}.card .amount{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.card .meta{color:var(--hint);font-size:12.5px;margin-top:5px;display:flex;gap:8px;flex-wrap:wrap}.tag{background:hsla(0,0%,50%,.22);border-radius:6px;padding:1px 7px}.tag.cat{text-transform:capitalize}.tag.warn{background:rgba(229,72,77,.18);color:var(--danger);font-weight:500}.empty{color:var(--hint);text-align:center;padding:44px 16px}.editor{border-top:1px solid hsla(0,0%,50%,.2);margin-top:11px;padding-top:11px;display:grid;grid-gap:9px;gap:9px}.editor label{color:var(--hint);font-size:12.5px;display:block;margin-bottom:3px}.editor input,.editor select,.editor textarea{width:100%;background:var(--bg);border:1px solid hsla(0,0%,50%,.25);border-radius:10px;padding:9px 11px}.editor textarea{resize:vertical;min-height:62px}.row2{display:grid;grid-template-columns:1fr 96px;grid-gap:8px;gap:8px}.row2.even{grid-template-columns:1fr 1fr}.actions{display:flex;gap:8px;margin-top:3px}.btn{flex:1 1;background:var(--btn);color:var(--btn-text);border:none;border-radius:10px;padding:11px;font-weight:500;cursor:pointer}.btn.ghost{background:hsla(0,0%,50%,.2);color:var(--text)}.btn.danger,.btn.ghost{flex:0 0 auto;padding:11px 16px}.btn.danger{background:rgba(229,72,77,.16);color:var(--danger);font-weight:500}.btn:disabled{opacity:.55}.composer{position:fixed;left:0;right:0;bottom:0;background:var(--bg);border-top:1px solid hsla(0,0%,50%,.18);padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.composer .inner{max-width:640px;margin:0 auto;display:flex;gap:8px}.composer input{flex:1 1;background:var(--card);border:none;border-radius:12px;padding:11px 13px}.composer button{background:var(--btn);color:var(--btn-text);border:none;border-radius:12px;padding:0 17px;font-weight:500;cursor:pointer}.spinner{color:var(--hint);text-align:center;padding:56px 16px}