/* SkyTerra global design tokens — the ONE shared substrate for new UI work.
 *
 * Added 2026-08-15 as part of the mobile revitalization (see
 * docs/ui-design-doctrine.md for the full doctrine this encodes).
 *
 * Contract:
 *  - This file only DEFINES custom properties. It restyles nothing by itself,
 *    so loading it anywhere is safe and side-effect-free.
 *  - Components reference these semantic tokens (--st-*) instead of raw hex.
 *    Feature-scoped islands (--calm-*, --sck-*, --cx-*) may alias onto these,
 *    but never mutate them.
 *  - Neutral ramp is SLATE. The legacy #2c3e50/#5a6c7d/#e1e8ed ramp is being
 *    retired: do not reference it in new work.
 *  - Light theme only (CLAUDE.md mandate).
 */
:root {
  /* brand */
  --st-navy: #1a365d;
  --st-navy-grad-end: #245f92;          /* canonical button/FAB gradient terminus */
  --st-navy-deep: #12293F;              /* calm shell navy */
  --st-blue: #0077B6;
  --st-blue-bright: #0096D6;            /* focus ring + non-text accents only */
  --st-blue-action: #2563EB;            /* AA-safe action/active text on white (5.17:1) */
  --st-blue-deep: #004A99;
  --st-sky: #e8f0fa;
  --st-sky-select: #dbeafe;             /* selection wash / bulk bars (never black) */

  /* slate neutral ramp (the winner; retire legacy grays) */
  --st-ink: #0f172a;
  --st-ink-2: #1e293b;
  --st-slate: #475569;
  --st-slate-2: #64748b;
  --st-muted: #63707e;                  /* AA-safe muted text on white (5.06:1); NOT #8895a3 */
  --st-mist: #94a3b8;                   /* non-text only: icons, hairlines on dark */
  --st-line: #e2e8f0;
  --st-wash: #f1f5f9;
  --st-bg: #f8fafc;
  --st-surface: #ffffff;

  /* semantic status (color = state, never decoration) */
  --st-success: #1a7f48;
  --st-success-soft: #1f9d64;           /* icon/badge fills only, fails AA as text */
  --st-danger: #b42318;
  --st-danger-strong: #c0392b;
  --st-warn: #f59e0b;                   /* warning semantic ONLY; never decorative amber */
  --st-warn-bg: #FFFBEB;                /* never white text on the warn fill */

  /* type */
  --st-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --st-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* spacing (8pt, tight rhythm preferred) */
  --st-sp-1: 4px; --st-sp-2: 8px; --st-sp-3: 12px; --st-sp-4: 16px;
  --st-sp-5: 24px; --st-sp-6: 32px; --st-sp-8: 48px;

  /* shape + depth (hairline elevation, quiet chrome) */
  --st-r-input: 10px;
  --st-r-card: 14px;
  --st-r-pill: 999px;
  --st-shadow-soft: 0 1px 2px rgba(18, 41, 63, .06);
  --st-shadow-card: 0 1px 2px rgba(15, 37, 64, .05), 0 4px 14px rgba(15, 37, 64, .05);

  /* touch (see doctrine: 44px gated primaries, 36px secondary, 24px AA floor) */
  --st-tap-primary: 44px;
  --st-tap-secondary: 36px;
  --st-tap-floor: 24px;

  /* z-ladder (settled after real collisions; do not free-hand new z-indexes) */
  --st-z-bottom-nav: 2101;
  --st-z-top-bar: 2102;
  --st-z-sheet: 10000;
}
