:root{
  /* ---- Brand core (from TMN_color_palette) ---- */
  --tmn-bam-green:#005642;
  --tmn-crak-red:#E3433B;
  --tmn-dot-blue:#009FC7;
  --tmn-tile-beige:#F8F3EE;
  --tmn-ink:#302B26;

  /* ---- Green scale (primary) ---- */
  --green-900:#00301F;
  --green-800:#00422F;
  --green-700:#005642;
  --green-600:#0A6851;
  --green-500:#1B7D64;
  --green-300:#7FADA0;
  --green-200:#B9D2C9;
  --green-100:#DCEAE4;
  --green-050:#EEF5F2;

  /* ---- Red scale (Crak) ---- */
  --red-700:#A82D26;
  --red-600:#C6362F;
  --red-500:#E3433B;
  --red-300:#F09A95;
  --red-100:#FBE3E1;
  --red-050:#FDF1F0;

  /* ---- Blue scale (Dot) ---- */
  --blue-700:#00647E;
  --blue-600:#0081A2;
  --blue-500:#009FC7;
  --blue-300:#79CDE2;
  --blue-100:#DAF0F7;
  --blue-050:#EDF8FB;

  /* ---- Warm neutrals (Tile) ---- */
  --sand-000:#FFFFFF;
  --sand-050:#FDFBF9;
  --sand-100:#F8F3EE;
  --sand-200:#EFE7DE;
  --sand-300:#E2D6C9;
  --sand-400:#C6B7A7;
  --sand-500:#9C9084;
  --sand-600:#6E655C;
  --sand-700:#4A433C;
  --sand-800:#302B26;
  --sand-900:#1D1A16;

  /* ---- Semantic: text ---- */
  --text-body:var(--sand-800);
  --text-heading:var(--green-700);
  --text-muted:var(--sand-600);
  --text-subtle:var(--sand-500);
  --text-on-dark:#FFFDFA;
  --text-on-dark-muted:#C8DBD4;
  --text-link:var(--green-700);
  --text-link-hover:var(--red-500);
  --text-danger:var(--red-600);
  --text-info:var(--blue-700);

  /* ---- Semantic: surface ---- */
  --surface-page:var(--sand-100);
  --surface-card:var(--sand-000);
  --surface-raised:var(--sand-050);
  --surface-sunken:var(--sand-200);
  --surface-inverse:var(--green-700);
  --surface-inverse-deep:var(--green-900);
  --surface-accent-soft:var(--green-050);
  --surface-info-soft:var(--blue-050);
  --surface-danger-soft:var(--red-050);
  --surface-overlay:rgba(29,26,22,.48);

  /* ---- Semantic: border ---- */
  --border-subtle:#E6DCD2;
  --border-default:var(--sand-300);
  --border-strong:var(--sand-400);
  --border-inverse:rgba(255,253,250,.28);
  --border-focus:var(--blue-500);

  /* ---- Semantic: interactive ---- */
  --action-primary:var(--green-700);
  --action-primary-hover:var(--green-800);
  --action-primary-active:var(--green-900);
  --action-accent:var(--red-500);
  --action-accent-hover:var(--red-600);
  --action-accent-active:var(--red-700);
  --action-quiet-hover:var(--sand-200);
  --action-disabled-bg:var(--sand-200);
  --action-disabled-text:var(--sand-500);

  /* ---- Semantic: status ---- */
  --status-success:var(--green-600);
  --status-success-soft:var(--green-100);
  --status-danger:var(--red-500);
  --status-danger-soft:var(--red-100);
  --status-info:var(--blue-500);
  --status-info-soft:var(--blue-100);

  /* ---- Focus ring ---- */
  --focus-ring:0 0 0 3px rgba(0,159,199,.35);
}
