diff --git a/server/pruef-bewerbung-aufgaben.mjs b/server/pruef-bewerbung-aufgaben.mjs
index d0d4b02b..20405aaa 100644
--- a/server/pruef-bewerbung-aufgaben.mjs
+++ b/server/pruef-bewerbung-aufgaben.mjs
@@ -877,6 +877,102 @@ melde("=== 6. Am echten Bildschirm ===");
const vorher = await stand();
ok(vorher.neuZeilen >= 1 && vorher.knopf === true,
`die ungelesene Antwort steht offen da, mit „Verstanden" (${vorher.neuZeilen})`);
+
+ /* ==== HOECHSTENS DREI AUF EINMAL (03.10.2026) =============
+
+ GEMESSEN AM ECHTEN BESTAND, nicht geschaetzt: Ein Modi im
+ Haus hat NEUN beantwortete Bewerbungen liegen, alle
+ ungelesen. Auf dem Handy war das Band damit 922 px hoch --
+ bei 844 px Fenster, also hoeher als der ganze Bildschirm
+ und 49 % der Seite. Das ist woertlich VanVans Satz: „Das
+ wird mit der Zeit unuebersichtlich."
+
+ Mit dem Deckel sind es 566 px, und ein Griff auf „Alle
+ verstanden" macht daraus 46 px.
+
+ DIE ZAHL DREI GEHOERT GEPRUEFT, nicht nur in den
+ Quelltext. Deshalb bekommt Frida hier vier weitere
+ beantwortete Bewerbungen -- erst ab vier greift der
+ Deckel, und ohne ihn waere diese Pruefung gruen, ohne
+ etwas gesehen zu haben. */
+ {
+ const dx = new DatabaseSync(process.env.WORKSPACE_DB);
+ const nun = new Date().toISOString();
+ for (let i = 0; i < 4; i++) {
+ dx.prepare(`INSERT INTO vorlagen_bewerbungen
+ (vorlage, kategorie, person_id, text, zustand, entscheid_text,
+ entschieden_von, entschieden_am, erstellt)
+ VALUES (?,?,?,?,?,?,?,?,?)`)
+ .run(`deckel-probe-${i}`, "chat", idModi, "Die auch gern.",
+ "angenommen", null, idHand, nun, nun);
+ }
+ dx.close();
+ }
+ await m5.s.reload({ waitUntil: "networkidle" });
+ await m5.s.waitForTimeout(1800);
+ const gedeckelt = await m5.s.evaluate(() => {
+ const band = document.querySelector('.vorlagenbrett__antwort:not([data-alt])');
+ return {
+ zeilen: band ? band.querySelectorAll(".vorlagenbrett__antwort-zeile").length : 0,
+ hoch: band ? Math.round(band.getBoundingClientRect().height) : 0,
+ knopf: band
+ ? (band.querySelector(".vorlagenbrett__antwort-kopf")?.innerText || "")
+ .replace(/\s+/g, " ").trim()
+ : "",
+ fenster: window.innerHeight,
+ };
+ });
+ ok(gedeckelt.zeilen === 3,
+ `mit fuenf Ungelesenen stehen drei offen (${gedeckelt.zeilen})`);
+ ok(/und \d+ weitere/.test(gedeckelt.knopf),
+ ` und der Rest ist einen Griff entfernt („${gedeckelt.knopf}")`);
+ /* DER EIGENTLICHE PUNKT IST DIE HOEHE. „Drei Zeilen" waere
+ eine Zahl; dass das Band unter den Bildschirm passt, ist
+ die Aussage. */
+ ok(gedeckelt.hoch > 0 && gedeckelt.hoch < gedeckelt.fenster,
+ ` das Band passt in den Bildschirm (${gedeckelt.hoch} px bei `
+ + `${gedeckelt.fenster} px)`);
+
+ /* AUFKLAPPEN ZEIGT ALLE -- wer nachsehen will, kann. */
+ await m5.s.click(".vorlagenbrett__antwort-kopf");
+ await m5.s.waitForTimeout(900);
+ const aufgeklappt = await m5.s.evaluate(() => {
+ const band = document.querySelector('.vorlagenbrett__antwort:not([data-alt])');
+ return {
+ zeilen: band ? band.querySelectorAll(".vorlagenbrett__antwort-zeile").length : 0,
+ knopf: band
+ ? (band.querySelector(".vorlagenbrett__antwort-kopf")?.innerText || "")
+ .replace(/\s+/g, " ").trim()
+ : "",
+ };
+ });
+ ok(aufgeklappt.zeilen > 3 && /Weniger/.test(aufgeklappt.knopf),
+ `aufgeklappt stehen alle da (${aufgeklappt.zeilen}, „${aufgeklappt.knopf}")`);
+
+ /* UND WIEDER ZU -- der Knopf geht in beide Richtungen. Ohne
+ diese Zeile koennte er ein Einwegschalter sein. */
+ await m5.s.click(".vorlagenbrett__antwort-kopf");
+ await m5.s.waitForTimeout(900);
+ ok(await m5.s.evaluate(() => document.querySelectorAll(
+ '.vorlagenbrett__antwort:not([data-alt]) .vorlagenbrett__antwort-zeile').length) === 3,
+ "und wieder zu — der Knopf geht in beide Richtungen");
+
+ /* DIE VIER PROBEZEILEN WIEDER WEG. Die Zeilen weiter unten
+ zaehlen „1 aeltere Antwort" und „2 aeltere Antworten" --
+ mit den Proben waeren es sechs, und sie wuerden rot, ohne
+ dass etwas kaputt ist. Eine Pruefung, die den Stand fuer
+ die naechste verschiebt, ist schlimmer als keine. */
+ {
+ const dx = new DatabaseSync(process.env.WORKSPACE_DB);
+ dx.prepare("DELETE FROM vorlagen_bewerbungen WHERE vorlage LIKE 'deckel-probe-%'")
+ .run();
+ dx.close();
+ }
+ await m5.s.reload({ waitUntil: "networkidle" });
+ await m5.s.waitForTimeout(1800);
+ ok(await m5.s.evaluate(() => document.querySelectorAll(
+ '.vorlagenbrett__antwort:not([data-alt]) .vorlagenbrett__antwort-zeile').length) === 2,
+ "und die Probezeilen sind wieder weg — der Stand ist wie vorher");
ok(vorher.altKopf === null,
`und es gibt noch keine aeltere Gruppe (${vorher.altKopf})`);
diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html
index 09f440b0..aad7469b 100644
--- a/workspace/anruf-probe.html
+++ b/workspace/anruf-probe.html
@@ -16,8 +16,8 @@
verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
-
-
+
+
-
+