@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Serif:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* ============================================================
   Design System — CSS Custom Properties
   Platform: Web | Mode: auto (light/dark)
   ============================================================ */

:root {


  /* ── Base Palette ──────────────────────────────────── */


  /* ── Neutral ───────────────────────────────────────── */
  --base-neutral-900:  #131513;
  --base-neutral-800:  #1B2A1C;
  --base-neutral-700:  #2E3A2F;
  --base-neutral-600:  #4A574B;
  --base-neutral-500:  #637264;
  --base-neutral-400:  #93A094;
  --base-neutral-300:  #BCC8BA;
  --base-neutral-200:  #DBE5D8;
  --base-neutral-100:  #F6F8F5;
  --base-neutral-50:  #FFFFFF;


  /* ── Primary ───────────────────────────────────────── */
  --base-primary-50:  #F1F9F1;
  --base-primary-100:  #CEEACF;
  --base-primary-200:  #A6D9A9;
  --base-primary-300:  #78C57C;
  --base-primary-400:  #48A94D;
  --base-primary-500:  #2F6F32;
  --base-primary-600:  #245827;
  --base-primary-700:  #1D4B22;
  --base-primary-800:  #18401D;
  --base-primary-900:  #143518;


  /* ── Secondary ─────────────────────────────────────── */
  --base-secondary-50:  #F9F6F1;
  --base-secondary-100:  #ECE3D2;
  --base-secondary-200:  #E4D0A7;
  --base-secondary-300:  #E1BC6F;
  --base-secondary-400:  #E1A62B;
  --base-secondary-500:  #B07D12;
  --base-secondary-600:  #89630B;
  --base-secondary-700:  #725407;
  --base-secondary-800:  #5D4605;
  --base-secondary-900:  #4A3903;


  /* ── Tertiary ──────────────────────────────────────── */
  --base-tertiary-50:  #F9F2F1;
  --base-tertiary-100:  #EDD9D5;
  --base-tertiary-200:  #DFBCB5;
  --base-tertiary-300:  #D79688;
  --base-tertiary-400:  #D06851;
  --base-tertiary-500:  #B4432A;
  --base-tertiary-600:  #89331D;
  --base-tertiary-700:  #702A16;
  --base-tertiary-800:  #592311;
  --base-tertiary-900:  #441B0C;


  /* ── Quaternary ────────────────────────────────────── */
  --base-quaternary-50:  #F1F9F8;
  --base-quaternary-100:  #CDEAE8;
  --base-quaternary-200:  #A5D9D5;
  --base-quaternary-300:  #6FCCC6;
  --base-quaternary-400:  #36B7AF;
  --base-quaternary-500:  #1F7A74;
  --base-quaternary-600:  #17625F;
  --base-quaternary-700:  #125453;
  --base-quaternary-800:  #0F4848;
  --base-quaternary-900:  #0C3B3C;


  /* ── Quinary ───────────────────────────────────────── */
  --base-quinary-50:  #F9F4F1;
  --base-quinary-100:  #EADACF;
  --base-quinary-200:  #DABDA8;
  --base-quinary-300:  #C69A7B;
  --base-quinary-400:  #AC734A;
  --base-quinary-500:  #6E4E37;
  --base-quinary-600:  #5A3D27;
  --base-quinary-700:  #4C3420;
  --base-quinary-800:  #3F2C1B;
  --base-quinary-900:  #342516;


  /* ── Success ───────────────────────────────────────── */
  --base-success-50:  #E8F6F3;
  --base-success-100:  #B7E2D9;
  --base-success-200:  #94D3C7;
  --base-success-300:  #63BFAE;
  --base-success-400:  #45B39D;
  --base-success-500:  #16A086;
  --base-success-600:  #149279;
  --base-success-700:  #10725E;
  --base-success-800:  #0C5849;
  --base-success-900:  #094338;


  /* ── Warning ───────────────────────────────────────── */
  --base-warning-50:  #FFF7E6;
  --base-warning-100:  #FFE6B2;
  --base-warning-200:  #FFD98C;
  --base-warning-300:  #FFC959;
  --base-warning-400:  #FFBF37;
  --base-warning-500:  #FFAF05;
  --base-warning-600:  #E89F05;
  --base-warning-700:  #B57C04;
  --base-warning-800:  #8C6003;
  --base-warning-900:  #6B4A02;


  /* ── Error ─────────────────────────────────────────── */
  --base-error-50:  #FAE9E9;
  --base-error-100:  #F1BCBC;
  --base-error-200:  #EA9C9C;
  --base-error-300:  #E06E6E;
  --base-error-400:  #DA5252;
  --base-error-500:  #D12727;
  --base-error-600:  #BE2323;
  --base-error-700:  #941C1C;
  --base-error-800:  #731515;
  --base-error-900:  #581010;


  /* ── Info ──────────────────────────────────────────── */
  --base-info-50:  #E6F1F7;
  --base-info-100:  #B0D5E6;
  --base-info-200:  #8AC0D9;
  --base-info-300:  #55A4C8;
  --base-info-400:  #3492BD;
  --base-info-500:  #0177AD;
  --base-info-600:  #016C9D;
  --base-info-700:  #01547B;
  --base-info-800:  #01415F;
  --base-info-900:  #003249;


  /* ── Contrast FG Statics ───────────────────────────── */
  --white-fg:  #FFFFFF;
  --black-fg:  #000000;


  /* ── Neutral Contrast FG ───────────────────────────── */
  --base-neutral-50-fg:  var(--black-fg);
  --base-neutral-100-fg:  var(--black-fg);
  --base-neutral-200-fg:  var(--black-fg);
  --base-neutral-300-fg:  var(--black-fg);
  --base-neutral-400-fg:  var(--black-fg);
  --base-neutral-500-fg:  var(--white-fg);
  --base-neutral-600-fg:  var(--white-fg);
  --base-neutral-700-fg:  var(--white-fg);
  --base-neutral-800-fg:  var(--white-fg);
  --base-neutral-900-fg:  var(--white-fg);


  /* ── Primary Contrast FG ───────────────────────────── */
  --base-primary-50-fg:  var(--black-fg);
  --base-primary-100-fg:  var(--black-fg);
  --base-primary-200-fg:  var(--black-fg);
  --base-primary-300-fg:  var(--black-fg);
  --base-primary-400-fg:  var(--black-fg);
  --base-primary-500-fg:  var(--white-fg);
  --base-primary-600-fg:  var(--white-fg);
  --base-primary-700-fg:  var(--white-fg);
  --base-primary-800-fg:  var(--white-fg);
  --base-primary-900-fg:  var(--white-fg);


  /* ── Secondary Contrast FG ─────────────────────────── */
  --base-secondary-50-fg:  var(--black-fg);
  --base-secondary-100-fg:  var(--black-fg);
  --base-secondary-200-fg:  var(--black-fg);
  --base-secondary-300-fg:  var(--black-fg);
  --base-secondary-400-fg:  var(--black-fg);
  --base-secondary-500-fg:  var(--black-fg);
  --base-secondary-600-fg:  var(--white-fg);
  --base-secondary-700-fg:  var(--white-fg);
  --base-secondary-800-fg:  var(--white-fg);
  --base-secondary-900-fg:  var(--white-fg);


  /* ── Tertiary Contrast FG ──────────────────────────── */
  --base-tertiary-50-fg:  var(--black-fg);
  --base-tertiary-100-fg:  var(--black-fg);
  --base-tertiary-200-fg:  var(--black-fg);
  --base-tertiary-300-fg:  var(--black-fg);
  --base-tertiary-400-fg:  var(--black-fg);
  --base-tertiary-500-fg:  var(--white-fg);
  --base-tertiary-600-fg:  var(--white-fg);
  --base-tertiary-700-fg:  var(--white-fg);
  --base-tertiary-800-fg:  var(--white-fg);
  --base-tertiary-900-fg:  var(--white-fg);


  /* ── Quaternary Contrast FG ────────────────────────── */
  --base-quaternary-50-fg:  var(--black-fg);
  --base-quaternary-100-fg:  var(--black-fg);
  --base-quaternary-200-fg:  var(--black-fg);
  --base-quaternary-300-fg:  var(--black-fg);
  --base-quaternary-400-fg:  var(--black-fg);
  --base-quaternary-500-fg:  var(--white-fg);
  --base-quaternary-600-fg:  var(--white-fg);
  --base-quaternary-700-fg:  var(--white-fg);
  --base-quaternary-800-fg:  var(--white-fg);
  --base-quaternary-900-fg:  var(--white-fg);


  /* ── Quinary Contrast FG ───────────────────────────── */
  --base-quinary-50-fg:  var(--black-fg);
  --base-quinary-100-fg:  var(--black-fg);
  --base-quinary-200-fg:  var(--black-fg);
  --base-quinary-300-fg:  var(--black-fg);
  --base-quinary-400-fg:  var(--black-fg);
  --base-quinary-500-fg:  var(--white-fg);
  --base-quinary-600-fg:  var(--white-fg);
  --base-quinary-700-fg:  var(--white-fg);
  --base-quinary-800-fg:  var(--white-fg);
  --base-quinary-900-fg:  var(--white-fg);


  /* ── Success Contrast FG ───────────────────────────── */
  --base-success-50-fg:  var(--black-fg);
  --base-success-100-fg:  var(--black-fg);
  --base-success-200-fg:  var(--black-fg);
  --base-success-300-fg:  var(--black-fg);
  --base-success-400-fg:  var(--black-fg);
  --base-success-500-fg:  var(--black-fg);
  --base-success-600-fg:  var(--black-fg);
  --base-success-700-fg:  var(--white-fg);
  --base-success-800-fg:  var(--white-fg);
  --base-success-900-fg:  var(--white-fg);


  /* ── Warning Contrast FG ───────────────────────────── */
  --base-warning-50-fg:  var(--black-fg);
  --base-warning-100-fg:  var(--black-fg);
  --base-warning-200-fg:  var(--black-fg);
  --base-warning-300-fg:  var(--black-fg);
  --base-warning-400-fg:  var(--black-fg);
  --base-warning-500-fg:  var(--black-fg);
  --base-warning-600-fg:  var(--black-fg);
  --base-warning-700-fg:  var(--black-fg);
  --base-warning-800-fg:  var(--white-fg);
  --base-warning-900-fg:  var(--white-fg);


  /* ── Error Contrast FG ─────────────────────────────── */
  --base-error-50-fg:  var(--black-fg);
  --base-error-100-fg:  var(--black-fg);
  --base-error-200-fg:  var(--black-fg);
  --base-error-300-fg:  var(--black-fg);
  --base-error-400-fg:  var(--black-fg);
  --base-error-500-fg:  var(--white-fg);
  --base-error-600-fg:  var(--white-fg);
  --base-error-700-fg:  var(--white-fg);
  --base-error-800-fg:  var(--white-fg);
  --base-error-900-fg:  var(--white-fg);


  /* ── Info Contrast FG ──────────────────────────────── */
  --base-info-50-fg:  var(--black-fg);
  --base-info-100-fg:  var(--black-fg);
  --base-info-200-fg:  var(--black-fg);
  --base-info-300-fg:  var(--black-fg);
  --base-info-400-fg:  var(--black-fg);
  --base-info-500-fg:  var(--white-fg);
  --base-info-600-fg:  var(--white-fg);
  --base-info-700-fg:  var(--white-fg);
  --base-info-800-fg:  var(--white-fg);
  --base-info-900-fg:  var(--white-fg);


  /* ── Surfaces & Borders ────────────────────────────── */
  --bg-primary:  var(--base-neutral-100);
  --bg-secondary:  var(--base-neutral-100);
  --border-primary:  var(--base-neutral-200);
  --border-secondary:  var(--base-neutral-300);


  /* ── Text ──────────────────────────────────────────── */
  --text-color-primary:  var(--base-neutral-900);
  --text-color-secondary:  var(--base-neutral-700);
  --text-color-placeholder:  var(--base-neutral-500);
  --text-color-disabled:  var(--base-neutral-400);
  --text-color-on-accent:  var(--base-neutral-50);


  /* ── Brand Semantic Grades — Primary ───────────────── */
  --primary-light: var(--base-primary-50);
  --primary-light-fg: var(--base-primary-50-fg);
  --primary-soft: var(--base-primary-200);
  --primary-soft-fg: var(--base-primary-200-fg);
  --primary-base: var(--base-primary-500);
  --primary-base-fg: var(--base-primary-500-fg);
  --primary-bold: var(--base-primary-700);
  --primary-bold-fg: var(--base-primary-700-fg);
  --primary-deep: var(--base-primary-900);
  --primary-deep-fg: var(--base-primary-900-fg);


  /* ── Brand Semantic Grades — Secondary ─────────────── */
  --secondary-light: var(--base-secondary-50);
  --secondary-light-fg: var(--base-secondary-50-fg);
  --secondary-soft: var(--base-secondary-200);
  --secondary-soft-fg: var(--base-secondary-200-fg);
  --secondary-base: var(--base-secondary-400);
  --secondary-base-fg: var(--base-secondary-400-fg);
  --secondary-bold: var(--base-secondary-600);
  --secondary-bold-fg: var(--base-secondary-600-fg);
  --secondary-deep: var(--base-secondary-900);
  --secondary-deep-fg: var(--base-secondary-900-fg);


  /* ── Brand Semantic Grades — Tertiary ──────────────── */
  --tertiary-light: var(--base-tertiary-50);
  --tertiary-light-fg: var(--base-tertiary-50-fg);
  --tertiary-soft: var(--base-tertiary-200);
  --tertiary-soft-fg: var(--base-tertiary-200-fg);
  --tertiary-base: var(--base-tertiary-500);
  --tertiary-base-fg: var(--base-tertiary-500-fg);
  --tertiary-bold: var(--base-tertiary-700);
  --tertiary-bold-fg: var(--base-tertiary-700-fg);
  --tertiary-deep: var(--base-tertiary-900);
  --tertiary-deep-fg: var(--base-tertiary-900-fg);


  /* ── Brand Semantic Grades — Quaternary ────────────── */
  --quaternary-light: var(--base-quaternary-50);
  --quaternary-light-fg: var(--base-quaternary-50-fg);
  --quaternary-soft: var(--base-quaternary-200);
  --quaternary-soft-fg: var(--base-quaternary-200-fg);
  --quaternary-base: var(--base-quaternary-500);
  --quaternary-base-fg: var(--base-quaternary-500-fg);
  --quaternary-bold: var(--base-quaternary-700);
  --quaternary-bold-fg: var(--base-quaternary-700-fg);
  --quaternary-deep: var(--base-quaternary-900);
  --quaternary-deep-fg: var(--base-quaternary-900-fg);


  /* ── Brand Semantic Grades — Quinary ───────────────── */
  --quinary-light: var(--base-quinary-50);
  --quinary-light-fg: var(--base-quinary-50-fg);
  --quinary-soft: var(--base-quinary-200);
  --quinary-soft-fg: var(--base-quinary-200-fg);
  --quinary-base: var(--base-quinary-400);
  --quinary-base-fg: var(--base-quinary-400-fg);
  --quinary-bold: var(--base-quinary-700);
  --quinary-bold-fg: var(--base-quinary-700-fg);
  --quinary-deep: var(--base-quinary-900);
  --quinary-deep-fg: var(--base-quinary-900-fg);


  /* ── Neutral Grades ────────────────────────────────── */
  --neutral-light: var(--base-neutral-100);
  --neutral-light-fg: var(--base-neutral-100-fg);
  --neutral-soft: var(--base-neutral-300);
  --neutral-soft-fg: var(--base-neutral-300-fg);
  --neutral-base: var(--base-neutral-500);
  --neutral-base-fg: var(--base-neutral-500-fg);
  --neutral-bold: var(--base-neutral-700);
  --neutral-bold-fg: var(--base-neutral-700-fg);
  --neutral-deep: var(--base-neutral-900);
  --neutral-deep-fg: var(--base-neutral-900-fg);


  /* ── State — Success ───────────────────────────────── */
  --success-light: var(--base-success-50);
  --success-light-fg: var(--base-success-50-fg);
  --success-soft: var(--base-success-200);
  --success-soft-fg: var(--base-success-200-fg);
  --success-base: var(--base-success-500);
  --success-base-fg: var(--base-success-500-fg);
  --success-bold: var(--base-success-700);
  --success-bold-fg: var(--base-success-700-fg);
  --success-deep: var(--base-success-900);
  --success-deep-fg: var(--base-success-900-fg);


  /* ── State — Warning ───────────────────────────────── */
  --warning-light: var(--base-warning-50);
  --warning-light-fg: var(--base-warning-50-fg);
  --warning-soft: var(--base-warning-200);
  --warning-soft-fg: var(--base-warning-200-fg);
  --warning-base: var(--base-warning-400);
  --warning-base-fg: var(--base-warning-400-fg);
  --warning-bold: var(--base-warning-600);
  --warning-bold-fg: var(--base-warning-600-fg);
  --warning-deep: var(--base-warning-900);
  --warning-deep-fg: var(--base-warning-900-fg);


  /* ── State — Error ─────────────────────────────────── */
  --error-light: var(--base-error-50);
  --error-light-fg: var(--base-error-50-fg);
  --error-soft: var(--base-error-200);
  --error-soft-fg: var(--base-error-200-fg);
  --error-base: var(--base-error-500);
  --error-base-fg: var(--base-error-500-fg);
  --error-bold: var(--base-error-700);
  --error-bold-fg: var(--base-error-700-fg);
  --error-deep: var(--base-error-900);
  --error-deep-fg: var(--base-error-900-fg);


  /* ── State — Info ──────────────────────────────────── */
  --info-light: var(--base-info-50);
  --info-light-fg: var(--base-info-50-fg);
  --info-soft: var(--base-info-200);
  --info-soft-fg: var(--base-info-200-fg);
  --info-base: var(--base-info-400);
  --info-base-fg: var(--base-info-400-fg);
  --info-bold: var(--base-info-700);
  --info-bold-fg: var(--base-info-700-fg);
  --info-deep: var(--base-info-900);
  --info-deep-fg: var(--base-info-900-fg);


  /* ── shadcn/ui Semantic Aliases ────────────────────── */
  --background: var(--neutral-light);
  --foreground: var(--neutral-deep);
  --card: var(--base-neutral-50);
  --card-foreground: var(--neutral-deep);
  --popover: var(--base-neutral-50);
  --popover-foreground: var(--neutral-deep);
  --primary: var(--primary-base);
  --primary-foreground: var(--base-neutral-50);
  --secondary: var(--secondary-base);
  --secondary-foreground: var(--neutral-deep);
  --tertiary: var(--tertiary-base);
  --tertiary-foreground: var(--base-neutral-50);
  --quaternary: var(--quaternary-base);
  --quaternary-foreground: var(--neutral-deep);
  --quinary: var(--quinary-base);
  --quinary-foreground: var(--base-neutral-50);
  --muted: var(--neutral-light);
  --muted-foreground: var(--neutral-bold);
  --accent: var(--primary-light);
  --accent-foreground: var(--primary-bold);
  --destructive: var(--base-error-400);
  --destructive-foreground: var(--base-neutral-50);
  --border: var(--border-primary);
  --input: var(--border-primary);
  --ring: var(--primary-base);


  /* ── Sidebar ───────────────────────────────────────── */
  --sidebar: var(--base-neutral-50);
  --sidebar-foreground: var(--neutral-deep);
  --sidebar-primary: var(--primary-base);
  --sidebar-primary-foreground: var(--base-neutral-50);
  --sidebar-accent: var(--primary-light);
  --sidebar-accent-foreground: var(--primary-bold);
  --sidebar-border: var(--border-primary);
  --sidebar-ring: var(--primary-base);


  /* ── Chart Series ──────────────────────────────────── */
  --chart-1: var(--primary-base);
  --chart-2: var(--secondary-base);
  --chart-3: var(--tertiary-base);
  --chart-4: var(--quaternary-base);
  --chart-5: var(--quinary-base);


  /* ── Spacing ───────────────────────────────────────── */
  --spacing-1:   0.25rem;
  --spacing-1-5:   0.375rem;
  --spacing-2:   0.5rem;
  --spacing-2-5:   0.625rem;
  --spacing-3:   0.75rem;
  --spacing-3-5:   0.875rem;
  --spacing-4:   1rem;
  --spacing-5:   1.25rem;
  --spacing-6:   1.5rem;
  --spacing-8:   2rem;
  --spacing-10:   2.5rem;


  /* ── Border Radius ─────────────────────────────────── */
  --radius-none:  0px;
  --radius-sm:  4px;
  --radius-md:  6px;
  --radius-lg:  8px;
  --radius-xl:  10px;
  --radius-2xl:  16px;
  --radius-3xl:  20px;
  --radius-full:  9999px;


  /* ── Shadows ───────────────────────────────────────── */
  /* ── Order monitor / KDS (Zuzu-style table chip) ──── */
  --table-chip:       var(--base-secondary-400);  /* Emas Genesa */
  --table-chip-fg:    var(--base-neutral-900);
  --order-age-fresh:  var(--success-base);        /* < 10 min (FRD M03) */
  --order-age-warn:   var(--warning-base);        /* 10–15 min */
  --order-age-late:   var(--error-base);          /* > 15 min */

  --shadow-color: 10 10 10;
  --shadow-2xs:  0 1px 1px 0 rgb(var(--shadow-color)/0.04);
  --shadow-xs:  0 1px 2px 0 rgb(var(--shadow-color)/0.05);
  --shadow-sm:  0 1px 3px 0 rgb(var(--shadow-color)/0.07), 0 1px 2px -1px rgb(var(--shadow-color)/0.04);
  --shadow-md:  0 4px 8px -1px rgb(var(--shadow-color)/0.08), 0 2px 4px -2px rgb(var(--shadow-color)/0.05);
  --shadow-lg:  0 8px 16px 0 rgb(var(--shadow-color)/0.10), 0 4px 6px -2px rgb(var(--shadow-color)/0.05);
  --shadow-xl:  0 8px 36px 0 rgb(var(--shadow-color)/0.16);
  --shadow-2xl:  0 24px 48px -12px rgb(var(--shadow-color)/0.20);
  --inset-shadow-2xs:  inset 0 1px 0 0 rgb(var(--shadow-color)/0.05);
  --inset-shadow-xs:  inset 0 1px 1px 0 rgb(var(--shadow-color)/0.06);
  --inset-shadow-sm:  inset 0 2px 4px 0 rgb(var(--shadow-color)/0.06);


  /* ── Typography ────────────────────────────────────── */
  --font-main-sans:  'IBM Plex Sans';
  --font-main-serif:  'IBM Plex Serif';
  --font-main-mono:  'IBM Plex Mono';

  --font-sans:  var(--font-main-sans), system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji';
  --font-serif:  var(--font-main-serif), ui-serif, Georgia, Cambria, serif;
  --font-mono:  var(--font-main-mono), 'Fira Code', 'Cascadia Code', ui-monospace, monospace;

  --font-weight-regular:  400;
  --font-weight-medium:  500;
  --font-weight-semibold:  600;
  --font-weight-bold:  700;

  --text-display:  3.5rem;
  --text-h1:  2.5rem;
  --text-h2:  2rem;
  --text-h3:  1.5rem;
  --text-h4:  1.25rem;
  --text-h5:  1.125rem;
  --text-h6:  1rem;
  --text-body-lg:  1rem;
  --text-body-md:  0.9375rem;
  --text-body-sm:  0.875rem;
  --text-label-lg:  0.875rem;
  --text-label-md:  0.8125rem;
  --text-label-sm:  0.75rem;

  --leading-none:    1;
  --leading-tight:    1.15;
  --leading-snug:    1.3;
  --leading-normal:    1.5;
  --leading-relaxed:    1.625;
  --leading-loose:    2;

  --tracking-tighter: -0.05em;
  --tracking-tight: -0.025em;
  --tracking-normal: 0em;
  --tracking-wide: 0.025em;
  --tracking-wider: 0.05em;
  --tracking-widest: 0.12em;
}


/* ──────────────────────────────────────────────────────────
   Dark Mode Overrides
   Trigger: <html class="dark">
────────────────────────────────────────────────────────── */
.dark {
  /* ── Text (re-declared so nested .dark islands resolve dark-mode text) ── */
  --text-color-primary:     var(--base-neutral-900);
  --text-color-secondary:   var(--base-neutral-700);
  --text-color-placeholder: var(--base-neutral-500);
  --text-color-disabled:    var(--base-neutral-400);
  --text-color-on-accent:   var(--base-neutral-50);


  /* ── Dark Palette Overrides ────────────────────────── */


  /* ── Neutral ───────────────────────────────────────── */
  --base-neutral-900:  #FFFFFF;
  --base-neutral-800:  #EDF2EC;
  --base-neutral-700:  #D3DCD2;
  --base-neutral-600:  #B2BDB3;
  --base-neutral-500:  #8A978B;
  --base-neutral-400:  #5E6B5F;
  --base-neutral-300:  #3A463B;
  --base-neutral-200:  #273027;
  --base-neutral-100:  #171C17;
  --base-neutral-50:  #101310;


  /* ── Primary ───────────────────────────────────────── */
  --base-primary-50:  #143518;
  --base-primary-100:  #18401D;
  --base-primary-200:  #1D4B22;
  --base-primary-300:  #245827;
  --base-primary-400:  #2F6F32;
  --base-primary-500:  #48A94D;
  --base-primary-600:  #78C57C;
  --base-primary-700:  #A6D9A9;
  --base-primary-800:  #CEEACF;
  --base-primary-900:  #F1F9F1;


  /* ── Secondary ─────────────────────────────────────── */
  --base-secondary-50:  #4A3903;
  --base-secondary-100:  #5D4605;
  --base-secondary-200:  #725407;
  --base-secondary-300:  #89630B;
  --base-secondary-400:  #B07D12;
  --base-secondary-500:  #E1A62B;
  --base-secondary-600:  #E1BC6F;
  --base-secondary-700:  #E4D0A7;
  --base-secondary-800:  #ECE3D2;
  --base-secondary-900:  #F9F6F1;


  /* ── Tertiary ──────────────────────────────────────── */
  --base-tertiary-50:  #441B0C;
  --base-tertiary-100:  #592311;
  --base-tertiary-200:  #702A16;
  --base-tertiary-300:  #89331D;
  --base-tertiary-400:  #B4432A;
  --base-tertiary-500:  #D06851;
  --base-tertiary-600:  #D79688;
  --base-tertiary-700:  #DFBCB5;
  --base-tertiary-800:  #EDD9D5;
  --base-tertiary-900:  #F9F2F1;


  /* ── Quaternary ────────────────────────────────────── */
  --base-quaternary-50:  #0C3B3C;
  --base-quaternary-100:  #0F4848;
  --base-quaternary-200:  #125453;
  --base-quaternary-300:  #17625F;
  --base-quaternary-400:  #1F7A74;
  --base-quaternary-500:  #36B7AF;
  --base-quaternary-600:  #6FCCC6;
  --base-quaternary-700:  #A5D9D5;
  --base-quaternary-800:  #CDEAE8;
  --base-quaternary-900:  #F1F9F8;


  /* ── Quinary ───────────────────────────────────────── */
  --base-quinary-50:  #342516;
  --base-quinary-100:  #3F2C1B;
  --base-quinary-200:  #4C3420;
  --base-quinary-300:  #5A3D27;
  --base-quinary-400:  #6E4E37;
  --base-quinary-500:  #AC734A;
  --base-quinary-600:  #C69A7B;
  --base-quinary-700:  #DABDA8;
  --base-quinary-800:  #EADACF;
  --base-quinary-900:  #F9F4F1;


  /* ── Success ───────────────────────────────────────── */
  --base-success-50:  #094338;
  --base-success-100:  #0C5849;
  --base-success-200:  #10725E;
  --base-success-300:  #149279;
  --base-success-400:  #16A086;
  --base-success-500:  #45B39D;
  --base-success-600:  #63BFAE;
  --base-success-700:  #94D3C7;
  --base-success-800:  #B7E2D9;
  --base-success-900:  #E8F6F3;


  /* ── Warning ───────────────────────────────────────── */
  --base-warning-50:  #6B4A02;
  --base-warning-100:  #8C6003;
  --base-warning-200:  #B57C04;
  --base-warning-300:  #E89F05;
  --base-warning-400:  #FFAF05;
  --base-warning-500:  #FFBF37;
  --base-warning-600:  #FFC959;
  --base-warning-700:  #FFD98C;
  --base-warning-800:  #FFE6B2;
  --base-warning-900:  #FFF7E6;


  /* ── Error ─────────────────────────────────────────── */
  --base-error-50:  #581010;
  --base-error-100:  #731515;
  --base-error-200:  #941C1C;
  --base-error-300:  #BE2323;
  --base-error-400:  #D12727;
  --base-error-500:  #DA5252;
  --base-error-600:  #E06E6E;
  --base-error-700:  #EA9C9C;
  --base-error-800:  #F1BCBC;
  --base-error-900:  #FAE9E9;


  /* ── Info ──────────────────────────────────────────── */
  --base-info-50:  #003249;
  --base-info-100:  #01415F;
  --base-info-200:  #01547B;
  --base-info-300:  #016C9D;
  --base-info-400:  #0177AD;
  --base-info-500:  #3492BD;
  --base-info-600:  #55A4C8;
  --base-info-700:  #8AC0D9;
  --base-info-800:  #B0D5E6;
  --base-info-900:  #E6F1F7;


  /* ── Neutral Contrast FG ───────────────────────────── */
  --base-neutral-50-fg:  var(--white-fg);
  --base-neutral-100-fg:  var(--white-fg);
  --base-neutral-200-fg:  var(--white-fg);
  --base-neutral-300-fg:  var(--white-fg);
  --base-neutral-400-fg:  var(--white-fg);
  --base-neutral-500-fg:  var(--black-fg);
  --base-neutral-600-fg:  var(--black-fg);
  --base-neutral-700-fg:  var(--black-fg);
  --base-neutral-800-fg:  var(--black-fg);
  --base-neutral-900-fg:  var(--black-fg);


  /* ── Primary Contrast FG ───────────────────────────── */
  --base-primary-50-fg:  var(--white-fg);
  --base-primary-100-fg:  var(--white-fg);
  --base-primary-200-fg:  var(--white-fg);
  --base-primary-300-fg:  var(--white-fg);
  --base-primary-400-fg:  var(--white-fg);
  --base-primary-500-fg:  var(--black-fg);
  --base-primary-600-fg:  var(--black-fg);
  --base-primary-700-fg:  var(--black-fg);
  --base-primary-800-fg:  var(--black-fg);
  --base-primary-900-fg:  var(--black-fg);


  /* ── Secondary Contrast FG ─────────────────────────── */
  --base-secondary-50-fg:  var(--white-fg);
  --base-secondary-100-fg:  var(--white-fg);
  --base-secondary-200-fg:  var(--white-fg);
  --base-secondary-300-fg:  var(--white-fg);
  --base-secondary-400-fg:  var(--black-fg);
  --base-secondary-500-fg:  var(--black-fg);
  --base-secondary-600-fg:  var(--black-fg);
  --base-secondary-700-fg:  var(--black-fg);
  --base-secondary-800-fg:  var(--black-fg);
  --base-secondary-900-fg:  var(--black-fg);


  /* ── Tertiary Contrast FG ──────────────────────────── */
  --base-tertiary-50-fg:  var(--white-fg);
  --base-tertiary-100-fg:  var(--white-fg);
  --base-tertiary-200-fg:  var(--white-fg);
  --base-tertiary-300-fg:  var(--white-fg);
  --base-tertiary-400-fg:  var(--white-fg);
  --base-tertiary-500-fg:  var(--black-fg);
  --base-tertiary-600-fg:  var(--black-fg);
  --base-tertiary-700-fg:  var(--black-fg);
  --base-tertiary-800-fg:  var(--black-fg);
  --base-tertiary-900-fg:  var(--black-fg);


  /* ── Quaternary Contrast FG ────────────────────────── */
  --base-quaternary-50-fg:  var(--white-fg);
  --base-quaternary-100-fg:  var(--white-fg);
  --base-quaternary-200-fg:  var(--white-fg);
  --base-quaternary-300-fg:  var(--white-fg);
  --base-quaternary-400-fg:  var(--white-fg);
  --base-quaternary-500-fg:  var(--black-fg);
  --base-quaternary-600-fg:  var(--black-fg);
  --base-quaternary-700-fg:  var(--black-fg);
  --base-quaternary-800-fg:  var(--black-fg);
  --base-quaternary-900-fg:  var(--black-fg);


  /* ── Quinary Contrast FG ───────────────────────────── */
  --base-quinary-50-fg:  var(--white-fg);
  --base-quinary-100-fg:  var(--white-fg);
  --base-quinary-200-fg:  var(--white-fg);
  --base-quinary-300-fg:  var(--white-fg);
  --base-quinary-400-fg:  var(--white-fg);
  --base-quinary-500-fg:  var(--black-fg);
  --base-quinary-600-fg:  var(--black-fg);
  --base-quinary-700-fg:  var(--black-fg);
  --base-quinary-800-fg:  var(--black-fg);
  --base-quinary-900-fg:  var(--black-fg);


  /* ── Success Contrast FG ───────────────────────────── */
  --base-success-50-fg:  var(--white-fg);
  --base-success-100-fg:  var(--white-fg);
  --base-success-200-fg:  var(--white-fg);
  --base-success-300-fg:  var(--black-fg);
  --base-success-400-fg:  var(--black-fg);
  --base-success-500-fg:  var(--black-fg);
  --base-success-600-fg:  var(--black-fg);
  --base-success-700-fg:  var(--black-fg);
  --base-success-800-fg:  var(--black-fg);
  --base-success-900-fg:  var(--black-fg);


  /* ── Warning Contrast FG ───────────────────────────── */
  --base-warning-50-fg:  var(--white-fg);
  --base-warning-100-fg:  var(--white-fg);
  --base-warning-200-fg:  var(--black-fg);
  --base-warning-300-fg:  var(--black-fg);
  --base-warning-400-fg:  var(--black-fg);
  --base-warning-500-fg:  var(--black-fg);
  --base-warning-600-fg:  var(--black-fg);
  --base-warning-700-fg:  var(--black-fg);
  --base-warning-800-fg:  var(--black-fg);
  --base-warning-900-fg:  var(--black-fg);


  /* ── Error Contrast FG ─────────────────────────────── */
  --base-error-50-fg:  var(--white-fg);
  --base-error-100-fg:  var(--white-fg);
  --base-error-200-fg:  var(--white-fg);
  --base-error-300-fg:  var(--white-fg);
  --base-error-400-fg:  var(--white-fg);
  --base-error-500-fg:  var(--black-fg);
  --base-error-600-fg:  var(--black-fg);
  --base-error-700-fg:  var(--black-fg);
  --base-error-800-fg:  var(--black-fg);
  --base-error-900-fg:  var(--black-fg);


  /* ── Info Contrast FG ──────────────────────────────── */
  --base-info-50-fg:  var(--white-fg);
  --base-info-100-fg:  var(--white-fg);
  --base-info-200-fg:  var(--white-fg);
  --base-info-300-fg:  var(--white-fg);
  --base-info-400-fg:  var(--white-fg);
  --base-info-500-fg:  var(--black-fg);
  --base-info-600-fg:  var(--black-fg);
  --base-info-700-fg:  var(--black-fg);
  --base-info-800-fg:  var(--black-fg);
  --base-info-900-fg:  var(--black-fg);


  /* ── Surfaces & Borders ────────────────────────────── */
  --bg-primary:  var(--base-neutral-50);
  --bg-secondary:  var(--base-neutral-100);
  --border-primary:  var(--base-neutral-200);
  --border-secondary:  var(--base-neutral-300);


  /* ── Text ──────────────────────────────────────────── */


  /* ── Brand Semantic Grades — Primary ───────────────── */
  --primary-light: var(--base-primary-50);
  --primary-light-fg: var(--base-primary-50-fg);
  --primary-soft: var(--base-primary-200);
  --primary-soft-fg: var(--base-primary-200-fg);
  --primary-base: var(--base-primary-500);
  --primary-base-fg: var(--base-primary-500-fg);
  --primary-bold: var(--base-primary-700);
  --primary-bold-fg: var(--base-primary-700-fg);
  --primary-deep: var(--base-primary-900);
  --primary-deep-fg: var(--base-primary-900-fg);


  /* ── Brand Semantic Grades — Secondary ─────────────── */
  --secondary-light: var(--base-secondary-50);
  --secondary-light-fg: var(--base-secondary-50-fg);
  --secondary-soft: var(--base-secondary-200);
  --secondary-soft-fg: var(--base-secondary-200-fg);
  --secondary-base: var(--base-secondary-400);
  --secondary-base-fg: var(--base-secondary-400-fg);
  --secondary-bold: var(--base-secondary-600);
  --secondary-bold-fg: var(--base-secondary-600-fg);
  --secondary-deep: var(--base-secondary-900);
  --secondary-deep-fg: var(--base-secondary-900-fg);


  /* ── Brand Semantic Grades — Tertiary ──────────────── */
  --tertiary-light: var(--base-tertiary-50);
  --tertiary-light-fg: var(--base-tertiary-50-fg);
  --tertiary-soft: var(--base-tertiary-200);
  --tertiary-soft-fg: var(--base-tertiary-200-fg);
  --tertiary-base: var(--base-tertiary-500);
  --tertiary-base-fg: var(--base-tertiary-500-fg);
  --tertiary-bold: var(--base-tertiary-700);
  --tertiary-bold-fg: var(--base-tertiary-700-fg);
  --tertiary-deep: var(--base-tertiary-900);
  --tertiary-deep-fg: var(--base-tertiary-900-fg);


  /* ── Brand Semantic Grades — Quaternary ────────────── */
  --quaternary-light: var(--base-quaternary-50);
  --quaternary-light-fg: var(--base-quaternary-50-fg);
  --quaternary-soft: var(--base-quaternary-200);
  --quaternary-soft-fg: var(--base-quaternary-200-fg);
  --quaternary-base: var(--base-quaternary-500);
  --quaternary-base-fg: var(--base-quaternary-500-fg);
  --quaternary-bold: var(--base-quaternary-700);
  --quaternary-bold-fg: var(--base-quaternary-700-fg);
  --quaternary-deep: var(--base-quaternary-900);
  --quaternary-deep-fg: var(--base-quaternary-900-fg);


  /* ── Brand Semantic Grades — Quinary ───────────────── */
  --quinary-light: var(--base-quinary-50);
  --quinary-light-fg: var(--base-quinary-50-fg);
  --quinary-soft: var(--base-quinary-200);
  --quinary-soft-fg: var(--base-quinary-200-fg);
  --quinary-base: var(--base-quinary-400);
  --quinary-base-fg: var(--base-quinary-400-fg);
  --quinary-bold: var(--base-quinary-700);
  --quinary-bold-fg: var(--base-quinary-700-fg);
  --quinary-deep: var(--base-quinary-900);
  --quinary-deep-fg: var(--base-quinary-900-fg);
  --primary-base: #419A45;


  /* ── Neutral Grades ────────────────────────────────── */
  --neutral-light: var(--base-neutral-100);
  --neutral-light-fg: var(--base-neutral-100-fg);
  --neutral-soft: var(--base-neutral-300);
  --neutral-soft-fg: var(--base-neutral-300-fg);
  --neutral-base: var(--base-neutral-500);
  --neutral-base-fg: var(--base-neutral-500-fg);
  --neutral-bold: var(--base-neutral-700);
  --neutral-bold-fg: var(--base-neutral-700-fg);
  --neutral-deep: var(--base-neutral-900);
  --neutral-deep-fg: var(--base-neutral-900-fg);


  /* ── State — Success ───────────────────────────────── */
  --success-light: var(--base-success-50);
  --success-light-fg: var(--base-success-50-fg);
  --success-soft: var(--base-success-200);
  --success-soft-fg: var(--base-success-200-fg);
  --success-base: var(--base-success-500);
  --success-base-fg: var(--base-success-500-fg);
  --success-bold: var(--base-success-700);
  --success-bold-fg: var(--base-success-700-fg);
  --success-deep: var(--base-success-900);
  --success-deep-fg: var(--base-success-900-fg);


  /* ── State — Warning ───────────────────────────────── */
  --warning-light: var(--base-warning-50);
  --warning-light-fg: var(--base-warning-50-fg);
  --warning-soft: var(--base-warning-200);
  --warning-soft-fg: var(--base-warning-200-fg);
  --warning-base: var(--base-warning-400);
  --warning-base-fg: var(--base-warning-400-fg);
  --warning-bold: var(--base-warning-600);
  --warning-bold-fg: var(--base-warning-600-fg);
  --warning-deep: var(--base-warning-900);
  --warning-deep-fg: var(--base-warning-900-fg);


  /* ── State — Error ─────────────────────────────────── */
  --error-light: var(--base-error-50);
  --error-light-fg: var(--base-error-50-fg);
  --error-soft: var(--base-error-200);
  --error-soft-fg: var(--base-error-200-fg);
  --error-base: var(--base-error-500);
  --error-base-fg: var(--base-error-500-fg);
  --error-bold: var(--base-error-700);
  --error-bold-fg: var(--base-error-700-fg);
  --error-deep: var(--base-error-900);
  --error-deep-fg: var(--base-error-900-fg);


  /* ── State — Info ──────────────────────────────────── */
  --info-light: var(--base-info-50);
  --info-light-fg: var(--base-info-50-fg);
  --info-soft: var(--base-info-200);
  --info-soft-fg: var(--base-info-200-fg);
  --info-base: var(--base-info-400);
  --info-base-fg: var(--base-info-400-fg);
  --info-bold: var(--base-info-700);
  --info-bold-fg: var(--base-info-700-fg);
  --info-deep: var(--base-info-900);
  --info-deep-fg: var(--base-info-900-fg);


  /* ── shadcn/ui Semantic Aliases ────────────────────── */
  --background: var(--base-neutral-50);
  --foreground: var(--neutral-deep);
  --card: var(--neutral-light);
  --card-foreground: var(--neutral-deep);
  --popover: var(--neutral-light);
  --popover-foreground: var(--neutral-deep);
  --primary: var(--primary-base);
  --primary-foreground: var(--base-neutral-50);
  --secondary: var(--secondary-bold);
  --secondary-foreground: var(--base-neutral-50);
  --tertiary: var(--tertiary-base);
  --tertiary-foreground: var(--base-neutral-50);
  --quaternary: var(--quaternary-base);
  --quaternary-foreground: var(--base-neutral-50);
  --quinary: var(--base-quinary-500);
  --quinary-foreground: var(--base-neutral-50);
  --muted: var(--neutral-soft);
  --muted-foreground: var(--base-neutral-600);
  --accent: var(--primary-light);
  --accent-foreground: var(--primary-bold);
  --destructive: var(--base-error-500);
  --destructive-foreground: var(--base-neutral-50);
  --border: var(--border-primary);
  --input: var(--border-secondary);
  --ring: var(--primary-base);


  /* ── Sidebar ───────────────────────────────────────── */
  --sidebar: var(--base-neutral-50);
  --sidebar-foreground: var(--neutral-deep);
  --sidebar-primary: var(--primary-base);
  --sidebar-primary-foreground: var(--base-neutral-50);
  --sidebar-accent: var(--primary-light);
  --sidebar-accent-foreground: var(--primary-bold);
  --sidebar-border: var(--border-primary);
  --sidebar-ring: var(--primary-base);


  /* ── Chart Series ──────────────────────────────────── */
  --chart-1: var(--primary-base);
  --chart-2: var(--secondary-bold);
  --chart-3: var(--tertiary-base);
  --chart-4: var(--quaternary-base);
  --chart-5: var(--base-quinary-500);


  /* ── Shadow (dark) ─────────────────────────────────── */
  /* ── Order monitor / KDS (Zuzu-style table chip) ──── */
  --table-chip:       var(--base-secondary-500);  /* bright Emas Genesa on dark */
  --table-chip-fg:    var(--base-neutral-50);
  --order-age-fresh:  var(--success-base);
  --order-age-warn:   var(--warning-base);
  --order-age-late:   var(--error-base);

  --shadow-color: 250 250 250;
}
