/* byForja Tools theme. Light is the default, dark is opt-in (AL 2026-09-09, Notion: Intranet structure).
   Same contract as /assets/eo-theme.css on tools.eliteoutsiders.com: load this AFTER the
   page own <style> block. Both blocks below score 0,2,0 on specificity, so they beat a plain
   :root from the page and source order decides between them: the dark block comes last and
   wins whenever data-theme="dark". A page keeps its own token only if that token is absent
   here. The dark block restores the pre-2026-09-09 palette exactly. */
:root:root {
  /* Fixed colour system, identical on the four intranets (rule 3, 2026-09-09) */
  --n-white: #ffffff; --n-paper: #f7f6f3; --n-grey-1: #dedbd4; --n-grey-2: #b6b1a7; --n-grey-3: #6e6e78; --n-grey-4: #45454e; --n-black: #16161a;
  --c-red: #a3282a; --c-green: #0f7a55; --c-amber: #8a5f08; --c-blue: #1c6f9c; --c-violet: #6641b8;
  color-scheme: light;
  /* ground, cool white carrying the navy */
  --bg: #f5f7fb;
  --bg-soft: #eceff7;
  --surface: #ffffff;
  --surface-elevated: #f7f9fd;
  /* structure */
  --border: #d8deea;
  --border-hi: #c3cbdd;
  --border-hover: #9aa8c7;
  /* ink, the navy itself */
  --ink: #0b1729;
  --ink-soft: #3c4a6b;
  --ink-faint: #66739a;
  /* accent, byForja royal blue holds on a light ground */
  --accent: #1B5DE0;
  --accent-light: #154bb8;
  --accent-dark: #0F3A99;
  /* status */
  --danger: #b93b3b;
  --warning: #8a6300;
  --success: #1f7a45;
  /* veils, for the rgba(255,255,255,a) overlays the dark pages used */
  --veil-1: rgba(0,0,0,.03);
  --veil-2: rgba(0,0,0,.06);
  --veil-3: rgba(0,0,0,.10);
  --veil-4: rgba(0,0,0,.18);
}
:root[data-theme="dark"] {
  --c-red: #fb7185; --c-green: #10b981; --c-amber: #fbbf24; --c-blue: #38bdf8; --c-violet: #a78bfa;
  color-scheme: dark;
  --bg: #0B1729;
  --bg-soft: #0E1B33;
  --surface: #13213D;
  --surface-elevated: #18294B;
  --border: #1F2D52;
  --border-hi: #2A3D6F;
  --border-hover: #3A5290;
  --ink: #E8EEFB;
  --ink-soft: #9AA8C7;
  --ink-faint: #5A6BA0;
  --accent: #1B5DE0;
  --accent-light: #3D7BF5;
  --accent-dark: #0F3A99;
  --danger: #E55B5B;
  --warning: #E5B85B;
  --success: #5BC97E;
  --veil-1: rgba(255,255,255,.03);
  --veil-2: rgba(255,255,255,.06);
  --veil-3: rgba(255,255,255,.10);
  --veil-4: rgba(255,255,255,.18);
}

/* Nothing is themed until the ground itself follows the tokens. A page whose body paints a
   literal hex keeps that hex, which is exactly the case an agent has to tokenise by hand. */
html, body { background: var(--bg); color: var(--ink); }
body { transition: background .18s ease, color .18s ease; }
/* Inter replaced JetBrains Mono everywhere (rule 2). Numbers keep their alignment here. */
html { font-variant-numeric: tabular-nums; }

/* Floating toggle, injected by bf-theme.js when the page carries no button of its own. */
#bf-theme-fab {
  position: fixed; right: 16px; bottom: 16px; z-index: 9999;
  font: 500 11.5px/1 Inter, -apple-system, system-ui, sans-serif;
  letter-spacing: 1.2px; text-transform: uppercase;
  color: var(--ink-faint); background: var(--surface);
  border: 1px solid var(--border); border-radius: 4px;
  padding: 9px 13px; cursor: pointer;
  box-shadow: 0 2px 10px rgba(0,0,0,.14);
}
#bf-theme-fab:hover { color: var(--accent); border-color: var(--accent); }
@media print { #bf-theme-fab { display: none; } }

/* byForja mark in the topbar (AL 2026-09-09): the site's mark.svg, light stroke on the dark theme. */
.bf-topbar-brand .brand-logo { height: 34px; }
:root[data-theme="dark"] .bf-topbar-brand .brand-logo { content: url("/assets/mark-light.svg"); }
