Two upload-zone fixes:
1. The file input had `display:none`. Several mobile browsers (notably
older iOS Safari and some Android WebViews) refuse to open the file
picker for a display-none input even through a wrapping <label> or a
scripted .click(). Replace with the visually-hidden pattern:
position:absolute, 1x1 px, opacity:0 — the input stays a real
clickable element but takes no visible space.
2. We had a redundant `dz.addEventListener('click', () => fi.click())`
on the <label> that also wraps the input. The native label behavior
ALREADY dispatches a click to the input; the scripted .click() fires
a second one on top. Desktop Chrome ignores or errors on the second
picker request. Dropped the handler; the native label path is
enough and more reliable on mobile too.