- index.html: tighten the viewport meta with maximum-scale=1,
user-scalable=no, viewport-fit=cover so pinch-zoom is disabled
on browsers that honor the hint (Android Chrome).
- SearchPanel: bump the mobile search input from text-sm (14px) to
text-base (16px). iOS Safari auto-zooms inputs whose font-size is
below 16px on focus, which widened the viewport and let the user
pan horizontally; 16px stops that behavior at the source.
- SearchPanel: focus input with { preventScroll: true } so the browser
doesn't auto-scroll the underlying page when the overlay mounts.
- SearchPanel: add overscroll-contain on the scroll container so
reaching the panel's edges does not chain into the body on Android.
- PublicLayout: lock background scroll while the mobile search overlay
is open using the iOS-compatible position-fixed + restore pattern,
so the page underneath cannot move at all.