/* ==========================================================
   IROZON DESIGN TOKENS — Semantic (light / default)
   Role-based tokens components should consume instead of raw hex.
   These are the LIGHT-theme values; themes.css overrides the subset
   that changes for dark mode. Depends on primitives.css.
   ========================================================== */
:root {
  --color-canvas: var(--irozon-white);
  --color-surface: #ffffff;
  --color-surface-elevated: #ffffff;
  --color-surface-subtle: #f7f8f7;

  --color-border: #e5e8e7;
  --color-border-strong: #c8d0cd;

  --color-text-primary: #1d2226;
  --color-text-secondary: #33383f;
  --color-text-muted: #6f777d;

  /* Primary is semantic and theme-adaptive, not a fixed brand color —
     it resolves to whatever anchors the strongest action on the
     current surface. On light surfaces that's Ink (Green reads as
     generic/SaaS-like here); themes.css overrides this trio to Green
     for dark surfaces, where Ink no longer has enough presence and
     Green becomes the strong action. --color-on-action-primary is the
     paired foreground — White on light/Ink, Ink on dark/Green (never
     White on Green; Green is bright enough that Ink reads with
     materially better contrast). Hover/active are a plain tonal
     lift/press on the same primitive, never a hue shift toward Green. */
  --color-action-primary: var(--irozon-ink);
  --color-action-primary-hover: color-mix(in srgb, var(--irozon-ink) 88%, white 12%);
  --color-action-primary-active: color-mix(in srgb, var(--irozon-ink) 88%, black 12%);
  --color-on-action-primary: var(--irozon-white);

  --color-focus: var(--irozon-green);

  /* Link text carries real brand identity, not the generic primary
     foreground — but raw --irozon-green (~2.2:1 against White) fails
     WCAG AA for normal-sized text. This is Green mixed 55/45 toward
     Ink, landing at ~4.9:1 against White (computed via sRGB channel
     interpolation, i.e. exactly how color-mix(in srgb, ...) resolves
     it) — comfortably over the 4.5:1 floor while still reading as
     Green, not Ink. Dark surfaces don't have this problem (Lime has
     excellent contrast against the Ink-family canvas), so
     themes.css swaps both tokens to the pure primitive instead of
     reusing this light-only mix. Decoration stays the pure primitive
     here since an underline isn't held to text contrast minimums. */
  --color-link: color-mix(in srgb, var(--irozon-green) 55%, var(--irozon-ink) 45%);
  --color-link-decoration: var(--irozon-green);

  /* Scrim behind a modal/sheet — reuses the exact value the mobile
     sidebar backdrop already established (site.css .sidebar-backdrop),
     promoted here so Dialog/Sheet don't hardcode a second copy of it.
     Theme-invariant on purpose: a dimming layer reads the same way in
     light or dark. */
  --color-overlay: rgba(3, 10, 13, 0.45);

  --color-success: var(--irozon-green);
  --color-warning: #e2a63b;
  --color-error: #ff6b4a;

  --gradient-brand: linear-gradient(135deg, #9be15d 0%, #02c685 100%);
}
