:root {
  --bg: #f5f7fa; --surface: #ffffff; --surface-2: #eef1f5;
  --border: #dce2ea; --border-soft: #e7ebf0;
  --ink: #0f172a; --ink-dim: #475569; --ink-faint: #8493a8;
  --accent: #16a34a; --accent-ink: #ffffff; --accent-soft: rgba(22,163,74,.1); --accent-line: rgba(22,163,74,.35);
  --sev-critical: #dc2626; --sev-high: #c2650c; --sev-medium: #a16207; --sev-low: #0369a1; --sev-info: #64748b;
  --font-sans: "Fira Sans", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-mono: "Fira Code", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --radius: 8px;
  --shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 20px -10px rgba(15,23,42,.1);

  /* Escala tipográfica única do dashboard — todo font-size vem daqui,
     nenhum arquivo declara px solto. 4 degraus, razão >=1.25 sempre. */
  --fs-display: 25px;  /* número grande (stat value) */
  --fs-heading: 18px;  /* h1, h2 de modal, marca */
  --fs-body: 13px;     /* texto corrente: tabela, input, botão, painel */
  --fs-micro: 10px;    /* label, chip, thead, timestamp, hint */
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #020617; --surface: #0e1223; --surface-2: #131a30;
    --border: #263149; --border-soft: #1b2337;
    --ink: #f2f5fa; --ink-dim: #94a3b8; --ink-faint: #536078;
    --accent: #22c55e; --accent-ink: #04170c; --accent-soft: rgba(34,197,94,.14); --accent-line: rgba(34,197,94,.32);
    --sev-critical: #f87171; --sev-high: #fb923c; --sev-medium: #fbbf24; --sev-low: #60a5fa; --sev-info: #94a3b8;
    --shadow: 0 1px 2px rgba(0,0,0,.4), 0 16px 32px -16px rgba(0,0,0,.65);
  }
}
:root[data-theme="dark"] {
  --bg: #020617; --surface: #0e1223; --surface-2: #131a30;
  --border: #263149; --border-soft: #1b2337;
  --ink: #f2f5fa; --ink-dim: #94a3b8; --ink-faint: #536078;
  --accent: #22c55e; --accent-ink: #04170c; --accent-soft: rgba(34,197,94,.14); --accent-line: rgba(34,197,94,.32);
  --sev-critical: #f87171; --sev-high: #fb923c; --sev-medium: #fbbf24; --sev-low: #60a5fa; --sev-info: #94a3b8;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 16px 32px -16px rgba(0,0,0,.65);
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 var(--fs-body)/1.5 var(--font-sans); -webkit-font-smoothing: antialiased; }
.mono { font-family: var(--font-mono); }
.hidden { display: none !important; }
