:root{--bg: #f3f4f6;--surface: #ffffff;--subtle: #f1f2f5;--border: #e6e8ec;--text: #14161c;--muted: #5e6472;--link: #1f5fd6;--accent: #14161c;--accent-text: #ffffff;--income: #1f5fd6;--expense: #c2410c;--danger: #b42318;--info-bg: #eef2fb;--info-text: #1f4fb0;--warn-bg: #fdf1e7;--warn-text: #9a3412;--chart-expense: #e8935a;--tg-button: #2481cc;--tg-button-text: #ffffff;--radius: 16px;color-scheme:light}:root[data-theme=dark]{--bg: #0e1621;--surface: #17212b;--subtle: #232e3c;--border: #26323f;--text: #f5f6f8;--muted: #8b9aa8;--link: #7db2ff;--accent: #f5f6f8;--accent-text: #0e1621;--income: #7db2ff;--expense: #f6a15e;--danger: #ff7a6b;--info-bg: #1e3150;--info-text: #9cc2ff;--warn-bg: #3a2616;--warn-text: #f6b27a;--chart-expense: #c9743f;--tg-button: #2f6ea5;color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.money-income{color:var(--income)}.money-expense{color:var(--text)}.muted{color:var(--muted)}.shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;flex:none;width:248px;height:100vh;overflow:hidden;padding:24px 16px 16px;box-sizing:border-box;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:24px}.brand{display:flex;align-items:center;gap:12px;padding:0 8px}.brand-mark{width:36px;height:36px;border-radius:10px;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-title{padding:0 12px 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.nav-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--text);font-size:14px;font-weight:500;text-decoration:none}.nav-link:hover{background:var(--subtle);color:var(--text)}.nav-link.active{background:var(--accent);color:var(--accent-text);font-weight:600}.content{flex:1;min-width:0;padding:28px 32px 48px}.page{max-width:1240px;display:flex;flex-direction:column;gap:20px}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.page-title{margin:0;font-size:30px;font-weight:800;letter-spacing:-.02em}.page-subtitle{font-size:13px;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;min-width:0}.panel-title{margin:0;font-size:17px;font-weight:700}.row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.grow-2{flex:2 1 520px;min-width:0}.grow-1{flex:1 1 320px;min-width:0}.stack{display:flex;flex-direction:column;gap:12px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:6px}.stat-label{font-size:13px;font-weight:600;color:var(--muted)}.stat-value{font-size:24px;font-weight:800;letter-spacing:-.01em}.stat-note{font-size:12px;color:var(--muted)}.stat.inverse{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.stat.inverse .stat-label{color:inherit;opacity:.7}.filters{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end}.filter{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.dot{width:8px;height:8px;border-radius:50%;flex:none}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:var(--subtle);color:var(--text)}.badge.info{background:var(--info-bg);color:var(--info-text)}.badge.warn{background:var(--warn-bg);color:var(--warn-text)}.bar{height:8px;border-radius:4px;background:var(--subtle);overflow:hidden}.bar>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.bar.over>span{background:var(--danger)}.select-card{width:100%;display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text);font:inherit;text-align:left;cursor:pointer}.select-card[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.op-row{display:flex;align-items:center;gap:12px;padding:10px 0}.op-icon{width:36px;height:36px;flex:none;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800}.day-head{display:flex;justify-content:space-between;padding:14px 0 4px;border-top:1px solid var(--subtle);font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.heat td.ant-table-cell{transition:none}.matrix-total td{font-weight:700}.mobile-top{position:sticky;top:0;z-index:10;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;font-weight:800}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:6px 4px calc(env(safe-area-inset-bottom) + 6px);background:var(--surface);border-top:1px solid var(--border)}.tab{height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;font:inherit;font-size:11px;font-weight:600;color:var(--muted);text-decoration:none;cursor:pointer}.tab.active{color:var(--text);font-weight:800}.tab-add{width:48px;height:40px;border-radius:14px;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center}@media(max-width:767px){.content{padding:14px 16px calc(env(safe-area-inset-bottom) + 96px)}.page{gap:14px}.page-title{font-size:24px}.panel{padding:16px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-value{font-size:18px}.filters{gap:12px}.scroll-x{display:flex;flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px}}:root[data-tma=true] .content{padding-top:12px}@media(max-width:767px){.scroll-x .chips{flex-wrap:nowrap}.scroll-x>*{flex:none}}@media(max-width:767px){.page-header>div:last-child{width:100%}.page-header .ant-picker{flex:1}}.list-row{width:100%;display:flex;align-items:center;gap:12px;padding:11px 0;border:0;border-top:1px solid var(--subtle);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.list-row:first-child{border-top:0}@media(max-width:767px){.stat.inverse{grid-column:span 2}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.login-card{width:100%;max-width:400px;gap:18px}.sidebar-nav{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:24px;margin:0 -8px;padding:0 8px}.sidebar-footer{flex:none;padding:12px;border-radius:12px;background:var(--subtle);display:flex;align-items:center;gap:10px}.master-row{cursor:pointer}.master-row.selected>td{background:var(--info-bg)!important}.tabs-flat .ant-tabs-nav{margin-bottom:4px}.band{position:absolute;top:0;bottom:0}.band.paid,.band-legend.paid{background:color-mix(in srgb,var(--income) 22%,transparent)}.band.unpaid,.band-legend.unpaid{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--muted) 35%,transparent) 0 3px,transparent 3px 6px)}.band-legend{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle}.rate-label{position:absolute;transform:translate(4px);padding:2px 8px;border-radius:8px;background:var(--info-bg);color:var(--info-text);font-size:12px;font-weight:700;white-space:nowrap}.future-row>td{background:color-mix(in srgb,var(--info-bg) 60%,transparent)}.preview-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:8px 12px;font-size:13px;align-items:baseline}.preview-grid>:nth-child(4n+2),.preview-grid>:nth-child(4n+3),.preview-grid>:nth-child(4n+4){text-align:right}.past-row>td{color:var(--muted)}.swatch{width:32px;height:32px;border-radius:9px;border:0;cursor:pointer}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.account-card{min-height:190px;padding:22px;border-radius:20px;border:0;background:var(--accent);color:var(--accent-text);font:inherit;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:16px;cursor:pointer}.account-card[aria-pressed=true]{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--link)}.add-card[aria-pressed=true]{border-color:var(--text)}.editor-panel{position:sticky;top:16px}.editor-panel .ant-form-item:last-child{margin-bottom:0}.hint-box{padding:14px;border-radius:12px;background:var(--subtle);font-size:13px;line-height:1.5}@media(max-width:860px){.editor-panel{position:static}}.add-card{min-height:190px;border-radius:20px;border:2px dashed var(--border);background:transparent;color:var(--text);font:inherit;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer}.list-row.selected{background:var(--info-bg);margin:0 -12px;padding-left:12px;padding-right:12px;width:calc(100% + 24px);border-radius:10px}.chart-area{cursor:crosshair;outline:none}.chart-area:focus-visible{box-shadow:0 0 0 2px var(--link);border-radius:4px}.chart-cursor{position:absolute;top:0;bottom:0;border-left:1px solid var(--text);opacity:.5;pointer-events:none}.chart-dot{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--income);box-shadow:0 0 0 3px var(--surface);pointer-events:none}.chart-tooltip{position:absolute;top:8px;z-index:2;display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--border);box-shadow:0 6px 20px #14161c1f;font-size:12px;white-space:nowrap;pointer-events:none}.chart-tooltip b{font-size:15px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}.hint-list{margin:0;padding-left:18px;font-size:13px;line-height:1.6;color:var(--muted)}.choice-list.ant-radio-group{display:flex;flex-direction:column;gap:8px;width:100%}.choice-list .ant-radio-wrapper{min-height:44px;padding:0 12px;margin:0;border:1px solid var(--border);border-radius:10px;align-items:center;font-weight:600}.choice-list .ant-radio-wrapper-checked{border:2px solid var(--text);padding:0 11px}
