2ce7ec72fb
Device screenshots proved the WebView reports env(safe-area-inset-*)=0, so no web/CSS/JS trick can move content off the Dynamic Island — it must be fixed natively. Upgrade the Capacitor shell to v7 and add @capacitor-community/safe-area (populates env() with real per-device insets, edge-to-edge) and @capacitor/keyboard (resize:native so the composer sits directly on the keyboard, like Teams). - mobile: Capacitor 6 -> 7 for all plugins; add safe-area + keyboard; SafeArea/Keyboard config. - codemagic: npm ci -> npm install (dependency set changed); drop stale Cap6 lockfile. - web: remove the temporary StatusBar/34px hacks (env() now works); keep var(--sat)/var(--sab) padding. - share/connect: back link now respects env(safe-area-inset-top/left). - add native-style slide in/out (push/pop) animation when opening/closing a chat on mobile. Build marker -> 2026-07-17-batch92. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>