/* XMNIS Systems — Color primitives + semantic aliases
   Doctrine: white leading, ink near-black, high contrast, orange used RARELY. */
:root{
  /* Absolute */
  --white:#F5F5F5;   /* leading off-white (brand preference) */
  --pure-white:#FFFFFF; /* reserved for rare true-white lift */
  --black:#131416;   /* off-black */

  /* Neutral ramp — cool, precise (0 = white, 950 = ink) */
  --n-0:#FFFFFF;
  --n-25:#FBFBFC;
  --n-50:#F5F6F7;
  --n-100:#EBECEE;
  --n-150:#E1E3E6;
  --n-200:#D4D6DA;
  --n-300:#B5B8BE;
  --n-400:#8B8F97;
  --n-500:#63676E;
  --n-600:#474A50;
  --n-700:#2E3034;
  --n-800:#191A1D;
  --n-900:#0F1012;
  --n-950:#131416;

  /* Signal orange — the one accent. Use sparingly. */
  --orange-300:#FFB273;
  --orange-400:#FF9440;
  --orange:#FF7700;      /* brand accent */
  --orange-600:#E56A00;  /* hover */
  --orange-700:#C25A00;  /* press */

  /* Status — expressed ONLY in neutral + the single orange signal.
     Nominal/positive = calm neutral; attention/warning/critical = orange.
     (green/amber/red/blue names retained so components need no change.) */
  --green:var(--n-800);        /* nominal / OK — calm neutral */
  --green-bg:var(--n-100);
  --amber:var(--orange-700);   /* warning — orange */
  --amber-bg:color-mix(in srgb,var(--orange) 13%,var(--white));
  --red:var(--orange);         /* critical / destructive — the orange signal */
  --red-bg:color-mix(in srgb,var(--orange) 15%,var(--white));
  --blue:var(--n-600);         /* info — neutral */
  --blue-bg:var(--n-100);

  /* ---- Semantic aliases (light, default / leading) ---- */
  --bg:var(--white);
  --bg-sunken:var(--n-100);
  --surface:var(--white);
  --surface-2:var(--n-25);
  --surface-inset:var(--n-50);
  --surface-inverse:var(--n-950);

  --text:var(--n-900);
  --text-muted:var(--n-500);
  --text-subtle:var(--n-400);
  --text-inverse:var(--white);
  --text-accent:var(--orange);

  --line:var(--n-200);          /* hairline dividers */
  --line-strong:var(--n-300);
  --line-heavy:var(--n-900);    /* structural thick line */
  --line-accent:var(--orange);

  --focus-ring:var(--orange);
  --selection:var(--orange);

  --accent:var(--orange);
  --accent-hover:var(--orange-600);
  --accent-press:var(--orange-700);
  --accent-contrast:var(--white);
}

/* ---- Dark theme scope (tactical console) ---- */
[data-theme="dark"]{
  --bg:var(--n-950);
  --bg-sunken:var(--black);
  --surface:var(--n-900);
  --surface-2:var(--n-800);
  --surface-inset:var(--black);
  --surface-inverse:var(--white);

  --text:var(--n-50);
  --text-muted:var(--n-400);
  --text-subtle:var(--n-500);
  --text-inverse:var(--n-950);
  --text-accent:var(--orange);

  --line:var(--n-800);
  --line-strong:var(--n-700);
  --line-heavy:var(--n-50);
  --line-accent:var(--orange);

  --green-bg:var(--n-800);
  --amber-bg:color-mix(in srgb,var(--orange) 20%,var(--surface));
  --red-bg:color-mix(in srgb,var(--orange) 24%,var(--surface));
  --blue-bg:var(--n-800);

  --accent-contrast:var(--n-950);
}
