/*
 * DGMTS design tokens — THE single source of visual truth (Phase B, 2026-08-12).
 *
 * ⚠️ EVERY VALUE HERE IS A PLACEHOLDER. Talha has not signed off on any
 * color or direction (including this blue). These are the starting values
 * promoted from ui/mockups/tech-home.html so the redesign has one swap
 * point: change a line here, the whole app changes. Design sessions edit
 * THIS FILE — never hardcode a color/size/radius in a screen again.
 *
 * Adoption: existing pages still use their legacy stylesheets; each screen
 * starts consuming tokens as it is rebuilt (Phase C). New screens MUST use
 * tokens from day one.
 *
 * ⚠️ COLOUR FOR THE REBUILT APPS LIVES IN ui/shared/palette.css — the approved
 * Clay + Harbor directions, shared by the client portal and the technician
 * sieve screen (2026-08-13). It is a file the React bundles @import, because
 * each app is built from its own Vite root and cannot see /assets, and neither
 * can the mock harness that UI changes are verified in. This file keeps the
 * primitives below (type scale, spacing, radii, elevation) and the legacy
 * placeholder colours the not-yet-rebuilt screens still read.
 */
:root {
  /* ---- Brand (placeholder — Talha decides in design sessions) ---- */
  --brand: #3b82f6;
  --brand-soft: #dbeafe;
  --brand-ink: #0a1633;        /* deep navy — topbar/sidebar surfaces */
  --brand-ink-2: #11203f;

  /* ---- Semantic status ---- */
  --ok: #22c55e;               /* reconciled from the shell 2026-08-12 — placeholder pending design sign-off */
  --ok-soft: #d1fae5;
  --warn: #f59e0b;
  --warn-soft: #fef3c7;
  --danger: #b91c1c;           /* reconciled from the shell 2026-08-12 — placeholder pending design sign-off */
  --danger-soft: #fee2e2;
  --accent-alt: #a78bfa;

  /* ---- Neutrals ---- */
  --ink: #0f172a;              /* primary text */
  --muted: #64748b;            /* secondary text — reconciled from the shell 2026-08-12; placeholder pending design sign-off */
  --line: #e2e8f0;             /* borders/dividers */
  --bg: #eef2f8;               /* page background — reconciled from the shell 2026-08-12; placeholder pending design sign-off */
  --card: #ffffff;             /* surface — reconciled from the shell 2026-08-12; placeholder pending design sign-off */

  /* ---- Typography ---- */
  --font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-serif: "Source Serif 4", Georgia, serif;   /* Clay direction voice (client portal first, 2026-08-12) */
  --text-base: 14px;
  --text-sm: 12.5px;
  --text-lg: 17px;
  --text-title: 24px;
  --leading: 1.5;

  /* ---- Shape & space ---- */
  --radius: 16px;              /* reconciled from the shell 2026-08-12 — placeholder pending design sign-off */
  --radius-sm: 7px;
  --radius-pill: 999px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;

  /* ---- Elevation ---- */
  --shadow-card: 0 1px 2px rgba(15, 23, 42, 0.06), 0 4px 12px rgba(15, 23, 42, 0.05);
  --shadow-pop: 0 8px 30px rgba(15, 23, 42, 0.16);
}

/*
 * Dark mode (DECISION, Phase B): theming will be a token swap at this CSS
 * layer when the redesign gets to it — NOT a per-app JS prop. The dead
 * getIsDarkMode mount prop was removed (0 apps ever consumed it). The
 * shell's existing body.themeDark setting keeps working against the legacy
 * styles until Phase C rebuilds theming on tokens.
 */
