**Epic:** Shared primitives **Labels:** ui, ux, phase-2, frontend **Size:** S (~1 day) ### Description Generic confirmation modal reused across complete adoption, resolve dispute, delete document, reset preferences. ### Tasks - [ ] Accept title, body, confirmLabel, cancelLabel, onConfirm, onCancel, isDangerous? props - [ ] isDangerous=true: confirm button is red - [ ] Focus trap: focus moves to confirm button on open - [ ] ESC key: calls onCancel - [ ] Accessible: role="alertdialog", aria-modal, aria-labelledby - [ ] Unit test: onConfirm called on confirm, onCancel on ESC, focus trap