/*
 * ClickAutomate — Relationship Atlas: shadcn/ui compatibility bridge
 * GENERATED by tokens/build/build.mjs. Do not hand-edit — regenerate.
 *
 * Redefines the product app's shadcn theme variables in Atlas colours. Import it AFTER the
 * app's own :root/.dark blocks so it wins on source order:
 *
 *     @import "@clickautomate/tokens/shadcn-bridge.css";
 *
 * Values are resolved literals, not var(--ca-*) references. A var() inside a custom-property
 * declaration resolves on the declaring element, and the app's dark scope (.dark) is not an
 * Atlas theme scope — indirection here would silently freeze the dark theme to light values.
 *
 * NOT REDEFINED — no Atlas equivalent exists. These keep the app's own values:
 *   --chart-1 … --chart-7
 *       Atlas has no data-viz palette. Their seven slots are distance-optimised against each other
 *       (--chart-7 chosen at 0.240 minimum OKLab separation, with browser proof committed at
 *       docs/evidence/987-chart-series-browser-proof.md). Series colours must be separable from EACH
 *       OTHER, which is a different constraint from contrast against a background — the Atlas gate
 *       does not measure it. Remapping these would destroy a proof this system cannot reproduce.
 *   --state-{open,pending,closed,archived}-{bg,fg,border,dot}
 *       A conversation lifecycle. The nearest Atlas thing is RunStateChip, which is a JOB lifecycle
 *       (queued/running/retried/failed). Two different state machines, both legitimate — a rename
 *       would merge them and lose the distinction.
 *   --sa-composer-*
 *       Message-composer layout subsystem: editor lines, rail padding, row gaps. No Atlas
 *       equivalent.
 *   --sa-bubble-radius-*, --sa-avatar-*
 *       Chat-surface geometry: message-bubble corner radii and avatar sizes keyed to where the
 *       avatar appears (list row versus thread). No Atlas equivalent.
 *   --sa-icon-{xs,sm,md,lg}
 *       Atlas has no icon scale at all. Adding one is a real design decision, not a mapping: icon
 *       sizes have to agree with control heights and the type scale, and Atlas already fixes both.
 *   --sa-header-height, --sa-list-row-height
 *       App chrome dimensions. Atlas stops at spacing and control heights; how tall a header or a
 *       list row is belongs to the product's own density decisions, not to the brand system.
 *   --sa-text-2xs, --sa-text-reading
 *       Below and beside the Atlas type scale: 2xs is smaller than any Atlas step, and text-reading
 *       is a long-form measure Atlas has no equivalent for. Both are candidates for adopting.
 */

/* ── light ───────────────────────────────────────────────────────────── */
:root {
  --background: #f3f1e8; /* role.bg */
  --foreground: #10241e; /* role.fg */
  --card: #fffefa; /* role.surface */
  --card-foreground: #10241e; /* role.fg */
  --popover: #fffefa; /* role.surface */
  --popover-foreground: #10241e; /* role.fg */
  --primary: #3157f6; /* role.accent */
  --primary-foreground: #fffefa; /* role.fg-on-accent */
  --secondary: #e6e5dd; /* role.bg-subtle */
  --secondary-foreground: #10241e; /* role.fg */
  --muted: #e6e5dd; /* role.bg-subtle */
  --muted-foreground: #46544e; /* role.fg-muted */
  --accent: #e6e5dd; /* role.bg-subtle */
  --accent-foreground: #10241e; /* role.fg */
  --destructive: #931e00; /* role.on-soft-attention */
  --border: #cccdc2; /* role.border */
  --input: #7f8a79; /* role.border-strong */
  --ring: #3157f6; /* role.accent */
  --sidebar: #e6e5dd; /* role.bg-subtle */
  --sidebar-foreground: #10241e; /* role.fg */
  --sidebar-primary: #3157f6; /* role.accent */
  --sidebar-primary-foreground: #fffefa; /* role.fg-on-accent */
  --sidebar-accent: #fffefa; /* role.surface */
  --sidebar-accent-foreground: #10241e; /* role.fg */
  --sidebar-border: #cccdc2; /* role.border */
  --sidebar-ring: #3157f6; /* role.accent */
  --tone-success-bg: #e7ecda; /* role.soft-qualified */
  --tone-success-fg: #465200; /* role.on-soft-qualified */
  --tone-success-border: #d8f36a; /* role.qualified */
  --tone-warning-bg: #f2e8db; /* role.soft-warning */
  --tone-warning-fg: #694500; /* role.on-soft-warning */
  --tone-warning-border: #c98a12; /* role.warning */
  --tone-danger-bg: #fae4df; /* role.soft-attention */
  --tone-danger-fg: #931e00; /* role.on-soft-attention */
  --tone-danger-border: #d9563a; /* role.attention */
  --sa-accent-bg: #e0eaff; /* role.authored-self */
  --sa-accent: #1c33d3; /* role.on-authored-self */
  --sa-ai-bg: #f0e5f3; /* color.agent.soft */
  --sa-ai: #762a87; /* role.on-soft-agent */
  --sa-ai-border: #d9c1df; /* color.agent.border */
  --tone-info-bg: #dfede9; /* role.soft-context */
  --tone-info-fg: #005749; /* role.on-soft-context */
  --tone-info-border: #078f79; /* role.context */
}

/* ── dark ────────────────────────────────────────────────────────────── */
.dark {
  --background: #0b1714; /* role.bg */
  --foreground: #f7f8f3; /* role.fg */
  --card: #14251f; /* role.surface */
  --card-foreground: #f7f8f3; /* role.fg */
  --popover: #14251f; /* role.surface */
  --popover-foreground: #f7f8f3; /* role.fg */
  --primary: #3157f6; /* role.accent */
  --primary-foreground: #f7f8f3; /* role.fg-on-accent */
  --secondary: #10241e; /* role.bg-subtle */
  --secondary-foreground: #f7f8f3; /* role.fg */
  --muted: #10241e; /* role.bg-subtle */
  --muted-foreground: #aebab5; /* role.fg-muted */
  --accent: #10241e; /* role.bg-subtle */
  --accent-foreground: #f7f8f3; /* role.fg */
  --destructive: #ff8469; /* role.on-soft-attention */
  --border: #394b3f; /* role.border */
  --input: #677464; /* role.border-strong */
  --ring: #3157f6; /* role.accent */
  --sidebar: #10241e; /* role.bg-subtle */
  --sidebar-foreground: #f7f8f3; /* role.fg */
  --sidebar-primary: #3157f6; /* role.accent */
  --sidebar-primary-foreground: #f7f8f3; /* role.fg-on-accent */
  --sidebar-accent: #14251f; /* role.surface */
  --sidebar-accent-foreground: #f7f8f3; /* role.fg */
  --sidebar-border: #394b3f; /* role.border */
  --sidebar-ring: #3157f6; /* role.accent */
  --tone-success-bg: #1c2012; /* role.soft-qualified */
  --tone-success-fg: #d8f36a; /* role.on-soft-qualified */
  --tone-success-border: #1f2600; /* role.qualified */
  --tone-warning-bg: #241d13; /* role.soft-warning */
  --tone-warning-fg: #dc9c31; /* role.on-soft-warning */
  --tone-warning-border: #815600; /* role.warning */
  --tone-danger-bg: #291916; /* role.soft-attention */
  --tone-danger-fg: #ff8469; /* role.on-soft-attention */
  --tone-danger-border: #c03f23; /* role.attention */
  --sa-accent-bg: #203ada; /* role.authored-self */
  --sa-accent: #f7f8f3; /* role.on-authored-self */
  --sa-ai-bg: #231a25; /* color.agent.soft */
  --sa-ai: #d090df; /* role.on-soft-agent */
  --sa-ai-border: #402d45; /* color.agent.border */
  --tone-info-bg: #16201e; /* role.soft-context */
  --tone-info-fg: #4bbaa2; /* role.on-soft-context */
  --tone-info-border: #0d917b; /* role.context */
}
