{
  "$schema": "https://design.bhd.om/tokens.schema.json",
  "name": "BHD Group design tokens",
  "url": "https://design.bhd.om/tokens.json",
  "generatedFrom": "src/tokens.css",
  "generator": "scripts/build_tokens_json.py",
  "note": "Generated file. Edit tokens.css, then run npm run build:tokens.",
  "brand": {
    "primary": "#009bc1",
    "primaryName": "BHD cyan",
    "primaryDark": "#26b4d3",
    "font": "IBM Plex Sans Arabic",
    "fontSource": "https://fonts.bhd.om",
    "iconSource": "https://design.bhd.om/fa (FontAwesome 7.2 Pro, self-hosted)",
    "currency": "OMR, 3 decimals, official Central Bank of Oman rial sign via BHDCurrency"
  },
  "palette": {
    "bhd": {
      "50": "#e6f7fb",
      "100": "#c2ecf4",
      "200": "#99dfec",
      "300": "#5fcbe0",
      "400": "#26b4d3",
      "500": "#009bc1",
      "600": "#0086a8",
      "700": "#006f8c",
      "800": "#005a72",
      "900": "#094a5d",
      "950": "#04303d"
    },
    "zinc": {
      "50": "oklch(98.5% 0.001 286)",
      "100": "oklch(96.7% 0.002 286)",
      "200": "oklch(92.0% 0.004 286)",
      "300": "oklch(87.1% 0.006 286)",
      "400": "oklch(70.7% 0.014 286)",
      "500": "oklch(55.2% 0.016 286)",
      "600": "oklch(44.2% 0.018 286)",
      "700": "oklch(37.0% 0.014 286)",
      "800": "oklch(27.4% 0.010 286)",
      "900": "oklch(21.0% 0.008 286)",
      "950": "oklch(14.1% 0.006 286)"
    }
  },
  "semantic": {
    "light": {
      "background": "#ffffff",
      "foreground": "oklch(14.1% 0.006 286)",
      "card": "#ffffff",
      "card-foreground": "oklch(14.1% 0.006 286)",
      "popover": "#ffffff",
      "popover-foreground": "oklch(14.1% 0.006 286)",
      "primary": "#009bc1",
      "primary-foreground": "#ffffff",
      "secondary": "oklch(96.7% 0.002 286)",
      "secondary-foreground": "oklch(21.0% 0.008 286)",
      "muted": "oklch(96.7% 0.002 286)",
      "muted-foreground": "oklch(55.2% 0.016 286)",
      "accent": "oklch(96.7% 0.002 286)",
      "accent-foreground": "oklch(21.0% 0.008 286)",
      "destructive": "#dc2626",
      "destructive-foreground": "#ffffff",
      "success": "#16a34a",
      "warning": "#f59e0b",
      "mono": "oklch(14.1% 0.006 286)",
      "mono-foreground": "#ffffff",
      "border": "oklch(94% 0.004 286)",
      "input": "oklch(92.0% 0.004 286)",
      "ring": "#009bc1"
    },
    "dark": {
      "background": "oklch(14.1% 0.006 286)",
      "foreground": "oklch(98.5% 0.001 286)",
      "card": "oklch(14.1% 0.006 286)",
      "card-foreground": "oklch(98.5% 0.001 286)",
      "popover": "oklch(14.1% 0.006 286)",
      "popover-foreground": "oklch(98.5% 0.001 286)",
      "primary": "#26b4d3",
      "primary-foreground": "#04303d",
      "secondary": "oklch(27.4% 0.010 286)",
      "secondary-foreground": "oklch(98.5% 0.001 286)",
      "muted": "oklch(21.0% 0.008 286)",
      "muted-foreground": "oklch(55.2% 0.016 286)",
      "accent": "oklch(21.0% 0.008 286)",
      "accent-foreground": "oklch(98.5% 0.001 286)",
      "destructive": "#dc2626",
      "destructive-foreground": "#ffffff",
      "success": "#16a34a",
      "warning": "#f59e0b",
      "mono": "oklch(87.1% 0.006 286)",
      "mono-foreground": "#000000",
      "border": "oklch(27.4% 0.010 286)",
      "input": "oklch(27.4% 0.010 286)",
      "ring": "#26b4d3"
    }
  },
  "radius": {
    "base": "0.5rem",
    "xl": "calc(var(--radius) + 4px)",
    "lg": "var(--radius)",
    "md": "calc(var(--radius) - 2px)",
    "sm": "calc(var(--radius) - 4px)"
  },
  "shadow": {
    "card": "0 1px 2px 0 rgb(0 0 0 / 0.04), 0 1px 3px 0 rgb(0 0 0 / 0.04)",
    "pop": "0 4px 12px -2px rgb(0 0 0 / 0.06), 0 2px 4px -1px rgb(0 0 0 / 0.04)"
  },
  "layout": {
    "header-height": "60px",
    "sidebar-width": "264px",
    "sidebar-width-collapsed": "80px"
  },
  "motion": {
    "duration": {
      "instant": "90ms",
      "fast": "120ms",
      "base": "180ms",
      "slow": "220ms",
      "deliberate": "480ms"
    },
    "easing": {
      "standard": "cubic-bezier(.2, 0, 0, 1)",
      "out": "cubic-bezier(0, 0, .2, 1)",
      "in": "cubic-bezier(.4, 0, 1, 1)",
      "spring": "cubic-bezier(.2, .8, .2, 1)"
    },
    "rule": "Animate opacity and transform only. Always honour prefers-reduced-motion."
  },
  "rules": [
    "Cyan marks action, focus, selection or live status. It is not decoration.",
    "Never letter-space Arabic. It breaks the cursive join. Use kashida (U+0640) for emphasis.",
    "Icons come from FontAwesome 7.2 Pro at design.bhd.om/fa. Never emojis.",
    "Fonts load from fonts.bhd.om. Never fonts.googleapis.com or fonts.gstatic.com.",
    "Prefer borders and surface contrast to shadows. Elevation is for overlays only.",
    "Every OMR amount uses the official rial sign through BHDCurrency, on the left, 3 decimals.",
    "A model-driven wait uses a named BHD Orb state, not a generic spinner."
  ]
}
