Replace the placeholder preview popup with a fully functional DxPdfViewer
popup:
- Popup resized to 80vw × 90vh with drag, resize and background shading.
- OpenPreviewAsync: unmounts viewer, fetches PDF bytes via
GetDocumentOfSenderAsync, then mounts DxPdfViewer only after bytes are
ready (prevents DevExpress ProcessDocumentChangedAsync NRE).
- Loading spinner shown while fetching; typed error panel shown on
NotFoundException or general failure.
- OnPreviewClosed: unmounts viewer before nulling byte array so DevExpress
async render never touches a disposed reference.
- Inject ReceiverPageDataService, EnvelopeAuthService and ILogger.