:root {
  /* ---- Brand: Signal Violet -------------------------------------------- */
  --violet-50:  #F5F3FE;
  --violet-100: #EBE6FD;
  --violet-200: #D8CFFA;
  --violet-300: #BCACF5;
  --violet-400: #9B84EC;
  --violet-500: #7C5CE0;
  --violet-600: #6340CE;
  --violet-700: #5132AC;
  --violet-800: #422A8B;
  --violet-900: #2F1E66;
  --violet-950: #1D1240;

  /* ---- Neutrals: cool, faintly violet-shifted --------------------------- */
  --neutral-0:   #FFFFFF;
  --neutral-25:  #FCFCFE;
  --neutral-50:  #F8F8FB;
  --neutral-100: #F2F2F7;
  --neutral-200: #E7E7EF;
  --neutral-300: #D5D5E1;
  --neutral-400: #B0B0C0;
  --neutral-500: #83838F;
  --neutral-600: #61616D;
  --neutral-700: #46464F;
  --neutral-800: #2E2E36;
  --neutral-900: #1B1B21;

  /* ---- Telephony status ------------------------------------------------ */
  /* Live / connected */
  --live-50: #E7F7EF;  --live-100: #C6ECDB;  --live-500: #0E9F6E;  --live-700: #07734F;
  /* Ringing / inbound */
  --ring-50: #E8F1FE;  --ring-100: #CBDFFC;  --ring-500: #2B6FEF;  --ring-700: #1B4CAC;
  /* On hold / warning / SLA at risk */
  --hold-50: #FDF3E2;  --hold-100: #FAE3BB; --hold-500: #C97E0A;  --hold-700: #8E5804;
  /* Missed / failed / SLA breach */
  --fail-50: #FDECEC;  --fail-100: #F9CFD0; --fail-500: #D32F35;  --fail-700: #9A1F24;
  /* Queued / waiting — desaturated so a full queue does not read as an alarm */
  --queue-50: #EEF0F4; --queue-100: #DCE0E8; --queue-500: #5E6B85; --queue-700: #3D4759;

  /* ---- Categorical: charts, queue tags, IVR branch colors -------------- */
  --cat-1: #6340CE;  /* violet   */
  --cat-2: #2B8FA8;  /* teal     */
  --cat-3: #C97E0A;  /* amber    */
  --cat-4: #B0479B;  /* magenta  */
  --cat-5: #4B7F4B;  /* moss     */
  --cat-6: #7C6A9E;  /* muted lilac */

  /* ---- Semantic aliases: use these in product code --------------------- */
  --surface-page:       var(--neutral-50);
  --surface-card:       var(--neutral-0);
  --surface-sunken:     var(--neutral-100);
  --surface-raised:     var(--neutral-0);
  --surface-nav:        var(--neutral-0);
  --surface-brand:      var(--violet-600);
  --surface-brand-soft: var(--violet-50);
  --surface-hover:      var(--neutral-100);
  --surface-selected:   var(--violet-50);
  --surface-disabled:   var(--neutral-100);
  --surface-overlay:    rgba(27, 27, 33, 0.45);

  --text-primary:    var(--neutral-900);
  --text-secondary:  var(--neutral-600);
  --text-tertiary:   var(--neutral-500);
  --text-disabled:   var(--neutral-400);
  --text-inverse:    var(--neutral-0);
  --text-brand:      var(--violet-700);
  --text-link:       var(--violet-700);
  --text-link-hover: var(--violet-800);
  --text-danger:     var(--fail-700);

  --border-subtle:   var(--neutral-200);
  --border-default:  var(--neutral-300);
  --border-strong:   var(--neutral-400);
  --border-brand:    var(--violet-500);
  --border-focus:    var(--violet-500);
  --border-danger:   var(--fail-500);

  --focus-ring: 0 0 0 3px var(--violet-200);
}
