What's Fixed
This patch resolves the remaining iOS PWA layout issues reported in #16.
Root Cause 1 - Scroll Bleed
padding-top: env(safe-area-inset-top) was applied to body in standalone mode. Since .app-shell has height: 100dvh, the body padding pushed the shell beyond the viewport bottom — enabling body-level scrolling (rubber-band / scroll bleed).
Fix: moved padding-top from body to .app-shell inside the @media (display-mode: standalone) query.
Root Cause 2 - Content Overflow Behind Nav
All fixed-height page containers (Calendar, Shopping, Meals, Notes, Budget, Contacts) calculated their height as:
100dvh - nav-bottom-height - safe-area-inset-bottom
This never subtracted the top safe area, causing each page to overflow .app-content by exactly env(safe-area-inset-top) pixels in standalone mode — pushing content behind the bottom navigation.
Fix: added --safe-area-inset-top CSS token and subtracted it in all 6 page height calculations:
100dvh - safe-area-inset-top - nav-bottom-height - safe-area-inset-bottom
Service Worker
Cache bumped to v27/v26 to ensure CSS changes are picked up on next update.
Full Changelog
See CHANGELOG.md