:root{
  /* --- Base palette (pulled from the Vixiomatic Main26 deck) --- */
  --green-600:#5A8D60;   /* brand green, primary block colour */
  --green-500:#57A861;   /* bright green, eyebrow + process labels */
  --green-300:#87AB8B;   /* muted green, recoloured icon fill on panels */
  --green-100:#E8F0E9;   /* pale green, secondary text on green panels */
  --green-050:#F2F7F3;   /* pale green wash, derived surface tint */

  --orange-500:#FF6B00;  /* marker orange: badges, small icons */
  --red-500:#F44E33;     /* stat / outcome red-orange */

  --gray-900:#545454;    /* charcoal, headline text */
  --gray-700:#636569;    /* mid gray, body text */
  --gray-400:#A6A6A6;    /* light gray, borders + dividers */
  --gray-200:#D9D9D9;    /* derived hairline */
  --gray-100:#F1F1F2;    /* derived card wash */
  --white:#FFFFFF;

  /* --- Interaction shades (derived; deck has no hover states) --- */
  --green-600-hover:#4C7A52;
  --green-600-press:#3F6644;
  --orange-500-hover:#E55F00;
  --orange-500-press:#C75300;
  --red-500-hover:#DB422A;

  /* --- Semantic aliases --- */
  --brand:var(--green-600);
  --brand-accent:var(--green-500);
  --marker:var(--orange-500);
  --stat:var(--red-500);

  --text-heading:var(--gray-900);
  --text-body:var(--gray-700);
  --text-muted:var(--gray-400);
  --text-on-brand:var(--white);
  --text-on-brand-muted:var(--green-100);
  --text-stat:var(--red-500);
  --text-label:var(--green-500);
  --text-link:var(--green-600);
  --text-link-hover:var(--green-600-hover);

  --surface-page:var(--white);
  --surface-card:var(--white);
  --surface-card-wash:var(--gray-100);
  --surface-panel:var(--green-600);
  --surface-tint:var(--green-050);

  --border-card:var(--gray-400);
  --border-hairline:var(--gray-200);
  --border-on-brand:rgba(255,255,255,.45);

  --icon-on-brand:var(--white);
  --icon-on-panel-muted:var(--green-300);
  --icon-marker:var(--orange-500);
  --icon-stat:var(--red-500);

  --watermark-opacity:.08; /* @kind other */
}
