c775ca2740
Debug confirmed resize:native shrinks the WebView by the keyboard height, so the composer only needs the residual lift = clientHeight - visualViewport.height (46px on the test device — the prediction-bar sliver). Tracked live via VisualViewport so it follows the keyboard. Zero per-device constants. Removed debug bar; reverted Keyboard config to resize:native (which the logic relies on). Build marker -> 2026-07-18-batch105. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>