Issue #3611882: Clicking a seat does not book it (pointer capture swallows the click)
Follow-up to #3611792 / #3611851 (graphical seat-map picker).
Problem
Clicking a seat no longer books it - nothing happens on click.
The map's pan handling calls viewport.setPointerCapture(e.pointerId) on pointerdown so a drag started on the map keeps receiving pointer events when the cursor leaves the viewport. But capturing the pointer on pointerdown prevents the subsequent click event from reaching the seat <button> in Chrome, so the click-to-book handler never fires.
Fix
Drop setPointerCapture(). Instead attach the pointerup/pointercancel listeners to window rather than the viewport, so a release outside the viewport still ends the drag (the original reason for capturing) while the click still reaches the seat. The existing no-button-pressed guard on pointermove remains as a further safety net.