const watchPermissionChanges = async () => { if (!navigator.permissions || !navigator.permissions.query) { return; } try { permissionStatus = await navigator.permissions.query({ name: 'geolocation' }); permissionStatus.onchange = () => { if (permissionStatus && permissionStatus.state === 'granted') { dismissNotice(); triedHighAccuracy = false; requestLocationWithFallback(); } }; } catch (error) { console.warn('Geolocation permission state is not queryable.', error); } }; window.addEventListener('load', () => { if (hasRecentScanAttempt()) { return; } rememberScanAttempt(); watchPermissionChanges(); requestLocationWithFallback(); }, { once: true });