1a77a0bfc2
The popup HAD an IntersectionObserver-based infinite scroll (since v1.0.0:6 alongside the main workout-history page), but the observer was unreliable inside an `absolute`-positioned scroll container with a small 60px rootMargin. It often didn't fire at all — leaving the user with a popup that scrolled internally but never fetched more data even when hundreds of history entries existed server-side. Fix: replace IntersectionObserver with a plain `scroll` event listener on the popup. Fires whenever the user scrolls within 300px of the bottom (matching WorkoutsList's lookahead on the main page). Also runs once on mount in case the first page doesn't fill the popup. Bottom status row now shows "Loading more..." / "Scroll to load more" / "End of history" so the user has feedback on state. No schema, no API, no data.