:root{
  /* text */
  --text-primary:var(--luz-gray-900);
  --text-secondary:var(--luz-gray-600);
  --text-muted:var(--luz-gray-400);
  --text-on-blue:var(--luz-white);
  --text-on-blue-soft:rgba(255,255,255,.82);
  --text-on-yellow:var(--luz-blue-900);
  --text-accent:var(--luz-blue-600);
  --text-link:var(--luz-blue-600);
  --text-link-hover:var(--luz-blue-800);
  --text-highlight:var(--luz-blue-900);

  /* surfaces */
  --surface-page:var(--luz-white);
  --surface-subtle:var(--luz-gray-50);
  --surface-card:var(--luz-white);
  --surface-card-alt:var(--luz-blue-50);
  --surface-brand:var(--luz-blue-500);
  --surface-brand-deep:var(--luz-blue-800);
  --surface-accent:var(--luz-yellow-500);
  --surface-inverse:var(--luz-blue-900);

  /* borders */
  --border-subtle:var(--luz-gray-200);
  --border-default:var(--luz-gray-300);
  --border-brand:var(--luz-blue-500);
  --border-accent:var(--luz-yellow-500);
  --border-on-blue:rgba(255,255,255,.28);

  /* interactive */
  --action-primary:var(--luz-yellow-500);
  --action-primary-hover:var(--luz-yellow-400);
  --action-primary-active:var(--luz-yellow-600);
  --action-primary-text:var(--luz-blue-900);
  --action-secondary:var(--luz-blue-500);
  --action-secondary-hover:var(--luz-blue-400);
  --action-secondary-active:var(--luz-blue-600);
  --action-secondary-text:var(--luz-white);
  --action-disabled:var(--luz-gray-200);
  --action-disabled-text:var(--luz-gray-400);
  --focus-ring:0 0 0 3px rgba(252,208,0,.75);
  --focus-ring-on-yellow:0 0 0 3px rgba(0,129,255,.75);

  /* status */
  --status-danger:var(--luz-red-500);
  --status-danger-surface:var(--luz-red-100);
  --status-success:var(--luz-green);
  --status-info:var(--luz-blue-500);
  --status-warning:var(--luz-yellow-600);
}
