diff --git a/Changes.md b/Changes.md
index c181e87..a261f6b 100644
--- a/Changes.md
+++ b/Changes.md
@@ -1,5 +1,10 @@
# Änderungen
+## „+ Neu“ öffnet das Formular als Dialog (01.10.2026)
+
+- Das Formular zur Neuanlage stand in elf Ansichten unter der Liste. Jetzt öffnet der Knopf „+ Neu“ es als modalen Dialog (`app.js`, `.neudialog`); nach dem Speichern erscheint die Liste wieder, mit dem neuen Eintrag. Betroffen: Klassen, Buchungsvorlagen, Regelmäßige Buchungen, Erinnerungen, Verträge, Adressen, Sparziele, Kredite, Abgleichregeln, Budgets, Berichtsgruppen.
+- E2E: `neudialog.spec.js`; bestehende Specs öffnen den Dialog zuerst.
+
## Regelmäßige Buchungen: Klick zum Bearbeiten (01.10.2026)
- In „Alle Reihen“ erscheinen alle Felder zunächst als Text und werden erst beim Anklicken zum Eingabefeld (`reihenliste.js`). Ja/Nein-Felder schalten per Klick um, „Speichern“ erscheint erst nach einer Änderung. Konto und Klasse stehen untereinander, die Spalte Name/Buchungstext nimmt den freien Platz.
diff --git a/public/static/app.css b/public/static/app.css
index 5093ecc..58af625 100644
--- a/public/static/app.css
+++ b/public/static/app.css
@@ -1289,6 +1289,19 @@ table.splittabelle input.rechts { text-align: right; }
„Speichern“ und „Abbrechen“, damit es nicht im Vorbeigehen getroffen wird. */
.splitdialog .knopfleiste .knopf.gefahr { margin-left: auto; }
+/* „+ Neu“ in den Listenansichten: Das Formular zur Neuanlage liegt in einem
+ modalen Dialog, den der Knopf öffnet. Der Dialog trägt den Rahmen, das
+ Formular darin braucht ihn nicht noch einmal. */
+.neudialog { max-height: 92vh; overflow-y: auto; }
+
+.neudialog .formular.breit {
+ max-width: none;
+ padding: 0;
+ border: 0;
+ box-shadow: none;
+ background: none;
+}
+
/* Die Formatwahl vor Import und Export – als Dialog auf der Verwaltungsseite
und als Kachelinhalt auf der Ausweichseite, deshalb zwei Ebenen: der Dialog
trägt den Rahmen, .formatwahl die Karten. */
diff --git a/public/static/app.js b/public/static/app.js
index 9231e70..9847c97 100644
--- a/public/static/app.js
+++ b/public/static/app.js
@@ -314,6 +314,20 @@
});
});
+ // „+ Neu“ in den Listenansichten: Der Knopf öffnet den Dialog mit dem
+ // Formular zur Neuanlage. Gespeichert wird per Formularversand; die Ansicht
+ // lädt danach neu und zeigt die Liste samt neuem Eintrag.
+ document.querySelectorAll('[data-neudialog]').forEach(function (knopf) {
+ knopf.addEventListener('click', function () {
+ const dialog = document.getElementById(knopf.dataset.neudialog);
+ if (dialog && typeof dialog.showModal === 'function') {
+ dialog.showModal();
+ const feld = dialog.querySelector('input:not([type=hidden]), select, textarea');
+ if (feld) { feld.focus(); }
+ }
+ });
+ });
+
// Übermittlungsprotokoll im Zahlungsverkehr: Ein Klick auf den Status holt das
// Protokoll der Überweisung in einen modalen Dialog. Ohne