:root{--bg: var(--tg-theme-bg-color, #ffffff);--text: var(--tg-theme-text-color, #000000);--hint: var(--tg-theme-hint-color, #999999);--link: var(--tg-theme-link-color, #2481cc);--btn: var(--tg-theme-button-color, #2481cc);--btn-text: var(--tg-theme-button-text-color, #ffffff);--secondary-bg: var(--tg-theme-secondary-bg-color, #f0f0f0);--card-bg: var(--tg-theme-secondary-bg-color, #f5f5f5);--danger: #e74c3c;--success: #27ae60;--income-color: #36A2EB;--expense-color: #FF6384}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none}.app{min-height:100vh;padding-bottom:70px}.app-content{padding:16px;max-width:480px;margin:0 auto}.page-title{font-size:22px;font-weight:700;margin-bottom:16px}.card-title{font-size:14px;font-weight:600;color:var(--hint);margin-bottom:8px}.card{background:var(--card-bg);border-radius:12px;padding:16px;margin-bottom:12px}.balance-card{text-align:center;padding:24px 16px}.balance-label{font-size:14px;color:var(--hint);margin-bottom:4px}.balance-amount{font-size:32px;font-weight:700}.balance-meta{font-size:13px;color:var(--hint);margin-top:8px}.today-card .today-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600}.progress-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--success);border-radius:4px;transition:width .3s ease}.progress-fill.over{background:var(--danger)}.today-footer{font-size:13px;color:var(--hint);margin-top:6px}.forecast-card{text-align:center}.forecast-title{font-size:14px;color:var(--hint);margin-bottom:4px}.forecast-text{font-size:16px;font-weight:600}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.btn-primary{display:block;width:100%;padding:14px;border:none;border-radius:10px;background:var(--btn);color:var(--btn-text);font-size:16px;font-weight:600;cursor:pointer;margin-top:12px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary:active:not(:disabled){opacity:.8}.add-btn{margin-top:16px}.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;height:60px;background:var(--card-bg);border-top:1px solid var(--secondary-bg);padding-bottom:env(safe-area-inset-bottom,0);z-index:100}.tab-item{display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:24px;text-decoration:none;border-radius:12px;transition:background .2s}.tab-item.active{background:var(--bg)}.filter-chips,.category-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.chip{padding:6px 14px;border:none;border-radius:16px;background:var(--bg);color:var(--text);font-size:13px;cursor:pointer;transition:all .2s}.chip.active{background:var(--btn);color:var(--btn-text)}.day-group{margin-bottom:16px}.day-header{display:flex;justify-content:space-between;font-size:14px;font-weight:600;color:var(--hint);margin-bottom:8px;padding:0 4px}.day-total{color:var(--danger)}.transaction-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--card-bg);border-radius:10px;margin-bottom:4px;cursor:pointer}.transaction-item:active{opacity:.7}.tx-left{flex:1;min-width:0}.tx-category{font-size:14px;font-weight:600}.tx-description{font-size:12px;color:var(--hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tx-amount{font-size:15px;font-weight:700;margin-left:12px;white-space:nowrap}.tx-amount.expense{color:var(--danger)}.tx-amount.income{color:var(--success)}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;color:var(--hint);margin-bottom:6px}.form-group input{width:100%;padding:12px;border:1px solid var(--secondary-bg);border-radius:10px;background:var(--bg);color:var(--text);font-size:16px;outline:none}.form-group input:focus{border-color:var(--btn)}.type-toggle{display:flex;gap:8px;margin-bottom:16px}.toggle-btn{flex:1;padding:10px;border:2px solid var(--secondary-bg);border-radius:10px;background:transparent;color:var(--text);font-size:14px;font-weight:600;cursor:pointer}.toggle-btn.active.expense{border-color:var(--danger);color:var(--danger);background:#e74c3c1a}.toggle-btn.active.income{border-color:var(--success);color:var(--success);background:#27ae601a}.info-card{text-align:center}.info-value{font-size:16px;font-weight:600;color:var(--hint)}.loading,.empty{text-align:center;padding:40px 20px;color:var(--hint);font-size:15px}
