:root{
  --bg:#0b1220;
  --panel:#111a2e;
  --text:#e8eefc;
  --muted:#9bb0d1;
  --line:rgba(255,255,255,.10);
  --good:#3ddc97;
  --bad:#ff5c77;
  --warn:#ffcc66;
  --accent:#7aa7ff;
  --shadow:0 12px 30px rgba(0,0,0,.35);
  --radius:14px;
  --pad:14px;
  --mono: ui-monospace, monospace;
  --sans: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family:var(--sans);
  background: radial-gradient(1200px 700px at 20% 0%, #152349, transparent),
              radial-gradient(900px 600px at 80% 0%, #1b2a5a, transparent),
              var(--bg);
  color:var(--text);
}

.wrap{max-width:1100px;margin:auto;padding:20px}

header{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  margin-bottom:20px;
}

.title h1{margin:0;font-size:20px}
.title p{color:var(--muted);font-size:13px}

.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.pill{
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.05);
  font-size:12px;
}

.grid{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:20px;
}

@media (max-width:980px){
  .grid{grid-template-columns:1fr}
}

.card{
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  border-radius:var(--radius);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.hd{
  padding:var(--pad);
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
}

.bd{padding:var(--pad)}

.controls{display:flex;gap:10px;flex-wrap:wrap}

input,select,button{
  padding:6px 10px;
  border-radius:8px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.2);
  color:var(--text);
}

button{cursor:pointer}

.table-container{
  max-height:420px;
  overflow:auto;
  border-radius:12px;
  border:1px solid var(--line);
}

table{width:100%;border-collapse:collapse}

th,td{
  padding:10px;
  border-bottom:1px solid var(--line);
}

.chg.up{color:var(--good)}
.chg.down{color:var(--bad)}

.chart-container{
  position:relative;
  height:300px;
  width:100%;
}

.spinner{
  width:16px;height:16px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.2);
  border-top-color:var(--accent);
  animation:spin .9s linear infinite;
}

@keyframes spin{to{transform:rotate(360deg)}}

.hidden{display:none}

.banner{
  display:none;
  margin-bottom:14px;
  padding:10px;
  border-radius:10px;
  background:rgba(255,92,119,.15);
  border:1px solid rgba(255,92,119,.4);
}

.foot{
  margin-top:12px;
  font-size:12px;
  color:var(--muted);
}