/*
 * Design tokens — Relay brand (teal/navy), applied over the token structure
 * originally derived from the ui-ux-pro-max skill
 * (https://github.com/nextlevelbuilder/ui-ux-pro-max-skill, see LICENSE).
 *
 * Product type:  Analytics Dashboard  (colors.csv row 7) — structure kept
 * Style:         Minimalism & Swiss   (styles.csv row 1) — structure kept
 * Typography:    Poppins (headings) + Manrope (body) — Relay brand pairing,
 *                deliberately not Inter (see architecture_blueprint.md,
 *                "Design & brand direction")
 * Color tokens:  Replaced the Analytics-Dashboard blue with the Relay
 *                palette (see blueprint) — dark ink/navy for primary actions
 *                and text, teal as the single accent, warm off-white surface.
 *
 * Semantic token names follow the skill's shadcn-style system — only values
 * changed, not the token contract, so no component markup needed to change.
 */

:root {
  color-scheme: light;

  /* Surfaces & text */
  --background: #F5F8F9;
  --foreground: #0E333B;
  --card: #FFFFFF;
  --card-foreground: #0E333B;
  --muted: #EAF3F2;
  --muted-foreground: #5B6B70;
  --border: #E7EEF0;

  /* Brand / actions (Relay palette) */
  --primary: #0B2C33;
  --primary-foreground: #FFFFFF;
  --primary-hover: #092127;
  --secondary: #14B8A6;
  --secondary-foreground: #04211F;
  --accent: #14B8A6;
  --accent-foreground: #04211F;

  /* Status */
  --success: #16A34A;
  --success-surface: #DCFCE7;
  --warning: #D97706;
  --warning-surface: #FEF3C7;
  --destructive: #DC2626;
  --destructive-foreground: #FFFFFF;

  /* Focus ring (accessibility rule #1) */
  --ring: #14B8A6;

  /*
   * Job / pipeline status. Derived from the palette above rather than given
   * new hex values, so the brand stays the single source of colour. Components
   * reference these names only — the dashboard previously carried its own
   * status hex codes inline, which is what rule #6 forbids.
   */
  --status-idle: var(--muted-foreground);
  --status-idle-surface: var(--muted);
  --status-running: var(--secondary);
  --status-running-surface: #D9F2EE;
  --status-done: var(--success);
  --status-done-surface: var(--success-surface);
  --status-review: var(--warning);
  --status-review-surface: var(--warning-surface);
  --status-blocked: var(--destructive);
  --status-blocked-surface: #FEE2E2;

  /* 4 / 8pt spacing scale (layout rule: spacing-scale) */
  --s1: 4px;
  --s2: 8px;
  --s3: 12px;
  --s4: 16px;
  --s5: 24px;
  --s6: 32px;
  --s7: 48px;

  /* Radius — Swiss-modern */
  --radius-sm: 8px;
  --radius: 10px;
  --radius-lg: 14px;
  --radius-pill: 999px;

  /* Elevation — minimal, consistent scale (style rule: elevation-consistent) */
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
  --shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);
  --shadow-md: 0 6px 18px rgba(15, 23, 42, .08);

  /* Motion 150–300ms; respects reduced-motion below */
  --t-fast: 150ms cubic-bezier(.4, 0, .2, 1);
  --t: 220ms cubic-bezier(.4, 0, .2, 1);

  /* Layout */
  --container: 1200px;
  --sidebar: 340px;

  --font-sans: Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-heading: Poppins, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/*
 * Light Swiss is the forced default — the app is intentionally a LIGHT,
 * clean, professional dashboard. We do NOT switch to dark based on the OS
 * setting (prefers-color-scheme), so the design looks identical regardless
 * of the user's system theme. (Dark pairing tokens kept in git history.)
 */

@media (prefers-reduced-motion: reduce) {
  :root {
    --t-fast: 0ms;
    --t: 0ms;
  }
}
