/* ══════════════════════════════════════════════════════════════════════════
   brand-tokens.css — the SINGLE owner of Probily's brand primitive values.

   The Card (and, at G2, every shared Card) consumes PatternFly `--pf-t--global--*`
   tokens. `pshell.css` maps those PatternFly tokens onto Probily's brand
   primitives (`--pf-t--global--text--color--regular: var(--text-secondary)`,
   `…--font--family--body: var(--font-sans)`, …). This file OWNS the values those
   primitives resolve to — as literals, independent of `tokens-bureau.css`.

   Why this exists: token independence must come from a SINGLE theme owner, not
   from the Card locally overriding PatternFly's global tokens at `.dcard` scope.
   Loaded after `tokens-bureau.css` (via the page's extra-CSS bundle), its `:root`
   primitives win, so PatternFly tokens — and the Card's direct `--et-*`/status
   references — resolve HERE, never through tokens-bureau. tokens-bureau's own
   copies of these primitives become redundant and are deleted at the end of the
   consolidation program (G4). The cabinet is dark-only (`data-theme` is never
   set), so one palette is exact; a light palette would be added the same way
   behind `:root[data-theme="light"]` if it existed.

   Values are the exact resolved dark-Bureau colours (measured on the approved
   Organization Reference), so adopting this owner is pixel-identical.
   ══════════════════════════════════════════════════════════════════════════ */
:root {
  /* Type families */
  --font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Brand accent (amber) */
  --brand-400: oklch(0.84 0.14 82);
  --brand-500: oklch(0.78 0.155 78);
  --brand-600: oklch(0.69 0.16 70);

  /* Surfaces (dark) */
  --gray-1000: oklch(0.08 0.004 264);
  --bg-0: oklch(0.08 0.004 264);
  --bg-1: oklch(0.12 0.005 264);
  --bg-2: oklch(0.175 0.007 264);
  --bg-3: oklch(0.245 0.008 264);

  /* Text */
  --text-primary: oklch(0.97 0.003 264);
  --text-secondary: oklch(0.83 0.01 70);
  --text-tertiary: oklch(0.72 0.013 70);
  --text-disabled: oklch(0.62 0.012 70);

  /* Borders — alpha over the dark surface */
  --border-subtle: color-mix(in oklch, white 6%, transparent);
  --border-default: color-mix(in oklch, white 9%, transparent);
  --border-strong: color-mix(in oklch, white 14%, transparent);

  /* Semantic status — the Bureau green / amber / red product palette */
  --success: oklch(0.72 0.16 145);
  --warning: oklch(0.82 0.15 75);
  --danger: oklch(0.63 0.22 22);
  --info: oklch(0.68 0.13 232);      /* verify/in-progress blue */
  --money: oklch(0.82 0.18 150);     /* financial dollar-green */

  /* Entity-type palette — parity with the graph's type colours */
  --et-person: oklch(0.74 0.13 30);
  --et-company: oklch(0.72 0.13 280);
  --et-outlet: rgb(255, 210, 63);
  --et-author: rgb(63, 224, 138);
  --et-place: rgb(34, 211, 238);
  --et-crime: rgb(255, 91, 91);
  --et-materiel: rgb(201, 162, 39);
  --et-statement: rgb(238, 240, 244);
}

/* ── PatternFly → brand mapping ──────────────────────────────────────────────
   The same re-pointing pshell.css performs, carried HERE so a Card surface that
   does NOT load pshell.css — the ANONYMOUS public Dossier loads the PatternFly
   vendor tokens but not the app shell — still resolves PatternFly tokens to the
   Bureau brand (never PatternFly's Red Hat / light defaults). On authed surfaces
   pshell.css maps the same tokens to the same primitives, so the two agree; at
   G3 pshell's copy is removed and this becomes the sole map. Values identical to
   pshell.css §1 — this is a move of ownership, not a visual change. */
:root {
  --pf-t--global--background--color--primary--default: var(--bg-0);
  --pf-t--global--background--color--secondary--default: var(--bg-1);
  --pf-t--global--background--color--control--default: transparent;
  --pf-t--global--background--color--action--plain--default: transparent;
  --pf-t--global--background--color--action--plain--hover: color-mix(in oklch, white 5%, transparent);
  --pf-t--global--background--color--action--plain--clicked: color-mix(in oklch, white 8%, transparent);
  --pf-t--global--background--color--floating--default: var(--bg-2);

  --pf-t--global--text--color--regular: var(--text-secondary);
  --pf-t--global--text--color--subtle: var(--text-tertiary);
  --pf-t--global--text--color--disabled: var(--text-disabled);
  --pf-t--global--text--color--brand--default: var(--brand-500);
  --pf-t--global--text--color--brand--hover: var(--brand-400);
  --pf-t--global--text--color--on-brand--default: var(--gray-1000);

  --pf-t--global--icon--color--regular: var(--text-tertiary);
  --pf-t--global--icon--color--subtle: var(--text-disabled);
  --pf-t--global--icon--color--brand--default: var(--brand-500);

  --pf-t--global--border--color--default: var(--border-subtle);
  --pf-t--global--border--color--hover: var(--border-default);
  --pf-t--global--border--color--high-contrast: var(--border-strong);
  --pf-t--global--border--color--brand--default: var(--brand-600);
  --pf-t--global--border--width--regular: 1px;
  --pf-t--global--border--radius--small: 6px;
  --pf-t--global--border--radius--medium: 9px;
  --pf-t--global--border--radius--large: 12px;
  --pf-t--global--border--radius--pill: 999px;

  --pf-t--global--font--family--body: var(--font-sans);
  --pf-t--global--font--family--heading: var(--font-sans);
  --pf-t--global--font--family--mono: var(--font-mono);
  --pf-t--global--font--size--body--default: 0.875rem;
  --pf-t--global--font--size--body--sm: 0.8125rem;
  --pf-t--global--font--weight--body--default: 450;
  --pf-t--global--font--weight--body--bold: 600;

  /* PatternFly 6.6 type + spacing scale, as literals (values verbatim from
     vendor/patternfly-6.6.0-tokens.css) so every surface that loads brand-tokens
     — including the standalone HTML Report, which does NOT load the PF vendor
     token file — resolves the full Card scale. On surfaces that DO load the
     vendor file (public Dossier, app shell) these are identical, so it is a
     no-op there; here it is what makes the shared Card self-sufficient. */
  --pf-t--global--font--size--xs: 0.75rem;               /* 12 */
  --pf-t--global--font--size--md: 1rem;                  /* 16 */
  --pf-t--global--font--size--lg: 1.125rem;              /* 18 */
  --pf-t--global--font--size--2xl: 1.5rem;               /* 24 */
  --pf-t--global--font--size--4xl: 2.25rem;              /* 36 */
  --pf-t--global--font--size--heading--h1: 1.5rem;       /* 24 */
  --pf-t--global--font--size--heading--h3: 1.125rem;     /* 18 */
  --pf-t--global--font--line-height--body: 1.5;
  --pf-t--global--font--line-height--heading: 1.3;
  --pf-t--global--spacer--xs: 0.25rem;                   /* 4  */
  --pf-t--global--spacer--sm: 0.5rem;                    /* 8  */
  --pf-t--global--spacer--md: 1rem;                      /* 16 */
  --pf-t--global--spacer--lg: 1.5rem;                    /* 24 */
  --pf-t--global--spacer--xl: 2rem;                      /* 32 */
  --pf-t--global--spacer--2xl: 3rem;                     /* 48 */
  --pf-t--global--spacer--3xl: 4rem;                     /* 64 */

  --pf-t--global--color--brand--default: var(--brand-500);
}
/* Probily's interactive web product is DARK-ONLY. There is deliberately no
   `:root[data-theme="light"]` block: the legacy light theme, its token
   overrides, the day/night toggle and its JavaScript are removed in G2b, not
   carried into the PatternFly system. */
