/* Shared visual-language tokens (umami-grade minimal). Consumed by status.css and
   landing.css. Dark via BOTH triggers: system (status page) and [data-theme] (landing). */
:root {
  --bg: #FAFAFA; --surface: #FFFFFF; --border: #ECECEC;
  --ink: #202020; --muted: #6B7280; --faint: #9CA3AF;
  --accent: #0D9488; --up: #22C55E; --high: #86EFAC; --warn: #F59E0B; --low: #FB923C; --down: #EF4444; --none: #E8E8E8;
  --radius: 12px; --sans: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --border-strong: #D8D8D8;
  --accent-soft: color-mix(in srgb, var(--accent) 14%, transparent);
  --warn-soft: color-mix(in srgb, var(--warn) 16%, transparent);
  --danger: var(--down);
  --danger-soft: color-mix(in srgb, var(--down) 14%, transparent);
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
  --topbar-h: 60px;
  /* aliases: legacy app token names → new vocabulary (used in template inline styles) */
  --hairline: var(--border);
  --hairline-strong: var(--border-strong);
  --ink-muted: var(--muted);
  --ink-faint: var(--faint);
  --bg-card: var(--surface);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0E0E0E; --surface: #161616; --border: #242424; --ink: #EDEDED; --muted: #8B8B8B; --faint: #6B6B6B; --none: #2A2A2A;
    --border-strong: #333333;
  }
}
[data-theme="dark"] {
  --bg: #0E0E0E; --surface: #161616; --border: #242424; --ink: #EDEDED; --muted: #8B8B8B; --faint: #6B6B6B; --none: #2A2A2A;
  --border-strong: #333333;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--bg); color: var(--ink); font-family: var(--sans);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
