/* ============================================================
   FormuNova — Color tokens
   Brand anchors: #0059A7 (FormuNova Blue) · #1F2328 (Ink) · #F8F4FF (Mist)
   Accent: #36837E (teal) for select buttons / highlights.
   Restrained system: one blue, a calm neutral ramp, a teal accent.
   ============================================================ */

:root {
  /* ---- Brand blue scale ---- */
  --blue-50:  #E8F0FC;   /* Mist — given light surface */
  --blue-100: #D3E2F8;
  --blue-200: #A8C6F0;
  --blue-300: #6F9FE3;
  --blue-400: #3478CF;
  --blue-500: #0059A7;   /* FormuNova Blue — primary */
  --blue-600: #004A8C;
  --blue-700: #003C78;
  --blue-800: #002F5E;
  --blue-900: #002247;

  /* ---- Neutral ramp (warm-cool balanced, anchored on Ink) ---- */
  --white:    #FFFFFF;
  --gray-50:  #F7F8FA;
  --gray-100: #EFF1F4;
  --gray-200: #E2E6EB;
  --gray-300: #CBD2DA;
  --gray-400: #A4AEB9;
  --gray-500: #76818E;
  --gray-600: #55606D;
  --gray-700: #3A434E;
  --gray-800: #272D34;
  --gray-900: #1F2328;   /* Ink — given darkest */

  /* ---- Mist — soft lavender-white callout surface ---- */
  --mist: #F8F4FF;

  /* ---- Teal accent — secondary actions & highlights ---- */
  --teal-50:  #E7F1F0;
  --teal-500: #36837E;   /* accent */
  --teal-600: #2C6A66;
  --teal-700: #224F4C;

  /* ---- Semantic accents (used sparingly — trust signals) ---- */
  --green-50:  #E6F4ED;
  --green-500: #178A5A;  /* verified / certified / success */
  --green-600: #126E48;
  --amber-50:  #FBF1DD;
  --amber-500: #C2870F;  /* caution / pending */
  --red-50:    #FBE9E7;
  --red-500:   #C8453B;  /* error / destructive */

  /* ============================================================
     Semantic aliases — reference these in components, not raw scale
     ============================================================ */

  /* Text */
  --text-strong:    var(--gray-900);   /* headlines, primary copy */
  --text-body:      var(--gray-700);   /* default body */
  --text-muted:     var(--gray-500);   /* captions, meta */
  --text-on-blue:   var(--white);      /* text on blue surfaces */
  --text-on-blue-muted: var(--blue-100);
  --text-link:      var(--blue-500);
  --text-brand:     var(--blue-500);

  /* Surfaces */
  --surface-page:    var(--white);
  --surface-subtle:  var(--gray-50);
  --surface-card:    var(--white);
  --surface-mist:    var(--mist);      /* soft lavender-white callout */
  --surface-tint:    var(--blue-50);   /* light blue tint section */
  --surface-brand:   var(--blue-500);  /* primary blue block */
  --surface-brand-deep: var(--blue-800);
  --surface-ink:     var(--gray-900);  /* near-black block */

  /* Borders & lines */
  --border-subtle:   var(--gray-200);
  --border-default:  var(--gray-300);
  --border-strong:   var(--gray-400);
  --border-brand:    var(--blue-500);
  --border-on-blue:  rgba(255, 255, 255, 0.22);

  /* Interactive (primary = blue) */
  --action-primary:        var(--blue-500);
  --action-primary-hover:  var(--blue-600);
  --action-primary-active: var(--blue-700);
  --action-accent:         var(--teal-500);
  --action-accent-hover:   var(--teal-600);
  --action-accent-active:  var(--teal-700);
  --text-accent:           var(--teal-600);
  --focus-ring:            var(--blue-400);

  /* Feedback */
  --feedback-success: var(--green-500);
  --feedback-warning: var(--amber-500);
  --feedback-error:   var(--red-500);
  --feedback-info:    var(--blue-500);
}
