/* Colours, type and resets: the TBX design kit (docs/DESIGN_KIT.md), light only. A grey frame around a white
   panel, soft grey cards, ink-black actions, status as chips. The staff ("compact") density: 14 px text. */
:root {
  color-scheme: light;
  --shell: #e7eaee;
  --panel: #f3f5f7;
  --bg: #fcfdfd;
  --surface: #fcfdfd;
  --card: #e4e9ee;
  --raised: #e4e9ee;
  --text: #1c2127;
  --muted: #5a6572;
  --line: #dbe0e6;
  --field: #9aa4af;
  --accent: #1c2127;
  --accent-text: #ffffff;
  --pill: #dfe4ea;
  --pill-hover: #d4dae1;
  --pill-active: #c9d0d8;
  --muted-bg: #e1e6eb;
  --danger: #db3030;
  --bad-bg: #f6d5d1;
  --bad-text: #970606;
  --ok-bg: #cfeee0;
  --ok-text: #00684a;
  --warn-bg: #f6e6ae;
  --warn-text: #944f01;
  --info-bg: #cde3f6;
  --info-text: #083c90;
  --tint-ok: #e4f4ee;
  --tint-warn: #f8f0d6;
  --tint-bad: #f8e6e3;
  --tint-info: #e2eff8;
  --brand: #2fc6cc;
  --chart: #3b8d99;
  --link: #17606b;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08);
  --radius: 20px;
  --radius-sm: 10px;
  --radius-chip: 6px;
  /* Status colours are fixed: they never change with the theme, and always come with a mark and a word. */
  --st-good: #0ca30c;
  --st-warning: #fab219;
  --st-serious: #ec835a;
  --st-critical: #d03b3b;
  --font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--shell);
  color: var(--text);
  font: 15px/1.5 var(--font);
  -webkit-font-smoothing: antialiased;
}

h1 { font-size: 28px; line-height: 1.2; font-weight: 600; margin: 0 0 0.75rem; }
h2 { font-size: 20px; line-height: 1.3; font-weight: 600; margin: 0 0 0.75rem; }
h3 { font-size: 17px; font-weight: 600; margin: 1.25rem 0 0.5rem; }
/* A link is black and underlined wherever it stands: the underline, not a colour, says "link". */
a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
code { font-family: var(--mono); font-size: 0.94em; }
p { margin: 0 0 0.75rem; }

.muted { color: var(--muted); }
.small { font-size: 0.9rem; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.nowrap { white-space: nowrap; }
.loading { padding: 1rem 0; }

/* Where the content would be: one plain sentence, no box of its own. */
.empty { color: var(--text); padding: 1rem 0; }
table, time { font-variant-numeric: tabular-nums; }

/* The TBX mark: as tall as the capitals beside it, in the brand teal (light grey on an ink panel). */
.brand-mark { flex: none; height: 1.35em; width: auto; fill: var(--brand); }
.brand-mark.on-ink { fill: #d4d4d4; }

/* Every interactive element: a 2 px ink outline, 2 px outside it. */
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
