:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #273449;--line: #334155;--text: #e2e8f0;--muted: #94a3b8;--primary: #38bdf8;--primary-ink: #0c4a6e;--good: #34d399;--bad: #f87171;--warn: #fbbf24;--radius: 12px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45}h1,h2,h3,h4{margin:0}input,select,button{font-family:inherit;font-size:14px}input[type=number],select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 9px;width:100%}input[type=number]:focus,select:focus{outline:none;border-color:var(--primary)}.app{max-width:1400px;margin:0 auto;padding:20px 24px 80px}.app-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.app-header h1{font-size:24px}.app-sub,.op-sub{color:var(--muted);margin:4px 0 0}.header-actions{display:flex;gap:8px;flex-shrink:0}.tabs{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px;flex-wrap:wrap}.tab{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:9px 16px;border-radius:999px;cursor:pointer;transition:all .15s}.tab:hover{border-color:var(--primary)}.tab.active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary);font-weight:700}.generate{margin-left:auto}.btn{background:var(--panel-2);border:1px solid var(--line);color:var(--text);padding:9px 16px;border-radius:8px;cursor:pointer}.btn:hover{border-color:var(--primary)}.btn.primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary);font-weight:700}.btn.ghost{background:transparent}.split{display:grid;grid-template-columns:1fr 380px;gap:24px;align-items:start}.sticky-dash{position:sticky;top:16px}@media (max-width: 1000px){.split{grid-template-columns:1fr}.sticky-dash{position:static}}.config{display:flex;flex-direction:column;gap:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.card h3{font-size:16px;margin-bottom:14px;display:flex;align-items:center;gap:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid2 label,.card label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}.hint{color:var(--line);font-size:11px}.card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.card-head h3{margin-bottom:0}.step{width:24px;height:24px;border-radius:50%;background:var(--primary);color:var(--primary-ink);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.slider-row{padding:8px 0 4px}.slider-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:2px}.slider-label{font-size:13px;color:var(--text)}.slider-value{display:flex;align-items:center;gap:6px}.slider-value input[type=number]{width:90px;padding:4px 7px;text-align:right;font-weight:700}input[type=range]{width:100%;accent-color:var(--primary);cursor:pointer;height:22px;margin:0}.select-row{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted);padding:8px 0}.result-line{margin-top:12px;padding:10px 12px;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:8px;font-size:13px;color:var(--muted)}.result-line strong{color:var(--text)}.result-line .highlight{color:var(--primary);font-size:15px}.stream-card{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:10px;background:#ffffff05}.stream-card.off{opacity:.45}.stream-head-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.stream-result{font-size:12px;color:var(--muted);white-space:nowrap}.stream-result strong{color:var(--good)}.stream-sliders{margin-top:4px}.rate-line{display:flex;align-items:flex-end;gap:12px}.rate-slider{flex:1;min-width:0}.rate-toggle{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:6px;flex-shrink:0}.rate-toggle button{background:var(--panel-2);border:none;color:var(--muted);padding:6px 12px;cursor:pointer;font-size:12px}.rate-toggle button.active{background:var(--primary);color:var(--primary-ink);font-weight:700}.rate-hint{font-size:11px;color:var(--muted);padding:2px 0 4px}.note,.cost-row .note{font-size:11px;color:var(--muted);font-weight:400}.cost-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:12px 0 4px}.cost-row{display:grid;grid-template-columns:1fr 120px 110px;gap:10px;align-items:center;padding:5px 0}.cost-row.off{opacity:.45}.cost-check{flex-direction:row!important;align-items:center;gap:8px!important;color:var(--text)!important;font-size:13px!important}.cost-check input{width:auto}.unit{font-size:12px;color:var(--muted)}input[type=checkbox]{width:17px;height:17px;accent-color:var(--primary);cursor:pointer}.badge{font-size:11px;background:var(--panel-2);border:1px solid var(--line);padding:2px 8px;border-radius:999px;color:var(--muted);margin-left:auto}.badge.warn{color:var(--warn);border-color:var(--warn)}.badge.ok{color:var(--good);border-color:var(--good)}.info-wrap{position:relative;display:inline-flex}.info-btn{width:18px;height:18px;border-radius:50%;border:1px solid var(--primary);background:transparent;color:var(--primary);font-style:italic;font-weight:700;font-size:11px;cursor:pointer;line-height:1;padding:0}.info-pop{position:absolute;top:24px;left:0;z-index:30;width:300px;background:#0b1220;border:1px solid var(--primary);border-radius:10px;padding:12px 14px;font-size:12px;font-weight:400;color:var(--text);box-shadow:0 10px 30px #00000080}.dashboard{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.dash-title{font-size:15px;margin-bottom:12px;color:var(--primary)}.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.kpi{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:12px}.kpi-value{font-size:18px;font-weight:700}.kpi-label{font-size:11px;color:var(--muted);margin-top:2px}.kpi.primary{border-color:var(--primary)}.kpi.primary .kpi-value{color:var(--primary)}.kpi.good .kpi-value{color:var(--good)}.kpi.bad .kpi-value{color:var(--bad)}.breakdown{margin-top:6px;border-top:1px solid var(--line);padding-top:10px}.breakdown-title{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px}.bar-row{display:grid;grid-template-columns:1fr 90px;gap:4px 10px;align-items:center;margin-bottom:8px}.bar-label{font-size:11px;color:var(--text);grid-column:1 / -1}.bar-track{height:8px;background:var(--panel-2);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),#818cf8);border-radius:999px;transition:width .2s}.bar-value{font-size:11px;font-weight:700;text-align:right;white-space:nowrap}.chart-card{margin-top:16px}.chart-card h3{font-size:14px;margin-bottom:10px}.chart svg{width:100%;height:auto;display:block}.chart-legend{display:flex;flex-direction:column;gap:3px;margin-top:8px}.legend-item{font-size:11px;display:flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sticky-dash{max-height:calc(100vh - 32px);overflow-y:auto}.summary{display:flex;flex-direction:column;gap:20px}.summary-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 1000px){.summary-cols{grid-template-columns:1fr}}.onepager-overlay{min-height:100vh;background:#64748b;padding:20px 0 60px}.onepager-toolbar{max-width:900px;margin:0 auto 16px;display:flex;justify-content:space-between;padding:0 16px}.onepager{max-width:900px;margin:0 auto;background:#fff;color:#0f172a;border-radius:8px;padding:32px 36px;box-shadow:0 20px 60px #0000004d}.op-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid #0ea5e9;padding-bottom:14px;margin-bottom:18px}.op-header h1{font-size:26px}.op-header .op-sub{color:#475569}.op-date{text-align:right;font-size:12px;color:#64748b}.op-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:22px}.op-kpi{background:#f1f5f9;border-radius:8px;padding:10px;text-align:center}.op-kpi-value{font-size:16px;font-weight:800;color:#0c4a6e}.op-kpi-label{font-size:10px;color:#64748b;margin-top:2px}.op-chart{margin-bottom:20px}.op-chart h4{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:0 0 6px}.op-chart .chart-legend{flex-direction:row;gap:16px;flex-wrap:wrap}.op-cols{display:grid;grid-template-columns:1fr 1fr;gap:26px}.op-block{margin-bottom:18px}.op-block h3{font-size:15px;color:#0c4a6e;margin-bottom:6px}.op-block h4{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:12px 0 4px}.op-table{width:100%;border-collapse:collapse;font-size:12px}.op-table td{padding:4px 0;border-bottom:1px solid #e2e8f0;vertical-align:top}.op-table td:last-child{text-align:right;white-space:nowrap;padding-left:10px}.op-dim{color:#94a3b8;font-size:11px}.op-total td{font-weight:800;border-top:2px solid #cbd5e1;border-bottom:none;color:#0c4a6e}.op-footer{margin-top:20px;padding-top:12px;border-top:1px solid #e2e8f0;font-size:11px;color:#64748b}@media (max-width: 640px){.app{padding:12px 12px 60px}.app-header{flex-direction:column;align-items:stretch}.app-header h1{font-size:20px}.header-actions{width:100%}.header-actions .btn{flex:1;padding:10px 8px;font-size:13px}.tabs{gap:6px}.tab{padding:8px 12px;font-size:13px;flex:1;text-align:center}.generate{margin-left:0;width:100%;order:10;padding:12px}.grid2{grid-template-columns:1fr}.card{padding:12px 14px}.stream-head-row{flex-direction:column;align-items:flex-start;gap:4px}.rate-line{flex-direction:column;align-items:stretch;gap:4px}.rate-toggle{align-self:flex-end}.cost-row{grid-template-columns:1fr 84px 76px;gap:6px}.unit{font-size:10px}.kpi-value{font-size:15px}.slider-value input[type=number]{width:76px}.sticky-dash{max-height:none;overflow:visible}.info-pop{width:min(300px,78vw);left:auto;right:-10px}.op-kpis{grid-template-columns:repeat(3,1fr)}.op-cols{grid-template-columns:1fr}.onepager{padding:18px 14px}.onepager-toolbar{flex-direction:column;gap:8px}.op-header h1{font-size:20px}.op-chart .chart-legend{flex-direction:column;gap:3px}}@media print{.no-print{display:none!important}body{background:#fff}.onepager-overlay{background:#fff;padding:0}.onepager{box-shadow:none;max-width:none;border-radius:0;padding:0}@page{size:A4;margin:14mm}}
