c98bf56706
The CSS `[role="dialog"]:has(:focus)` rule from #621 promotes any focused dialog to a full-width sheet sized to `100dvh`, but Safari does not auto-scroll the focused input into view inside the dialog's own overflow container — it only tries to scroll the document, which our position:fixed dialog ignores. The field stays where it was, often behind the keyboard. Added a global `useScrollFocusedDialogField` hook (in artifacts/tx-os/src/hooks/) that listens to `document` focusin. If the target is an input/textarea/select/contenteditable inside a `closest('[role="dialog"]')`, it calls `target.scrollIntoView({block:'center', behavior:'smooth'})` twice (300ms and 600ms) to cover the iPad keyboard animation window and the dialog's `max-height:100dvh` recalc. Timers are cleared on blur and on unmount. Mounted the hook once in `NotificationsSocketBridge` inside App.tsx so it covers every page and every dialog kind we use (Radix DialogContent, the bespoke AdminFormDialog, ad-hoc role="dialog" wrappers) without touching their JSX. No CSS or dialog component changes. `tsc --noEmit` clean.