:root{
  --bg:#0b0f14; --card:#121821; --muted:#8aa0b2; --text:#e7eef5;
  --accent:#4bb5f5; --good:#22c55e; --warn:#f59e0b; --bad:#ef4444;
  --ring:#2a3646; --shadow:0 8px 30px rgba(0,0,0,.35); --radius:18px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell;
  background:linear-gradient(180deg,#0b0f14 0%, #0e141c 100%);
  color:var(--text);
}
.container{max-width:1120px;margin:24px auto;padding:0 16px;}
header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;}
.title{display:flex;align-items:center;gap:12px;}
.logo{width:42px;height:42px;border-radius:12px;background: radial-gradient(circle at 30% 30%, #4bb5f5, #2563eb 70%);box-shadow:var(--shadow);}
h1{font-size:1.5rem;margin:0;font-weight:800;letter-spacing:.3px}
.sub{color:var(--muted);font-size:.95rem}
.cards{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.card{grid-column:span 12;background:linear-gradient(180deg, #121821, #0f151e);border:1px solid var(--ring);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;}
@media (min-width:880px){.card.span-4{grid-column:span 4}.card.span-6{grid-column:span 6}.card.span-8{grid-column:span 8}.card.span-12{grid-column:span 12}}
label{font-size:.9rem;color:var(--muted)}
input,select,button{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--ring);background:#0d131b;color:var(--text);outline:none;}
input:focus,select:focus{box-shadow:0 0 0 3px rgba(75,181,245,.2)}
button{cursor:pointer;font-weight:700;letter-spacing:.2px;border:none;background:linear-gradient(180deg,#1f6feb,#1158c7);transition:.15s;}
button:hover{filter:brightness(1.05)}
button.ghost{background:transparent;border:1px dashed var(--ring);color:var(--muted)}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pill{padding:6px 10px;border-radius:999px;background:#0d131b;border:1px solid var(--ring);color:var(--muted);font-size:.85rem}
.mono{font-variant-numeric: tabular-nums;font-feature-settings:'tnum' 1;font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;}
.muted{color:var(--muted)}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kpi{background:#0d131b;border:1px solid var(--ring);border-radius:14px;padding:12px}
.kpi .label{font-size:.8rem;color:var(--muted)}
.kpi .value{font-size:1.2rem;font-weight:800;margin-top:4px}
.kpi .value.good{color:var(--good)}.kpi .value.bad{color:var(--bad)}
.progress{height:10px;background:#0d131b;border:1px solid var(--ring);border-radius:999px;overflow:hidden}
.bar{height:100%;background:linear-gradient(90deg,#4bb5f5,#22c55e);width:0%}
table{width:100%;border-collapse:collapse}
th,td{padding:10px;border-bottom:1px solid var(--ring);text-align:left}
th{color:var(--muted);font-weight:700}
.right{text-align:right}
.tag{display:inline-flex;gap:6px;align-items:center;padding:4px 8px;border-radius:999px;border:1px solid var(--ring);background:#0d131b;color:var(--muted);font-size:.8rem}
.tag.good{color:#22c55e;border-color:#194a2a;background:#0c1711}
.tag.warn{color:#f59e0b;border-color:#4a3b19;background:#17140c}
.tag.bad{color:#ef4444;border-color:#4a1919;background:#170c0c}
.mini{font-size:.8rem}
.hr{height:1px;background:var(--ring);margin:8px 0 12px}
.list{display:flex;flex-wrap:wrap;gap:8px}
.footer{opacity:.7;margin-top:24px;font-size:.85rem}
.hidden{display:none}
