diff --git a/backend/main.py b/backend/main.py
index 13b6b3a..72e0c35 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -129,6 +129,49 @@ async def share_target(request: Request):
headers={"Cache-Control": "no-cache"}
)
+# Cache-Reset-Seite — löscht SW + Caches, leitet zur App weiter
+@app.get("/update")
+async def force_update():
+ from fastapi.responses import HTMLResponse
+ html = """
+
+
+
+
+ Ban Yaro — Aktualisieren
+
+
+
+
+
Ban Yaro
+
App wird aktualisiert…
+
+
+
+
+"""
+ return HTMLResponse(html, headers={"Cache-Control": "no-store"})
+
+
# SPA Fallback — ALLE nicht-API-Routen gehen zur index.html
@app.get("/{full_path:path}")
async def spa_fallback(full_path: str):
diff --git a/backend/static/css/components.css b/backend/static/css/components.css
index 6493bd3..cf0a83a 100644
--- a/backend/static/css/components.css
+++ b/backend/static/css/components.css
@@ -1565,9 +1565,20 @@ textarea.form-control {
ZENTRALE KARTE (map.js)
============================================================ */
.map-full-layout {
- position: absolute;
- inset: 0;
+ position: fixed;
+ top: calc(var(--header-height) + var(--safe-top));
+ left: 0;
+ right: 0;
+ bottom: calc(var(--nav-bottom-height) + var(--safe-bottom));
overflow: hidden;
+ z-index: 1;
+}
+@media (min-width: 768px) {
+ .map-full-layout {
+ top: 0;
+ left: var(--nav-sidebar-width);
+ bottom: 0;
+ }
}
.map-full {
width: 100%;
diff --git a/backend/static/css/layout.css b/backend/static/css/layout.css
index bdfd9a9..9dea474 100644
--- a/backend/static/css/layout.css
+++ b/backend/static/css/layout.css
@@ -118,17 +118,15 @@
.sidebar-backdrop { display: none !important; }
}
-/* Mobile Sidebar als Drawer */
-@media (max-width: 767px) {
- #sidebar {
- display: flex;
- z-index: 500;
- transform: translateX(-100%);
- transition: transform 0.28s ease;
- }
- #sidebar.open {
- transform: translateX(0);
- }
+/* Karte: volle Höhe, kein Scrollen, kein Padding */
+#page-map {
+ height: 100%;
+ overflow: hidden;
+}
+#page-map > .page-body {
+ padding: 0 !important;
+ overflow: hidden;
+ height: 100%;
}
/* ------------------------------------------------------------
@@ -267,6 +265,30 @@
#sidebar { display: flex; }
}
+/* Mobile Sidebar als Drawer */
+@media (max-width: 767px) {
+ #sidebar {
+ display: flex !important; /* überschreibt display:none aus Base */
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: var(--nav-sidebar-width);
+ z-index: 1000; /* klar über Backdrop (999) */
+ transform: translateX(-100%);
+ transition: transform 0.28s ease;
+ background: var(--c-surface);
+ box-shadow: none;
+ }
+ #sidebar.open {
+ transform: translateX(0);
+ box-shadow: 4px 0 24px rgba(0,0,0,0.18);
+ }
+ .sidebar-backdrop {
+ z-index: 999; /* unter Sidebar, über Seiteninhalt */
+ }
+}
+
.sidebar-logo {
padding: var(--space-6) var(--space-5);
display: flex;
diff --git a/backend/static/index.html b/backend/static/index.html
index a26f266..e6209f3 100644
--- a/backend/static/index.html
+++ b/backend/static/index.html
@@ -20,33 +20,17 @@
Ban Yaro
-
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-