/* ============================================================
   GENERATED — DO NOT EDIT BY HAND.
   Source: shared/web/tokens/tokens.css (@blunox/tokens), copied by
   `make -C auth tokens` because go:embed cannot reach outside the
   module. CI fails if this differs from the source.
   ============================================================ */

/* ============================================================
   BLUNOX design tokens. 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.

   The design language (D-445): a warm off-white shell around one
   white working panel, 13px Inter at two weights (400/500), neutral
   ink, alpha-black hairlines instead of tinted greys, and a single
   Prussian-blue accent reserved for the primary action and live state.
   ============================================================ */

:root {
  /* surfaces + ink (light) */
  --paper: #f5f5f5;   /* elevated fill: hover, chips, quiet surfaces */
  --paper2: #f8f7f6;  /* shell: the chrome behind the working panel */
  --card: #ffffff;    /* the working panel and anything raised on it */
  --ink: #0a0a0a;
  --ink2: #444444;
  --ink3: #686868;
  --body: #1d1c18;    /* nav and running text: a warm near-black */
  --subtle: #64635e;  /* section labels, timestamps */
  --line: rgba(0, 0, 0, 0.07);
  --line2: rgba(0, 0, 0, 0.12);
  --hair: rgba(0, 0, 0, 0.05);   /* table row rules */
  --hover: rgba(0, 0, 0, 0.03);
  --press: rgba(0, 0, 0, 0.05);

  /* accent — one Prussian blue (#003153; was deep green #004225), for the primary action and live/active state
     only. */
  --ac: #003153;
  --ac-deep: #003153;
  --ac-soft: rgba(0, 49, 83, 0.08);
  --on-ac: #ffffff;

  /* status: ok is the live/healthy dot; the bg/fg pairs tint chips and banners */
  --ok: #15803d;
  --status-ok-bg: rgba(21, 128, 61, 0.12);
  --status-ok-fg: #166534;
  --status-review-bg: rgba(180, 83, 9, 0.12);
  --status-review-fg: #92400e;
  --status-warn-bg: rgba(185, 28, 28, 0.12);
  --status-warn-fg: #991b1b;

  /* a person's two-letter avatar mark */
  --avatar-bg: #e7e0d2;
  --avatar-fg: #5c4a22;

  /* elevation: the working panel, a raised control, a popover */
  --shadow-panel: 0 2px 2px rgba(0, 0, 0, 0.05);
  --shadow-control: 0 1px 2px rgba(28, 27, 24, 0.05), 0 1px 1px rgba(28, 27, 24, 0.03);
  --shadow-pop: 0 16px 40px -16px rgba(28, 27, 24, 0.28), 0 2px 6px rgba(28, 27, 24, 0.06);

  --maxw: 1200px;
  --sidebar-w: 240px;
  --topbar-h: 48px;

  /* Inter is the face; consumers load it (Google Fonts, weights 400/500). */
  --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --font-serif: "Newsreader", Georgia, serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
}

/* ---- dark theme: the same structure on warm charcoal ---- */
:root[data-theme="dark"] {
  --paper: #232220;
  --paper2: #141413;
  --card: #1b1a19;
  --ink: #f2f1ee;
  --ink2: #c4c2bc;
  --ink3: #8f8d87;
  --body: #e8e6e1;
  --subtle: #9a978f;
  --line: rgba(255, 255, 255, 0.08);
  --line2: rgba(255, 255, 255, 0.14);
  --hair: rgba(255, 255, 255, 0.06);
  --hover: rgba(255, 255, 255, 0.04);
  --press: rgba(255, 255, 255, 0.07);
  --ac: #2f6a8e;
  --ac-deep: #88b9dd;
  --ac-soft: rgba(47, 106, 142, 0.18);
  --ok: #34c472;
  --status-ok-bg: rgba(52, 196, 114, 0.14);
  --status-ok-fg: #8fe0b0;
  --status-review-bg: rgba(245, 158, 11, 0.14);
  --status-review-fg: #f5c26b;
  --status-warn-bg: rgba(248, 113, 113, 0.14);
  --status-warn-fg: #f8a5a5;
  --avatar-bg: #3a342a;
  --avatar-fg: #e7d9b8;
}
