/* Design tokens — موتور تولید، برآورد و بهینه‌سازی ظرفیت حمل بار ریلی
   Continuation of the railway-capacity-marketplace token system: same neutrals, primary
   teal, amber/green/red/purple semantics, spacing and radii, so the two mockups read as
   one product family. Adds an "engine" indigo accent for the math/algorithm layers
   (C_b/C_s/C_r/network, batches, conflicts, solves) that this mockup is about.
   Self-hosts IRANSansXFaNum (the actual Persian font files present in ../fonts/) —
   the marketplace mockup's tokens.css named "Vazirmatn" but never loaded any font file,
   so it silently fell back to system fonts; this file wires up the font that is actually
   available instead of repeating that gap. No dark-mode variant is defined. */

@font-face {
  font-family: "IRANSansXFaNum";
  src: url("../assets/fonts/IRANSansXFaNum-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IRANSansXFaNum";
  src: url("../assets/fonts/IRANSansXFaNum-Medium.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IRANSansXFaNum";
  src: url("../assets/fonts/IRANSansXFaNum-DemiBold.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IRANSansXFaNum";
  src: url("../assets/fonts/IRANSansXFaNum-Bold.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IRANSansXFaNum";
  src: url("../assets/fonts/IRANSansXFaNum-ExtraBold.woff2") format("woff2");
  font-weight: 800; font-style: normal; font-display: swap;
}

:root {
  /* Neutrals */
  --ink-900: #12202b;
  --ink-700: #33424f;
  --ink-500: #5b6b78;
  --ink-300: #aab7c2;
  --ink-150: #d7dee3;
  --ink-100: #e9edf0;
  --ink-50:  #f4f6f7;
  --surface: #ffffff;
  --bg: #eef1f3;

  /* Rail / brand primary (deep signal teal) */
  --primary-800: #0b3a46;
  --primary-700: #0f4c5c;
  --primary-600: #146277;
  --primary-500: #1b7a8c;
  --primary-100: #dcf0f3;
  --primary-50:  #eff8f9;

  /* Cargo amber — commitments, price, tariff */
  --amber-800: #7a4a08;
  --amber-700: #96590a;
  --amber-600: #b3730e;
  --amber-100: #faecd2;
  --amber-50:  #fdf6e9;

  /* Confirmed / committed green */
  --green-800: #164a34;
  --green-700: #206b4b;
  --green-600: #2f7d5c;
  --green-100: #dbf1e4;
  --green-50:  #eff9f3;

  /* Warning / unresolved-policy red */
  --red-800: #7c2a20;
  --red-700: #a13327;
  --red-600: #bf4433;
  --red-100: #fbe3df;
  --red-50:  #fdf1ef;

  /* Demo / practice / pending-decision purple */
  --purple-800: #3c3164;
  --purple-700: #5b4b8a;
  --purple-600: #715fa3;
  --purple-100: #ece7f7;
  --purple-50:  #f5f2fb;

  /* Engine indigo — the math/algorithm layer: formulas, parameters, solves, conflicts */
  --engine-900: #1e1a4d;
  --engine-800: #2a2470;
  --engine-700: #372f8f;
  --engine-600: #453bad;
  --engine-500: #5a4fd1;
  --engine-100: #e7e4fb;
  --engine-50:  #f3f1fd;

  /* Type */
  --font-ui: "IRANSansXFaNum", Tahoma, "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-mono: "Cambria Math", "Courier New", monospace;

  --fs-2xs: 0.6875rem;
  --fs-xs: 0.75rem;
  --fs-sm: 0.8125rem;
  --fs-base: 0.9375rem;
  --fs-md: 1.0625rem;
  --fs-lg: 1.25rem;
  --fs-xl: 1.625rem;
  --fs-2xl: 2rem;

  /* Spacing (8px baseline) */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: 64px;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-pill: 999px;

  --shadow-sm: 0 1px 2px rgba(18, 32, 43, 0.06), 0 1px 1px rgba(18, 32, 43, 0.04);
  --shadow-md: 0 4px 16px rgba(18, 32, 43, 0.08), 0 1px 3px rgba(18, 32, 43, 0.06);
  --shadow-lg: 0 12px 32px rgba(18, 32, 43, 0.14), 0 2px 8px rgba(18, 32, 43, 0.08);

  --header-h: 60px;
  --nav-w: 232px;
  --content-max: 1280px;
}
