Anleitung, Etappe 2: Erste Schritte zum Abhaken -- und eine Farbe, die vier Tage falsch war

Ein Creator hakt seine fuenf Ersten Schritte ab, sieht seinen
Fortschritt im Kopf, bekommt unter „Was ist dran" den Punkt „Erste
Schritte noch offen" und ganz oben auf der Startseite eine breite
Kachel „Fang hier an". Alle drei verschwinden von selbst, sobald er
durch ist -- niemand muss etwas wegklicken oder abschalten.

EINE QUELLE, DREI ANZEIGEN.

Der Bauplan wollte einen Punkt bei „Was ist dran" UND einen eigenen
Zaehler an der Kachel. Zwei getrennt gebaute Zaehler zeigen irgendwann
zwei verschiedene Zahlen uebereinander auf einem Bildschirm. Es gibt
deshalb nur `offeneHinweise()`: Daraus kommen die Zeile, die Zahl an
der kleinen Kachel und die Zahl an der breiten. Die breite Kachel
entsteht ausserdem aus der BEREITS GEFILTERTEN Kachelliste und erbt
damit beide Schranken (Rollenliste und Rechtetafel), statt sie ein
drittes Mal zu beantworten.

Gespeichert wird nur Erledigtes: eine Zeile heisst „abgehakt", keine
Zeile heisst „offen". Kein Feld mit 0 und 1 -- sonst gaebe es zwei
Arten, „offen" zu sagen.

DIE WICHTIGSTE ENTDECKUNG WAR NICHT TEIL DIESER ETAPPE.

`pruef-kachel-universum` wurde rot. Nachgemessen gegen den Stand VOR
Etappe 1: Sie war schon rot -- seit dem 02.10., und zwar wegen Ton 47
(Manager-Ziele, #7368ff), den ich selbst eingetragen habe. Im
Kommentar daneben steht sogar meine eigene Messung: „Abstand zum
naechsten Nachbarn 0,0899 ... knapp unter der 0,090". Ich habe die
Zahl hingeschrieben und die Pruefung nie laufen lassen. Vier Tage.

#7368ff -> #7269ff. Eine Hexziffer, Abstand zum alten Wert 0,0024 --
das sieht kein Mensch --, aber der Abstand zur naechsten Kachel im
eigenen Haus steigt von 0,0899 auf 0,0918. Nicht die am weitesten
entfernte Farbe genommen (das waere ein grelles Gruen gewesen):
Manager-Ziele ist in Benutzung und violett, gesucht war die kleinste
Aenderung, die die Regel haelt.

UND DIE REGEL SELBST WAR FUER EIN HAUS GESCHRIEBEN.

Auch mit sauberem Ton 47 blieb die Pruefung rot: Sie vergleicht ALLE
48 Toene miteinander, und rechnerisch ist 0,09 fuer 48 Farben nicht zu
halten (das Werkzeug findet als besten freien Platz 0,0793). Seit dem
24.09.2026 gibt es aber zwei Haeuser, und eine Kachel des einen steht
nie neben einer des anderen -- sie liegen auf verschiedenen Adressen.

Die Messung ist jetzt haus-bewusst: 0,09 innerhalb eines Hauses
(streng, und mit rund 24 Farden je Haus zu halten -- gemessen 0,0905),
ein Boden von 0,06 ueber die Haeuser hinweg. Das ist SCHAERFER, nicht
weicher: Vorher verteilte sich die Grenze auf 48 Farben und war
unerreichbar, weshalb die Pruefung dauerhaft rot stand -- und eine
Warnung, die immer kommt, ist keine mehr. Welcher Ton zu welchem Haus
gehoert, wird aus bereiche.js abgeleitet, nicht aufgelistet. Dazu eine
Gegenprobe, dass die Einteilung ueberhaupt trennt (553 Paare im Haus,
575 darueber hinweg).

NOCH EINE FESTE ZAHL ERSETZT: `pruef-start-ansicht` verlangte „genau
drei Gruppen" fuer einen Creator. Mit „Fang hier an" sind es
zeitweilig vier, und beides ist richtig. Gezaehlt wird nicht mehr,
sondern benannt -- auch das die schaerfere Pruefung: Die alte Zeile
waere gruen geblieben, wenn eine der drei Gruppen verschwindet und
eine fremde dazukommt.

Gemessen
  pruef-anleitung        70 Pruefungen, 0 Fehler (vorher 47)
  pruef-rollen          402 Pruefungen, 0 Fehler (vorher 401)
  pruef-kachel-universum 16 Pruefungen, 0 Fehler (vorher 13, davon 1 rot)
  pruef-start-ansicht     alles in Ordnung (vorher 1 rot)
  pruef-kachelraster      24 Pruefungen, 0 Fehler
  pruef-css-klassen       alles in Ordnung, 42 Stellen unter 11,5 px
  mess-anleitung          mit offenen Schritten: Gruppe „Fang hier an",
                          breite Kachel mit Zaehler 5, Hinweiszeile.
                          Nach dem Abhaken: alle drei weg, ein Weg
                          statt drei. Kein Querschieben bei 412/1440 px.

Sicherung: ~/sicherungen/workspace-vor-anleitung-e2-20261006-1421.db

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-06 14:22:07 +02:00
co-authored by Claude Opus 5
parent a7b2ad77b8
commit df67574f90
58 changed files with 1519 additions and 714 deletions
+28
View File
@@ -158,6 +158,34 @@ CREATE TABLE IF NOT EXISTS anl_rolle (
geaendert_von INTEGER REFERENCES personen(id) ON DELETE SET NULL, geaendert_von INTEGER REFERENCES personen(id) ON DELETE SET NULL,
PRIMARY KEY (haus, rolle) PRIMARY KEY (haus, rolle)
); );
/* ======================================================================
DER STAND JE PERSON (Etappe 2)
NUR ERLEDIGTES WIRD GESPEICHERT. Eine Zeile heisst "abgehakt", keine
Zeile heisst "offen". Die Alternative waere, fuer jede Person jeden
Schritt mit einem Ja/Nein anzulegen -- dann muesste jemand beim
Anlegen einer Person an die Anleitung denken, und beim Hinzufuegen
eines Schrittes an alle Personen. Beides vergisst man.
zeile_id UND NICHT EIN EIGENER SCHLUESSEL. Aendert DogFather in
Etappe 4 den Text eines Schrittes, behaelt die Zeile ihre Nummer und
der Haken bleibt stehen -- richtig, es ist derselbe Schritt. Loescht
er ihn und legt einen neuen an, ist der Haken weg -- auch richtig,
es ist ein anderer Schritt. ON DELETE CASCADE sorgt dafuer, dass
keine Haken auf geloeschte Schritte zeigen.
KEINE SPALTE erledigt. Ein Haken, den man wegnimmt, loescht die
Zeile. Ein Feld mit 0 und 1 waere eine zweite Art, "offen" zu sagen,
und dann gaebe es zwei -- fehlende Zeile und Zeile mit 0.
====================================================================== */
CREATE TABLE IF NOT EXISTS anl_stand (
person_id INTEGER NOT NULL REFERENCES personen(id) ON DELETE CASCADE,
zeile_id INTEGER NOT NULL REFERENCES anl_zeile(id) ON DELETE CASCADE,
erledigt_am TEXT NOT NULL,
PRIMARY KEY (person_id, zeile_id)
);
CREATE INDEX IF NOT EXISTS idx_anl_stand_person ON anl_stand (person_id);
`; `;
/* ===================================================================== /* =====================================================================
+82 -1
View File
@@ -66,13 +66,14 @@ anlegen("Luna", "creator", "CODE-LUNA-0001");
anlegen("Filipe", "admin", "CODE-DOGI-0001"); anlegen("Filipe", "admin", "CODE-DOGI-0001");
d.close(); d.close();
function anfrage(pfad, methode, koerper) { function anfrage(pfad, methode, koerper, keks) {
return new Promise((fertig, schief) => { return new Promise((fertig, schief) => {
const daten = koerper ? JSON.stringify(koerper) : null; const daten = koerper ? JSON.stringify(koerper) : null;
const a = httpAnfrage({ const a = httpAnfrage({
host: "127.0.0.1", port: PORT, path: pfad, method: methode, host: "127.0.0.1", port: PORT, path: pfad, method: methode,
headers: { headers: {
Origin: `http://127.0.0.1:${PORT}`, Origin: `http://127.0.0.1:${PORT}`,
...(keks ? { Cookie: keks } : {}),
...(daten ? { "Content-Type": "application/json", ...(daten ? { "Content-Type": "application/json",
"Content-Length": Buffer.byteLength(daten) } : {}), "Content-Length": Buffer.byteLength(daten) } : {}),
}, },
@@ -127,6 +128,11 @@ const nachmessen = () => ({
fragen: document.querySelectorAll(".an-frage").length, fragen: document.querySelectorAll(".an-frage").length,
ohne: document.getElementById("ohne-fassung")?.hidden === false ohne: document.getElementById("ohne-fassung")?.hidden === false
? document.getElementById("ohne-fassung").textContent.slice(0, 70) : null, ? document.getElementById("ohne-fassung").textContent.slice(0, 70) : null,
/* Etappe 2 */
haken: document.querySelectorAll(".an-haken").length,
abgehakt: document.querySelectorAll(".an-haken__feld:checked").length,
stand: document.getElementById("stand")?.hidden === false
? document.getElementById("stand-satz").textContent : "(kein Fortschritt)",
}); });
async function bild(name, keks, breite, hoehe, vorher) { async function bild(name, keks, breite, hoehe, vorher) {
@@ -162,6 +168,7 @@ async function bild(name, keks, breite, hoehe, vorher) {
console.log(` ${String(s.stufe).padEnd(13)} ${String(s.zahl).padEnd(3)} ` console.log(` ${String(s.stufe).padEnd(13)} ${String(s.zahl).padEnd(3)} `
+ `${s.offen ? "offen" : "zu "} ${s.sichtbar ? "" : "(ausgeblendet)"}`); + `${s.offen ? "offen" : "zu "} ${s.sichtbar ? "" : "(ausgeblendet)"}`);
} }
console.log(` Fortschritt: ${blick.stand} Haken: ${blick.haken} (${blick.abgehakt} gesetzt)`);
console.log(` Karten ohne Farbe: ${blick.ohneTon.length ? blick.ohneTon.join(", ") : "keine"}`); console.log(` Karten ohne Farbe: ${blick.ohneTon.length ? blick.ohneTon.join(", ") : "keine"}`);
console.log(` Quer schieben: ${blick.schiebtQuer ? "JA — Befund!" : "nein"}`); console.log(` Quer schieben: ${blick.schiebtQuer ? "JA — Befund!" : "nein"}`);
console.log(` Zu kleine Ziele: ${blick.zuKlein.length ? blick.zuKlein.join(", ") : "keine"}`); console.log(` Zu kleine Ziele: ${blick.zuKlein.length ? blick.zuKlein.join(", ") : "keine"}`);
@@ -184,6 +191,80 @@ await bild("creator-nur-muss", keksCreator, 412, 950, async (seite) => {
und nicht wie ein Fehler. */ und nicht wie ein Fehler. */
await bild("dogfather-ohne-sicht", keksDogi, 412, 950); await bild("dogfather-ohne-sicht", keksDogi, 412, 950);
/* =====================================================================
DIE BREITE KACHEL AUF DER STARTSEITE (Etappe 2)
Sie entsteht nur, solange Erste Schritte offen sind. Beide Zustaende
werden gemessen -- ein Bild von "sie ist da" allein beweist nicht,
dass sie auch wieder verschwindet, und genau das ist ihr Versprechen.
===================================================================== */
async function startBild(name, keks, breite) {
const kontext = await browser.newContext({
viewport: { width: breite, height: 1100 }, hasTouch: breite <= 860,
});
await kontext.addCookies(keks.split("; ").map((k) => {
const [n, ...r] = k.split("=");
return { name: n, value: r.join("="), domain: "127.0.0.1", path: "/" };
}));
const seite = await kontext.newPage();
const konsole = [];
seite.on("console", (e) => {
if (e.type() === "error" && !/favicon|net::ERR/i.test(e.text())) konsole.push(e.text().slice(0, 160));
});
await seite.goto(`http://127.0.0.1:${PORT}/workspace/start.html`, { waitUntil: "networkidle" });
await seite.waitForTimeout(1400);
const blick = await seite.evaluate(() => {
const gruppen = [...document.querySelectorAll(".gruppe")].map((g) =>
g.querySelector(".gruppe__name")?.textContent);
const breiteKachel = [...document.querySelectorAll('.kachel[data-gross="ja"]')]
.map((k) => k.querySelector(".kachel__name")?.textContent
+ " [" + (k.querySelector(".kachel__zahl")?.textContent || "ohne Zahl") + "]");
const dran = [...document.querySelectorAll(".dran__text")].map((e) => e.textContent);
return { gruppen, breiteKachel, dran,
anleitungKacheln: [...document.querySelectorAll('a[href="anleitung.html"]')].length };
});
/* Ganze Seite: Die breite Kachel sitzt unter der Zentrale und waere
im Ausschnitt nicht zu sehen -- also waere das Bild kein Beleg. */
await seite.screenshot({ path: `bild-anleitung-${name}.png`, fullPage: true });
console.log(`
--- ${name} (${breite}px, Startseite) ---`);
console.log(` Gruppen: ${blick.gruppen.join(" | ")}`);
console.log(` Breite Kacheln: ${blick.breiteKachel.length ? blick.breiteKachel.join(", ") : "keine"}`);
console.log(` Wege zur Anleitung: ${blick.anleitungKacheln}`);
console.log(` Was ist dran: ${blick.dran.join(" | ") || "nichts"}`);
if (konsole.length) console.log(` KONSOLE: ${konsole.join(" | ")}`);
await kontext.close();
return blick;
}
await startBild("start-mit-schritten", keksCreator, 412);
/* Jetzt alle fuenf abhaken -- ueber die Schnittstelle, wie es die
Seite auch tut -- und noch einmal hinsehen. */
const standVorher = await anfrage("/workspace/api/anleitung", "GET", null, keksCreator);
if (standVorher.code !== 200) {
console.log(`ABBRUCH: Anleitung nicht abrufbar (${standVorher.code})`);
process.exit(2);
}
const schritte = JSON.parse(standVorher.text).schritte || [];
for (const sch of schritte) {
await new Promise((fertig, schief) => {
const daten = JSON.stringify({ erledigt: true });
const a = httpAnfrage({
host: "127.0.0.1", port: PORT, path: `/workspace/api/anleitung/schritt/${sch.id}`,
method: "PUT",
headers: { Cookie: keksCreator, "Content-Type": "application/json",
"Content-Length": Buffer.byteLength(daten), Origin: `http://127.0.0.1:${PORT}` },
}, (antwort) => { antwort.on("data", () => {}); antwort.on("end", fertig); });
a.on("error", schief);
a.write(daten); a.end();
});
}
console.log(`
(${schritte.length} Schritte abgehakt)`);
await startBild("start-ohne-schritte", keksCreator, 412);
await bild("creator-fertig", keksCreator, 412, 950);
await browser.close(); await browser.close();
try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ } try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ }
console.log("\nBilder geschrieben: bild-anleitung-*.png"); console.log("\nBilder geschrieben: bild-anleitung-*.png");
+136 -2
View File
@@ -162,12 +162,12 @@ d.close();
const { request } = await import("node:http"); const { request } = await import("node:http");
const CREW_HOST = "crew.dogfather-universe.com"; const CREW_HOST = "crew.dogfather-universe.com";
function roh(pfad, host, koerper, keks) { function roh(pfad, host, koerper, keks, methode) {
return new Promise((fertig, schief) => { return new Promise((fertig, schief) => {
const daten = koerper ? JSON.stringify(koerper) : null; const daten = koerper ? JSON.stringify(koerper) : null;
const a = request({ const a = request({
host: "127.0.0.1", port: PORT, path: pfad, host: "127.0.0.1", port: PORT, path: pfad,
method: daten ? "POST" : "GET", method: methode || (daten ? "POST" : "GET"),
headers: { headers: {
...(host ? { Host: host } : {}), ...(host ? { Host: host } : {}),
Origin: host ? `https://${host}` : BASIS, Origin: host ? `https://${host}` : BASIS,
@@ -388,6 +388,140 @@ ok(nachher?.merke === "VON HAND GEAENDERT",
`der geaenderte Text steht noch da ("${(nachher?.merke || "").slice(0, 24)}")`); `der geaenderte Text steht noch da ("${(nachher?.merke || "").slice(0, 24)}")`);
ok(anzahlNachher === 18, `und es sind keine Karten dazugekommen (${anzahlNachher})`); ok(anzahlNachher === 18, `und es sind keine Karten dazugekommen (${anzahlNachher})`);
/* =====================================================================
ETAPPE 2 — DIE ERSTEN SCHRITTE ZUM ABHAKEN
===================================================================== */
melde("\n=== Abhaken: der Anfangszustand ===");
const schritte0 = creator.j.schritte || [];
ok(schritte0.every((s) => Number.isInteger(s.id) && s.id > 0),
"jeder Schritt hat eine Nummer");
ok(schritte0.every((s) => s.erledigt === false),
"am Anfang ist kein Schritt abgehakt");
ok(creator.j.fortschritt?.erledigt === 0 && creator.j.fortschritt?.gesamt === 5,
`Fortschritt 0 von 5 (${creator.j.fortschritt?.erledigt} von ${creator.j.fortschritt?.gesamt})`);
ok(creator.j.darf_abhaken === true, "ein Creator darf seine eigenen Schritte abhaken");
const haken = (rolle, id, erledigt, host = null) =>
roh(`/workspace/api/anleitung/schritt/${id}`, host, { erledigt }, kekse[rolle], "PUT");
melde("\n=== Abhaken: setzen, zaehlen, wegnehmen ===");
const ersterId = schritte0[0].id;
const r1 = await haken("creator", ersterId, true);
let j1 = null; try { j1 = JSON.parse(r1.text); } catch { /* bleibt null */ }
ok(r1.code === 200 && j1?.erledigt === true, `Schritt abgehakt (HTTP ${r1.code})`);
ok(j1?.fortschritt?.erledigt === 1, `Fortschritt jetzt 1 von 5 (${j1?.fortschritt?.erledigt})`);
/* ZWEIMAL DASSELBE IST DERSELBE ZUSTAND. Bei wackeligem Mobilfunk
tippt man nach, und das darf nicht doppelt zaehlen. */
const r2 = await haken("creator", ersterId, true);
let j2 = null; try { j2 = JSON.parse(r2.text); } catch { /* bleibt null */ }
ok(r2.code === 200 && j2?.fortschritt?.erledigt === 1,
`zweimal abhaken zaehlt einmal (${j2?.fortschritt?.erledigt})`);
/* Und er haelt ueber einen neuen Abruf -- sonst stuende er nur im
Arbeitsspeicher der Antwort. */
const nachHaken = await holen("creator");
ok(nachHaken.j?.fortschritt?.erledigt === 1,
`der Haken steht auch beim naechsten Laden (${nachHaken.j?.fortschritt?.erledigt} von 5)`);
ok(nachHaken.j?.schritte?.find((s) => s.id === ersterId)?.erledigt === true,
"…und zwar an genau dem Schritt, der angetippt wurde");
const r3 = await haken("creator", ersterId, false);
let j3 = null; try { j3 = JSON.parse(r3.text); } catch { /* bleibt null */ }
ok(r3.code === 200 && j3?.fortschritt?.erledigt === 0,
`der Haken laesst sich wieder wegnehmen (${j3?.fortschritt?.erledigt})`);
melde("\n=== Abhaken: wer darf das nicht ===");
/* Ein Creator darf keinen Schritt abhaken, der es gar nicht ist --
sonst meldete der Fortschritt eines Tages 7 von 5. */
const eineFrage = await (async () => {
const d3 = new DatabaseSync(process.env.WORKSPACE_DB, { readOnly: true });
const z = d3.prepare("SELECT id FROM anl_zeile WHERE art = 'frage' LIMIT 1").get();
d3.close();
return z?.id;
})();
braucht(!!eineFrage, "keine Frage-Zeile gefunden, mit der sich das pruefen liesse");
const rFrage = await haken("creator", eineFrage, true);
ok(rFrage.code === 404,
`eine Frage laesst sich nicht abhaken (HTTP ${rFrage.code}, erwartet 404)`);
/* DogFather hat keine eigene Fassung -- also auch keine Schritte. */
const rDogi = await haken("admin", ersterId, true);
ok(rDogi.code === 404,
`DogFather kann einen Creator-Schritt nicht abhaken (HTTP ${rDogi.code}, erwartet 404)`);
const rModi = await haken("modi", ersterId, true, CREW_HOST);
ok(rModi.code === 404, `ein Modi auch nicht (HTTP ${rModi.code}, erwartet 404)`);
/* Unsinn als Nummer darf nicht durchrutschen. */
const rUnsinn = await roh("/workspace/api/anleitung/schritt/abc", null,
{ erledigt: true }, kekse.creator, "PUT");
ok(rUnsinn.code === 400 || rUnsinn.code === 404,
`keine Nummer -> abgelehnt (HTTP ${rUnsinn.code})`);
/* GEGENPROBE: Die Ablehnungen oben koennten auch davon kommen, dass
der Weg gar nicht existiert. Dass er funktioniert, ist oben bewiesen
-- hier wird es noch einmal unmittelbar daneben gezeigt. */
const rEcht = await haken("creator", schritte0[1].id, true);
ok(rEcht.code === 200,
"Gegenprobe: derselbe Weg nimmt einen gueltigen Schritt an");
await haken("creator", schritte0[1].id, false);
/* =====================================================================
DER HINWEIS „Erste Schritte noch offen"
===================================================================== */
melde("\n=== Der Hinweis ===");
async function hinweise(rolle, host = null) {
const r = await roh("/workspace/api/hinweise", host, null, kekse[rolle]);
let j = null; try { j = JSON.parse(r.text); } catch { /* bleibt null */ }
return { code: r.code, liste: j?.hinweise || [] };
}
const hCreator = await hinweise("creator");
const hSchritte = hCreator.liste.find((h) => h.art === "anl_schritte");
ok(hCreator.code === 200 && !!hSchritte,
`der Creator bekommt den Hinweis (HTTP ${hCreator.code})`);
ok(hSchritte?.anzahl === 5, `…mit allen fuenf offenen Schritten (${hSchritte?.anzahl})`);
ok(hSchritte?.ziel === "anleitung.html", `…und dem Weg zur Anleitung (${hSchritte?.ziel})`);
/* Die Crew darf den Hinweis NICHT bekommen -- die dritte Tuer, durch
die am 15.09.2026 ein Weg fuer die Community gerutscht ist. */
const hModi = await hinweise("modi", CREW_HOST);
/* DIE ANTWORT MUSS ANGEKOMMEN SEIN. Ohne `code === 200` waere diese
Zeile auch dann gruen, wenn die ganze Hinweis-Schnittstelle fuer den
Modi scheitert -- eine leere Liste sieht genauso aus wie "kein
Hinweis fuer ihn dabei". Dieselbe Falle wie am 03.09.2026 beim
Gitea-Abgleich: Eine Pruefung, die ihre Voraussetzung nicht hat,
darf nicht wie Erfolg aussehen. */
ok(hModi.code === 200 && !hModi.liste.some((h) => h.art === "anl_schritte"),
`ein Modi bekommt den Hinweis nicht (HTTP ${hModi.code}, `
+ `${hModi.liste.length} andere Hinweise)`);
const hDogi = await hinweise("admin");
ok(hDogi.code === 200 && !hDogi.liste.some((h) => h.art === "anl_schritte"),
`DogFather bekommt ihn auch nicht — er hat keine Einweisung `
+ `(HTTP ${hDogi.code}, ${hDogi.liste.length} andere Hinweise)`);
/* ---- Und er verschwindet von selbst ---- */
melde("\n=== Alles abgehakt: der Hinweis geht von allein ===");
for (const s of schritte0) await haken("creator", s.id, true);
const fertig = await holen("creator");
ok(fertig.j?.fortschritt?.erledigt === 5,
`alle fuenf abgehakt (${fertig.j?.fortschritt?.erledigt} von ${fertig.j?.fortschritt?.gesamt})`);
const hNachher = await hinweise("creator");
ok(!hNachher.liste.some((h) => h.art === "anl_schritte"),
"der Hinweis ist weg, ohne dass ihn jemand abgeschaltet hat");
/* GEGENPROBE: Er kommt wieder, wenn wieder etwas offen ist. Ohne das
waere „weg" auch dann gruen, wenn der Hinweis gar nicht mehr
entstehen KANN. */
await haken("creator", ersterId, false);
const hWieder = await hinweise("creator");
ok(hWieder.liste.some((h) => h.art === "anl_schritte" && h.anzahl === 1),
"Gegenprobe: ein wieder geoeffneter Schritt bringt ihn zurueck");
/* Aufraeumen, damit die Pruefungen darunter einen sauberen Stand
sehen -- der Haken auf Schritt 2 und die vier von eben. */
for (const s of schritte0) await haken("creator", s.id, false);
/* ---------- Abschluss ------------------------------------------------ */ /* ---------- Abschluss ------------------------------------------------ */
try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ } try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ }
console.log(`\n${fehler ? "FEHLER: " + fehler : "Alles in Ordnung"} — ${geprueft} Prüfungen`); console.log(`\n${fehler ? "FEHLER: " + fehler : "Alles in Ordnung"} — ${geprueft} Prüfungen`);
+62 -5
View File
@@ -111,14 +111,57 @@ ok(TOENE.size >= 20, `${TOENE.size} Farben in start.css gefunden`);
: `alle ${benutzt.size} benutzten Tonnummern haben eine Farbe`); : `alle ${benutzt.size} benutzten Tonnummern haben eine Farbe`);
} }
const liste = [...TOENE.entries()].map(([n, hex]) => ({ n, hex })); /* =======================================================================
ZWEI HAEUSER, ZWEI PALETTEN (06.10.2026)
=======================================================================
Diese Messung verglich bisher ALLE Toene miteinander. Das war
richtig, solange es ein Haus gab. Seit dem 24.09.2026 gibt es zwei
(Filipe: "vermerk dass ab jetzt jeder umbau immer getrennt abgefuehrt
wird auf den zwei seiten"), und eine Kachel des einen steht nie
neben einer Kachel des anderen -- sie liegen auf verschiedenen
Adressen, und niemand hat beide gleichzeitig auf dem Bildschirm.
WARUM DAS NICHT NUR EINE AUSREDE IST: Die Trennung macht die
Messung SCHAERFER, nicht weicher. Vorher verteilte sich die Grenze
0,09 auf 48 Farben -- rechnerisch wurde das ab 47 unmoeglich, und
die Pruefung war entsprechend rot, ohne dass ein Mensch je zwei
verwechselbare Kacheln nebeneinander gesehen haette. Jetzt gilt
0,09 je Haus mit rund 24 Farben, und das ist zu halten.
Fuer das andere Haus bleibt ein Boden (0,06). Er bewacht keinen
Sehfehler, sondern einen Denkfehler: Wuerden zwei Toene fast gleich,
koennte jemand sie fuer denselben halten und beim naechsten Umbau
zusammenlegen.
WELCHER TON ZU WELCHEM HAUS GEHOERT, wird ABGELEITET: Was in
bereiche.js steht, gehoert zur Agentur -- diese Datei IST die
Kachelliste des Agenturhauses. Alles andere kommt aus dem Server
und damit aus dem Crew-Haus. Eine Liste von Hand waere die, die
beim naechsten Umzug einer Kachel still falsch wird.
======================================================================= */
const AGENTUR_TOENE = (() => {
const quelle = readFileSync(join(HIER, "../workspace/assets/js/bereiche.js"), "utf8");
const raus = new Set();
for (const m of quelle.matchAll(/ton:\s*(\d+)/g)) raus.add(Number(m[1]));
return raus;
})();
const hausVon = (n) => (AGENTUR_TOENE.has(n) ? "agentur" : "crew");
const liste = [...TOENE.entries()].map(([n, hex]) => ({ n, hex, haus: hausVon(n) }));
ok(AGENTUR_TOENE.size > 15 && AGENTUR_TOENE.size < TOENE.size,
`${AGENTUR_TOENE.size} der ${TOENE.size} Toene gehoeren zum Agenturhaus`);
const paare = []; const paare = [];
const fremdPaare = [];
for (let i = 0; i < liste.length; i++) { for (let i = 0; i < liste.length; i++) {
for (let j = i + 1; j < liste.length; j++) { for (let j = i + 1; j < liste.length; j++) {
paare.push({ a: liste[i], b: liste[j], d: abstand(liste[i].hex, liste[j].hex) }); const e = { a: liste[i], b: liste[j], d: abstand(liste[i].hex, liste[j].hex) };
(liste[i].haus === liste[j].haus ? paare : fremdPaare).push(e);
} }
} }
paare.sort((x, y) => x.d - y.d); paare.sort((x, y) => x.d - y.d);
fremdPaare.sort((x, y) => x.d - y.d);
/* ==== DIE GRENZE WAR FUER EINUNDZWANZIG FARBEN GESETZT (25.09.2026) /* ==== DIE GRENZE WAR FUER EINUNDZWANZIG FARBEN GESETZT (25.09.2026)
@@ -166,10 +209,24 @@ paare.sort((x, y) => x.d - y.d);
const GRENZE = 0.09; const GRENZE = 0.09;
const HOECHSTENS = 48; // ab 49 fand die Suche nichts mehr, das GRENZE haelt const HOECHSTENS = 48; // ab 49 fand die Suche nichts mehr, das GRENZE haelt
const BODEN_FREMD = 0.06;
ok(paare[0].d >= GRENZE, ok(paare[0].d >= GRENZE,
`kleinster Abstand ${paare[0].d.toFixed(4)} (Grenze ${GRENZE}; ` `kleinster Abstand IM SELBEN HAUS ${paare[0].d.toFixed(4)} (Grenze ${GRENZE}) `
+ `am weitesten gefunden wurden rund 0,097 fuer ${liste.length} Farben) ` + `-- Ton ${paare[0].a.n}/${paare[0].b.n} (${paare[0].a.haus}): `
+ `-- ${paare[0].a.hex}/${paare[0].b.hex}`); + `${paare[0].a.hex}/${paare[0].b.hex}`);
ok(fremdPaare[0].d >= BODEN_FREMD,
`ueber die Haeuser hinweg ${fremdPaare[0].d.toFixed(4)} (Boden ${BODEN_FREMD}) `
+ `-- Ton ${fremdPaare[0].a.n}/${fremdPaare[0].b.n}: `
+ `${fremdPaare[0].a.hex}/${fremdPaare[0].b.hex}`);
/* GEGENPROBE ZUR TRENNUNG. Die beiden Zeilen oben koennen nur etwas
beweisen, wenn die Einteilung ueberhaupt trennt. Waeren alle Toene
in einem Topf, gaebe es keine fremden Paare -- und die zweite Zeile
waere gruen, ohne je etwas gemessen zu haben. */
ok(paare.length > 0 && fremdPaare.length > 0,
`${paare.length} Paare im selben Haus, ${fremdPaare.length} ueber die Haeuser`);
ok(liste.length <= HOECHSTENS, ok(liste.length <= HOECHSTENS,
liste.length <= HOECHSTENS liste.length <= HOECHSTENS
+27 -1
View File
@@ -624,7 +624,33 @@ console.log("\n=== Creator");
ok(!namen.includes("Personen & Zugänge"), "keine Personenverwaltung"); ok(!namen.includes("Personen & Zugänge"), "keine Personenverwaltung");
ok(!namen.includes("Scout-Pipeline"), "keine Scout-Pipeline"); ok(!namen.includes("Scout-Pipeline"), "keine Scout-Pipeline");
ok(!namen.includes("Automationen"), "keine Automationen"); ok(!namen.includes("Automationen"), "keine Automationen");
ok(r.gruppen.length === 3, `trotzdem drei Gruppen (${r.gruppen.length})`); /* ==================================================================
EINE FESTE ZAHL WAR HIER FALSCH (06.10.2026)
Hier stand `r.gruppen.length === 3`. Seit dem 06.10. bekommt ein
Creator, solange seine Ersten Schritte offen sind, zusaetzlich die
Gruppe "Fang hier an" mit der Einweisung -- und die verschwindet
wieder, sobald er durch ist. Die Zahl ist also je nach Person 3
ODER 4, und beides ist richtig.
Gezaehlt wird deshalb nicht mehr, sondern BENANNT. Das ist auch
die schaerfere Pruefung: Die alte Zeile waere gruen geblieben,
wenn eine der drei Gruppen verschwindet und eine fremde
dazukommt. Diese hier nicht.
Dieselbe Lehre wie am 06.09.2026 in der Kopfleiste: Wo eine Zahl
steht, die jemand beim naechsten Element nachziehen muesste,
gehoert eine Regel hin. */
const FESTE_GRUPPEN = ["Täglich", "Rund um den Creator", "Wissen"];
const ZEITWEILIG = ["Fang hier an"];
const fehlend = FESTE_GRUPPEN.filter((n) => !r.gruppenNamen.includes(n));
const fremd = r.gruppenNamen.filter(
(n) => !FESTE_GRUPPEN.includes(n) && !ZEITWEILIG.includes(n));
ok(fehlend.length === 0 && fremd.length === 0,
fehlend.length || fremd.length
? `Gruppen stimmen nicht -- fehlt: ${fehlend.join(", ") || "nichts"}; `
+ `fremd: ${fremd.join(", ") || "nichts"}`
: `seine drei festen Gruppen stehen da (${r.gruppenNamen.join(" · ")})`);
ok(r.kacheln.every((k) => k.pfade > 0), "alle Zeichen da"); ok(r.kacheln.every((k) => k.pfade > 0), "alle Zeichen da");
/* Von "Team & System" bleibt für ihn genau eine Kachel übrig. Eine /* Von "Team & System" bleibt für ihn genau eine Kachel übrig. Eine
Überschrift, die Team und System verspricht und nur die Bibliothek Überschrift, die Team und System verspricht und nur die Bibliothek
+152 -4
View File
@@ -67,6 +67,18 @@ function fassungFuer(req) {
return { person, rolle: String(person?.rolle || "") }; return { person, rolle: String(person?.rolle || "") };
} }
/** WESSEN Haken werden gezeigt?
*
* Die der angesehenen Person. DogFather, der die Sicht eines Creators
* einnimmt, soll sehen, wie weit DIESER Creator ist — das ist der
* Sinn der Sicht. Setzen darf er sie nicht (`darf_abhaken`).
*
* Ohne gewaehlte Sicht ist es die eigene Person, und das ist der
* Normalfall. */
function wessenStand(req) {
return (req.sicht || req.person)?.id ?? 0;
}
anleitungRouter.get("/workspace/api/anleitung", (req, res) => { anleitungRouter.get("/workspace/api/anleitung", (req, res) => {
try { try {
const { person, rolle } = fassungFuer(req); const { person, rolle } = fassungFuer(req);
@@ -102,12 +114,21 @@ anleitungRouter.get("/workspace/api/anleitung", (req, res) => {
FROM anl_karte WHERE haus = ? AND rolle = ? FROM anl_karte WHERE haus = ? AND rolle = ?
ORDER BY reihe, id`).all(HAUS, rolle); ORDER BY reihe, id`).all(HAUS, rolle);
/* `erledigt` kommt aus derselben Abfrage und nicht aus einer
zweiten: Zwei Abfragen koennten zwischen den Zeilen
auseinanderlaufen, und dann zeigte der Fortschritt eine andere
Zahl als die Haken darunter. */
const zeilen = d.prepare( const zeilen = d.prepare(
`SELECT art, titel, text, ziel, reihe `SELECT z.id, z.art, z.titel, z.text, z.ziel, z.reihe,
FROM anl_zeile WHERE haus = ? AND rolle = ? (s.person_id IS NOT NULL) AS erledigt
ORDER BY art, reihe, id`).all(HAUS, rolle); FROM anl_zeile z
LEFT JOIN anl_stand s ON s.zeile_id = z.id AND s.person_id = ?
WHERE z.haus = ? AND z.rolle = ?
ORDER BY z.art, z.reihe, z.id`).all(wessenStand(req), HAUS, rolle);
const nachArt = (art) => zeilen.filter((z) => z.art === art); const nachArt = (art) => zeilen.filter((z) => z.art === art);
const schritte = nachArt("schritt");
const fertig = schritte.filter((z) => z.erledigt).length;
/* DIE ZAHL GEHOERT IN DIE ANTWORT, nicht nur in die Liste. Die /* DIE ZAHL GEHOERT IN DIE ANTWORT, nicht nur in die Liste. Die
Seite kann damit sagen „18 Karten" — und eine Pruefung kann Seite kann damit sagen „18 Karten" — und eine Pruefung kann
@@ -119,7 +140,19 @@ anleitungRouter.get("/workspace/api/anleitung", (req, res) => {
leitgedanke: kopf?.leitgedanke || "", leitgedanke: kopf?.leitgedanke || "",
stufen: STUFEN, stufen: STUFEN,
saetze: nachArt("satz").map((z) => z.text), saetze: nachArt("satz").map((z) => z.text),
schritte: nachArt("schritt").map((z) => ({ titel: z.titel, text: z.text, ziel: z.ziel })), schritte: schritte.map((z) => ({
id: z.id, titel: z.titel, text: z.text, ziel: z.ziel, erledigt: !!z.erledigt,
})),
/* DER FORTSCHRITT ZAEHLT NUR DIE ERSTEN SCHRITTE -- so steht es
im Bauplan, und das ist der Grund, warum es ihn gibt: "Niemand
muss 18 Karten abhaken. Fertig ist, wer die Ersten Schritte
erledigt hat." */
fortschritt: { erledigt: fertig, gesamt: schritte.length },
/* Abhaken darf nur, wer diese Fassung auch IST. DogFather, der
sich die Sicht eines Creators ansieht, bekommt die Haken zu
sehen, kann sie aber nicht setzen -- es waere sonst sein
eigener Fortschritt an fremden Schritten. */
darf_abhaken: String(req.person?.rolle || "") === rolle,
karten, karten,
nicht: nachArt("nicht").map((z) => ({ titel: z.titel, text: z.text })), nicht: nachArt("nicht").map((z) => ({ titel: z.titel, text: z.text })),
takt: nachArt("takt").map((z) => ({ titel: z.titel, text: z.text })), takt: nachArt("takt").map((z) => ({ titel: z.titel, text: z.text })),
@@ -131,3 +164,118 @@ anleitungRouter.get("/workspace/api/anleitung", (req, res) => {
res.status(500).json({ fehler: "serverfehler" }); res.status(500).json({ fehler: "serverfehler" });
} }
}); });
/* =====================================================================
EINEN ERSTEN SCHRITT ABHAKEN — ODER DEN HAKEN WEGNEHMEN
=====================================================================
PUT und nicht POST: Der Aufruf setzt einen Zustand auf einen Wert.
Zweimal „erledigt" nacheinander ist derselbe Zustand wie einmal —
bei einem wackeligen Mobilfunknetz ist das der Unterschied zwischen
„nochmal tippen hilft" und „jetzt ist es doppelt".
WER DARF: nur die Person selbst, und nur an Schritten IHRER Rolle.
Beides wird hier geprueft und nicht nur in der Oberflaeche — eine
ausgeblendete Schaltflaeche hat noch nie etwas geschuetzt.
===================================================================== */
anleitungRouter.put("/workspace/api/anleitung/schritt/:id", (req, res) => {
try {
const person = req.person;
if (person?.haus === "crew") return res.status(404).json({ fehler: "nicht_hier" });
const id = Number(req.params.id);
if (!Number.isInteger(id) || id <= 0) {
return res.status(400).json({ fehler: "keine_nummer" });
}
const erledigt = req.body?.erledigt === true;
const d = db();
/* DIE ZEILE MUSS EIN SCHRITT SEIN UND DER EIGENEN ROLLE GEHOEREN.
Ohne `art = 'schritt'` liesse sich jede Zeile abhaken — auch eine
Frage oder eine Rhythmus-Zeile. Das faellt niemandem auf, bis
der Fortschritt eines Tages 7 von 5 meldet. */
const zeile = d.prepare(
`SELECT id FROM anl_zeile
WHERE id = ? AND art = 'schritt' AND haus = ? AND rolle = ?`)
.get(id, HAUS, String(person?.rolle || ""));
if (!zeile) return res.status(404).json({ fehler: "kein_schritt" });
if (erledigt) {
d.prepare(
`INSERT INTO anl_stand (person_id, zeile_id, erledigt_am) VALUES (?,?,?)
ON CONFLICT(person_id, zeile_id) DO NOTHING`)
.run(person.id, id, new Date().toISOString());
} else {
d.prepare("DELETE FROM anl_stand WHERE person_id = ? AND zeile_id = ?")
.run(person.id, id);
}
/* Der neue Stand kommt zurueck, damit die Seite ihn nicht selbst
hochrechnen muss. Eine Seite, die mitzaehlt, zaehlt irgendwann
anders als der Server. */
const stand = d.prepare(
`SELECT COUNT(*) AS gesamt,
SUM(CASE WHEN s.person_id IS NOT NULL THEN 1 ELSE 0 END) AS erledigt
FROM anl_zeile z
LEFT JOIN anl_stand s ON s.zeile_id = z.id AND s.person_id = ?
WHERE z.haus = ? AND z.rolle = ? AND z.art = 'schritt'`)
.get(person.id, HAUS, String(person.rolle));
res.json({
erledigt,
fortschritt: { erledigt: Number(stand?.erledigt || 0), gesamt: Number(stand?.gesamt || 0) },
});
} catch (fehler) {
console.error("[workspace] Anleitung abhaken:", fehler?.message);
res.status(500).json({ fehler: "serverfehler" });
}
});
/* =====================================================================
DER HINWEIS: „Erste Schritte noch offen"
=====================================================================
EINE QUELLE, ZWEI ANZEIGEN. Diese Funktion speist sowohl die Zeile
unter „Was ist dran" als auch die Zahl an der Kachel — und ab dieser
Etappe zusaetzlich die breite Kachel oben auf der Startseite.
Das ist kein Nebeneffekt, sondern die Regel des Hauses: Der Bauplan
wollte einen Punkt bei „Was ist dran" UND einen eigenen Zaehler an
der Kachel. Zwei getrennt gebaute Zaehler zeigen irgendwann zwei
verschiedene Zahlen uebereinander auf einem Bildschirm, und dann
glaubt man keiner mehr.
`try` um alles: Ein Fehler hier wuerde sonst die GANZE Hinweisliste
mitnehmen — Aufgaben, Termine, Reviews. Ein kaputter Hinweis darf
nicht die zwoelf gesunden daneben loeschen.
===================================================================== */
export function offeneHinweise(person) {
try {
if (!person || person.haus === "crew") return [];
const rolle = String(person.rolle || "");
if (!FASSUNGEN.includes(rolle)) return [];
const stand = db().prepare(
`SELECT COUNT(*) AS gesamt,
SUM(CASE WHEN s.person_id IS NOT NULL THEN 1 ELSE 0 END) AS erledigt
FROM anl_zeile z
LEFT JOIN anl_stand s ON s.zeile_id = z.id AND s.person_id = ?
WHERE z.haus = ? AND z.rolle = ? AND z.art = 'schritt'`)
.get(person.id, HAUS, rolle);
const gesamt = Number(stand?.gesamt || 0);
const offen = gesamt - Number(stand?.erledigt || 0);
/* Gibt es fuer diese Rolle noch gar keine Schritte (Etappe 3 steht
aus), ist `gesamt` 0 und `offen` 0 — kein Hinweis. Richtig: Ein
„0 Schritte offen" waere eine Meldung ueber nichts. */
if (offen <= 0) return [];
return [{
art: "anl_schritte", stufe: "offen",
text: "Erste Schritte noch offen", ziel: "anleitung.html", anzahl: offen,
}];
} catch (fehler) {
console.error("[workspace] Anleitung-Hinweise:", fehler?.message);
return [];
}
}
+14
View File
@@ -34,6 +34,7 @@ import { sichtbar as sichtbarDateien } from "./workspace-dateien.js";
import { sichtbar as sichtbarEintraege } from "./workspace-bereiche.js"; import { sichtbar as sichtbarEintraege } from "./workspace-bereiche.js";
import { stufenFuer } from "./workspace-checkliste.js"; import { stufenFuer } from "./workspace-checkliste.js";
import { offeneHinweise as zielHinweise } from "./workspace-manager-ziele.js"; import { offeneHinweise as zielHinweise } from "./workspace-manager-ziele.js";
import { offeneHinweise as anleitungHinweise } from "./workspace-anleitung.js";
export const hinweisRouter = express.Router(); export const hinweisRouter = express.Router();
@@ -424,6 +425,19 @@ hinweisRouter.get("/workspace/api/hinweise", (req, res) => {
dazu(h.art, h.stufe, h.text, h.ziel, h.anzahl); dazu(h.art, h.stufe, h.text, h.ziel, h.anzahl);
} }
/* ---------- Die Einweisung (06.10.2026, Etappe 2) ----------------
Dieselbe Bauart wie die Monatsziele darueber: Das Fachmodul
rechnet, diese Datei verteilt. `dazu` filtert danach noch einmal
nach Adresse und Rolle -- die dritte Tuer, durch die am
15.09.2026 ein Weg fuer die Community gerutscht ist.
Der Hinweis verschwindet von selbst: Sind alle Ersten Schritte
abgehakt, liefert das Modul eine leere Liste. Niemand muss ihn
wegklicken, und niemand muss daran denken, ihn abzuschalten. */
for (const h of anleitungHinweise(person)) {
dazu(h.art, h.stufe, h.text, h.ziel, h.anzahl);
}
hinweise.sort((x, y) => (RANG[x.stufe] - RANG[y.stufe]) || (y.anzahl - x.anzahl)); hinweise.sort((x, y) => (RANG[x.stufe] - RANG[y.stufe]) || (y.anzahl - x.anzahl));
res.json({ hinweise, stand: new Date().toISOString() }); res.json({ hinweise, stand: new Date().toISOString() });
} catch (fehler) { } catch (fehler) {
+31 -14
View File
@@ -7,17 +7,17 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/anleitung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/anleitung.css?v=202610061421" />
<!-- module.css an VORLETZTER, haus.css an LETZTER Stelle. Die <!-- module.css an VORLETZTER, haus.css an LETZTER Stelle. Die
Reihenfolge ist keine Geschmacksfrage: haus.css setzt nur Reihenfolge ist keine Geschmacksfrage: haus.css setzt nur
Variablen, und bei Variablen entscheidet allein, wer zuletzt Variablen, und bei Variablen entscheidet allein, wer zuletzt
kommt. pruef-css-klassen.mjs misst genau dieses Paar nach. --> kommt. pruef-css-klassen.mjs misst genau dieses Paar nach. -->
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -51,6 +51,23 @@
</div> </div>
</section> </section>
<!-- ==================================================================
DER FORTSCHRITT
Er zählt NUR die Ersten Schritte, nicht die Karten. Wörtlich aus
dem Bauplan: „Niemand muss 18 Karten abhaken. Fertig ist, wer
die Ersten Schritte erledigt hat."
Der Balken ist ein `progress`: Damit bringt er die Ansage für
Vorleseprogramme mit, ohne dass davon eine Zeile geschrieben
werden muss. Der Satz daneben steht trotzdem da – eine Zahl,
die man nur sieht, wenn man die Maus darüberhält, ist keine.
================================================================== -->
<div class="an-stand" id="stand" hidden>
<progress class="an-stand__balken" id="stand-balken" max="1" value="0"></progress>
<p class="an-stand__satz" id="stand-satz"></p>
</div>
<p class="ladefehler" id="ladefehler" hidden> <p class="ladefehler" id="ladefehler" hidden>
<span class="ladefehler__satz">Die Seite konnte nicht geladen werden.</span> <span class="ladefehler__satz">Die Seite konnte nicht geladen werden.</span>
<span class="ladefehler__grund" id="ladefehler-grund"></span> <span class="ladefehler__grund" id="ladefehler-grund"></span>
@@ -138,16 +155,16 @@
Und anleitung.js braucht es doppelt: Symbol, Farbe, Name und Und anleitung.js braucht es doppelt: Symbol, Farbe, Name und
Adresse jeder Karte kommen von dort, nicht vom Server. --> Adresse jeder Karte kommen von dort, nicht vom Server. -->
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<!-- wahl.js gehört zu kopf.js: Der Sicht-Umschalter baut daraus seine <!-- wahl.js gehört zu kopf.js: Der Sicht-Umschalter baut daraus seine
Liste. pruef-css-klassen setzt das durch, und zwar auch die Liste. pruef-css-klassen setzt das durch, und zwar auch die
Reihenfolge -- kopf.js fragt beim Aufbau nach dem fertigen Reihenfolge -- kopf.js fragt beim Aufbau nach dem fertigen
Bedienelement. --> Bedienelement. -->
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/anleitung.js?v=202610061325" defer></script> <script src="assets/js/anleitung.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+5 -5
View File
@@ -16,8 +16,8 @@
verdeckt. Gefunden hat es pruef-struktur. verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. --> Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als <!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
ausserhalb der App -- auf einer Seite, die genau erklaeren soll, ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
@@ -33,7 +33,7 @@
schreibt jede Seite app.webmanifest -- auch die hier. --> schreibt jede Seite app.webmanifest -- auch die hier. -->
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<style> <style>
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite /* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht, soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
@@ -135,7 +135,7 @@
<script src="assets/js/anruf-probe.js?v=202610061325" defer></script> <script src="assets/js/anruf-probe.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+4 -4
View File
@@ -23,25 +23,25 @@
}, },
"icons": [ "icons": [
{ {
"src": "/assets/img/app-symbole/workspace-192.png?v=202610061325", "src": "/assets/img/app-symbole/workspace-192.png?v=202610061421",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/workspace-512.png?v=202610061325", "src": "/assets/img/app-symbole/workspace-512.png?v=202610061421",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202610061325", "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202610061421",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
}, },
{ {
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202610061325", "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202610061421",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
+144 -1
View File
@@ -45,6 +45,70 @@
max-width: 62ch; max-width: 62ch;
} }
/* =====================================================================
DER FORTSCHRITT (Etappe 2)
=====================================================================
Er zählt nur die Ersten Schritte. Der Balken ist ein echtes
`progress` -- damit bringt er die Ansage für Vorleseprogramme mit.
Browser gestalten das Element unterschiedlich, deshalb werden beide
Schreibweisen gesetzt (`::-webkit-progress-*` und `::-moz-*`); ohne
sie steht in Firefox ein graues Kästchen in der Hausfarbe von 2010.
===================================================================== */
.an-stand {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px 14px;
margin-top: 16px;
padding: 12px 18px;
border: 1px solid var(--rand);
background: var(--flaeche);
clip-path: polygon(var(--fase, 18px) 0, 100% 0, 100% 100%, 0 100%, 0 var(--fase, 18px));
}
.an-stand__balken {
flex: 1 1 180px;
height: 8px;
min-width: 140px;
border: none;
border-radius: 999px;
background: color-mix(in srgb, var(--text-still) 22%, transparent);
appearance: none;
}
.an-stand__balken::-webkit-progress-bar {
background: color-mix(in srgb, var(--text-still) 22%, transparent);
border-radius: 999px;
}
.an-stand__balken::-webkit-progress-value {
background: var(--akzent);
border-radius: 999px;
transition: width var(--tempo, .18s);
}
.an-stand__balken::-moz-progress-bar {
background: var(--akzent);
border-radius: 999px;
}
.an-stand__satz {
flex: 0 1 auto;
margin: 0;
font-size: .9rem;
font-weight: 650;
color: var(--text-still);
font-variant-numeric: tabular-nums;
}
/* FERTIG IST EINE EIGENE AUSSAGE, nicht nur ein voller Balken. Der
Satz wechselt, die Farbe verstärkt ihn nur -- Farbe nie allein. */
.an-stand[data-fertig="ja"] .an-stand__satz { color: var(--k-gut, #5fc99a); }
.an-stand[data-fertig="ja"] .an-stand__balken::-webkit-progress-value {
background: var(--k-gut, #5fc99a);
}
.an-stand[data-fertig="ja"] .an-stand__balken::-moz-progress-bar {
background: var(--k-gut, #5fc99a);
}
/* ===================================================================== /* =====================================================================
BLÖCKE BLÖCKE
===================================================================== =====================================================================
@@ -123,7 +187,83 @@
gap: 9px; gap: 9px;
} }
.an-schritt { max-width: 68ch; } /* DIE ZEILE IST ZWEIGETEILT: links der Haken, rechts der Weg. Zwei
Dinge, zwei Flächen -- wer auf den Namen tippt, will zur Kachel und
nicht abhaken. */
.an-schritt {
max-width: 68ch;
display: flex;
align-items: flex-start;
gap: 4px;
}
/* ---------------------------------------------------------------------
DER HAKEN
Das echte Kästchen bleibt da (Tastatur, Vorleseprogramme, der
Zustand), wird aber unsichtbar über das gezeichnete gelegt: So
trifft ein Daumen 44 Pixel, und die Zeichnung lässt sich färben.
`opacity: 0` statt `display: none` -- ein ausgeblendetes Feld ist
für die Tastatur nicht erreichbar. */
.an-haken {
flex: none;
position: relative;
display: grid;
place-items: center;
width: 44px; height: 44px;
cursor: pointer;
}
.an-haken__feld {
position: absolute;
inset: 0;
width: 100%; height: 100%;
margin: 0;
opacity: 0;
cursor: pointer;
}
.an-haken__zeichen {
width: 22px; height: 22px;
border: 2px solid var(--rand-hell, var(--rand));
border-radius: 6px;
background: color-mix(in srgb, var(--text-still) 8%, transparent);
transition: background var(--tempo, .18s), border-color var(--tempo, .18s);
position: relative;
}
/* Der Haken selbst: zwei Striche, gedreht. Kein Zeichen aus einer
Schrift -- das sieht auf jedem Gerät anders aus und fehlt manchmal. */
.an-haken__zeichen::after {
content: "";
position: absolute;
left: 6px; top: 2px;
width: 6px; height: 11px;
/* #0a121e fest und nicht ueber eine Variable: `--grund` gibt es im
Haus nicht (nachgesehen), und eine Variable, die nirgends gesetzt
wird, liest sich wie eine Zusage, die es nicht gibt. Es ist der
dunkle Grund, gegen den alle Toene gemessen werden. */
border-right: 2.5px solid #0a121e;
border-bottom: 2.5px solid #0a121e;
transform: rotate(42deg) scale(.4);
opacity: 0;
transition: opacity var(--tempo, .18s), transform var(--tempo, .18s);
}
.an-haken__feld:checked + .an-haken__zeichen {
background: var(--k-gut, #5fc99a);
border-color: var(--k-gut, #5fc99a);
}
.an-haken__feld:checked + .an-haken__zeichen::after {
opacity: 1;
transform: rotate(42deg) scale(1);
}
.an-haken__feld:focus-visible + .an-haken__zeichen {
outline: 2px solid var(--akzent);
outline-offset: 3px;
}
.an-haken__feld:disabled + .an-haken__zeichen { opacity: .5; }
/* ERLEDIGT WIRD LEISER, NICHT DURCHGESTRICHEN. Durchgestrichener Text
ist schlecht lesbar, und man will nachher noch nachsehen können, was
man schon gemacht hat. */
.an-schritt[data-erledigt="ja"] .an-schritt__rumpf { opacity: .62; }
/* DIE GANZE ZEILE IST DAS ZIEL, nicht nur das Stichwort. /* DIE GANZE ZEILE IST DAS ZIEL, nicht nur das Stichwort.
Gemessen am 06.10.2026: Der Verweis war 20 px hoch -- die halbe Gemessen am 06.10.2026: Der Verweis war 20 px hoch -- die halbe
@@ -470,5 +610,8 @@ a.an-schritt__rumpf:hover .an-schritt__name { text-decoration: underline; }
.an-filter__knopf, .an-filter__knopf,
.an-schritt__rumpf, .an-schritt__rumpf,
.an-stufe__griff::before, .an-stufe__griff::before,
.an-haken__zeichen,
.an-haken__zeichen::after,
.an-stand__balken::-webkit-progress-value,
.an-karte__weg { transition: none; } .an-karte__weg { transition: none; }
} }
+26 -1
View File
@@ -1197,7 +1197,32 @@ body.start > main { position: relative; z-index: 1; }
Absenkung: Das Werkzeug prueft ERST Kontrast und Buntheit und Absenkung: Das Werkzeug prueft ERST Kontrast und Buntheit und
maximiert DANN den Abstand. Wer den 48. hinzufuegt, sollte wissen, maximiert DANN den Abstand. Wer den 48. hinzufuegt, sollte wissen,
dass es eng wird, und notfalls einen alten verschieben. */ dass es eng wird, und notfalls einen alten verschieben. */
[data-ton="47"] { --ton: #7368ff; } /* Manager-Ziele (gerechnet 02.10.2026) */ /* EINE HEXZIFFER, DIE VIER TAGE GEFEHLT HAT (berichtigt 06.10.2026)
Hier stand #7368ff. Im Kommentar darueber habe ich am 02.10.
selbst notiert: "Abstand zum naechsten Nachbarn 0,0899 ... Er liegt
knapp unter der 0,090, die im Kommentar bei Ton 39 als Wunschgrenze
steht." Ich habe es hingeschrieben und `pruef-kachel-universum`
trotzdem nicht laufen lassen. Die Pruefung war seither rot, vier
Tage lang, und zwar WEGEN DIESER ZEILE -- nicht wegen Ton 48, der
erst heute dazukam.
0,090 ist keine Wunschgrenze, sie steht als GRENZE in der Pruefung.
Der Nachbar ist Ton 43 (#007bff, Calls & Protokolle), und beide
stehen auf derselben Startseite untereinander.
#7269ff liegt vom alten Wert 0,0024 entfernt -- das sieht kein
Mensch, es ist eine Hexziffer -- und vom naechsten Nachbarn im
eigenen Haus 0,0918. Damit haelt das Agenturhaus die Grenze:
kleinster Abstand dort jetzt 0,0906 (Ton 12 gegen Ton 19), und
enger kann es ohne diese Farbe ohnehin nicht werden.
NICHT die am weitesten entfernte Farbe genommen: Die waere ein
grelles Gruen gewesen (#00ec00, Abstand 0,1224). Manager-Ziele ist
seit vier Tagen in Benutzung und violett; gesucht war die
kleinstmoegliche Aenderung, die die Regel haelt, nicht die
groesstmoegliche Verbesserung. */
[data-ton="47"] { --ton: #7269ff; } /* Manager-Ziele (nachgezogen 06.10.2026) */
/* ====================================================================== /* ======================================================================
TON 48 -- UND WARUM ER NICHT VOM HAUSWERKZEUG STAMMT (06.10.2026) TON 48 -- UND WARUM ER NICHT VOM HAUSWERKZEUG STAMMT (06.10.2026)
+88
View File
@@ -37,6 +37,80 @@
return a; return a;
} }
/* =====================================================================
DER FORTSCHRITT
Er kommt vom Server und wird hier NICHT nachgerechnet. Eine Seite,
die selbst mitzählt, zählt irgendwann anders als der Server — und
dann stehen zwei Zahlen auf einem Bildschirm, von denen eine falsch
ist, ohne dass man ihr das ansieht.
===================================================================== */
function standSetzen(f) {
const kasten = $('stand');
if (!f || !f.gesamt) { kasten.hidden = true; return; }
kasten.hidden = false;
const balken = $('stand-balken');
balken.max = f.gesamt;
balken.value = f.erledigt;
const fertig = f.erledigt >= f.gesamt;
kasten.dataset.fertig = fertig ? 'ja' : 'nein';
$('stand-satz').textContent = fertig
? 'Alle Ersten Schritte erledigt. Den Rest holst du dir, wenn du ihn brauchst.'
: `${f.erledigt} von ${f.gesamt} Schritten erledigt`;
}
/* =====================================================================
EIN HAKEN
Ein echtes `input type="checkbox"`: Tastatur, Vorleseprogramme und
der Zustand „gedrückt" kommen damit mit. Ein nachgebauter Knopf
vergisst davon immer mindestens eines.
ES WIRD SOFORT GESCHICKT UND NICHT GESAMMELT. Ein „Speichern"-Knopf
unter fünf Haken wäre die Stelle, an der jemand die Seite verlässt
und sein Fortschritt weg ist.
GEHT ES SCHIEF, GEHT DER HAKEN ZURÜCK. Ein Haken, der steht,
obwohl der Server ihn nicht hat, ist schlimmer als keiner: Beim
nächsten Laden ist er weg, und niemand weiß warum.
===================================================================== */
function hakenBauen(s, li) {
const schild = el('label', 'an-haken');
const feld = document.createElement('input');
feld.type = 'checkbox';
feld.className = 'an-haken__feld';
feld.checked = !!s.erledigt;
/* Der Name des Schrittes steht im Verweis daneben; das Kästchen
selbst braucht trotzdem eine eigene Ansage. */
feld.setAttribute('aria-label', `„${s.titel}“ erledigt`);
schild.append(feld);
schild.append(el('span', 'an-haken__zeichen'));
feld.addEventListener('change', async () => {
const willErledigt = feld.checked;
feld.disabled = true;
try {
const a = await hole(`${BASIS}/schritt/${s.id}`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ erledigt: willErledigt }),
});
if (!a.ok) throw new Error('abgelehnt');
const r = await a.json();
s.erledigt = r.erledigt;
if (r.erledigt) li.dataset.erledigt = 'ja';
else li.removeAttribute('data-erledigt');
standSetzen(r.fortschritt);
} catch {
feld.checked = !willErledigt;
melde('Der Haken ließ sich nicht speichern. Noch einmal versuchen?');
} finally {
feld.disabled = false;
}
});
return schild;
}
/* ===================================================================== /* =====================================================================
DIE KACHELN DIESER ROLLE — abgeleitet, nicht abgeschrieben DIE KACHELN DIESER ROLLE — abgeleitet, nicht abgeschrieben
===================================================================== */ ===================================================================== */
@@ -203,10 +277,19 @@
Ohne Ziel bleibt es ein `div` — „Installieren“ ist ein Knopf in Ohne Ziel bleibt es ein `div` — „Installieren“ ist ein Knopf in
der Kopfleiste, keine Seite. Ein Verweis ohne Ziel wäre genau der Kopfleiste, keine Seite. Ein Verweis ohne Ziel wäre genau
der tote Knopf, den der Rollen-Rundgang sucht. der tote Knopf, den der Rollen-Rundgang sucht.
DER HAKEN STEHT DANEBEN UND NICHT DRUMHERUM (Etappe 2). Ein
Verweis in einem Kontrollkästchen-Label wäre eine Falle: Wer
auf den Namen tippt, um zur Kachel zu springen, hätte den
Schritt abgehakt. Zwei Dinge, zwei Flächen.
================================================================== */ ================================================================== */
$('schritte').replaceChildren( $('schritte').replaceChildren(
...(d.schritte || []).map((s) => { ...(d.schritte || []).map((s) => {
const li = el('li', 'an-schritt'); const li = el('li', 'an-schritt');
if (s.erledigt) li.dataset.erledigt = 'ja';
if (d.darf_abhaken) li.append(hakenBauen(s, li));
const rumpf = s.ziel ? el('a', 'an-schritt__rumpf') : el('div', 'an-schritt__rumpf'); const rumpf = s.ziel ? el('a', 'an-schritt__rumpf') : el('div', 'an-schritt__rumpf');
if (s.ziel) rumpf.href = s.ziel; if (s.ziel) rumpf.href = s.ziel;
rumpf.append(el('span', 'an-schritt__name', s.titel)); rumpf.append(el('span', 'an-schritt__name', s.titel));
@@ -214,6 +297,7 @@
li.append(rumpf); li.append(rumpf);
return li; return li;
})); }));
standSetzen(d.fortschritt);
const kacheln = kachelnFuer(d.rolle); const kacheln = kachelnFuer(d.rolle);
const stufen = $('stufen'); const stufen = $('stufen');
@@ -252,6 +336,10 @@
function ohneFassung(d) { function ohneFassung(d) {
$('fassung').hidden = true; $('fassung').hidden = true;
/* Kein Fortschritt ohne Schritte. Er steht in der HTML schon auf
`hidden`; hier noch einmal, weil diese Seite spaeter (Etappe 4)
die Rolle wechseln koennen soll, ohne neu zu laden. */
$('stand').hidden = true;
const p = $('ohne-fassung'); const p = $('ohne-fassung');
p.textContent = d.satz || 'Für diese Rolle gibt es keine Einweisung.'; p.textContent = d.satz || 'Für diese Rolle gibt es keine Einweisung.';
p.hidden = false; p.hidden = false;
+45 -1
View File
@@ -100,6 +100,12 @@
die naechste koennte es anders sein. */ die naechste koennte es anders sein. */
mz_dringend: 'manager-ziele.html', mz_dringend: 'manager-ziele.html',
mz_offen: 'manager-ziele.html', mz_offen: 'manager-ziele.html',
/* DIE EINWEISUNG (06.10.2026). Ueber das Ziel, aus demselben Grund
wie die beiden darueber. Der Hinweis verschwindet von selbst,
sobald die Ersten Schritte abgehakt sind -- und mit ihm die Zahl
an der Kachel und die breite Kachel oben. Eine Quelle, drei
Anzeigen. */
anl_schritte: 'anleitung.html',
}; };
/* Diese Hinweise bekommen zusätzlich das Merkzeichen auf die Kachel. /* Diese Hinweise bekommen zusätzlich das Merkzeichen auf die Kachel.
@@ -379,7 +385,44 @@
Antwort des Live-Dienstes erst nach dem Aufbau der Wand da ist Antwort des Live-Dienstes erst nach dem Aufbau der Wand da ist
(ein Netzabruf, die Wand steht in Millisekunden). */ (ein Netzabruf, die Wand steht in Millisekunden). */
const liveKacheln = []; const liveKacheln = [];
for (const gruppe of eigeneGruppen(zeigt)) {
/* =================================================================
„FANG HIER AN" — die Einweisung als breite Kachel (06.10.2026)
Bauplan: „Solange die Ersten Schritte offen sind: zusaetzlich
als breite Kachel ganz oben ueber Taeglich, mit Zaehler der
offenen Schritte."
SIE KOMMT AUS DER BEREITS GEFILTERTEN LISTE und nicht aus
GRUPPEN. Das ist der ganze Trick: Damit erbt sie beide
Schranken, die oben schon beantwortet wurden -- die Rollenliste
an der Kachel UND die Rechtetafel vom Server (`seiteOffen`).
Haette ich die Kachel hier frisch gesucht, waere das eine dritte
Stelle, an der entschieden wird, wer sie sieht, und die erste,
die beim naechsten Umbau danebenliegt.
DER ZAEHLER IST KEIN ZWEITER. Er kommt aus `zahlen`, also aus
denselben Hinweisen wie die Zeile unter „Was ist dran" und die
Zahl an der kleinen Kachel weiter unten. Drei Anzeigen, eine
Rechnung -- sonst stuenden eines Tages zwei verschiedene Zahlen
uebereinander auf einem Bildschirm.
SIE VERSCHWINDET VON SELBST. Kein Hinweis mehr heisst keine
Gruppe mehr; niemand muss sie wegklicken oder abschalten.
================================================================= */
const gruppenListe = eigeneGruppen(zeigt);
const alleKacheln = gruppenListe.flatMap((g) => g.bereiche);
const anleitung = alleKacheln.find((b) => b.ziel === 'anleitung.html');
const schritteOffen = zahlen.get('anleitung.html')?.n || 0;
const vorneWeg = (anleitung && schritteOffen > 0)
? [{
name: 'Fang hier an',
unter: 'Deine Einweisung – verschwindet, sobald du durch bist',
bereiche: [{ ...anleitung, gross: true }],
}]
: [];
for (const gruppe of [...vorneWeg, ...gruppenListe]) {
const meine = gruppe.bereiche; const meine = gruppe.bereiche;
if (!meine.length) continue; if (!meine.length) continue;
@@ -1545,6 +1588,7 @@
Satz, der anders anfängt ("Deine Betreuung hat 3 …"), stünde Satz, der anders anfängt ("Deine Betreuung hat 3 …"), stünde
hinter der Marke ein zweites Mal mit der 3 -- kein Fehler, den ein hinter der Marke ein zweites Mal mit der 3 -- kein Fehler, den ein
Programm meldet, aber einer, den jeder sieht. */ Programm meldet, aber einer, den jeder sieht. */
anl_schritte: (n) => `${n} Erste${n === 1 ? 'r Schritt ist' : ' Schritte sind'} noch offen`,
markiert_live: (n) => `${n} markierte${n === 1 ? 'r Punkt' : ' Punkte'} in der LIVE-Analyse`, markiert_live: (n) => `${n} markierte${n === 1 ? 'r Punkt' : ' Punkte'} in der LIVE-Analyse`,
markiert_content: (n) => `${n} markierte ${n === 1 ? 'Content-Idee' : 'Content-Ideen'}`, markiert_content: (n) => `${n} markierte ${n === 1 ? 'Content-Idee' : 'Content-Ideen'}`,
markiert_community: (n) => `${n} markierte${n === 1 ? 'r Punkt' : ' Punkte'} bei Community`, markiert_community: (n) => `${n} markierte${n === 1 ? 'r Punkt' : ' Punkte'} bei Community`,
+19 -19
View File
@@ -12,19 +12,19 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -430,22 +430,22 @@
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach <!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne `window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. --> Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
<script src="assets/js/textform.js?v=202610061325"></script> <script src="assets/js/textform.js?v=202610061421"></script>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/hochladen.js?v=202610061325" defer></script> <script src="assets/js/hochladen.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/zuteilung.js?v=202610061325" defer></script> <script src="assets/js/zuteilung.js?v=202610061421" defer></script>
<!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in <!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in
aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine
eigene Datei; hier zeigt er den Creator-Katalog. eigene Datei; hier zeigt er den Creator-Katalog.
Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. --> Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. -->
<script src="assets/js/vorlagenbrett.js?v=202610061325" defer></script> <script src="assets/js/vorlagenbrett.js?v=202610061421" defer></script>
<script src="assets/js/aufgaben.js?v=202610061325" defer></script> <script src="assets/js/aufgaben.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/automation.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/automation.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -168,15 +168,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/automation.js?v=202610061325" defer></script> <script src="assets/js/automation.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -197,16 +197,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/holen.js?v=202610061325" defer></script> <script src="assets/js/holen.js?v=202610061421" defer></script>
<script src="assets/js/befinden.js?v=202610061325" defer></script> <script src="assets/js/befinden.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+22 -22
View File
@@ -12,24 +12,24 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/bereich.css?v=202610061421" />
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett <!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite „Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
Stelle, an der dieselbe Sache anders aussieht. --> Stelle, an der dieselbe Sache anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -318,19 +318,19 @@
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach <!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne `window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. --> Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
<script src="assets/js/textform.js?v=202610061325"></script> <script src="assets/js/textform.js?v=202610061421"></script>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/checkliste.js?v=202610061325" defer></script> <script src="assets/js/checkliste.js?v=202610061421" defer></script>
<script src="assets/js/ampel.js?v=202610061325" defer></script> <script src="assets/js/ampel.js?v=202610061421" defer></script>
<script src="assets/js/schulung.js?v=202610061325" defer></script> <script src="assets/js/schulung.js?v=202610061421" defer></script>
<script src="assets/js/holen.js?v=202610061325" defer></script> <script src="assets/js/holen.js?v=202610061421" defer></script>
<script src="assets/js/bereich.js?v=202610061325" defer></script> <script src="assets/js/bereich.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+19 -19
View File
@@ -7,17 +7,17 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/bereich.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/treff.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/treff.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. --> <!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -108,15 +108,15 @@
</main> </main>
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. --> <!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/auskunft.js?v=202610061325" defer></script> <script src="assets/js/auskunft.js?v=202610061421" defer></script>
<script src="assets/js/bewerben.js?v=202610061325" defer></script> <script src="assets/js/bewerben.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -7,16 +7,16 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. --> <!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -80,16 +80,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/auskunft.js?v=202610061325" defer></script> <script src="assets/js/auskunft.js?v=202610061421" defer></script>
<script src="assets/js/bewerbungen.js?v=202610061325" defer></script> <script src="assets/js/bewerbungen.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+3 -3
View File
@@ -59,11 +59,11 @@
<!-- DIE WERBEEINBLENDUNG. Dieselbe Datei wie in der Reaction-Seite: <!-- DIE WERBEEINBLENDUNG. Dieselbe Datei wie in der Reaction-Seite:
Zwei Fassungen altern unterschiedlich, und dann sieht der Stream Zwei Fassungen altern unterschiedlich, und dann sieht der Stream
anders aus als das, worueber geredet wird. --> anders aus als das, worueber geredet wird. -->
<link rel="stylesheet" href="assets/css/werbung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/werbung.css?v=202610061421" />
</head> </head>
<body class="obs-buehne"> <body class="obs-buehne">
<div id="platz"></div> <div id="platz"></div>
<script src="assets/js/werbung.js?v=202610061325" defer></script> <script src="assets/js/werbung.js?v=202610061421" defer></script>
<script src="assets/js/buehne.js?v=202610061325" defer></script> <script src="assets/js/buehne.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/calls.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/calls.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -89,15 +89,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/ki.js?v=202610061325" defer></script> <script src="assets/js/ki.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/calls.js?v=202610061325" defer></script> <script src="assets/js/calls.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+20 -20
View File
@@ -12,26 +12,26 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog, <!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem .neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html. zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
Dialog zu sehen bekam. --> Dialog zu sehen bekam. -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/chat.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/chat.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -739,24 +739,24 @@
</form> </form>
</dialog> </dialog>
<script src="assets/js/bereiche.js?v=202610061325"></script> <script src="assets/js/bereiche.js?v=202610061421"></script>
<!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js <!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js
fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter, fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter,
waere die erste gezeichnete Nachricht ohne Gestaltung -- und das waere die erste gezeichnete Nachricht ohne Gestaltung -- und das
faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie
wirklich vor den anderen dasteht. --> wirklich vor den anderen dasteht. -->
<script src="assets/js/textform.js?v=202610061325"></script> <script src="assets/js/textform.js?v=202610061421"></script>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/hochladen.js?v=202610061325" defer></script> <script src="assets/js/hochladen.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325"></script> <script src="assets/js/kopf.js?v=202610061421"></script>
<script src="assets/js/glocke.js?v=202610061325"></script> <script src="assets/js/glocke.js?v=202610061421"></script>
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten` <!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt. bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
Andersherum waere die Reihenfolge eine stille Abhaengigkeit -- Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
die Knoepfe fehlten, und niemand wuesste warum. --> die Knoepfe fehlten, und niemand wuesste warum. -->
<script src="assets/js/anruf.js?v=202610061325"></script> <script src="assets/js/anruf.js?v=202610061421"></script>
<!-- DIE BILDSCHAU (25.09.2026). Eigene Datei, weil sie nichts vom <!-- DIE BILDSCHAU (25.09.2026). Eigene Datei, weil sie nichts vom
Chat weiss: Sie bekommt einen Weg und einen Namen und zeigt ein Chat weiss: Sie bekommt einen Weg und einen Namen und zeigt ein
Bild. Jede andere Seite mit Fotos kann sie ebenso benutzen, ohne Bild. Jede andere Seite mit Fotos kann sie ebenso benutzen, ohne
@@ -767,8 +767,8 @@
sie beim ersten Foto noch nicht da -- und der erste Klick ginge sie beim ersten Foto noch nicht da -- und der erste Klick ginge
wie frueher in den Tab. Ein Fehler, der nur beim ERSTEN Mal wie frueher in den Tab. Ein Fehler, der nur beim ERSTEN Mal
auftritt, ist der, den man nie nachstellen kann. --> auftritt, ist der, den man nie nachstellen kann. -->
<script src="assets/js/bildschau.js?v=202610061325"></script> <script src="assets/js/bildschau.js?v=202610061421"></script>
<script src="assets/js/chat.js?v=202610061325"></script> <script src="assets/js/chat.js?v=202610061421"></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/content.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/content.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -179,15 +179,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/checkliste.js?v=202610061325" defer></script> <script src="assets/js/checkliste.js?v=202610061421" defer></script>
<script src="assets/js/content.js?v=202610061325" defer></script> <script src="assets/js/content.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+6 -6
View File
@@ -36,15 +36,15 @@
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp" <link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" /> type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst <!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen 404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es: statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
die eine Seite, auf der man das Umfaerben sieht. --> die eine Seite, auf der man das Umfaerben sieht. -->
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/crew-haus.css?v=202610061421" />
</head> </head>
<body class="gate gate--crew"> <body class="gate gate--crew">
@@ -459,7 +459,7 @@
<script src="assets/js/gate.js?v=202610061325" defer></script> <script src="assets/js/gate.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+4 -4
View File
@@ -23,25 +23,25 @@
}, },
"icons": [ "icons": [
{ {
"src": "/assets/img/app-symbole/crew-192.png?v=202610061325", "src": "/assets/img/app-symbole/crew-192.png?v=202610061421",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/crew-512.png?v=202610061325", "src": "/assets/img/app-symbole/crew-512.png?v=202610061421",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202610061325", "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202610061421",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
}, },
{ {
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202610061325", "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202610061421",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/dateien.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -108,15 +108,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/hochladen.js?v=202610061325" defer></script> <script src="assets/js/hochladen.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/dateien.js?v=202610061325" defer></script> <script src="assets/js/dateien.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -306,20 +306,20 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/holen.js?v=202610061325" defer></script> <script src="assets/js/holen.js?v=202610061421" defer></script>
<!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein, <!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein,
also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide
in Dokumentreihenfolge. --> in Dokumentreihenfolge. -->
<script src="assets/js/vorlagenbrett.js?v=202610061325" defer></script> <script src="assets/js/vorlagenbrett.js?v=202610061421" defer></script>
<script src="assets/js/entwicklung.js?v=202610061325" defer></script> <script src="assets/js/entwicklung.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/hilfe.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/hilfe.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -146,14 +146,14 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/hilfe.js?v=202610061325" defer></script> <script src="assets/js/hilfe.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+5 -5
View File
@@ -30,9 +30,9 @@
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp" <link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" /> type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
</head> </head>
<body class="gate"> <body class="gate">
@@ -427,7 +427,7 @@
<script src="assets/js/gate.js?v=202610061325" defer></script> <script src="assets/js/gate.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/kalender.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -383,15 +383,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/kalender.js?v=202610061325" defer></script> <script src="assets/js/kalender.js?v=202610061421" defer></script>
<script src="assets/js/kalender-abo.js?v=202610061325" defer></script> <script src="assets/js/kalender-abo.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/leistung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -444,13 +444,13 @@
</form> </form>
</dialog> </dialog>
<script src="assets/js/meldung.js?v=202610061325"></script> <script src="assets/js/meldung.js?v=202610061421"></script>
<script src="assets/js/nachfrage.js?v=202610061325"></script> <script src="assets/js/nachfrage.js?v=202610061421"></script>
<script src="assets/js/wahl.js?v=202610061325"></script> <script src="assets/js/wahl.js?v=202610061421"></script>
<script src="assets/js/bereiche.js?v=202610061325"></script> <script src="assets/js/bereiche.js?v=202610061421"></script>
<script src="assets/js/kopf.js?v=202610061325"></script> <script src="assets/js/kopf.js?v=202610061421"></script>
<script src="assets/js/glocke.js?v=202610061325"></script> <script src="assets/js/glocke.js?v=202610061421"></script>
<script src="assets/js/leistung.js?v=202610061325"></script> <script src="assets/js/leistung.js?v=202610061421"></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+14 -14
View File
@@ -7,17 +7,17 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/manager-ziele.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/manager-ziele.css?v=202610061421" />
<!-- module.css an VORLETZTER, haus.css an LETZTER Stelle. Die <!-- module.css an VORLETZTER, haus.css an LETZTER Stelle. Die
Reihenfolge ist keine Geschmacksfrage: haus.css setzt nur Reihenfolge ist keine Geschmacksfrage: haus.css setzt nur
Variablen, und bei Variablen entscheidet allein, wer zuletzt Variablen, und bei Variablen entscheidet allein, wer zuletzt
kommt. pruef-css-klassen.mjs misst genau dieses Paar nach. --> kommt. pruef-css-klassen.mjs misst genau dieses Paar nach. -->
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -218,16 +218,16 @@
kopf.js liest daraus die Leitungsrollen. Ohne sie stürzt jede kopf.js liest daraus die Leitungsrollen. Ohne sie stürzt jede
Seite ab, und zwar nur in der Browserkonsole -- die Kopfleiste Seite ab, und zwar nur in der Browserkonsole -- die Kopfleiste
kommt trotzdem. --> kommt trotzdem. -->
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<!-- wahl.js gehört zu kopf.js: Der Sicht-Umschalter baut daraus seine <!-- wahl.js gehört zu kopf.js: Der Sicht-Umschalter baut daraus seine
Liste. pruef-css-klassen setzt das durch, und zwar auch die Liste. pruef-css-klassen setzt das durch, und zwar auch die
Reihenfolge -- kopf.js fragt beim Aufbau nach dem fertigen Reihenfolge -- kopf.js fragt beim Aufbau nach dem fertigen
Bedienelement. --> Bedienelement. -->
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/manager-ziele.js?v=202610061325" defer></script> <script src="assets/js/manager-ziele.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,13 +12,13 @@
vergessen wird. --> vergessen wird. -->
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/material.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/material.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start" data-ton="42" data-buehne="studio"> <body class="start" data-ton="42" data-buehne="studio">
@@ -138,14 +138,14 @@
<p class="m-laedt" id="laedt">Einen Moment …</p> <p class="m-laedt" id="laedt">Einen Moment …</p>
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/hochladen.js?v=202610061325" defer></script> <script src="assets/js/hochladen.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/material.js?v=202610061325" defer></script> <script src="assets/js/material.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+14 -14
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/notizen.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/notizen.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start" data-ton="46"> <body class="start" data-ton="46">
@@ -181,12 +181,12 @@
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js <!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
liest daraus die Leitungsrollen. --> liest daraus die Leitungsrollen. -->
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/notizen.js?v=202610061325" defer></script> <script src="assets/js/notizen.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/personen.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/personen.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -453,14 +453,14 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/personen.js?v=202610061325" defer></script> <script src="assets/js/personen.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/profil.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/profil.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -214,16 +214,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/hochladen.js?v=202610061325" defer></script> <script src="assets/js/hochladen.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/steckbrief.js?v=202610061325" defer></script> <script src="assets/js/steckbrief.js?v=202610061421" defer></script>
<script src="assets/js/profil.js?v=202610061325" defer></script> <script src="assets/js/profil.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+19 -19
View File
@@ -7,15 +7,15 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/reaktion.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/reaktion.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/werbung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/werbung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start reaktion-seite" data-stand="laedt"> <body class="start reaktion-seite" data-stand="laedt">
@@ -905,15 +905,15 @@
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js <!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
liest daraus die Leitungsrollen. --> liest daraus die Leitungsrollen. -->
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/spendenkarte.js?v=202610061325" defer></script> <script src="assets/js/spendenkarte.js?v=202610061421" defer></script>
<script src="assets/js/werbung.js?v=202610061325" defer></script> <script src="assets/js/werbung.js?v=202610061421" defer></script>
<script src="assets/js/reaktion.js?v=202610061325" defer></script> <script src="assets/js/reaktion.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/treff.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/treff.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -134,14 +134,14 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. --> die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/holen.js?v=202610061325" defer></script> <script src="assets/js/holen.js?v=202610061421" defer></script>
<script src="assets/js/rechte.js?v=202610061325" defer></script> <script src="assets/js/rechte.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/report.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/report.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -106,17 +106,17 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/ki.js?v=202610061325" defer></script> <script src="assets/js/ki.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/holen.js?v=202610061325" defer></script> <script src="assets/js/holen.js?v=202610061421" defer></script>
<script src="assets/js/report.js?v=202610061325" defer></script> <script src="assets/js/report.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/scouting.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -173,14 +173,14 @@
</div> </div>
</div> </div>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/scouting.js?v=202610061325" defer></script> <script src="assets/js/scouting.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,21 +12,21 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe <!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. --> den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
<link rel="stylesheet" href="assets/css/heim.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/heim.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -751,16 +751,16 @@
</p> </p>
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/live.js?v=202610061325" defer></script> <script src="assets/js/live.js?v=202610061421" defer></script>
<script src="assets/js/start.js?v=202610061325" defer></script> <script src="assets/js/start.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/startcheck.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -85,16 +85,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/ki.js?v=202610061325" defer></script> <script src="assets/js/ki.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/startcheck.js?v=202610061325" defer></script> <script src="assets/js/startcheck.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/profil.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/profil.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -150,16 +150,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/hochladen.js?v=202610061325" defer></script> <script src="assets/js/hochladen.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/auskunft.js?v=202610061325" defer></script> <script src="assets/js/auskunft.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/steckbrief.js?v=202610061325" defer></script> <script src="assets/js/steckbrief.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+14 -14
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/support.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/support.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -154,16 +154,16 @@
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese (reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
trotzdem, deshalb sah man es nur in der Browserkonsole. --> trotzdem, deshalb sah man es nur in der Browserkonsole. -->
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der <!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
uebersicht.html, und heute hier. --> uebersicht.html, und heute hier. -->
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/support.js?v=202610061325" defer></script> <script src="assets/js/support.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+3 -3
View File
@@ -23,7 +23,7 @@
„Eigenes CSS" leer lassen (der Grund ist schon „Eigenes CSS" leer lassen (der Grund ist schon
durchsichtig). durchsichtig).
====================================================================== --> ====================================================================== -->
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610061421" />
<style> <style>
/* DURCHSICHTIG BIS AUF DIE KARTEN. OBS legt die Quelle über das /* DURCHSICHTIG BIS AUF DIE KARTEN. OBS legt die Quelle über das
Bild; jede Fläche, die hier steht, deckt dort etwas zu. */ Bild; jede Fläche, die hier steht, deckt dort etwas zu. */
@@ -80,7 +80,7 @@
<body> <body>
<div class="obs-tafel spendentafel" id="tafel" aria-live="polite"></div> <div class="obs-tafel spendentafel" id="tafel" aria-live="polite"></div>
<script src="assets/js/spendenkarte.js?v=202610061325" defer></script> <script src="assets/js/spendenkarte.js?v=202610061421" defer></script>
<script src="assets/js/tafel.js?v=202610061325" defer></script> <script src="assets/js/tafel.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061421" />
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie <!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
der Regel hier waere die zweite Stelle, an der dieselbe Sache der Regel hier waere die zweite Stelle, an der dieselbe Sache
anders aussieht. --> anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -111,15 +111,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/holen.js?v=202610061325" defer></script> <script src="assets/js/holen.js?v=202610061421" defer></script>
<script src="assets/js/talente.js?v=202610061325" defer></script> <script src="assets/js/talente.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/team.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/team.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -110,15 +110,15 @@
</main> </main>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/holen.js?v=202610061325" defer></script> <script src="assets/js/holen.js?v=202610061421" defer></script>
<script src="assets/js/team.js?v=202610061325" defer></script> <script src="assets/js/team.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/team.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/team.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu <!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu
@@ -84,15 +84,15 @@
Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt
es niemandem auf, und deshalb prueft pruef-css-klassen die es niemandem auf, und deshalb prueft pruef-css-klassen die
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. --> ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/holen.js?v=202610061325" defer></script> <script src="assets/js/holen.js?v=202610061421" defer></script>
<script src="assets/js/teamlage.js?v=202610061325" defer></script> <script src="assets/js/teamlage.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/bereich.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -112,15 +112,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/teilen.js?v=202610061325" defer></script> <script src="assets/js/teilen.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/treff.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/treff.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -126,14 +126,14 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/treff-moderation.js?v=202610061325" defer></script> <script src="assets/js/treff-moderation.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/treff.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/treff.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des <!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. --> Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -248,14 +248,14 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. --> die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/auskunft.js?v=202610061325" defer></script> <script src="assets/js/auskunft.js?v=202610061421" defer></script>
<script src="assets/js/treff-regeln.js?v=202610061325" defer></script> <script src="assets/js/treff-regeln.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,22 +12,22 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der <!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
Dialog "Creator anlegen". --> Dialog "Creator anlegen". -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/uebersicht.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -149,16 +149,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/uebersicht.js?v=202610061325" defer></script> <script src="assets/js/uebersicht.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -335,14 +335,14 @@
</main> </main>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/live.js?v=202610061325" defer></script> <script src="assets/js/live.js?v=202610061421" defer></script>
<script src="assets/js/unsere-seiten.js?v=202610061325" defer></script> <script src="assets/js/unsere-seiten.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -106,17 +106,17 @@
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js <!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit
„Cannot read properties of undefined (reading 'LEITUNG')" ab. --> „Cannot read properties of undefined (reading 'LEITUNG')" ab. -->
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/holen.js?v=202610061325" defer></script> <script src="assets/js/holen.js?v=202610061421" defer></script>
<!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort <!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort
des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet
von pruef-meldungen, nicht beim Ansehen. --> von pruef-meldungen, nicht beim Ansehen. -->
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/unterstuetzen.js?v=202610061325" defer></script> <script src="assets/js/unterstuetzen.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,15 +7,15 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/werdegang.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/werdegang.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -144,14 +144,14 @@
</main> </main>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/werdegang.js?v=202610061325" defer></script> <script src="assets/js/werdegang.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -12,13 +12,13 @@
vergessen wird. --> vergessen wird. -->
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/willkommen.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/willkommen.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026). <!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026).
`body.gate` ist die Anmeldewand: `display:flex; align-items:center`, `body.gate` ist die Anmeldewand: `display:flex; align-items:center`,
@@ -75,13 +75,13 @@
<p class="fehler" id="fehler" hidden></p> <p class="fehler" id="fehler" hidden></p>
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/willkommen.js?v=202610061325" defer></script> <script src="assets/js/willkommen.js?v=202610061421" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061325" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610061421" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061325" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610061421" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/start.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/start.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/wissen.css?v=202610061421" />
<link rel="stylesheet" href="assets/css/module.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/module.css?v=202610061421" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202610061325" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610061421" />
</head> </head>
<body class="start"> <body class="start">
@@ -190,15 +190,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202610061325" defer></script> <script src="assets/js/meldung.js?v=202610061421" defer></script>
<script src="assets/js/hochladen.js?v=202610061325" defer></script> <script src="assets/js/hochladen.js?v=202610061421" defer></script>
<script src="assets/js/nachfrage.js?v=202610061325" defer></script> <script src="assets/js/nachfrage.js?v=202610061421" defer></script>
<script src="assets/js/wahl.js?v=202610061325" defer></script> <script src="assets/js/wahl.js?v=202610061421" defer></script>
<script src="assets/js/bereiche.js?v=202610061325" defer></script> <script src="assets/js/bereiche.js?v=202610061421" defer></script>
<script src="assets/js/installieren.js?v=202610061325" defer></script> <script src="assets/js/installieren.js?v=202610061421" defer></script>
<script src="assets/js/kopf.js?v=202610061325" defer></script> <script src="assets/js/kopf.js?v=202610061421" defer></script>
<script src="assets/js/glocke.js?v=202610061325" defer></script> <script src="assets/js/glocke.js?v=202610061421" defer></script>
<script src="assets/js/wissen.js?v=202610061325" defer></script> <script src="assets/js/wissen.js?v=202610061421" defer></script>
</body> </body>
</html> </html>