- B3 type contract: PilotRequestResponse.id is string (UUID via CAST), drop tracking_id;
derive display ID as GD-{first8hexUppercase} from UUID
- B4 stale flag: LandingStatsOut Pydantic schema adds stale:bool=False; fallback
returns stale=True with zeroed fields (no fake numbers); frontend shows skeleton
placeholders when stale=true
- PilotRequestModal: replaced manual backdrop+panel+ESC logic with <Drawer side="bottom">
(focus trap, ESC, scroll-lock, focus restore for free); removed ~80 LoC
- Design tokens: all #hex literals in page.tsx and PilotRequestModal.tsx replaced
with var(--token) from globals.css; h1 fontSize 32 -> 28 per display spec
- HeadlineBar: hand-rolled dark div in page.tsx replaced with <HeadlineBar> component