Opening a file without a supported preview now shows a File preview dialog with its full filename, size, and a Download button. Long filenames wrap within the viewport, and the dialog shows loading and retryable error states.
The download uses a reusable mutation that preserves the filename. File-size formatting is shared with the directory table. Temporary forced UI states have been removed.
Implements the fallback dialog requested in DRE-36.
Validation: Biome checks pass for all five changed files, and the frontend typecheck passes against current main. Live download verification remains outstanding.
Downloads currently buffer the response before saving. Streaming is tracked in DRE-41; better frontend mock scenarios are tracked in DRE-42.