:root {
  --bg: #0f1115;
  --card: #181b22;
  --fg: #e6e6e6;
  --muted: #9aa0aa;
  --grid: #262a33;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
header { padding: 16px; }
h1 { margin: 0; font-size: 1.4rem; }
h2 { margin: 0 0 8px; font-size: 1rem; }
main { padding: 0 12px 32px; display: flex; flex-direction: column; gap: 12px; }
.card { background: var(--card); border-radius: 12px; padding: 14px; }
.muted { color: var(--muted); font-size: 0.85rem; }
.cap { color: var(--muted); font-size: 0.75rem; margin: 6px 0 0; }
canvas { width: 100% !important; height: 220px !important; }
table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
th, td { text-align: left; padding: 6px 4px; border-bottom: 1px solid var(--grid); }
.heatgrid { display: grid; grid-auto-flow: column; grid-template-rows: repeat(7, 10px); gap: 2px; overflow-x: auto; }
.heatcell { width: 10px; height: 10px; border-radius: 2px; background: var(--grid); }
.zoneblock { margin-bottom: 14px; }
