fix(page): eliminate visual flash when navbar hides by awaiting setBounds
The navbar hide sequence had a timing mismatch: CSS classes were removed
synchronously (hiding panels instantly) while the window shrink via
setBounds() was async IPC. This caused 1-2 frames where panels were gone
but the window was still wide, making the webview appear to jump as
flexbox re-centered content in the oversized window.
Fix: await the setBounds() promise before removing CSS classes. The window
shrinks first (panels get clipped by window edge), then classes are cleaned
up. Added a generation counter to prevent show/hide race conditions.