Run a full Apple HIG audit; fix silent save failures and popup polish

Read Tab Bars, Sidebars, Sheets, Alerts, Action Sheets, Toolbars, Buttons,
Pickers, Loading, Feedback, Privacy, and Undo/Redo off developer.apple.com
and cross-checked each against the actual code. profilSpeichern() (the
shared save path for ~25 fields) had no error handling at any call site,
so a failed backend write was an unhandled promise rejection with zero
user feedback - fixed centrally, plus the same for serviceRufen(). Also
added a spinner to the "Ladt ..." bootstrap screen and gave the
Anzugsmoment/km-correction popups the same primary-button styling the
Setup popup already used.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-16 23:53:02 +02:00
parent 6bf7435434
commit 8a751fe441
7 changed files with 117 additions and 13 deletions
@@ -329,6 +329,17 @@ button.tile, .tilebtn { transition: background .15s, transform .1s; }
display: block;
line-height: 1.3;
}
/* HIG "Loading": statt reinem Text ein sichtbar laufender Indikator, solange
DATEN_GELADEN false ist - hilft auch, "lädt noch" optisch von "hängt fest"
zu unterscheiden (dieser Bildschirm hatte schon ein echtes Hänger-Problem). */
.lade-spinner {
width: 16px; height: 16px; flex: none;
border: 2px solid var(--line-strong);
border-top-color: var(--fg2);
border-radius: 50%;
animation: lade-spin .8s linear infinite;
}
@keyframes lade-spin { to { transform: rotate(360deg); } }
/* Echte Überschrift innerhalb einer Kachel (z.B. "Sommerräder"/"Winterräder")
statt des sonst üblichen kleinen, gedämpften .label-Abschnittstitels -
selbe Typografie-Stufe wie .title (Seitentitel), nur etwas kleiner, weil