/* ============================================================
   VENDORED — DO NOT EDIT BY HAND.
   Source of truth: @blunox/tokens (blunox-shared, tokens.css).
   Copied into blunox-auth at build time by the vendor-tokens make
   target so the hosted login/signup pages share the React consoles'
   brand tokens without importing React. Until @blunox/tokens is
   published this is a PLACEHOLDER copied from blunox-data/shared/ui/src;
   it WILL BE REPLACED by the real package export. Edit the source in
   blunox-shared and re-run the vendor-tokens make target, never this file.
   ============================================================ */

/* ============================================================
   BLUNOX design tokens — the console reflection of the prototype
   (Downloads/blunox project). Theming is token-swap, not restyle
   (console.html §7.2): every component reads color from these vars,
   never a hard-coded hex. Light is the default; [data-theme="dark"]
   swaps the value set; [data-palette=…] swaps the single accent.
   ============================================================ */

:root {
  /* surfaces + ink (light) */
  --paper: #fbfaf7;
  --paper2: #f1f0f8;
  --card: #ffffff;
  --ink: #1a1c3a;
  --ink2: #54577a;
  --ink3: #9a9cbb;
  --line: #eae8f4;
  --line2: #dcd8ec;

  /* accent — the Blunox brand coral (matches the marketing site's default
     accent, oklch hue ~28). oklch so the single hue re-lightens cleanly for
     dark without hand-tuned hex ramps. The [data-palette=…] overrides below are
     the dev-only switcher's alternates; production ships this one accent. */
  --ac: oklch(0.7 0.17 28);
  --ac-deep: oklch(0.6 0.19 28);
  --ac-soft: oklch(0.95 0.04 30);
  --on-ac: #ffffff;

  /* fixed status palette (console.html §7.1) */
  --status-review-bg: #fbeed8;
  --status-review-fg: #9a6a14;
  --status-ok-bg: #e4f0e6;
  --status-ok-fg: #3f7a52;
  --status-warn-bg: #f6e2dc;
  --status-warn-fg: #a8472f;

  --maxw: 1200px;
  --sidebar-w: 248px;
  --topbar-h: 60px;

  --font-sans: "Hanken Grotesk", system-ui, -apple-system, sans-serif;
  --font-serif: "Newsreader", Georgia, serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
}

/* ---- accent palettes (app.js PALETTES) ---- */
:root[data-palette="coral"] {
  --ac: oklch(0.7 0.17 28);
  --ac-deep: oklch(0.6 0.19 28);
  --ac-soft: oklch(0.95 0.04 30);
}
:root[data-palette="violet"] {
  --ac: oklch(0.58 0.2 300);
  --ac-deep: oklch(0.5 0.21 302);
  --ac-soft: oklch(0.95 0.04 300);
}
:root[data-palette="teal"] {
  --ac: oklch(0.6 0.13 200);
  --ac-deep: oklch(0.5 0.12 205);
  --ac-soft: oklch(0.95 0.03 200);
}
:root[data-palette="indigo"] {
  --ac: oklch(0.5 0.2 276);
  --ac-deep: oklch(0.43 0.2 278);
  --ac-soft: oklch(0.95 0.04 276);
}

/* ---- dark theme: swap the value set, keep the accent hue ---- */
:root[data-theme="dark"] {
  --paper: #0d0e18;
  --paper2: #14162a;
  --card: #171a2e;
  --ink: #eceaf5;
  --ink2: #a9abc9;
  --ink3: #6f7192;
  --line: #242641;
  --line2: #2f3252;
  --ac-soft: oklch(0.28 0.06 30);
  --status-review-bg: #3a2f16;
  --status-review-fg: #e6c07a;
  --status-ok-bg: #17301f;
  --status-ok-fg: #8fd6a0;
  --status-warn-bg: #37211b;
  --status-warn-fg: #e6a08a;
}
:root[data-theme="dark"][data-palette="coral"] {
  --ac-soft: oklch(0.3 0.06 30);
}
:root[data-theme="dark"][data-palette="violet"] {
  --ac-soft: oklch(0.3 0.07 300);
}
:root[data-theme="dark"][data-palette="teal"] {
  --ac-soft: oklch(0.3 0.05 200);
}
:root[data-theme="dark"][data-palette="indigo"] {
  --ac-soft: oklch(0.3 0.07 276);
}
