:root{--ink:#17324d;--muted:#68778a;--bg:#f4f7fa;--card:#fff;--line:#dce6ee;--accent:#2e7d6f;--bad:#b52f43;--warn:#fff2cf}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Inter,Arial,sans-serif}header{display:flex;justify-content:space-between;align-items:center;padding:24px max(20px,calc((100% - 1500px)/2));background:white;border-bottom:1px solid var(--line)}h1,h2,p{margin-top:0}header h1{margin-bottom:4px}header p{margin-bottom:0;color:var(--muted)}main{max-width:1500px;margin:auto;padding:20px}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.kpi,.panel,.charts article{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:17px}.kpi span{color:var(--muted)}.kpi b{display:block;margin-top:6px;font-size:22px}.negative{color:var(--bad)}.charts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:12px 0}.charts article{height:310px}.charts canvas{max-height:245px}.warnings{background:var(--warn);border-radius:10px;margin-bottom:12px;padding:12px}.warnings:empty{display:none}.panel{margin-bottom:12px}.title{display:flex;justify-content:space-between;gap:10px;align-items:center}.filters{display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:8px;margin:12px 0}input,select,button{font:inherit;border:1px solid var(--line);border-radius:8px;padding:10px;background:white;color:var(--ink)}button{background:var(--accent);color:white;cursor:pointer}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--muted);cursor:pointer}.bad{color:var(--bad);font-weight:600}.warn{background:#fff8e5}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.empty{color:var(--muted);display:grid;place-items:center;height:210px;text-align:center}@media(max-width:1000px){.kpis{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}}@media(max-width:650px){header{padding:16px;display:block}.kpis,.charts,.filters{grid-template-columns:1fr}.charts article{height:280px}.title{display:block}.title button{width:100%;margin-bottom:10px}}
