/* Zaheen — design tokens
   Extracted from "Zaheen Brand Directions.dc.html" § 3a
   Precision Instrument v1.0. Values not specified in the source are omitted,
   not guessed. */

:root {
  /* ---------- Color · ink ramp (surfaces & text) ---------- */
  --z-ink-900: #0A0B0D;   /* deepest product surface */
  --z-ink-800: #14161A;   /* primary brand dark surface */
  --z-ink-700: #22262C;   /* raised panel / card on dark */
  --z-ink-600: #2E3238;   /* borders on dark, body text on light */
  --z-ink-400: #6B7280;   /* muted / secondary text */
  --z-ink-200: #D9DEDD;   /* borders on light, inverse body text */
  --z-ink-050: #FAFAF9;   /* primary light surface */

  /* ---------- Color · accent ramp (signal cyan) ---------- */
  --z-accent-900: #0C2E36;
  --z-accent-800: #14545F;
  --z-accent-700: #1E7B8B; /* links & small type on light surfaces */
  --z-accent-500: #3AAFC9; /* core accent */
  --z-accent-400: #6FC9DD;
  --z-accent-200: #B3E2EC;
  --z-accent-050: #EAF7FA; /* focus halo */

  /* ---------- Color · semantic roles ---------- */
  --z-color-primary: var(--z-accent-500);   /* primary action, focus, live data */
  --z-color-warning: #E4B33C;               /* drift, needs review */
  --z-color-success: #4F9E76;               /* pass, verified, in tolerance */
  --z-color-error:   #C0392B;               /* halted, out of bounds */

  --z-surface-dark:        var(--z-ink-900);
  --z-surface-dark-raised: var(--z-ink-800);
  --z-surface-dark-card:   var(--z-ink-700);
  --z-surface-light:       var(--z-ink-050);
  --z-surface-light-panel: #F5F6F5;
  --z-border-dark:         var(--z-ink-700);
  --z-border-light:        var(--z-ink-200);
  --z-text-on-dark:        #F5F6F5;
  --z-text-on-light:       var(--z-ink-800);
  --z-text-muted:          var(--z-ink-400);
  --z-link-on-light:       var(--z-accent-700);
  --z-link-on-dark:        var(--z-accent-500);

  /* ---------- Color · status badges (text / background) ---------- */
  --z-badge-running-fg: #14545F;  --z-badge-running-bg: #EAF7FA;
  --z-badge-passed-fg:  #2E5C45;  --z-badge-passed-bg:  #E8F2EC;
  --z-badge-review-fg:  #7A5B10;  --z-badge-review-bg:  #FBF2DC;
  --z-badge-failed-fg:  #8C2B20;  --z-badge-failed-bg:  #F8E7E4;

  /* ---------- Typography · families ---------- */
  --z-font-display: 'Space Grotesk', Helvetica, sans-serif;
  --z-font-text: 'IBM Plex Sans Arabic', sans-serif;   /* both scripts */
  --z-font-mono: 'JetBrains Mono', monospace;

  /* ---------- Typography · weights ---------- */
  --z-weight-display: 700;
  --z-weight-heading: 500;
  --z-weight-body: 400;
  --z-weight-body-strong: 600;
  --z-weight-label: 500;

  /* ---------- Typography · scale (min/max of each band) ---------- */
  --z-size-display-min: 56px;   --z-size-display-max: 96px;
  --z-size-heading-min: 24px;   --z-size-heading-max: 40px;
  --z-size-body-min: 15px;      --z-size-body-max: 17px;
  --z-size-body-ar-min: 16px;   --z-size-body-ar-max: 18px;
  --z-size-label-min: 10px;     --z-size-label-max: 12px;
  --z-size-data-min: 12px;      --z-size-data-max: 14px;

  /* ---------- Typography · tracking ---------- */
  --z-tracking-wordmark: -0.04em;
  --z-tracking-display: -0.035em;
  --z-tracking-heading: -0.02em;
  --z-tracking-body: 0em;
  --z-tracking-label: 0.12em;

  /* ---------- Typography · leading ---------- */
  --z-leading-display: 1;
  --z-leading-heading: 1.15;
  --z-leading-body: 1.65;
  --z-leading-body-ar: 1.8;
  --z-leading-data: 1.6;

  /* Arabic sets at this multiple of the Latin size in the same block */
  --z-arabic-optical-ratio: 1.08;

  /* ---------- Spacing (the only permitted steps) ---------- */
  --z-space-1: 4px;
  --z-space-2: 8px;
  --z-space-3: 14px;
  --z-space-4: 22px;
  --z-space-5: 36px;

  /* ---------- Radius ---------- */
  --z-radius-0: 0px;    /* surfaces, buttons, panels */
  --z-radius-1: 4px;
  --z-radius-2: 8px;
  --z-radius-3: 15px;   /* contained mark, app icon */

  /* ---------- Mark geometry (unitless ratios of the 8u box) ---------- */
  --z-mark-grid-units: 8;
  --z-mark-stroke-angle: 45deg;      /* locked; left -45deg, right +45deg */
  --z-mark-stroke-units: 1;          /* stroke width in u */
  --z-mark-apex-offset-units: 1.5;   /* apex vertex, from top of box */
  --z-mark-arm-end-offset-units: 4.5;/* where both arms terminate */
  --z-mark-shadow-width-units: 7;
  --z-mark-shadow-inset-units: 0.5;  /* centred: equal inset each side */
  --z-mark-shadow-height-units: 1;
  --z-mark-shadow-base-offset-units: 1;
  --z-mark-shadow-opacity-on-dark: 0.32;
  --z-mark-shadow-opacity-on-light: 0.22;
  --z-mark-clearspace-units: 1;      /* lockup: 2 */
  --z-mark-lockup-clearspace-units: 2;
  --z-mark-min-size-screen: 16px;    /* shadow bar dropped at this size */
  --z-mark-min-size-print: 5mm;
  --z-mark-viewbox-bare: 80;         /* 64u geometry box + 1u margin each side */

  /* ---------- Motion ---------- */
  --z-ease: cubic-bezier(0.2, 0, 0, 1);
  --z-duration-hover: 120ms;
  --z-duration-panel: 240ms;
  --z-duration-page: 320ms;
  --z-duration-logo-stroke: 240ms;
  --z-logo-stroke-stagger: 60ms;
  --z-duration-pulse: 1200ms;

  /* ---------- Print constants ---------- */
  --z-card-width: 85mm;
  --z-card-height: 55mm;
}
