- BackendSelectionStep: responsive grid (1-col mobile, 2-col desktop) for cards; button row stacks vertically on mobile
- BackendCard: add w-full to fill grid cell on all viewports
- RemoteConfigStep/DeploymentStep/ReviewStep: flex-col sm:flex-row button rows; w-full sm:w-auto on Back/Next buttons
- StepIndicator: add hidden sm:block to all three label spans (completed, active, future)
- Destructure dispatch from useWizard() alongside state
- Derive showIntune and showRmm booleans from state.deployment.scriptTargets
- Conditionally unmount Intune OutputBlocks (showIntune) and RMM OutputBlock (showRmm)
- rclone.conf OutputBlock always rendered regardless of scriptTargets
- handleDownloadZip builds files array dynamically — filters by showIntune/showRmm
- Add Back button dispatching SET_STEP(2) following DeploymentStep pattern
- All 15 ReviewStep tests green including new TECH-01 and TECH-02 cases
- ReviewStep.tsx: live rclone.conf preview via useMemo+try/catch (CONF-02)
- Security acknowledgement checkbox gates all download/copy buttons (SECU-01)
- 'No data is sent to any server' privacy notice (SECU-02)
- 4 OutputBlocks with download (DOWN-01–04) and copy (DOWN-06, CONF-03)
- Download All (ZIP) button calls downloadZip with all 4 file entries (DOWN-05)
- Replaced all expect.fail stubs with real assertions — 10/10 tests GREEN