/* Design tokens. Linked first on every portal page, before any other sheet.
 *
 * Colours come from here. A page-private palette is namespaced (--c2-* on the
 * conversion workspace, --nf-* on the not-found page) so it cannot collide
 * with these; tests/test_stylesheet.py enforces both rules.
 */
:root {
  /* Canonical set, previously the :root block of partials/base_styles.html. */
  --ink: #0e0b0c;
  --body: #1a1517;
  --dim: #6b6660;
  --line: #e2dfd9;
  --line-strong: #c7c2bb;
  --paper: #f5f3ee;
  --surface: #ffffff;
  --surface-2: #fbf9f4;
  --red: #cf1542;
  --green: #2f6b3a;
  --amber: #8a5a00;
  --red-dark: #a80f36;
  --green-soft: #e8f2ea;
  --amber-soft: #f7eedd;
  --red-soft: #fae6eb;
  --gray-soft: #f0eee8;
  --blue: #1f5c99;
  --blue-soft: #e7eff7;
  --purple: #5b3a85;
  --purple-soft: #f1eaf8;
  --radius: 6px;
  --radius-sm: 4px;
  --dot-green: #3d8b4c;
  --dot-amber: #c98a1b;
  --shadow: 0 1px 2px rgba(14, 11, 12, 0.05);
  /* The modal card's lift. Four page sheets had written this same value out by
   * hand; components.css now uses the token, and those copies can adopt it as
   * each page is next touched. */
  --shadow-modal: 0 10px 40px rgba(14, 11, 12, 0.25);

  /* Promoted. Each of these was invented independently by two or three pages,
   * which is the signal that it belongs to the system rather than to a page:
   * --faint by the operator app, the run console and conversion_v2 (as
   * --c2-faint), the two reds by the operator app and conversion_v2. */
  --faint: #a09a93;
  --red-strong: #8e0e2c;
  --red-bg: #fff0f4;

  /* The solid-green "go" button: its foreground and its hover. Written raw in
   * conversion_v2.css for the journey card's Launch VM, and needed verbatim by
   * the Launch page's queue for the same action -- which is the signal that
   * they belong here rather than being copied with a sync comment. */
  --green-ink: #f4fbf5;
  --green-dark: #275931;

  /* One danger colour everywhere. The operator app and the not-found page
   * already used #C62828; the run console's #B42318 is the odd one out and
   * adopts this, which is a small, deliberate change to its failed/error
   * states. */
  --danger: #c62828;
}

/* Aliases, not resolutions. The operator app names two of the canonical
 * colours differently across 1,104 lines of usage sites; pointing its names at
 * the shared values costs nothing and edits nothing. Both pairs are already
 * byte-identical (#2F6B3A, #8A5A00), so this is pixel-zero.
 */
body.operator-app {
  --success: var(--green);
  --warn: var(--amber);
}
