Ersetzt irreführende 10001/10002-Werte durch relative Layer 1–3 innerhalb
von .app-tour-root und dokumentiert den Stacking-Context.
Co-authored-by: Cursor <cursoragent@cursor.com>
Erhöht den z-index des Tour-Overlays über app-tour-target-active, damit
das Modal in Schritt 8 (Stammcrew & Skipper) nicht von der Spotlight-Karte verdeckt wird.
Co-authored-by: Cursor <cursoragent@cursor.com>
Nach gültigem Server-Cookie wird automatisch Passkey oder PIN zum Entsperren angeboten, statt die komplette Anmelde-Maske zu zeigen.
Co-authored-by: Cursor <cursoragent@cursor.com>
KPI-Karten bleiben auf schmalen Viewports in zwei Spalten, Header und Filter nutzen weniger vertikalen Platz.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show login instead of AdminDashboard on /admin when unauthenticated to avoid pointless admin API calls.
Co-authored-by: Cursor <cursoragent@cursor.com>
Detect admin access after login and expose a header button that opens /admin via client-side routing so the session stays unlocked when returning to the app.
Co-authored-by: Cursor <cursoragent@cursor.com>
Updated various components to utilize parseAppDecimal and formatAppDecimal for consistent decimal parsing and formatting. This change enhances the handling of numeric inputs across the application, ensuring better accuracy and user experience in forms and displays.
Der tote Ternär lieferte in beiden Zweigen dieselbe Rundung; ab 100 m
wird jetzt auf 10 m gerundet, damit schwache Fixes nicht falsch präzise wirken.
Co-authored-by: Cursor <cursoragent@cursor.com>
Nutzer sehen spezifische Meldungen bei GPS-Problemen, eine Schätzung des
Empfangs aus der Browser-Genauigkeit und beim ersten Live-Log-Besuch nur
dann einen Freigabe-Hinweis, wenn die Standortberechtigung noch offen ist.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prüft videoinput-Geräte beim Öffnen des Foto-Modals und zeigt eine
klare Meldung statt leerem Kamera-UI; getUserMedia-Fehler differenziert.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stellt sicher, dass signSkipper und signCrew gemeinsam für den
Punktewert bei der Auswahl des Tageseintrags ausgewertet werden.
Co-authored-by: Cursor <cursoragent@cursor.com>
Live-journal uploads are tracked only via Photo Uploaded and Voice Memo Uploaded with context live_log.
Co-authored-by: Cursor <cursoragent@cursor.com>