diff --git a/docs/usability-umsetzung.md b/docs/usability-umsetzung.md
index 2b3c154..2f4c72d 100644
--- a/docs/usability-umsetzung.md
+++ b/docs/usability-umsetzung.md
@@ -49,3 +49,13 @@ Prüfung: 40/40 Tests in Debug und Release. Verzögerte normale Buchung und Umbu
## Abschluss und Grenzen
Desktop-Projekte in Debug und Release gebaut, jeweils ohne Warnungen und Fehler. PDF-Inhalte und gerenderte Seiten sind geprüft. Die neue Windows-Debug-Anwendung wurde gestartet und ihr Accessibility-Baum mit den neuen Beschriftungen gelesen. **Die native visuelle/Interaktionsprüfung konnte nicht abgeschlossen werden: Windows war gesperrt; die Aufnahme zeigte den Sperrbildschirm.** Es wurden dort keine Buchungen angelegt oder Sicherungen zurückgespielt. Desktop-Sichtprüfung der umbrechenden Leisten, native Dateidialoge und reale Hilfstechnologien bleiben manuelle Abnahmepunkte. Die automatisierten Formular-/Navigationsprüfungen ersetzen keinen Test mit der Zielgruppe und keine vollständige U08-/U13-Abnahme.
+
+## Nacharbeit vom 2. November – Eingabe, Toasts und Aktionsleiste
+
+Beträge verwenden ein gemeinsames Control: Browser-beforeinput/Paste und die Komponentenbindung weisen mehr als zwei Dezimalstellen vollständig ab. Kein Kürzen oder Runden; der vorherige Wert bleibt erhalten. Der dauerhafte Nachkommastellen-Kommentar entfällt. Fortschritt, Dateiergebnisse und Speichermeldungen stehen in einem globalen Toast-Stapel oben rechts. Laufende Vorgänge bleiben bis zum Abschluss sichtbar; Ergebnisse laufen nach 9 Sekunden, Fehler nach 15 Sekunden ab. Hover/Fokus pausiert, Schließen bleibt möglich. Feldbezogene Validierung bleibt am Feld. Aktionsbuttons haben feste gemeinsame Höhe/Breite mit reservierter Symbolzeile und zwei Textzeilen.
+
+Prüfung: 42/42 Debug-Tests, Desktop-Build ohne Warnungen. Computer Use in separatem Debug-Datenordner: Übersicht und Konto geprüft; Eingabe `12,501` vollständig abgewiesen, `12,50` angenommen, künstliche Einnahme gespeichert, Kontostand von 88,30 auf 100,80 € erhöht und Toast oben rechts beobachtet. Stapeln, unabhängiges Ablaufen und Pausieren sind automatisiert geprüft. Keine Vereinsdaten geändert. Der zusätzliche Debug-Startparameter `--data-directory` isoliert Datenbank, Vereinsname und Fensterkonfiguration; Release erhält ihn nicht.
+
+## Weiterer Umsetzungsplan
+
+U08: gemeinsame native Modaldialoge mit Fokus/Escape/Verlustschutz, semantische Kontolinks. U09: lesbare Zeilenaktionen mit größeren Treffern. U10: Löschstatus, Bestätigung beider Umbuchungsseiten und gezieltes Rückgängig. U11: Richtung und Auswirkungen von beiden Seiten identisch erklären. U12: bestehende gemeinsame Anfangsbestands-Semantik beibehalten und Korrektur vorab erklären/bestätigen. Danach U13: skalierbare lesbare Darstellung/Kontrast; U14: lokale Hilfe und überspringbare Einführung; U15: Suche und Sortierung mit getrennten Treffermengen; U16: lokale Darstellungsressourcen und sichere Fehlerauswege. Nach jeder Maßnahme bauen und testen; Paketgrenzen pushen und PR aktualisieren.
diff --git a/src/Duempelkas.App/Components/AmountInput.razor b/src/Duempelkas.App/Components/AmountInput.razor
new file mode 100644
index 0000000..0b454df
--- /dev/null
+++ b/src/Duempelkas.App/Components/AmountInput.razor
@@ -0,0 +1,24 @@
+
+@rejection
+
+@code {
+ [Parameter] public string Id { get; set; } = "amount";
+ [Parameter] public string Value { get; set; } = string.Empty;
+ [Parameter] public EventCallback ValueChanged { get; set; }
+ [Parameter] public bool Disabled { get; set; }
+ [Parameter] public bool AllowNegative { get; set; }
+ private string? rejection;
+ private async Task SetValue(string value)
+ {
+ if (!BookingInput.IsAmountDraft(value, AllowNegative))
+ {
+ rejection = "Diese Eingabe wurde nicht übernommen. Bitte einen Betrag wie 12,50 eingeben.";
+ return;
+ }
+ rejection = null;
+ await ValueChanged.InvokeAsync(value);
+ }
+}
diff --git a/src/Duempelkas.App/Components/Dialogs/AddEntryDialog.razor b/src/Duempelkas.App/Components/Dialogs/AddEntryDialog.razor
index 576ea25..8823f24 100644
--- a/src/Duempelkas.App/Components/Dialogs/AddEntryDialog.razor
+++ b/src/Duempelkas.App/Components/Dialogs/AddEntryDialog.razor
@@ -1,3 +1,4 @@
+@inject ToastService Toasts
@inject IEntryService EntryService
@@ -36,8 +37,8 @@
-
-
Betrag ohne Minuszeichen, größer als 0. Komma oder Punkt, höchstens zwei Nachkommastellen. Keine Tausendertrenner oder Währungszeichen, auch beim Einfügen. Es wird nicht gerundet.