0f567c4ba0
- Kiosk (Android): btnSettings was positioned top|end with alpha=0.12, sitting invisibly on top of the HTML scan button in the webapp header. Moved to bottom|end (marginBottom=80dp, alpha=0.28) so it never overlaps the header. Kiosk versionCode 15→16, versionName 1.7.15. - Web (Android Chrome/Brave): pointerleave fired before pointerup when finger drifted, cancelling the long-press timer and letting a synthetic click bubble to an unintended handler. Fixed with setPointerCapture + preventDefault + replaced pointerleave with pointercancel. Added touch-action:manipulation to .header-scan-btn CSS.