/* Crosswalk: Blue Labs Design Lab tokens (v0.1.0) → canonical consensor.io, dark AND light (12 Oct 2026).
   Load order: ../01-consensor-dark-CANONICAL/tokens.css, then source/tokens.css, then THIS file, then source/components.css.
   Every --bl-* the Lab's 22 components consume is re-pointed at a canonical token, so the Lab
   components render in consensor dark without editing components.css. Since 12 Oct 2026 every one of those
   tokens also has a light value in tokens.css, so the same mapping serves <html data-theme="light">; the two
   literals below that have no token get their own light values at the end of this file.
   "≈" marks a judgement call where the canonical system has no exact equivalent.
   Selector note: the Lab's own dark block is :root:not([data-theme="light"]) (0,2,0), so this block must match
   that specificity in every theme state or the Lab's navy wins. */

:root,
:root:not([data-theme="light"]),
:root[data-theme="light"]{
  /* ground & ink */
  --bl-bg:var(--bg);                    /* #0A0F1C → #121212 */
  --bl-surface:var(--card);             /* #111A2C → #1a1a1a */
  --bl-surface-2:var(--raise,#202020);  /* #18233A → #202020  ≈ hover/subtle fill */
  --bl-ink:var(--fg);                   /* #E8EDF7 → #fff */
  --bl-ink-2:var(--text);               /* #A7B1C7 → #cfcfcf */
  --bl-ink-3:var(--fg2);                /* #6F7B96 → #939393 */
  --bl-line:var(--line);                /* #22304A → #252525 */
  --bl-line-strong:var(--chip-on-line); /* #33445F → #333  ≈ */

  /* accent: one blue */
  --bl-accent:var(--blue);              /* #5B86FF → #306ff3 */
  --bl-accent-hover:var(--blue-line);   /* #7A9CFF → #578bf5 */
  --bl-accent-active:var(--blue-fill);  /* #4A72E6 → #2b65e4 */
  --bl-accent-ink:#fff;                 /* #06102A → #fff (canonical CTA text is white) */
  --bl-accent-soft:var(--navy);         /* #1B2B58 → #17233b */
  --bl-accent-soft-ink:var(--navy-fg);  /* #B9CBFF → #89b3f9 */

  /* semantic: Longbow's status set */
  --bl-ok:var(--good);           --bl-ok-soft:var(--good-bg);
  --bl-warn:var(--warn);         --bl-warn-soft:var(--warn-bg);
  --bl-danger:var(--crit);       --bl-danger-soft:var(--crit-bg);
  --bl-danger-hover:#f26b69;     /* ≈ no canonical value; crit lightened one step */

  /* focus: canonical pages use a 2px blue outline offset 2–3px */
  --bl-focus-ring:0 0 0 2px var(--bg),0 0 0 4px var(--blue);

  /* type: Inter replaces Bricolage Grotesque + IBM Plex */
  --bl-font-display:var(--display);
  --bl-font-body:var(--sans);
  --bl-font-mono:var(--mono);
  --bl-text-xs:12px;  --bl-text-sm:13px;  --bl-text-md:14px;  --bl-text-lg:16px;
  --bl-text-xl:22px;  --bl-text-2xl:26px; --bl-text-3xl:30px; --bl-text-4xl:44px;
  --bl-leading-tight:1.1; --bl-leading-body:1.57;   /* 22/14 */
  --bl-tracking-caps:.08em;

  /* shape */
  --bl-radius-s:6px;   /* chip */
  --bl-radius-m:12px;  /* pane (Lab had 10) */
  --bl-radius-l:22px;  /* card (Lab had 20) */
  --bl-radius-pill:999px;

  /* depth: rings, not shadows */
  --bl-shadow-1:inset 0 0 0 1px var(--btn-line);
  --bl-shadow-2:var(--shade);
  --bl-shadow-3:0 20px 60px rgba(0,0,0,.6);

  /* motion: canonical runs .15s colour transitions, .2s toast */
  --bl-motion-fast:150ms; --bl-motion-base:200ms; --bl-motion-slow:320ms;

  /* controls: canonical heights */
  --bl-control-h-sm:31px; --bl-control-h-md:36px; --bl-control-h-lg:44px;

  /* layout */
  --bl-measure:68ch;
}
@media (prefers-reduced-motion:reduce){:root{--bl-motion-fast:0ms;--bl-motion-base:0ms;--bl-motion-slow:0ms}}
/* Light: the only two values above that are literals, not tokens */
:root[data-theme="light"]{
  --bl-danger-hover:#a51f1f;                 /* ≈ crit (#c62828) darkened one step */
  --bl-shadow-3:0 20px 60px rgba(0,0,0,.18); /* overlay shadow at light depth */
}
