Access approval now shows in-flight feedback

The approve dialog stays open with a spinner while your action processes — no more silent closures or invisible failures.

Bug Fixes

Previously, clicking Approve in the access request dialog would close immediately without any visual feedback—if the server action failed, you'd have no indication and would need to check the table manually. Now the dialog stays open with a spinner while the approval is in flight. Buttons are disabled during processing, the backdrop is blocked from closes, and on success the dialog closes with a toast. On any error or validation failure, the spinner clears and the dialog remains open so you can retry.