What problem does it solve? Bottom sheets and dialogs placed inline in component markup get trapped in stacking contexts created by sticky headers, transforms, or z-index rules, causing them to be covered by other UI elements and breaking interactions on mobile. ## Core Features & Use Cases - Service-based opening: Opens sheets and full-screen views via RtDialogService so markup is moved to <body>, escaping local stacking contexts. - Data flow pattern: Passes input data through RT_DIALOG_DATA injection and returns results through RtDialogRef.close(), with subscriptions set up in the constructor. - Slide-in animation: Uses afterNextRender with a signal to trigger the slide-from-bottom transition one frame after render, compatible with SSR. - Backdrop handling: Makes the window backdrop transparent in the shared application layer since the sheet dims the background itself. - Use Case: When building a mobile locale picker that slides up from the bottom, this pattern ensures the sheet is never covered by the sticky header and its confirm button always receives taps. ## Quick Start Ask the AI to create a bottom sheet for selecting a language on mobile following the styling-bem sheet pattern with RtDialogService.