/* BrandOS — design tokens
   Dark, editorial, squared: cool graphite surfaces, Signal Violet accent,
   serif display + Inter body.

   Repainted 2026-09-17. Two deliberate changes, both global:

   1. WARM → COOL. The base was a warm near-black (#0a0a0a) built to match the
      old brandmarketingportal look. The accent moved from rust to violet, and
      a warm neutral under a cool accent reads as a mistake rather than a
      choice, so every surface, border and text token moved with it.
   2. RADII ARE ZERO. --radius-sm/--radius/--radius-lg all resolve to 0 and are
      kept as tokens rather than deleted, so the decision stays revertible in
      one place. Anything that must stay round is written as a literal, not as
      a token: circles (50%) and src/styles/mockup.css, which simulates an
      Instagram profile to be filmed and whose corners are Instagram's, not
      ours. Never reintroduce a token reference there. */

:root {
  --bg: #0c0d11;
  --surface: #141620;
  --surface-2: #1b1e2a;
  --surface-3: #232735;
  --border: #262a37;
  --border-strong: #363b4d;

  --text: #f4f5f8;
  --text-dim: #a8acba;
  --muted: #6f7486;

  --accent: #7a5cff;
  --accent-hover: #8e74ff;
  --accent-dim: rgba(122, 92, 255, 0.16);
  --accent-text: #b9aeff;

  --green: #5bc98a;
  --green-dim: rgba(91, 201, 138, 0.14);
  --red: #e5695f;
  --red-dim: rgba(229, 105, 95, 0.14);
  --blue: #6e9be0;
  --blue-dim: rgba(110, 155, 224, 0.14);
  --yellow: #e0b341;
  --yellow-dim: rgba(224, 179, 65, 0.14);
  /* Magenta, not violet. This used to be #8a7ab5, which is now within a few
     degrees of --accent — a "purple" badge would have read as an accent badge. */
  --purple: #c86fd0;
  --purple-dim: rgba(200, 111, 208, 0.14);

  /* Chart series, fixed order — assigned by entity (opener/bump/loom/convo),
     never cycled and never reordered when a filter drops a series.
     These are NOT the --accent/--green/--blue tokens above: those are tuned for
     text and 1px borders and fail categorical separation as adjacent fills
     (green vs blue came out at OKLab dE 13 for normal vision, 12 for deutan).
     This set was validated against the --surface card background for lightness
     band, chroma floor, all-pairs CVD separation and contrast before use.
     --green/--red/--yellow stay reserved for status and are never a series. */
  --chart-1: #a85f22;
  --chart-2: #4f93da;
  --chart-3: #50ac5e;
  --chart-4: #c05fa8;
  --chart-grid: rgba(245, 243, 239, 0.07);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;

  /* Squared. Kept as tokens so this is one edit to revert, not 120. */
  --radius-sm: 0;
  --radius: 0;
  --radius-lg: 0;

  --shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 8px 24px rgba(0, 0, 0, 0.24);

  --sidebar-w: 248px;
  --content-max: 1180px;
}

* { box-sizing: border-box; }

html, body {
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14.5px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  margin: 0;
}

h1, h2, h3, .display {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--text);
  margin: 0;
}

a { color: inherit; text-decoration: none; }

svg { width: 16px; height: 16px; flex-shrink: 0; vertical-align: -3px; }

::selection { background: var(--accent-dim); color: var(--text); }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 99px; }
