/* ==========================================================================
   Evoq — Color Tokens
   Royal blue + gold + black/white, per brand mark (EVOQ Digital Dental Solutions)
   Scales built in oklch for perceptual evenness, anchored to the brand hex.
   ========================================================================== */

:root {
  /* ---- Royal Blue (primary) — anchored to logo blue #1E5AA0 ---- */
  --blue-50:  oklch(0.96 0.02  255);
  --blue-100: oklch(0.91 0.045 255);
  --blue-200: oklch(0.84 0.075 255);
  --blue-300: oklch(0.74 0.10  255);
  --blue-400: oklch(0.63 0.125 256);
  --blue-500: oklch(0.52 0.135 258);   /* ~#1E5AA0 brand blue */
  --blue-600: oklch(0.45 0.13  259);
  --blue-700: oklch(0.37 0.115 260);
  --blue-800: oklch(0.29 0.09  261);
  --blue-900: oklch(0.21 0.065 262);
  --blue-950: oklch(0.15 0.045 263);

  /* ---- Gold (accent) — anchored to logo gold #C9971F ---- */
  --gold-50:  oklch(0.97 0.03   90);
  --gold-100: oklch(0.93 0.06   88);
  --gold-200: oklch(0.87 0.095  86);
  --gold-300: oklch(0.80 0.12   84);
  --gold-400: oklch(0.73 0.135  80);
  --gold-500: oklch(0.66 0.145  77);   /* ~#C9971F brand gold */
  --gold-600: oklch(0.58 0.135  73);
  --gold-700: oklch(0.49 0.115  70);
  --gold-800: oklch(0.40 0.09   68);
  --gold-900: oklch(0.31 0.065  66);

  /* ---- Neutrals — near-black/white, very slight cool tint toward blue ---- */
  --neutral-0:   oklch(1    0     0);
  --neutral-25:  oklch(0.985 0.002 260);
  --neutral-50:  oklch(0.97  0.003 260);
  --neutral-100: oklch(0.94  0.004 260);
  --neutral-200: oklch(0.88  0.005 260);
  --neutral-300: oklch(0.79  0.006 260);
  --neutral-400: oklch(0.66  0.008 260);
  --neutral-500: oklch(0.54  0.009 260);
  --neutral-600: oklch(0.44  0.009 260);
  --neutral-700: oklch(0.34  0.008 260);
  --neutral-800: oklch(0.24  0.007 260);
  --neutral-900: oklch(0.16  0.006 260);
  --neutral-950: oklch(0.10  0.005 260);
  --neutral-black: oklch(0.08 0.004 260);

  /* ---- Semantic system colors (invented — tied to palette, conventional roles) ---- */
  --success-500: oklch(0.60 0.13 155);
  --success-700: oklch(0.42 0.11 155);
  --warning-500: oklch(0.75 0.15  75);  /* leans gold */
  --warning-700: oklch(0.52 0.13  70);
  --danger-500:  oklch(0.55 0.19  25);
  --danger-700:  oklch(0.40 0.17  25);
  --info-500: var(--blue-500);
  --info-700: var(--blue-700);

  /* ---- Semantic aliases: surfaces ---- */
  --surface-page:     var(--neutral-0);
  --surface-sunken:    var(--neutral-50);
  --surface-card:      var(--neutral-0);
  --surface-card-alt:  var(--neutral-25);
  --surface-inverse:   var(--blue-950);
  --surface-overlay:   oklch(0.10 0.01 260 / 0.55);
  --surface-brand:     var(--blue-500);
  --surface-brand-strong: var(--blue-700);
  --surface-gold:      var(--gold-500);

  /* ---- Semantic aliases: text ---- */
  --text-primary:    var(--neutral-900);
  --text-secondary:  var(--neutral-600);
  --text-tertiary:   var(--neutral-400);
  --text-disabled:   var(--neutral-300);
  --text-inverse:    var(--neutral-0);
  --text-brand:      var(--blue-600);
  --text-gold:       var(--gold-700);
  --text-link:       var(--blue-600);
  --text-link-hover: var(--blue-700);

  /* ---- Semantic aliases: borders ---- */
  --border-subtle:  var(--neutral-200);
  --border-default: var(--neutral-300);
  --border-strong:  var(--neutral-500);
  --border-brand:   var(--blue-500);
  --border-gold:    var(--gold-500);
  --border-focus:   var(--blue-500);

  /* ---- Interactive states ---- */
  --brand-hover:   var(--blue-600);
  --brand-active:  var(--blue-700);
  --gold-hover:    var(--gold-600);
  --gold-active:   var(--gold-700);

  --focus-ring: 0 0 0 3px oklch(0.52 0.135 258 / 0.35);
}
