- StatusBadge normalizes underscore status keys (no_show → no-show) so a
DB-sourced no_show appointment renders the styled "No-show" badge instead
of a raw gray label (item 1).
- deriveDisplayStatus derives a Pending badge for an upcoming appointment
whose confirmationStatus is pending, and Waitlisted for synthetic waitlist
entries (item 2, CMPO-approved on GRO-2326/GRO-2328).
- AppointmentCard renders waitlist-backed entries with a muted dashed-border
card + "You're on the waitlist…" subtext, and hides the confirm/notes/
reschedule/cancel actions (a waitlist entry is not a booked appointment).
- Tests for normalizeStatusKey, deriveDisplayStatus, and the No-show badge.
- UAT_PLAYBOOK.md §5.12f added for the now-live palette states.
Co-Authored-By: Paperclip <noreply@paperclip.ing>