On mobile the dialog was rendering with its top hidden behind the in-page \"Agents\" header. The dialog wasn't actually positioned wrong — its overlay is `position: fixed; inset: 0`. The problem was that NewAgentDialog rendered as a child of `.agents-view` (which has `overflow: hidden` and `position: relative`), and an ancestor stacking context combined with the relative+overflow parent prevented the fixed overlay from escaping above the page header in the painter's order. Render the dialog through `createPortal(..., document.body)` so the overlay attaches at the document root, escaping every parent stacking context. This is the standard React modal pattern. All 9639 dashboard tests still pass — React Testing Library queries traverse portals transparently. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
32 KiB
32 KiB