fix(mobile): gate iOS-notch header padding to iOS only master
The header's --safe-area-top fallback was hard-coded to 40px everywhere, leaking the iOS notch reserve onto Android. On Android, env(safe-area-inset-top) returns 0 and the Kotlin bridge sets the real WindowInsets value, so the 40px default was visible as wasted vertical space above the header on every Android launch. Changes: - App.tsx: replace the 40px JS default with a CSS probe of env(safe-area-inset-top,0px). On iOS this reads the actual notch height; on Android WebView it returns 0 and the Kotlin bridge overwrites with the correct status-bar inset. - App.css header: change fallback from 40px to env(safe-area-inset-top,0px) so iOS gets the correct notch inset even before JS runs; Android sees 0 until the bridge fires. - App.css .edit-overlay: same fallback fix.