Der vertrauliche Meldeweg vergisst jetzt -- und sagt, bis wann

Zwei Entscheidungen, die offenstanden. Beide getroffen, nachdem
gemessen war, was wirklich da ist.

1. WIE LANGE BLEIBEN ABGESCHLOSSENE FAELLE?  90 Tage.

Die Entscheidung war bereits getroffen: `AUFBEWAHRUNG_TAGE = 90` steht
seit dem 19.09. in hilfe-tabellen.js, mit Begruendung ("ein Fall kommt
manchmal wieder auf"). Nur hat sie NIEMAND durchgesetzt --
`hilfeAufraeumen()` gab es, und der einzige Aufrufer war ihre eigene
Pruefung. Der Kommentar darueber behauptete "Wird beim Start
aufgerufen (siehe index.js)"; das war nie wahr.

Jetzt steht die Regel in workspace-aufbewahrung.js, dem Loeschkonzept,
das sich selbst durchsetzt -- beim Start und danach taeglich. Die
zweite Fassung in workspace-hilfe.js ist WEG, nicht doppelt: Zwei
DELETEs auf dieselben Daten waeren morgen verschieden, und der
Unterschied fiele erst auf, wenn er zaehlt.

GEMESSEN VOR DEM EINSCHALTEN:
  In der echten Datenbank steht heute KEIN einziger Fall. Der erste
    Lauf loescht nichts, und der erste Fall kann fruehestens in drei
    Monaten 90 Tage alt werden. Jetzt einschalten ist frei -- spaeter
    waere es der riskante Moment gewesen.
  PRAGMA foreign_keys steht im Dienst auf 1, und hilfe_nachrichten
    traegt ON DELETE CASCADE. An einem echten Fall mit Nachricht
    nachgemessen: vorher 1/1, nachher 0/0. Ohne diese Messung waere
    der Fall verschwunden und der eigentliche Text liegengeblieben.

2. SOLL EIN GESCHLOSSENER FALL WIEDER ZU OEFFNEN SEIN?  Nein.

Im Kopf von workspace-hilfe.js steht: "EIN GESCHLOSSENER FALL IST
GESCHLOSSEN. Auch fuer die Leitung -- sonst ist 'zugemacht' eine
Meinung und keine Tatsache." Das ist eine gute Regel, und sie bleibt.

Nachgemessen, dass sie auch traegt: Ein Melder kann seinen
geschlossenen Fall weiter LESEN, und ein geschlossener Fall zaehlt
nicht gegen das Limit von drei offenen. Wer eine Wiederholung melden
will, kann das also jederzeit -- die Bauweise ist stimmig.

NUR WUSSTE DAS NIEMAND. Dort stand ein Satz: "Dieser Fall ist
abgeschlossen (Datum)." Jetzt stehen drei -- und sie beantworten die
drei Fragen, die man in dem Moment hat:
  Kann ich noch schreiben?   Nein, und er laesst sich nicht oeffnen.
  Bleibt das hier stehen?    Bis zum TT.MM.JJJJ, dann geloescht.
  Und wenn es wieder passiert? Neu melden, der alte zaehlt nicht mit.

Das Datum kommt vom Server (`lesbar_bis`), die Frist ebenso -- sie
steht nur an EINER Stelle. Und sie steht jetzt auch im Dialog BEIM
Schliessen: Wer eine Uhr startet, soll das vorher wissen, nicht
danach.

OHNE UHRZEIT, und das ist kein Schoenheitsgrund: Ein Fall, der am
20.09. um 14:04 (Sommerzeit) geschlossen wird, verfaellt 90 Tage
spaeter um 13:04 -- die Uhr wird dazwischen zurueckgestellt. Richtig
gerechnet, sieht aus wie ein Fehler. Wer eine Stunde sucht, die es
nicht gibt, hat Zeit verloren.

UND DIE URSACHE, DAMIT ES NICHT WIEDER PASSIERT:
hilfe_faelle kam am 19.09. dazu, das Loeschkonzept ist vom 15.09., und
nichts hat die beiden je verglichen. Neue Pruefung in
pruef-aufbewahrung: Jede Tabelle mit einer Spalte, die "hier ist etwas
zu Ende" sagt, MUSS im Konzept stehen.
  Kein "jede Tabelle muss drinstehen": 46 Tabellen, 41 mit
  Personenbezug -- das gaebe 38 Meldungen, von denen fast alle falsch
  waeren (sie sind ueber personen_geloescht gedeckt). Eine Pruefung,
  die 38-mal meldet, wo einmal richtig waere, wird abgeschaltet.
  Gesucht wird das schmale Merkmal: GENAU ZWEI Tabellen im Haus tragen
  so eine Spalte. Beide jetzt im Konzept -- hilfe_faelle mit Frist,
  aufgaben ausdruecklich OHNE (erledigte Aufgaben sind
  Arbeitsdokumentation, keine Meldung ueber einen Menschen).

pruef-hilfe 84/0 (war 59) -- darunter zehn neue am Bildschirm:
"drei Saetze statt einem", "sie stehen untereinander, nicht
nebeneinander" (ein <p> in einem <p> waere ungueltig, der Container
ist jetzt ein <div>), "und WANN, mit Datum".
pruef-aufbewahrung 45/0 (war 41), mit Gegenprobe.
This commit is contained in:
2026-09-20 14:10:38 +02:00
parent 9e9ed67c4a
commit 285038f400
43 changed files with 1039 additions and 564 deletions
+99
View File
@@ -375,6 +375,105 @@ melde("=== 7. Auf der Seite ===");
konsole.length ? "Fehler im Browser: " + konsole[0].slice(0, 90) : "keine Fehler im Browser");
await browser.close();
}
/* =====================================================================
WAS ZU ENDE GEHT, MUSS IM KONZEPT STEHEN (20.09.2026)
So ist `hilfe_faelle` herausgefallen: Die Tabelle kam am 19.09.
dazu, das Löschkonzept wurde am 15.09. geschrieben, und nichts hat
die beiden je miteinander verglichen. In `hilfe_nachrichten` stehen
die empfindlichsten Texte des Hauses; sie wären unbegrenzt liegen
geblieben. Die zugehörige Aufräumfunktion gab es sogar -- nur rief
sie niemand auf.
---------------------------------------------------------------------
WARUM NICHT „JEDE TABELLE MUSS DRINSTEHEN"
Gemessen: 46 Tabellen, davon 41 mit Bezug auf `personen`. Eine
Regel „alle müssen genannt sein" ergäbe 38 Meldungen, von denen
fast alle richtig wären -- sie sind über `personen_geloescht`
abgedeckt, den Eintrag, der sagt: Wer gelöscht wird, nimmt seine
Daten mit, und die Datenbank erzwingt das.
Eine Prüfung, die 38-mal meldet, wo 1-mal richtig wäre, wird
abgeschaltet. Das ist kein besseres Ergebnis als gar keine.
---------------------------------------------------------------------
DAS SCHMALE, TREFFSICHERE MERKMAL
Gesucht wird nach dem, was `hilfe_faelle` von den anderen 45
unterschied: eine Spalte, die sagt „hier ist etwas zu Ende"
(`geschlossen_am`, `erledigt_am`, `beendet_am` …). Solche Zeilen
laufen von selbst ab -- unabhängig davon, ob die Person noch da
ist. Für sie MUSS jemand entschieden haben, ob sie verschwinden
oder bleiben.
Gemessen: Genau ZWEI Tabellen im ganzen Haus tragen so eine
Spalte. Beide sind jetzt im Konzept -- eine mit Frist, eine
ausdrücklich ohne. Die dritte, die morgen dazukommt, macht diese
Prüfung rot.
===================================================================== */
melde("");
melde("=== Was zu Ende geht, steht im Konzept ===");
{
const d = oeffne();
try {
const tabellen = d.prepare(
"SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'")
.all().map((r) => r.name);
/* Welche Tabellen nennt das Konzept? ABGELEITET aus dem SQL der
Einträge, nicht aus einer zweiten Liste -- sonst hätte man
genau das Problem noch einmal, nur eine Ebene höher. */
const genannt = new Set();
for (const f of modul.FRISTEN) {
for (const fn of [f.offen, f.raeumen]) {
if (typeof fn !== "function") continue;
for (const m of String(fn).matchAll(/(?:FROM|UPDATE|INTO)\s+([a-z_]+)/gi)) {
genannt.add(m[1]);
}
}
}
const ENDE = /^(geschlossen|beendet|erledigt|abgeschlossen|abgelaufen|archiviert)_am$/;
const mitEnde = tabellen.filter((t) =>
d.prepare(`PRAGMA table_info(${t})`).all().some((c) => ENDE.test(c.name)));
/* DIE ZAHL GEHÖRT IN DIE BEDINGUNG: Fände die Prüfung gar keine
solche Tabelle (etwa weil sich die Schreibweise ändert), wäre
„alle gedeckt" trivialerweise wahr -- und sie schwiege genau
dann, wenn sie reden müsste. */
ok(mitEnde.length >= 2,
`es gibt ${mitEnde.length} Tabellen, deren Zeilen von selbst zu Ende gehen `
+ `(${mitEnde.join(", ")})`);
const fehlend = mitEnde.filter((t) => !genannt.has(t));
ok(fehlend.length === 0,
fehlend.length
? `NICHT im Löschkonzept: ${fehlend.join(", ")} — für jede dieser Tabellen `
+ `muss jemand entschieden haben, ob sie verschwindet oder bleibt`
: `und jede davon steht im Löschkonzept (${mitEnde.length} von ${mitEnde.length})`);
/* Und der Meldeweg ausdrücklich, weil er der Anlass war. */
ok(genannt.has("hilfe_faelle"),
"der vertrauliche Meldeweg ist darunter — er war der Anlass für diese Prüfung");
/* GEGENPROBE: Eine erfundene Tabelle mit Abschluss-Spalte muss
auffallen. Ohne sie wüsste niemand, ob die Prüfung überhaupt
hinsieht. */
d.exec("CREATE TABLE IF NOT EXISTS probe_ablauf (id INTEGER PRIMARY KEY, beendet_am TEXT)");
const nochmal = d.prepare(
"SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'")
.all().map((r) => r.name)
.filter((t) => d.prepare(`PRAGMA table_info(${t})`).all().some((c) => ENDE.test(c.name)))
.filter((t) => !genannt.has(t));
ok(nochmal.includes("probe_ablauf"),
`Gegenprobe: eine erfundene Tabelle mit Abschluss-Spalte fällt auf (${nochmal.join(", ")})`);
d.exec("DROP TABLE probe_ablauf");
} finally {
d.close();
}
}
/* ------------------------------------------------------------------- */
melde("");
melde(`${geprueft} Pruefungen, ${fehler} Fehler`);
+190 -4
View File
@@ -299,19 +299,42 @@ melde("=== 6. Drei offene sind genug ===");
melde("");
melde("=== 7. Was niemand mehr braucht, verschwindet ===");
{
const { hilfeAufraeumen } = await import("./workspace-hilfe.js");
/* GEPRUEFT WIRD, WAS WIRKLICH LAEUFT (20.09.2026).
------------------------------------------------------------------
Hier stand `hilfeAufraeumen()` aus `workspace-hilfe.js`. Die
Funktion gab es, sie war richtig -- und NIEMAND rief sie auf. Der
einzige Aufrufer war diese Pruefung. Sie war gruen und bewies
nichts ueber den Betrieb: geschlossene Faelle blieben unbegrenzt
stehen.
Jetzt steht die Regel im Loeschkonzept, das beim Start und danach
taeglich laeuft -- und geprueft wird genau dieser Eintrag, mit
derselben Rechnung, die auch im Betrieb greift. */
const { FRISTEN, aufbewahrungLauf } = await import("./workspace-aufbewahrung.js");
const { db } = await import("./workspace.js");
const eintrag = FRISTEN.find((f) => f.schluessel === "hilfe_geschlossen");
ok(!!eintrag && typeof eintrag.raeumen === "function",
"der vertrauliche Meldeweg steht im Loeschkonzept und raeumt selbst");
ok(eintrag?.art === "raeumen" && /90/.test(String(eintrag?.frist)),
`mit der Frist aus hilfe-tabellen.js („${eintrag?.frist}")`);
/* Einen geschlossenen Fall kuenstlich altern lassen. KEIN echtes
Warten -- eine Pruefung, die 90 Tage braucht, ist keine. */
const alt = new Date(Date.now() - 100 * 86400000).toISOString();
db().prepare("UPDATE hilfe_faelle SET geschlossen_am = ? WHERE id = ?").run(alt, fallId);
/* ZUERST ZAEHLEN, DANN RAEUMEN. `offen()` ist die Zahl, die in der
Auskunft steht -- stimmt sie nicht mit dem ueberein, was wirklich
verschwindet, steht dort eine Zahl, der niemand glauben darf. */
const angekuendigt = eintrag.offen(db());
const vorher = db().prepare("SELECT COUNT(*) AS n FROM hilfe_faelle").get().n;
const weg = hilfeAufraeumen(90);
const weg = eintrag.raeumen(db());
const nachher = db().prepare("SELECT COUNT(*) AS n FROM hilfe_faelle").get().n;
ok(weg === 1 && nachher === vorher - 1,
`ein alter, geschlossener Fall wird geloescht (${weg}, ${vorher} -> ${nachher})`);
ok(angekuendigt === weg,
`und die angekuendigte Zahl stimmt mit der geloeschten ueberein (${angekuendigt} = ${weg})`);
/* UND DIE NACHRICHTEN MIT IHM. Ein Fall ohne Text waere geloescht,
die Texte laegen aber weiter in der Datenbank -- genau das, was
@@ -321,11 +344,27 @@ melde("=== 7. Was niemand mehr braucht, verschwindet ===");
ok(reste === 0, `und seine ${4 - reste} Nachrichten ebenfalls (${reste} uebrig)`);
/* GEGENPROBE: Ein OFFENER Fall wird nicht angefasst, egal wie alt. */
/* Einen OFFENEN Fall kuenstlich uralt machen -- er darf trotzdem
nicht angefasst werden. Ohne diese Gegenprobe wuerde ein
vergessenes `stand = ?` erst auffallen, wenn ein laufender Fall
verschwindet. */
const offenId = db().prepare(
"SELECT id FROM hilfe_faelle WHERE stand != 'geschlossen' LIMIT 1").get()?.id;
if (offenId) {
db().prepare("UPDATE hilfe_faelle SET erstellt = ?, geaendert = ?, geschlossen_am = ? WHERE id = ?")
.run(alt, alt, alt, offenId);
}
const offen = db().prepare("SELECT COUNT(*) AS n FROM hilfe_faelle WHERE stand != 'geschlossen'").get().n;
const weg2 = hilfeAufraeumen(0);
const weg2 = eintrag.raeumen(db());
const offenDanach = db().prepare("SELECT COUNT(*) AS n FROM hilfe_faelle WHERE stand != 'geschlossen'").get().n;
ok(offen === offenDanach && offen > 0,
`offene Faelle bleiben, auch bei Aufbewahrung 0 (${offen} vorher, ${offenDanach} danach, ${weg2} geschlossene weg)`);
`ein OFFENER Fall bleibt, selbst mit uraltem Datum (${offen} vorher, ${offenDanach} danach, ${weg2} weg)`);
/* Und der Lauf, der taeglich stattfindet, geht wirklich durch --
nicht nur der einzelne Eintrag. */
let liefDurch = true;
try { aufbewahrungLauf(); } catch { liefDurch = false; }
ok(liefDurch, "der taegliche Aufbewahrungslauf laeuft ohne Fehler durch");
}
/* =======================================================================
@@ -395,6 +434,153 @@ melde("=== 8. Im Browser ===");
}
}
/* =====================================================================
9. WAS NACH DEM ABSCHLUSS DASTEHT (20.09.2026)
Bis heute stand dort ein Satz: „Dieser Fall ist abgeschlossen
(Datum)." Er beantwortet keine der drei Fragen, die man in diesem
Moment hat:
Kann ich noch etwas schreiben? Nein -- und das ist endgültig.
Bleibt das jetzt hier stehen? 90 Tage, dann ist es weg.
Und wenn es wieder passiert? Neu melden.
Die zweite ist die, die man nicht erst merken darf, wenn es weg
ist -- und auf die man ein Recht hat (Art. 13 Abs. 2 lit. a DSGVO).
Geprüft wird an echten Bildpunkten, nicht am Quelltext: Ein
<p> in einem <p> wäre ungültig, der Browser schlösse das äußere
selbst, und die Sätze stünden nebeneinander statt untereinander.
Das sieht man nur, wenn man misst.
===================================================================== */
melde("");
melde("=== 9. Was nach dem Abschluss dasteht ===");
{
let pw = null;
try {
pw = await import("file:///C:/Users/qciga/Documents/Obelix/Analyse/node_modules/playwright/index.mjs");
} catch { /* dritter Ausgang */ }
if (!pw) {
melde(" -- Playwright ist nicht da -- im Browser wurde NICHT nachgesehen.");
} else {
const { db } = await import("./workspace.js");
/* Einen frisch geschlossenen Fall anlegen -- Abschnitt 7 hat den
alten absichtlich geräumt. */
const nun = new Date().toISOString();
/* DER FALL MUSS MARA GEHOEREN. Erster Anlauf nahm „irgendeine
Person aus einem vorhandenen Fall" -- und Mara sah ihn dann
zu Recht NICHT: `fallFuer` gibt einem Melder nur die eigenen
Faelle. Die Pruefung meldete zehn Fehler ueber eine Sperre,
die genau richtig funktioniert hat. */
const wer = db().prepare("SELECT id FROM personen WHERE name = ? LIMIT 1")
.get("Mara")?.id;
ok(!!wer, `Maras Nummer ist bekannt (${wer})`);
db().prepare(
"INSERT INTO hilfe_faelle (person_id, betreff, stand, erstellt, geaendert,"
+ " geschlossen_am) VALUES (?,?,?,?,?,?)")
.run(wer, "Abgeschlossen zum Ansehen", "geschlossen", nun, nun, nun);
const zuId = db().prepare("SELECT last_insert_rowid() AS id").get().id;
db().prepare(
"INSERT INTO hilfe_nachrichten (fall_id, von_id, von_leitung, text, erstellt)"
+ " VALUES (?,?,?,?,?)").run(zuId, wer, 0, "Der Text dieser Meldung.", nun);
const browser = await pw.chromium.launch();
try {
for (const [name, keks] of [["Mara", k.mara], ["DogFather", k.dogi]]) {
const ctx = await browser.newContext({
viewport: { width: 1280, height: 950 }, reducedMotion: "reduce",
});
await ctx.addCookies(keks.split("; ").filter(Boolean).map((z) => {
const [n, ...r] = z.split("=");
return { name: n, value: r.join("="), domain: "127.0.0.1", path: "/" };
}));
const seite = await ctx.newPage();
const kaputt = [];
seite.on("pageerror", (e) => kaputt.push(String(e).slice(0, 140)));
await seite.goto(`http://127.0.0.1:${PORT}/workspace/hilfe.html?fall=${zuId}`,
{ waitUntil: "networkidle" });
await seite.waitForTimeout(1000);
const z = await seite.evaluate(() => {
const kasten = document.getElementById("fall-warten");
if (!kasten || kasten.hidden) return null;
const zeilen = [...kasten.querySelectorAll(".fall-schluss__zeile")];
const r = kasten.getBoundingClientRect();
return {
anzahl: zeilen.length,
text: kasten.textContent.replace(/\s+/g, " ").trim(),
/* UNTEREINANDER, NICHT NEBENEINANDER. Bei ungültiger
Verschachtelung stünden sie in einer Zeile. */
untereinander: zeilen.length < 2 ? null
: zeilen[1].getBoundingClientRect().top > zeilen[0].getBoundingClientRect().top,
formularZu: document.getElementById("antwort-form")?.hidden === true,
/* Der Knopf zum Schliessen darf bei einem geschlossenen
Fall nicht dastehen -- sonst sieht es aus, als ginge
noch etwas. */
schliessenWeg: document.getElementById("fall-schliessen")?.hidden === true,
hoehe: Math.round(r.height),
};
});
ok(z !== null, `${name}: der Abschluss-Kasten steht da`);
ok(z?.anzahl === 3, ` drei Sätze statt einem (${z?.anzahl})`);
ok(z?.untereinander === true, " und sie stehen untereinander, nicht nebeneinander");
ok(/abgeschlossen/i.test(z?.text || ""), " er sagt, dass der Fall zu ist");
ok(/nicht wieder aufmachen|niemand mehr schreiben/i.test(z?.text || ""),
" und dass das endgültig ist");
ok(/gelöscht|geloescht/i.test(z?.text || ""),
" er sagt, dass der Fall gelöscht wird");
ok(/\d{1,2}\.\d{1,2}\.\d{4}/.test(z?.text || ""),
` und WANN, mit Datum („${(z?.text || "").slice(0, 90)}…“)`);
ok(z?.formularZu === true, " das Antwortfeld ist weg");
ok(z?.schliessenWeg === true, " und der Schließen-Knopf auch");
if (name === "Mara") {
ok(/melde es einfach neu/i.test(z?.text || ""),
" und sie erfährt, was bei einer Wiederholung gilt");
} else {
ok(/neuer Fall/i.test(z?.text || ""),
" und die Leitung erfährt, dass eine Wiederholung ein neuer Fall wird");
}
ok(kaputt.length === 0,
` kein Skriptfehler${kaputt.length ? ": " + kaputt.join(" | ") : ""}`);
if (process.env.ZEIG_TEXT === "ja") melde(` [Text] ${z?.text}`);
/* DER DIALOG BEIM SCHLIESSEN muss die Frist auch nennen --
dort faellt die Entscheidung. Danach ist es zu spaet. */
if (name === "DogFather") {
await seite.goto(`http://127.0.0.1:${PORT}/workspace/hilfe.html`,
{ waitUntil: "networkidle" });
await seite.waitForTimeout(800);
const offeneZeile = await seite.$(".fall-zeile");
if (offeneZeile) {
await offeneZeile.click();
await seite.waitForTimeout(600);
const knopf = await seite.$("#fall-schliessen:not([hidden])");
if (knopf) {
await knopf.click();
await seite.waitForSelector("dialog.nachfrage[open]", { timeout: 3000 });
const dlg = await seite.evaluate(() => {
const d = document.querySelector("dialog.nachfrage[open]");
const t = (n) => d.querySelector(`[data-teil="${n}"]`)?.textContent || "";
return { was: t("was"), bleibt: t("bleibt") };
});
ok(/90 Tage/.test(dlg.bleibt),
` der Abschluss-Dialog nennt die Frist („${dlg.bleibt.slice(0, 80)}…“)`);
ok(/gelöscht/.test(dlg.bleibt),
" und sagt, dass danach gelöscht wird");
await seite.keyboard.press("Escape");
} else { ok(false, " ein offener Fall zum Schließen war da"); }
} else { ok(false, " es gab eine Fallzeile zum Anklicken"); }
}
await ctx.close();
}
} finally {
await browser.close();
}
}
}
melde("");
melde(`${geprueft} Pruefungen, ${fehler} Fehler`);
melde(fehler ? "NICHT IN ORDNUNG" : "ALLES IN ORDNUNG");
+92
View File
@@ -38,6 +38,11 @@
===================================================================== */
import express from "express";
/* Die Frist steht dort, wo auch die Begruendung steht -- in
`hilfe-tabellen.js`. Sie hier ein zweites Mal hinzuschreiben hiesse
zwei Wahrheiten, von denen eine veraltet. `hilfe-tabellen.js`
importiert absichtlich nichts, es kann also kein Kreis entstehen. */
import { AUFBEWAHRUNG_TAGE as HILFE_TAGE, FALL_STAND } from "./hilfe-tabellen.js";
import {
db, sitzungLesen, istDogFather, protokolliere, echteIp,
einstellung, einstellungSetzen,
@@ -92,6 +97,62 @@ function zaehle(d, sql, ...werte) {
DIE TAFEL
===================================================================== */
export const FRISTEN = [
{
/* =================================================================
DER VERTRAULICHE MELDEWEG (nachgetragen am 20.09.2026)
DIESE TABELLE FEHLTE HIER -- und das ist der teuerste Eintrag,
den man vergessen kann: In `hilfe_nachrichten` stehen die
empfindlichsten Texte des ganzen Hauses. Jemand beschreibt ein
Problem, oft mit anderen Menschen darin.
Die Frist selbst war nie strittig: `AUFBEWAHRUNG_TAGE = 90`
steht seit dem 19.09. in `hilfe-tabellen.js`, mit Begruendung.
Und `hilfeAufraeumen()` gab es auch. Nur hat sie NIEMAND
aufgerufen: Gesucht im ganzen Verzeichnis war der einzige
Aufrufer ihre eigene Pruefung. Der Kommentar darueber behauptete
„Wird beim Start aufgerufen (siehe index.js)" -- das war nie
wahr. Die Pruefung war gruen und bewies nichts ueber den
Betrieb.
Jetzt steht es hier, wo es sich selbst durchsetzt: Diese Datei
ist beides -- die Uebersicht, was wie lange aufgehoben wird, UND
das Programm, das es tut. Nebenbei taucht der Meldeweg damit in
der Auskunft auf (Art. 15 DSGVO), und das gehoert sich: Wer
gemeldet hat, darf erfahren, wie lange das noch gespeichert ist.
GEMESSEN VOR DEM EINSCHALTEN: In der echten Datenbank steht
heute KEIN einziger Fall. Der erste Lauf loescht also nichts,
und der erste Fall kann fruehestens in drei Monaten 90 Tage alt
werden. Einschalten ist jetzt frei -- spaeter waere es der
riskante Moment gewesen.
DIE NACHRICHTEN GEHEN MIT: `hilfe_nachrichten.fall_id` traegt
`ON DELETE CASCADE`, und `PRAGMA foreign_keys` steht im Dienst
auf 1. Beides nachgemessen an einem echten Fall mit Nachricht:
vorher 1/1, nachher 0/0. Ohne diese Messung waere der Fall
verschwunden und der eigentliche Text liegengeblieben. */
schluessel: "hilfe_geschlossen",
was: "Abgeschlossene vertrauliche Meldungen samt Verlauf",
art: "raeumen",
frist: `${HILFE_TAGE} Tage nach dem Abschluss`,
zweck: "Ein abgeschlossener Fall kommt manchmal wieder auf "
+ "(oft Monate spaeter) – dann muss man nachlesen "
+ "können, was damals vereinbart wurde.",
grundlage: "Art. 6 Abs. 1 lit. f DSGVO – berechtigtes Interesse "
+ "(Schutz der Mitglieder), Art. 5 Abs. 1 lit. e – Speicherbegrenzung",
wirkung: "Der Fall und ALLE Nachrichten darin verschwinden ganz. "
+ "Offene Fälle werden nie geräumt – nur abgeschlossene, und erst "
+ `${HILFE_TAGE} Tage danach.`,
offen: (d) => zaehle(d,
"SELECT COUNT(*) AS n FROM hilfe_faelle WHERE stand = ?"
+ " AND geschlossen_am IS NOT NULL AND geschlossen_am < ?",
FALL_STAND.zu, vorTagen(HILFE_TAGE)),
raeumen: (d) => d.prepare(
"DELETE FROM hilfe_faelle WHERE stand = ?"
+ " AND geschlossen_am IS NOT NULL AND geschlossen_am < ?")
.run(FALL_STAND.zu, vorTagen(HILFE_TAGE)).changes,
},
{
schluessel: "protokoll_ip",
was: "IP-Adressen im Protokoll",
@@ -170,6 +231,37 @@ export const FRISTEN = [
offen: (d) => zaehle(d,
"SELECT COUNT(*) AS n FROM personen WHERE alter_bestaetigt_am IS NOT NULL"),
},
{
/* ERLEDIGTE AUFGABEN (nachgetragen am 20.09.2026)
Aufgefallen beim Suchen nach dem naechsten `hilfe_faelle`:
Genau ZWEI Tabellen im ganzen Haus tragen eine Spalte, die
sagt „hier ist etwas zu Ende" -- `hilfe_faelle.geschlossen_am`
und `aufgaben.erledigt_am`. Die erste war gar nicht im Konzept,
die zweite ebenso wenig.
Hier ist die Antwort aber eine andere: Sie BLEIBEN. Eine
erledigte Aufgabe ist Arbeitsdokumentation, keine Meldung ueber
einen Menschen -- und wer im Dezember wissen will, was im
September verabredet war, findet es sonst nicht mehr.
`aufgaben.verantwortlich_id` traegt ON DELETE SET NULL, nicht
CASCADE: Wird eine Person geloescht, bleibt die Aufgabe stehen
und verliert nur den Namen. Auch das ist Absicht -- eine
Aufgabe, die verschwindet, weil jemand das Team verlaesst,
reisst die Geschichte des Projekts mit. */
schluessel: "aufgaben_erledigt",
was: "Erledigte und abgebrochene Aufgaben",
art: "bleibt",
frist: "unbefristet",
zweck: "Nachlesen können, was wann verabredet und getan wurde.",
grundlage: "Art. 6 Abs. 1 lit. f DSGVO – berechtigtes Interesse an "
+ "nachvollziehbarer Zusammenarbeit",
wirkung: "Bleiben. Beim Löschen einer Person verlieren sie nur den Namen "
+ "(ON DELETE SET NULL) – die Aufgabe selbst bleibt lesbar.",
offen: (d) => zaehle(d,
"SELECT COUNT(*) AS n FROM aufgaben WHERE erledigt_am IS NOT NULL"),
},
{
schluessel: "personen_geloescht",
was: "Daten einer gelöschten Person",
+46 -41
View File
@@ -19,7 +19,7 @@
import express from "express";
import { db, protokolliere } from "./workspace.js";
import { FALL_STAND } from "./hilfe-tabellen.js";
import { FALL_STAND, AUFBEWAHRUNG_TAGE } from "./hilfe-tabellen.js";
import { benachrichtige } from "./workspace-push.js";
export const hilfeRouter = express.Router();
@@ -109,6 +109,10 @@ hilfeRouter.get("/workspace/api/hilfe", (req, res) => {
darf, ohne es durch einen Fehlschlag herauszufinden. */
offen_eigene: leitung ? null : zeilen.filter((z) => z.stand !== FALL_STAND.zu).length,
offen_max: OFFEN_MAX,
/* Damit der Abschluss-Dialog die Frist nennen kann, ohne sie
ein zweites Mal im Browser stehen zu haben. Eine Zahl, die an
zwei Stellen steht, ist morgen an einer davon falsch. */
aufbewahrung_tage: AUFBEWAHRUNG_TAGE,
});
} catch (fehler) {
console.error("[hilfe] Liste:", fehler?.message);
@@ -146,6 +150,25 @@ hilfeRouter.get("/workspace/api/hilfe/:id(\\d+)", (req, res) => {
id: fall.id, betreff: fall.betreff, stand: fall.stand,
erstellt: fall.erstellt, geaendert: fall.geaendert,
geschlossen_am: fall.geschlossen_am,
/* BIS WANN ER NOCH DA IST (20.09.2026).
----------------------------------------------------------
Ein abgeschlossener Fall wird nach 90 Tagen geloescht --
das steht im Loeschkonzept und laeuft taeglich. Bis heute
stand auf der Seite nur „Dieser Fall ist abgeschlossen".
Niemand konnte wissen, dass er verschwindet, und erst recht
nicht, wann.
Das ist keine Kleinigkeit: Wer eine Meldung gemacht hat,
hat ein Recht darauf zu erfahren, wie lange das gespeichert
bleibt (Art. 13 Abs. 2 lit. a DSGVO). Und praktisch braucht
er es auch -- wer nachlesen will, was vereinbart wurde,
soll nicht erst merken, dass es weg ist.
GERECHNET WIRD HIER, nicht im Browser: Sonst stuende
dieselbe Frist an zwei Stellen, und eine davon altert. */
lesbar_bis: fall.geschlossen_am
? new Date(Date.parse(fall.geschlossen_am) + AUFBEWAHRUNG_TAGE * 86400000).toISOString()
: null,
...(leitung ? { melder: melder?.name || "(gelöscht)" } : {}),
},
nachrichten: nachrichten.map((n) => ({
@@ -318,44 +341,26 @@ async function schlussBenachrichtigen(fall) {
});
}
/* ---------- Aufräumen --------------------------------------------------- */
/* ---------- Aufräumen: steht jetzt im Löschkonzept --------------------
Hier stand `hilfeAufraeumen(tage)` -- mit einem Kommentar darüber,
sie werde „beim Start aufgerufen (siehe index.js)". Das war nie
wahr: Gesucht im ganzen Verzeichnis war der einzige Aufrufer ihre
eigene Prüfung. Die Prüfung war grün und bewies nichts über den
Betrieb.
Am 20.09.2026 ist die Regel dorthin gewandert, wo sie sich selbst
durchsetzt: `workspace-aufbewahrung.js`, Eintrag
`hilfe_geschlossen`. Diese Datei ist beides -- die Übersicht, was
wie lange aufgehoben wird, UND das Programm, das es tut. Sie läuft
beim Start und danach täglich.
ZWEI STELLEN WÄREN SCHLIMMER ALS KEINE. Eine zweite Fassung
desselben DELETE hier wäre morgen anders als die dort, und der
Unterschied fiele erst auf, wenn er zählt -- beim Löschen der
empfindlichsten Texte des Hauses. Deshalb ist sie weg, nicht
doppelt.
Die Frist selbst (`AUFBEWAHRUNG_TAGE = 90`) steht unverändert in
`hilfe-tabellen.js`, samt Begründung. */
/** Löscht geschlossene Fälle, die älter sind als die Aufbewahrung.
*
* ACHTUNG, NACHGEMESSEN AM 19.09.2026: Diese Funktion wird im Betrieb
* NICHT aufgerufen. Hier stand vorher "Wird beim Start aufgerufen
* (siehe index.js)" -- das war nie wahr. Gesucht im ganzen Verzeichnis:
* der einzige Aufrufer ist `pruef-hilfe.mjs`, also ihre eigene Prüfung.
*
* Die Prüfung ist deshalb grün und beweist nichts über den Betrieb:
* Sie zeigt, dass die Funktion richtig löscht -- nicht, dass jemand
* sie aufruft. Genau das Muster, vor dem die Hausregeln warnen.
*
* FOLGE: Geschlossene Fälle bleiben derzeit unbegrenzt stehen. Das ist
* die sichere Richtung (nichts geht verloren), aber nicht die
* gewollte -- ein vertraulicher Fall über einen Menschen soll nicht
* ewig gespeichert bleiben.
*
* Das EINZUSCHALTEN löscht echte Daten und ist deshalb keine
* Reparatur, die nebenbei passiert, sondern Filipes Entscheidung:
* Wie lange sollen abgeschlossene Fälle stehen bleiben? Die Prüfung
* rechnet mit 90 Tagen, das ist aber nur ihre Annahme.
*
* Läuft still: Wenn es nichts zu tun gibt, sagt es auch nichts --
* eine Meldung, die jeden Start begleitet, wird nach einer Woche
* nicht mehr gelesen. */
export function hilfeAufraeumen(tage) {
try {
const grenze = new Date(Date.now() - tage * 86400000).toISOString();
const weg = db().prepare(
"DELETE FROM hilfe_faelle WHERE stand = ? AND geschlossen_am IS NOT NULL"
+ " AND geschlossen_am < ?").run(FALL_STAND.zu, grenze);
if (weg.changes > 0) {
console.log(`[hilfe] ${weg.changes} abgeschlossene Fälle nach ${tage} Tagen gelöscht.`);
}
return weg.changes;
} catch (fehler) {
console.error("[hilfe] aufraeumen:", fehler?.message);
return 0;
}
}
+5 -5
View File
@@ -16,15 +16,15 @@
verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
WARUM das Telefon nicht klingelt, ist das besonders unpassend. -->
<link rel="manifest" href="/workspace/crew.webmanifest?v=202609191018" />
<meta name="theme-color" content="#06090f" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<style>
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
@@ -124,8 +124,8 @@
<p class="probe__ende" id="rat"></p>
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>␍
<script src="assets/js/anruf-probe.js?v=202609201243" defer></script>
<script src="assets/js/anruf-probe.js?v=202609201409" defer></script>
</body>
</html>
+4 -4
View File
@@ -22,25 +22,25 @@
},
"icons": [
{
"src": "/assets/img/app-symbole/workspace-192.png?v=202609201243",
"src": "/assets/img/app-symbole/workspace-192.png?v=202609201409",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/workspace-512.png?v=202609201243",
"src": "/assets/img/app-symbole/workspace-512.png?v=202609201409",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609201243",
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609201409",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609201243",
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609201409",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
+16
View File
@@ -226,3 +226,19 @@
font-size: .85rem; line-height: 1.55;
color: var(--text-still);
}
/* ---- Was nach dem Abschluss gilt -----------------------------------
Drei Sätze statt einem (20.09.2026). Vorher stand dort nur „Dieser
Fall ist abgeschlossen (Datum)." -- und keine der drei Fragen war
beantwortet, die man in dem Moment hat: Kann ich noch schreiben?
Bleibt das hier stehen? Und wenn es wieder passiert?
Der erste Satz ist die Auskunft, die beiden anderen sind Beiwerk --
deshalb leiser. Sie sollen gelesen werden, wenn man sie braucht,
und nicht mit dem ersten konkurrieren. */
.fall-schluss__zeile { margin: 0 0 6px; }
.fall-schluss__zeile:last-child { margin-bottom: 0; }
.fall-schluss__zeile--still {
font-size: .88rem;
color: var(--text-still);
}
+76 -4
View File
@@ -26,6 +26,13 @@
};
let leitung = false;
/** Wie viele Tage ein abgeschlossener Fall noch lesbar bleibt.
*
* KOMMT VOM SERVER, wird nicht hier hingeschrieben: Die Frist steht
* in `hilfe-tabellen.js`, und eine zweite Zahl hier waere morgen
* eine andere. Solange sie nicht bekannt ist, sagt der Dialog
* „eine Weile" -- lieber ungenau als falsch. */
let aufbewahrungTage = 0;
let offeneEigene = 0;
let offenMax = 3;
@@ -54,6 +61,23 @@
return a;
}
/** Nur der Tag, ohne Uhrzeit. Fuer Fristen, die Monate entfernt
* sind -- dort ist die Minute Rauschen.
*
* UND SIE WAERE SOGAR IRREFUEHREND: Ein Fall, der am 20.09. um
* 14:04 (Sommerzeit) geschlossen wird, verfaellt 90 Tage spaeter
* am 19.12. um 13:04 -- weil dazwischen die Uhr zurueckgestellt
* wird. Das ist richtig gerechnet und sieht trotzdem aus wie ein
* Fehler. Wer eine Stunde sucht, die es nicht gibt, hat Zeit
* verloren; wer nur den Tag liest, hat alles, was er braucht. */
function tag(roh) {
if (!roh) return '';
const d = new Date(roh);
if (Number.isNaN(d.getTime())) return '';
return d.toLocaleDateString('de-DE',
{ day: '2-digit', month: '2-digit', year: 'numeric' });
}
function datum(roh) {
if (!roh) return '';
const d = new Date(roh);
@@ -72,6 +96,7 @@
if (!a.ok) { melde('Die Liste ließ sich nicht laden.'); return; }
const d = await a.json();
leitung = !!d.leitung;
aufbewahrungTage = Number(d.aufbewahrung_tage) || 0;
offeneEigene = d.offen_eigene ?? 0;
offenMax = d.offen_max ?? 3;
@@ -230,8 +255,45 @@
if (f.stand === 'geschlossen') {
form.hidden = true;
warten.hidden = false;
warten.textContent = 'Dieser Fall ist abgeschlossen'
+ (f.geschlossen_am ? ' (' + datum(f.geschlossen_am) + ')' : '') + '.';
/* DREI SÄTZE STATT EINEM (20.09.2026).
----------------------------------------------------------
Hier stand nur „Dieser Fall ist abgeschlossen (Datum)." Das
beantwortet keine der drei Fragen, die man in diesem Moment
hat:
Kann ich noch etwas schreiben? Nein -- und das ist
endgültig. Es gibt keine Route, die einen geschlossenen
Fall wieder öffnet, und das ist Absicht: Sonst wäre
„zugemacht" eine Meinung und keine Tatsache.
Bleibt das jetzt hier stehen? 90 Tage, dann ist es weg.
Das darf man nicht erst merken, wenn es weg ist.
Und wenn es wieder passiert? Neu melden. Der alte Fall
zählt nicht gegen das Limit von drei offenen.
Der Satz zum Löschen kommt vom Server (`lesbar_bis`) -- die
Frist steht nur an einer Stelle. */
warten.textContent = '';
const eins = el('p', 'fall-schluss__zeile');
eins.textContent = 'Dieser Fall ist abgeschlossen'
+ (f.geschlossen_am ? ' am ' + tag(f.geschlossen_am) : '')
+ '. Hier kann niemand mehr schreiben, und er lässt sich auch '
+ 'nicht wieder öffnen.';
warten.append(eins);
if (f.lesbar_bis) {
const zwei = el('p', 'fall-schluss__zeile fall-schluss__zeile--still');
zwei.textContent = 'Du kannst ihn bis zum ' + tag(f.lesbar_bis)
+ ' nachlesen. Danach wird er samt allen Nachrichten gelöscht.';
warten.append(zwei);
}
const drei = el('p', 'fall-schluss__zeile fall-schluss__zeile--still');
drei.textContent = d.leitung
? 'Kommt dieselbe Sache wieder auf, entsteht ein neuer Fall – '
+ 'dieser bleibt bis dahin als Nachschlagewerk stehen.'
: 'Wenn so etwas wieder vorkommt, melde es einfach neu. '
+ 'Ein abgeschlossener Fall zählt nicht mit.';
warten.append(drei);
} else if (d.ich_bin_dran) {
form.hidden = false;
warten.hidden = true;
@@ -297,8 +359,18 @@
titel: 'Diesen Fall abschließen?',
was: 'Der Fall gilt danach als erledigt. Es kann niemand mehr '
+ 'antworten – auch die Person nicht, die ihn gemeldet hat.',
bleibt: 'Der ganze Verlauf bleibt lesbar. Wieder aufmachen lässt '
+ 'sich der Fall aber nicht – dafür müsste er neu gemeldet werden.',
/* DIE FRIST GEHOERT IN DEN MOMENT DER ENTSCHEIDUNG (20.09.2026).
Hier stand nur „Der ganze Verlauf bleibt lesbar" -- das ist
wahr, aber nicht die ganze Auskunft: Nach 90 Tagen ist er weg,
samt allen Nachrichten. Wer schliesst, startet damit eine Uhr,
und das soll er wissen, BEVOR er klickt, nicht danach.
Die Zahl kommt aus derselben Quelle wie das Datum auf der
Seite darunter -- der Server sagt sie. */
bleibt: 'Der ganze Verlauf bleibt danach noch '
+ (aufbewahrungTage ? aufbewahrungTage + ' Tage' : 'eine Weile')
+ ' lesbar und wird dann samt allen Nachrichten gelöscht. '
+ 'Wieder aufmachen lässt sich der Fall nicht – dafür müsste '
+ 'er neu gemeldet werden.',
endgueltig: true,
ja: 'Abschließen',
grund: 'Ein Schlusswort für die Person? (darf leer bleiben)',
+15 -15
View File
@@ -12,19 +12,19 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -291,14 +291,14 @@
</form>
</dialog>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/hochladen.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/hochladen.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/aufgaben.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/aufgaben.js?v=202609201409" defer></script>
</body>
</html>
+15 -15
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -168,13 +168,13 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/automation.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/automation.js?v=202609201409" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -130,12 +130,12 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/befinden.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/befinden.js?v=202609201409" defer></script>
</body>
</html>
+20 -20
View File
@@ -12,24 +12,24 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609201409" />
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
Stelle, an der dieselbe Sache anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -251,17 +251,17 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/checkliste.js?v=202609201243" defer></script>
<script src="assets/js/ampel.js?v=202609201243" defer></script>
<script src="assets/js/schulung.js?v=202609201243" defer></script>
<script src="assets/js/vorlagen.js?v=202609201243" defer></script>
<script src="assets/js/bereich.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/checkliste.js?v=202609201409" defer></script>
<script src="assets/js/ampel.js?v=202609201409" defer></script>
<script src="assets/js/schulung.js?v=202609201409" defer></script>
<script src="assets/js/vorlagen.js?v=202609201409" defer></script>
<script src="assets/js/bereich.js?v=202609201409" defer></script>
</body>
</html>
+17 -17
View File
@@ -7,17 +7,17 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -108,12 +108,12 @@
</main>
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/auskunft.js?v=202609201243" defer></script>
<script src="assets/js/bewerben.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/auskunft.js?v=202609201409" defer></script>
<script src="assets/js/bewerben.js?v=202609201409" defer></script>
</body>
</html>
+16 -16
View File
@@ -7,16 +7,16 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -80,13 +80,13 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/auskunft.js?v=202609201243" defer></script>
<script src="assets/js/bewerbungen.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/auskunft.js?v=202609201409" defer></script>
<script src="assets/js/bewerbungen.js?v=202609201409" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -89,14 +89,14 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/ki.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/calls.js?v=202609201243" defer></script>
<script src="assets/js/ki.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/calls.js?v=202609201409" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,26 +12,26 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
Dialog zu sehen bekam. -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -373,18 +373,18 @@
</form>
</dialog>
<script src="assets/js/bereiche.js?v=202609201243"></script>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/hochladen.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243"></script>
<script src="assets/js/glocke.js?v=202609201243"></script>
<script src="assets/js/bereiche.js?v=202609201409"></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/hochladen.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409"></script>
<script src="assets/js/glocke.js?v=202609201409"></script>
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
die Knoepfe fehlten, und niemand wuesste warum. -->
<script src="assets/js/anruf.js?v=202609201243"></script>
<script src="assets/js/chat.js?v=202609201243"></script>
<script src="assets/js/anruf.js?v=202609201409"></script>
<script src="assets/js/chat.js?v=202609201409"></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/content.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/content.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -179,15 +179,15 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/checkliste.js?v=202609201243" defer></script>
<script src="assets/js/vorlagen.js?v=202609201243" defer></script>
<script src="assets/js/content.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/checkliste.js?v=202609201409" defer></script>
<script src="assets/js/vorlagen.js?v=202609201409" defer></script>
<script src="assets/js/content.js?v=202609201409" defer></script>
</body>
</html>
+6 -6
View File
@@ -36,15 +36,15 @@
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
die eine Seite, auf der man das Umfaerben sieht. -->
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609201409" />
</head>
<body class="gate gate--crew">
@@ -348,8 +348,8 @@
</main>
</div>
<script src="assets/js/meldung.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>␍
<script src="assets/js/gate.js?v=202609201243" defer></script>
<script src="assets/js/gate.js?v=202609201409" defer></script>
</body>
</html>
+4 -4
View File
@@ -22,25 +22,25 @@
},
"icons": [
{
"src": "/assets/img/app-symbole/crew-192.png?v=202609201243",
"src": "/assets/img/app-symbole/crew-192.png?v=202609201409",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/crew-512.png?v=202609201243",
"src": "/assets/img/app-symbole/crew-512.png?v=202609201409",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609201243",
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609201409",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609201243",
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609201409",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -108,14 +108,14 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/hochladen.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/hochladen.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/dateien.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/dateien.js?v=202609201409" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -106,12 +106,12 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/entwicklung.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/entwicklung.js?v=202609201409" defer></script>
</body>
</html>
+19 -14
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -136,17 +136,22 @@
<span class="hilfe-form__stand" id="antwort-stand" role="status" aria-live="polite"></span>
</div>
</form>
<p class="fall-warten" id="fall-warten" hidden></p>
<!-- EIN <div>, KEIN <p> (20.09.2026). Seit dem Abschluss drei
Saetze enthaelt, stehen hier <p>-Elemente darin -- und ein
<p> in einem <p> ist ungueltig: Der Browser schliesst das
aeussere selbst und schiebt den Rest daneben. Das faellt
erst am Bildschirm auf, nicht im Quelltext. -->
<div class="fall-warten" id="fall-warten" hidden></div>
</section>
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/hilfe.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/hilfe.js?v=202609201409" defer></script>
</body>
</html>
+5 -5
View File
@@ -30,9 +30,9 @@
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
</head>
<body class="gate">
@@ -410,8 +410,8 @@
</main>
</div>
<script src="assets/js/meldung.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>␍
<script src="assets/js/gate.js?v=202609201243" defer></script>
<script src="assets/js/gate.js?v=202609201409" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -377,14 +377,14 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/kalender.js?v=202609201243" defer></script>
<script src="assets/js/kalender-abo.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/kalender.js?v=202609201409" defer></script>
<script src="assets/js/kalender-abo.js?v=202609201409" defer></script>
</body>
</html>
+15 -15
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -444,12 +444,12 @@
</form>
</dialog>
<script src="assets/js/meldung.js?v=202609201243"></script>
<script src="assets/js/nachfrage.js?v=202609201243"></script>
<script src="assets/js/wahl.js?v=202609201243"></script>
<script src="assets/js/bereiche.js?v=202609201243"></script>
<script src="assets/js/kopf.js?v=202609201243"></script>
<script src="assets/js/glocke.js?v=202609201243"></script>
<script src="assets/js/leistung.js?v=202609201243"></script>
<script src="assets/js/meldung.js?v=202609201409"></script>
<script src="assets/js/nachfrage.js?v=202609201409"></script>
<script src="assets/js/wahl.js?v=202609201409"></script>
<script src="assets/js/bereiche.js?v=202609201409"></script>
<script src="assets/js/kopf.js?v=202609201409"></script>
<script src="assets/js/glocke.js?v=202609201409"></script>
<script src="assets/js/leistung.js?v=202609201409"></script>
</body>
</html>
+15 -15
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -449,13 +449,13 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/personen.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/personen.js?v=202609201409" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -214,15 +214,15 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/hochladen.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/hochladen.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/steckbrief.js?v=202609201243" defer></script>
<script src="assets/js/profil.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/steckbrief.js?v=202609201409" defer></script>
<script src="assets/js/profil.js?v=202609201409" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -134,11 +134,11 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/rechte.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/rechte.js?v=202609201409" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/report.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/report.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -106,14 +106,14 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/ki.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/report.js?v=202609201243" defer></script>
<script src="assets/js/ki.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/report.js?v=202609201409" defer></script>
</body>
</html>
+15 -15
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -173,13 +173,13 @@
</div>
</div>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/scouting.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/scouting.js?v=202609201409" defer></script>
</body>
</html>
+14 -14
View File
@@ -12,21 +12,21 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
<link rel="stylesheet" href="assets/css/heim.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/heim.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -678,13 +678,13 @@
</p>
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/start.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/start.js?v=202609201409" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -85,14 +85,14 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/ki.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/startcheck.js?v=202609201243" defer></script>
<script src="assets/js/ki.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/startcheck.js?v=202609201409" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -150,15 +150,15 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/hochladen.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/hochladen.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/auskunft.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/steckbrief.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/auskunft.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/steckbrief.js?v=202609201409" defer></script>
</body>
</html>
+15 -15
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201409" />
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
der Regel hier waere die zweite Stelle, an der dieselbe Sache
anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -111,12 +111,12 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/talente.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/talente.js?v=202609201409" defer></script>
</body>
</html>
+15 -15
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/team.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/team.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -110,13 +110,13 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/team.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/team.js?v=202609201409" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/team.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/team.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu
@@ -84,11 +84,11 @@
Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt
es niemandem auf, und deshalb prueft pruef-css-klassen die
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/teamlage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/teamlage.js?v=202609201409" defer></script>
</body>
</html>
+13 -13
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -112,12 +112,12 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/teilen.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/teilen.js?v=202609201409" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -126,12 +126,12 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/treff-moderation.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/treff-moderation.js?v=202609201409" defer></script>
</body>
</html>
+15 -15
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
Treffs biegt der Server genau diesen Dateinamen auf crew-haus.css
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -221,12 +221,12 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/auskunft.js?v=202609201243" defer></script>
<script src="assets/js/treff-regeln.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/auskunft.js?v=202609201409" defer></script>
<script src="assets/js/treff-regeln.js?v=202609201409" defer></script>
</body>
</html>
+15 -15
View File
@@ -12,22 +12,22 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
Dialog "Creator anlegen". -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -149,14 +149,14 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/uebersicht.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/uebersicht.js?v=202609201409" defer></script>
</body>
</html>
+13 -13
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -217,12 +217,12 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/unsere-seiten.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/unsere-seiten.js?v=202609201409" defer></script>
</body>
</html>
+15 -15
View File
@@ -7,15 +7,15 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -144,12 +144,12 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>␍
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>␍
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/werdegang.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/werdegang.js?v=202609201409" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201243" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201243" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201243" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609201409" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609201409" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/start.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609201409" />
<link rel="stylesheet" href="assets/css/module.css?v=202609201409" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609201243" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609201409" />
</head>
<body class="start">
@@ -190,14 +190,14 @@
</main>
<script src="assets/js/meldung.js?v=202609201243" defer></script>
<script src="assets/js/hochladen.js?v=202609201243" defer></script>
<script src="assets/js/nachfrage.js?v=202609201243" defer></script>
<script src="assets/js/meldung.js?v=202609201409" defer></script>
<script src="assets/js/hochladen.js?v=202609201409" defer></script>
<script src="assets/js/nachfrage.js?v=202609201409" defer></script>
<script src="assets/js/wahl.js?v=202609201243" defer></script>
<script src="assets/js/bereiche.js?v=202609201243" defer></script>
<script src="assets/js/kopf.js?v=202609201243" defer></script>
<script src="assets/js/glocke.js?v=202609201243" defer></script>
<script src="assets/js/wissen.js?v=202609201243" defer></script>
<script src="assets/js/wahl.js?v=202609201409" defer></script>
<script src="assets/js/bereiche.js?v=202609201409" defer></script>
<script src="assets/js/kopf.js?v=202609201409" defer></script>
<script src="assets/js/glocke.js?v=202609201409" defer></script>
<script src="assets/js/wissen.js?v=202609201409" defer></script>
</body>
</html>