/* ============================================================
   OneAgent — Color tokens
   Calm, trustworthy, intelligent. Warm-ink neutrals + a single
   confident jade accent (growth / confirm / self-evolution).
   Token currency gets its own gold accent.
   ============================================================ */

:root {
  /* ---- Brand jade (primary) ------------------------------- */
  --jade-50:  #ECF7F2;
  --jade-100: #D3EDE2;
  --jade-200: #A6DBC6;
  --jade-300: #6FC3A4;
  --jade-400: #3FA683;
  --jade-500: #1F8A68;  /* base brand */
  --jade-600: #15765A;
  --jade-700: #115E47;
  --jade-800: #0F4A39;
  --jade-900: #0C3B2E;

  /* ---- Warm ink neutrals ---------------------------------- */
  --ink-0:   #FFFFFF;
  --ink-50:  #FAFAF7;  /* app paper background */
  --ink-100: #F3F3EE;
  --ink-150: #ECECE5;
  --ink-200: #E4E4DC;
  --ink-300: #D4D4CA;
  --ink-400: #ADADA1;
  --ink-500: #828276;
  --ink-600: #5C5C53;
  --ink-700: #43433C;
  --ink-800: #2A2A25;
  --ink-900: #191915;  /* strongest ink */

  /* ---- Token currency (gold) ------------------------------ */
  --gold-100: #FBF0D6;
  --gold-300: #F0CE7E;
  --gold-500: #D69B22;  /* base token gold */
  --gold-600: #B27E14;

  /* ---- Semantic hues -------------------------------------- */
  --green-500: #2E9E5B;  /* success */
  --green-100: #DFF3E6;
  --amber-500: #E0A52E;  /* warning */
  --amber-100: #FBF0D6;
  --red-500:   #D2483E;  /* danger / 高风险硬拒绝 */
  --red-600:   #B5392F;
  --red-100:   #FBE3E0;
  --blue-500:  #3B7DD8;  /* info (sparingly) */
  --blue-100:  #E2ECFA;

  /* ========================================================
     SEMANTIC ALIASES — reference these in components
     ======================================================== */

  /* Surfaces */
  --surface-app:      var(--ink-50);
  --surface-card:     var(--ink-0);
  --surface-sunken:   var(--ink-100);
  --surface-raised:   var(--ink-0);
  --surface-inverse:  var(--ink-900);
  --surface-hover:    var(--ink-100);
  --surface-active:   var(--ink-150);
  --surface-brand-soft: var(--jade-50);

  /* Text */
  --text-strong:    var(--ink-900);
  --text-body:      var(--ink-800);
  --text-muted:     var(--ink-600);
  --text-faint:     var(--ink-500);
  --text-disabled:  var(--ink-400);
  --text-on-brand:  var(--ink-0);
  --text-on-inverse: var(--ink-100);
  --text-brand:     var(--jade-600);
  --text-link:      var(--jade-600);

  /* Borders / hairlines */
  --border-subtle:  var(--ink-200);
  --border-default: var(--ink-300);
  --border-strong:  var(--ink-400);
  --border-brand:   var(--jade-500);
  --border-focus:   var(--jade-500);

  /* Brand actions */
  --brand:          var(--jade-500);
  --brand-hover:    var(--jade-600);
  --brand-press:    var(--jade-700);
  --brand-fg:       var(--ink-0);

  /* Token currency */
  --token:          var(--gold-600);
  --token-soft-bg:  var(--gold-100);

  /* Semantic intent */
  --success:        var(--green-500);
  --success-soft:   var(--green-100);
  --warning:        var(--amber-500);
  --warning-soft:   var(--amber-100);
  --danger:         var(--red-500);
  --danger-hover:   var(--red-600);
  --danger-soft:    var(--red-100);
  --info:           var(--blue-500);
  --info-soft:      var(--blue-100);

  /* Focus ring */
  --ring: 0 0 0 3px color-mix(in oklch, var(--jade-500) 28%, transparent);
}
