diff --git a/backend/static/css/components.css b/backend/static/css/components.css index 703a489..073821a 100644 --- a/backend/static/css/components.css +++ b/backend/static/css/components.css @@ -2590,7 +2590,8 @@ html.modal-open { .rk-layout { display: flex; flex-direction: column; - min-height: 100dvh; + height: 100%; + overflow: hidden; background: var(--c-bg); } .rk-header { diff --git a/backend/static/css/layout.css b/backend/static/css/layout.css index 4081bd9..7179f06 100644 --- a/backend/static/css/layout.css +++ b/backend/static/css/layout.css @@ -15,25 +15,24 @@ /* Content-Bereich: füllt den Raum zwischen Header und Bottom-Nav */ #page-content { - flex: 1; - min-height: 0; - overflow-y: auto; - overflow-x: hidden; - padding-bottom: calc(var(--nav-bottom-height) + var(--safe-bottom) + 16px); + flex: 1; + min-height: 0; /* iOS-Flex-Bug: ohne das scrollt body statt #page-content */ + overflow-y: auto; + overflow-x: hidden; + padding-bottom: calc(var(--nav-bottom-height) + var(--safe-bottom) + 16px); -webkit-overflow-scrolling: touch; - overscroll-behavior-y: none; /* iOS-Bounce verhindert fixed-Nav-Drift */ + overscroll-behavior-y: none; /* iOS: verhindert Bounce der nav driften lässt */ } -/* Desktop: Sidebar-Layout */ +/* Desktop: Sidebar-Layout — kein Bottom-Nav, natürliche Höhe */ @media (min-width: 768px) { #app { flex-direction: row; } #page-content { - min-height: unset; - overscroll-behavior-y: auto; - padding-bottom: 0; - padding-left: var(--nav-sidebar-width); + min-height: unset; + padding-bottom: 0; + padding-left: var(--nav-sidebar-width); } } @@ -152,9 +151,16 @@ position: relative; } -/* Routen: window-scroll (kein overflow:hidden), padding entfernt */ +/* Routen: volle Höhe damit .rk-layout height:100% auflöst und + das Grid intern scrollt (nicht die gesamte Seite via #page-content) */ +#page-routes { + height: 100%; + overflow: hidden; +} #page-routes > .page-body { - padding: 0 !important; + padding: 0 !important; + overflow: hidden; + height: 100%; } /* ------------------------------------------------------------ @@ -165,7 +171,8 @@ bottom: 0; left: 0; right: 0; - z-index: 700; + z-index: 700; /* über Leaflet-Panes (~400) */ + /* GPU-Layer erzwingen → iOS Safari fixed-position Stabilität */ transform: translateZ(0); -webkit-transform: translateZ(0); will-change: transform; diff --git a/backend/static/js/app.js b/backend/static/js/app.js index e49cad3..2c648b4 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '516'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '517'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.0.0'; // ← semantische Version, wird bei make release gesetzt const IS_STAGING = location.hostname === 'staging.banyaro.app'; diff --git a/backend/static/sw.js b/backend/static/sw.js index d870519..9974415 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -3,7 +3,7 @@ Offline-Cache + Push Notifications + Tile-Cache ============================================================ */ -const CACHE_VERSION = 'by-v539'; +const CACHE_VERSION = 'by-v540'; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache