/* EPDS — Color tokens
   Monochrome-first. Neutrals carry hierarchy; accents carry ENGINEERING MEANING only.
   Layers: (1) primitive scales  (2) semantic aliases  (physics + AI + status live here). */
:root {
  /* ---- Primitive: neutral (cool graphite) ---- */
  --gray-0:   #ffffff;
  --gray-25:  #f6f7f9;
  --gray-50:  #eceef1;
  --gray-100: #e0e3e8;
  --gray-200: #c9ced6;
  --gray-300: #aab1bc;
  --gray-400: #858d9a;
  --gray-500: #646c79;
  --gray-600: #4b525d;
  --gray-700: #363b44;
  --gray-800: #262a31;
  --gray-900: #171a1f;
  --gray-950: #0d0f13;
  --gray-1000:#05070a;

  /* ---- Primitive: interaction blue (the single UI accent) ---- */
  --blue-50:  #eaf1fb;
  --blue-100: #caddf6;
  --blue-300: #6aa0ea;
  --blue-500: #1f6fe0;
  --blue-600: #175cd3;
  --blue-700: #1247a3;

  /* ---- Primitive: engineering signal hues ---- */
  --green-50:  #e6f4ec;  --green-500: #1f9d57;  --green-600: #17803f;  --green-700: #0f5d2c;
  --amber-50:  #fbf1dc;  --amber-500: #c98a12;  --amber-600: #a06d09;
  --red-50:    #fbe9e7;  --red-500:   #d33a2c;  --red-600:   #b02419;  --red-700:  #841206;
  --teal-50:   #dff2f1;  --teal-500:  #0f8f8a;  --teal-600:  #0b6d69;
  --violet-50: #efe9fa;  --violet-500:#6b4fd1;  --violet-600:#563ab3;

  /* ---- Semantic: surfaces & text (light theme default) ---- */
  --surface-page:    var(--gray-25);
  --surface-raised:  var(--gray-0);
  --surface-sunken:  var(--gray-50);
  --surface-card:    var(--gray-0);
  --surface-inverse: var(--gray-900);
  --surface-hover:   var(--gray-50);
  --surface-active:  var(--gray-100);

  --text-primary:    var(--gray-900);
  --text-secondary:  var(--gray-600);
  --text-tertiary:   var(--gray-500);
  --text-disabled:   var(--gray-400);
  --text-inverse:    var(--gray-25);
  --text-link:       var(--blue-600);
  --text-link-hover: var(--blue-700);

  --border-subtle:   var(--gray-100);
  --border-default:  var(--gray-200);
  --border-strong:   var(--gray-300);
  --border-inverse:  var(--gray-700);

  /* ---- Semantic: interaction ---- */
  --interactive:         var(--blue-600);
  --interactive-hover:   var(--blue-700);
  --interactive-subtle:  var(--blue-50);
  --focus-ring:          var(--blue-500);

  /* ---- Semantic: operational status ---- */
  --status-operational:  var(--green-600);
  --status-operational-bg:var(--green-50);
  --status-warning:      var(--amber-600);
  --status-warning-bg:   var(--amber-50);
  --status-critical:     var(--red-600);
  --status-critical-bg:  var(--red-50);
  --status-offline:      var(--gray-400);
  --status-offline-bg:   var(--gray-50);

  /* ---- Semantic: PHYSICS validation states (each has a distinct, teachable color) ---- */
  --physics-validated:   var(--green-600);   /* measured + confirmed against model */
  --physics-calculated:  var(--blue-600);    /* deterministic first-principles result */
  --physics-estimated:   var(--teal-600);    /* inferred within tolerance */
  --physics-simulated:   var(--violet-600);  /* model / twin output, not measured */
  --physics-violated:    var(--red-600);     /* constraint or envelope breach */
  --physics-unknown:     var(--gray-400);    /* insufficient data */

  /* ---- Semantic: AI communication (kept visually SEPARATE from engineering fact) ---- */
  --ai-accent:    var(--violet-500);
  --ai-accent-bg: var(--violet-50);
  --ai-fact:      var(--gray-900);   /* deterministic engineering fact = monochrome */
  --confidence-high:   var(--green-600);
  --confidence-medium: var(--amber-600);
  --confidence-low:    var(--red-600);
}
