:root{--bg: #0d0f13;--bg-side: #0a0c10;--panel: #14171d;--inset: #1a1e26;--text: #e8eaf0;--text-hi: #ffffff;--muted: #8f98a8;--dim: #5f6878;--faint: #454e5d;--line: rgba(255, 255, 255, .06);--line-soft: rgba(255, 255, 255, .05);--line-hard: rgba(255, 255, 255, .11);--accent: #6ea8fe;--accent-text: #9cc4ff;--accent-soft: rgba(110, 168, 254, .12);--accent-line: rgba(110, 168, 254, .35);--accent-flat: rgba(110, 168, 254, .42);--plan: #e8b06a;--plan-soft: rgba(232, 176, 106, .55);--plan-faint: rgba(232, 176, 106, .16);--danger: #ff6b6b;--danger-bg: rgba(255, 107, 107, .07);--danger-line: rgba(255, 107, 107, .28);--font: "Avenir Next", Avenir, "Segoe UI", Ubuntu, "Noto Sans", sans-serif;--radius: 14px;--radius-sm: 10px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-text)}button{font:inherit}::selection{background:#6ea8fe47}h1{margin:0;font-size:26px;font-weight:600;letter-spacing:-.025em}.num{font-variant-numeric:tabular-nums}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stub{color:var(--dim)}.error{color:var(--danger)}.muted{color:var(--dim)}.hint{margin:11px 0 0;font-size:11px;line-height:1.5;color:var(--dim)}.shell{display:flex;min-height:100vh}.sidebar{width:232px;flex:none;background:var(--bg-side);border-right:1px solid var(--line);padding:26px 16px 22px;display:flex;flex-direction:column;gap:26px;position:sticky;top:0;height:100vh}.brand{padding:0 8px}.brand-name{font-size:17px;font-weight:650;letter-spacing:-.02em}.brand-sub{margin-top:2px;font-size:12px;color:var(--dim)}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:9px 10px;border:0;border-radius:9px;text-align:left;cursor:pointer;background:transparent;color:var(--muted)}.nav-item:hover{color:var(--text)}.nav-item.on{background:var(--accent-soft);color:var(--accent-text)}.nav-count{font-size:12px;color:var(--dim)}.badge{font-size:11px;color:var(--plan)}.rates{margin-top:auto;padding:0 8px;display:flex;flex-direction:column;gap:6px}.rates-label{font-size:11px;color:var(--faint)}.rates-line{font-size:11px;color:var(--dim)}.main{flex:1;min-width:0;padding:28px clamp(16px,3vw,36px) 72px;max-width:1200px}.gate{max-width:320px;margin:22vh auto;text-align:center}.gate-brand{font-size:22px;font-weight:650;letter-spacing:-.02em}.gate-sub{margin:4px 0 0;color:var(--dim);font-size:12px}.gate form{display:flex;gap:8px;margin-top:20px}.gate input{flex:1;min-width:0}.page-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:20px}.page-head.between{justify-content:space-between}.pill{font-size:12px;color:var(--muted);border:1px solid rgba(255,255,255,.09);border-radius:999px;padding:4px 11px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card+.card{margin-top:14px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.card-title{font-weight:600}.card-sub{margin-top:3px;font-size:12px;color:var(--dim)}.card-meta{font-size:12px;color:var(--dim)}.dim-card{background:#14171d99;border-color:#ffffff0b}.dim-card .row{color:var(--dim);border-top-color:#ffffff0a}.dim-card .sub-name{font-weight:400}.dim-card .sub-tags,.dim-card .sub-meta{color:var(--faint)}.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:14px;align-items:start}.split>.card+.card{margin-top:0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px}.tile{display:flex;flex-direction:column;padding:16px 17px 15px}.tile-label{font-size:12px;color:var(--muted)}.tile-value{margin-top:8px;font-size:29px;letter-spacing:-.03em}.tile-value.plan{color:var(--plan)}.tile-track{display:flex;height:3px;margin-top:12px;border-radius:2px;overflow:hidden;background:var(--line)}.tile-spent{background:var(--accent)}.tile-plan{background:var(--plan-soft)}.tile-sub{margin-top:8px;font-size:12px;color:var(--dim)}.tile-sub-low{margin-top:auto;padding-top:12px}.empty{padding:56px 40px;text-align:center}.empty-title{font-size:19px;font-weight:600}.empty-text{margin:8px auto 0;max-width:420px;color:var(--muted)}.empty .primary{margin-top:20px}.banner{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:14px 16px;margin-bottom:18px}.banner-error{background:var(--danger-bg);border:1px solid var(--danger-line)}.banner-dot{width:6px;height:6px;border-radius:50%;background:var(--danger);margin-top:7px;flex:none}.banner-title{font-weight:600;color:#ffb3b3}.banner-text{margin-top:3px;color:#c9a5a5}.banner-action{margin-left:auto;flex:none}.legend{display:flex;gap:14px;font-size:11px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.swatch{width:8px;height:8px;border-radius:2px;display:inline-block}.swatch.spent{background:var(--accent)}.swatch.plan{background:var(--plan-soft)}.chart-max{margin-top:14px;font-size:11px;color:var(--faint)}.bars{display:flex;gap:6px;align-items:flex-end;margin-top:6px;border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:8px}.bar-slot{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;height:158px;gap:2px}.bar-plan{border-radius:3px 3px 0 0;background:repeating-linear-gradient(135deg,var(--plan-soft) 0 4px,var(--plan-faint) 4px 8px)}.bar-spent{border-radius:3px;background:var(--accent-flat)}.bar-spent.on{background:var(--accent)}.bar-labels{display:flex;gap:6px;margin-top:7px}.bar-label{flex:1;min-width:0;text-align:center;font-size:11px;color:var(--faint)}.bar-label.on{color:var(--muted)}.cat-list{display:flex;flex-direction:column;gap:13px;margin-top:16px}.cat-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.cat-name{display:flex;align-items:center;gap:8px;min-width:0}.cat-sum{font-size:12px;color:var(--muted);flex:none}.cat-track{height:4px;margin-top:7px;border-radius:2px;background:var(--line-soft);overflow:hidden}.cat-fill{height:100%;border-radius:2px}.dot{width:7px;height:7px;border-radius:2px;flex:none;display:inline-block}.rows{margin-top:6px}.row{display:flex;align-items:center;gap:14px;padding:11px 0;border-top:1px solid var(--line-soft)}.row-date{width:96px;flex:none;font-size:12px;color:var(--faint)}.row-date.soon{color:var(--muted)}.row-name{flex:1;min-width:0}.row-kind{color:var(--dim)}.row-price{flex:none;font-size:13px}.row-rub{width:96px;flex:none;text-align:right;font-size:12px;color:var(--dim)}.list{padding:4px 18px 6px}.list-note{padding:12px 0 2px;font-size:12px;color:var(--dim)}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.chip{padding:6px 12px;border-radius:999px;cursor:pointer;font-size:12px;white-space:nowrap;flex:none;border:1px solid rgba(255,255,255,.09);background:transparent;color:var(--muted)}.chip:hover{color:var(--text)}.chip.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-text)}.chip-input{padding:5px 11px;border-radius:999px;font-size:12px;width:110px;background:transparent;border:1px dashed rgba(255,255,255,.14);color:var(--text)}.cols{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.col-main{flex:5 1 420px;min-width:0;display:flex;flex-direction:column;gap:14px}.col-main .card+.card{margin-top:0}.col-side{flex:2 1 320px;min-width:0;position:sticky;top:24px}.col-months{flex:1 1 180px;max-width:220px;display:flex;flex-direction:column;gap:2px}.sub-row{cursor:pointer;padding:13px 0}.sub-row:hover .sub-name,.sub-row.on .sub-name{color:var(--text-hi)}.sub-main{flex:1;min-width:0}.sub-title{display:flex;align-items:baseline;gap:9px;min-width:0}.sub-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sub-tags{font-size:11px;color:var(--faint);flex:none}.sub-meta{margin-top:2px;font-size:12px;color:var(--dim)}.sub-price{text-align:right;flex:none;font-size:13px}.sub-rub{margin-top:2px;font-size:11px;color:var(--dim)}.sub-next{width:104px;flex:none;text-align:right;font-size:12px;color:var(--muted)}.detail{padding:20px}.detail-name{font-size:17px;font-weight:600;letter-spacing:-.01em}.detail-sub{margin-top:3px;font-size:12px;color:var(--muted)}.detail-price{display:flex;align-items:baseline;gap:10px;margin-top:16px}.detail-price .num{font-size:26px;letter-spacing:-.03em}.detail-cycle{font-size:12px;color:var(--dim)}.detail-rub{margin-top:4px;font-size:12px;color:var(--muted)}.detail-drift{margin-top:5px;font-size:12px;line-height:1.5;color:var(--dim);max-width:420px}.detail-label{font-size:11px;color:var(--dim)}.detail-block{margin-top:18px}.detail-block a{display:block;margin-top:5px}.detail-note{margin-top:5px;color:#c6ccd8}.inset{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--inset);border-radius:var(--radius-sm);padding:11px 13px;margin-top:16px;font-size:13px}.inset .detail-label{font-size:12px;color:var(--muted)}.segments{display:flex;flex-direction:column;margin-top:8px}.segment{display:flex;gap:11px;padding:9px 0;border-top:1px solid var(--line-soft)}.segment-mark{width:5px;flex:none;border-radius:3px}.segment-mark.base{background:#ffffff1f}.segment-mark.change{background:var(--accent)}.segment-mark.oneoff{background:var(--plan)}.segment-body{flex:1;min-width:0}.segment-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px}.segment-from{color:var(--muted)}.segment-note{margin-top:2px;font-size:11px;color:var(--dim)}.actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.analysis-card{padding:24px clamp(16px,2.2vw,26px) 26px}.analysis-title{font-size:18px;font-weight:600;letter-spacing:-.015em}.section-label{margin-top:26px;font-size:11px;color:var(--dim)}.dashed{margin-top:10px;border:1px dashed rgba(255,255,255,.1);border-radius:12px;padding:20px}.dashed.quiet{color:var(--dim);padding:14px}.obs{max-width:640px;margin:7px 0 0;color:#d5dae4;line-height:1.55;text-wrap:pretty}.delta-value{margin-top:16px;font-size:32px;letter-spacing:-.03em}.delta-still{margin-top:16px;font-size:18px;color:var(--muted)}.delta-base{margin-top:5px;font-size:12px;color:var(--dim)}.parts{margin-top:18px}.part{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:9px 0;border-top:1px solid var(--line-soft);font-size:13px}.part-why{min-width:0;color:var(--muted);text-wrap:pretty}.part-sum{flex:none}.part-total{border-top:1px solid var(--line-hard);font-weight:600}.income-period{flex:1 1 130px;font-size:12px;color:var(--muted);white-space:nowrap}.income-amount{flex:none;font-size:14px;white-space:nowrap}.income-share{flex:none;font-size:12px;color:var(--dim);white-space:nowrap}.tag-name{flex:1;min-width:0;text-align:left;border:0;background:transparent;color:var(--text);cursor:pointer;padding:0}.tag-name:hover{color:var(--text-hi)}.tag-count{font-size:12px;color:var(--dim)}.dot.hollow{background:transparent;box-shadow:inset 0 0 0 1px var(--faint)}.chip .dot{margin-right:6px;vertical-align:1px}.sub-tags-sep{color:var(--faint)}.swatches{display:flex;flex-wrap:wrap;gap:6px}.swatch-pick{width:22px;height:22px;border-radius:7px;cursor:pointer;padding:0;border:1px solid transparent}.swatch-pick.on{outline:2px solid var(--text);outline-offset:2px}.swatch-pick.none{background:transparent;border:1px dashed var(--line-hard);position:relative}.swatch-pick.none:after{content:"";position:absolute;top:4px;right:1px;bottom:4px;left:1px;width:1px;margin:0 auto;background:var(--faint);transform:rotate(45deg)}.primary{padding:9px 15px;border-radius:var(--radius-sm);border:0;cursor:pointer;background:var(--accent);color:var(--bg);font-weight:600;white-space:nowrap;flex:none}.primary:disabled{opacity:.5;cursor:default}.ghost{padding:8px 12px;border-radius:9px;cursor:pointer;font-size:13px;white-space:nowrap;flex:none;border:1px solid var(--line-hard);background:transparent;color:var(--text)}.ghost:hover{border-color:#fff3}.ghost.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-text)}.ghost.danger{border-color:var(--danger-line);color:var(--danger)}.ghost:disabled{opacity:.5;cursor:default}.link-danger{border:0;background:transparent;color:var(--faint);cursor:pointer;padding:0 2px;font-size:15px;line-height:1;flex:none}.link-danger:hover{color:var(--danger)}.form{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:10px}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>span{font-size:11px;color:var(--dim)}.field-row{display:flex;gap:10px;flex-wrap:wrap}.field-row>.field{flex:1 1 140px}.field-row>.field.narrow{flex:0 1 92px}.form-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}input,select,textarea{font:inherit;width:100%;min-width:0;background:var(--inset);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent-line);border-color:transparent}textarea{resize:vertical}.checkbox{display:inline-flex;gap:7px;align-items:center;font-size:12px;color:var(--muted)}.checkbox input{width:auto}@media (max-width: 860px){.shell{flex-direction:column}.sidebar{width:auto;height:auto;position:static;flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px 16px;border-right:0;border-bottom:1px solid var(--line);padding:14px 16px}.brand{padding:0}.brand-sub{display:none}.nav{flex-direction:row;flex-wrap:wrap;gap:4px}.nav-item{width:auto;padding:7px 10px}.rates{margin:0 0 0 auto;padding:0;text-align:right}.main{padding:20px 16px 56px}.col-side{position:static}.row{flex-wrap:wrap;gap:6px 10px}.row-date{width:54px}.row-name{flex:1 1 120px}.row-price{margin-left:auto}.row-rub,.sub-next{width:auto}.sub-next{margin-left:auto}.income-share{width:100%}}
