Issue
A window can be dragged beyond the phone viewport and cannot be recovered.
Cause
Desktop bounds were used without safe insets, device rotation, or the panel size.
Fix
Constrain the final rectangle, not only its top-left point. Recalculate bounds when AbsoluteSize or orientation changes and leave room for Roblox CoreGui insets. Provide a reset-layout action for accessibility and recovery.
Verify
Drag toward every edge in portrait and landscape emulation, then rotate while the panel is near a boundary.
Official Roblox UIDragDetector announcement
#1
Original Heliotrope guidance with authoritative Roblox sources.