There is no navigator.onLine handling, so send, claim, and scan actions can be triggered offline and fail with confusing RPC errors. We should add an online and offline listener, an "Offline" badge in the layout header, and a disabled state for network-dependent actions while offline.
Acceptance criteria
- Going offline disables send, claim, and scan and shows the badge.
- The state recovers automatically on reconnect.
There is no
navigator.onLinehandling, so send, claim, and scan actions can be triggered offline and fail with confusing RPC errors. We should add an online and offline listener, an "Offline" badge in the layout header, and a disabled state for network-dependent actions while offline.Acceptance criteria