/* ============================================================
   Aeris One — Color tokens
   Primary brand: Aeris Violet #5f259f (from the logo)
   Cool, faintly violet-tinted neutrals. Operational semantics.
   ============================================================ */

:root {
  /* ---- Brand: Aeris Violet ------------------------------- */
  --violet-50:  #f6f2fc;
  --violet-100: #ece1f8;
  --violet-200: #d8c3f0;
  --violet-300: #bd9be4;
  --violet-400: #9e6bd4;
  --violet-500: #8344c2;
  --violet-600: #6e2eac;
  --violet-700: #5f259f; /* ← BRAND ANCHOR */
  --violet-800: #4c1d80;
  --violet-900: #3a1762;
  --violet-950: #240e40;

  /* ---- Iris: secondary periwinkle accent (energy/glow) --- */
  --iris-300: #b3a8ff;
  --iris-400: #8f7dff;
  --iris-500: #6d5cff;
  --iris-600: #5640e6;

  /* ---- Deep operational backgrounds (hero / app chrome) -- */
  --ink-900: #150a28; /* deepest hero violet-black */
  --ink-800: #1d1138;
  --ink-700: #281748;

  /* ---- Neutrals: cool slate, faint violet cast ----------- */
  --neutral-0:   #ffffff;
  --neutral-50:  #f8f8fb;
  --neutral-100: #f1f1f6;
  --neutral-200: #e6e5ee;
  --neutral-300: #d4d3df;
  --neutral-400: #a9a8bc;
  --neutral-500: #7b7a92;
  --neutral-600: #57566b;
  --neutral-700: #3e3d50;
  --neutral-800: #28283a;
  --neutral-900: #191926;
  --neutral-950: #0f0f1a;

  /* ---- Semantic / operational signal colors -------------- */
  --success-50:  #ecfdf3;
  --success-500: #16a34a;
  --success-600: #15803d;
  --success-700: #166534;

  --warning-50:  #fffaeb;
  --warning-500: #f59e0b;
  --warning-600: #d97706;
  --warning-700: #b45309;

  --danger-50:   #fef2f2;
  --danger-500:  #e5484d;
  --danger-600:  #cc333a;
  --danger-700:  #a52830;

  --info-50:     #eff5ff;
  --info-500:    #3b6fe0;
  --info-600:    #2d57c4;

  /* ============================================================
     SEMANTIC ALIASES — reference these in components, not raw scales
     ============================================================ */

  /* Brand */
  --brand:            var(--violet-700);
  --brand-hover:      var(--violet-800);
  --brand-active:     var(--violet-900);
  --brand-subtle:     var(--violet-50);
  --brand-subtle-fg:  var(--violet-700);
  --brand-accent:     var(--iris-500);

  /* Text */
  --text-strong:    var(--neutral-900);
  --text-body:      var(--neutral-700);
  --text-muted:     var(--neutral-500);
  --text-subtle:    var(--neutral-400);
  --text-on-brand:  var(--neutral-0);
  --text-on-dark:   #efeaf7;
  --text-link:      var(--violet-700);

  /* Surfaces */
  --surface-page:     var(--neutral-50);
  --surface-card:     var(--neutral-0);
  --surface-sunken:   var(--neutral-100);
  --surface-hover:    var(--neutral-100);
  --surface-inverse:  var(--ink-900);
  --surface-brand:    var(--violet-700);

  /* Borders */
  --border-subtle:  var(--neutral-200);
  --border-default: var(--neutral-300);
  --border-strong:  var(--neutral-400);
  --border-brand:   var(--violet-300);
  --border-focus:   var(--violet-500);

  /* Semantic fg/bg pairs */
  --success-fg: var(--success-700);
  --success-bg: var(--success-50);
  --warning-fg: var(--warning-700);
  --warning-bg: var(--warning-50);
  --danger-fg:  var(--danger-700);
  --danger-bg:  var(--danger-50);
  --info-fg:    var(--info-600);
  --info-bg:    var(--info-50);

  /* Focus ring */
  --ring: 0 0 0 3px color-mix(in srgb, var(--violet-500) 35%, transparent);
}
