:root {
  /* ── Emerald scale (the one brand color) ── */
  --hs-emerald-50:  #d1fae5;
  --hs-emerald-100: #a7f3d0;
  --hs-emerald-200: #6ee7b7;
  --hs-emerald-300: #34d399;
  --hs-emerald-400: #10b981;
  --hs-emerald-500: #059669;  /* PRIMARY — money-coded, deeper than forest green */
  --hs-emerald-600: #047857;
  --hs-emerald-700: #065f46;

  --hs-emerald:       var(--hs-emerald-500);
  --hs-emerald-dark:  var(--hs-emerald-600);
  --hs-emerald-light: var(--hs-emerald-300);

  /* ── Neutrals (black / white / gray) ── */
  --hs-black:    #000000;
  --hs-ink:      #1a1a1a;   /* near-black for marks/logo */
  --hs-white:    #ffffff;
  --hs-gray-50:  #f5f5f5;
  --hs-gray-100: #ededed;
  --hs-gray-200: #e5e5e5;
  --hs-gray-300: #d1d5db;
  --hs-gray-500: #6b7280;
  --hs-gray-700: #374151;

  /* ── Status ── */
  --hs-danger: #dc2626;   /* forfeit, streak break, urgency */
  --hs-warning: #d97706;  /* system warnings only (rare) */

  /* ── Semantic role tokens — LIGHT (primary) ── */
  --bg:             var(--hs-white);
  --surface:        var(--hs-white);  /* cards: white + 1px border */
  --surface-2:      var(--hs-gray-50); /* alternate sections, list leadings */
  --text:           var(--hs-black);
  --text-secondary: var(--hs-gray-500);
  --text-tertiary:  var(--hs-gray-300);   /* faint specs, eyebrow context labels */
  --border:         var(--hs-gray-200);
  --primary:        var(--hs-emerald);
  --primary-text:   #ffffff;           /* label on emerald button */
  --on-primary:     #ffffff;           /* alias of --primary-text */
  --primary-tint:   var(--hs-emerald-50);   /* 15%-ish emerald fill (duotone icons, emerald tags) */
  --primary-tint-text: var(--hs-emerald-700);
  --border-strong:  var(--hs-gray-300);     /* secondary-button outline, stronger than hairline */
  --surface-sunken: var(--hs-gray-50);      /* alias of --surface-2 (neutral tag bg, list leadings) */
  --danger:         var(--hs-danger);
  --danger-text:    #ffffff;
  --danger-tint:    #fdeaea;           /* soft red fill for danger tags */
  --focus-ring:     var(--hs-emerald);
}

/* ── Semantic role tokens — DARK (true black + elevated cards) ── */
[data-theme="dark"] {
  --bg:             #000000;
  --surface:        #1c1c1e;
  --surface-2:      #0e0e10;
  --text:           #ffffff;
  --text-secondary: #9ca3af;
  --text-tertiary:  #6b7280;
  --border:         #2a2a2c;
  --primary:        var(--hs-emerald-light);
  --primary-text:   #000000;
  --on-primary:     #000000;
  --primary-tint:   rgba(52, 211, 153, 0.15);
  --primary-tint-text: var(--hs-emerald-light);
  --border-strong:  #3a3a3c;
  --surface-sunken: #0e0e10;
  --danger:         #ef4444;
  --danger-text:    #ffffff;
  --danger-tint:    rgba(239, 68, 68, 0.16);
  --focus-ring:     var(--hs-emerald-light);
}
