Das Farbhaus von Team Dogi lag oeffentlich im Netz

Ausgeloest von pruef-modi-wortleck, die seit Tagen rot war: "24
Fundstellen -- der verborgene Zugang waere damit auffindbar." Die
erste Frage war, ob sie recht hat. Gemessen: ja, und schlimmer als
gedacht.

WER DIESE DATEIEN BEKOMMT: Nicht nur Kollegen. `curl` ohne jeden Keks
auf workspace.dogfather-universe.com liefert die Skripte und
Stilvorlagen des Arbeitsplatzes mit HTTP 200 -- fuer jeden im Netz
lesbar.

DARUNTER crew-haus.css, 27 806 Byte, das ganze Farbhaus von Team Dogi
samt seiner Kommentare. In deren Kopf stand seit dem 10.09. woertlich
"Diese Datei wird NUR auf crew.dogfather-universe.com ausgeliefert."
Das war eine Behauptung, keine Tatsache: Die Weiche biegt `haus.css`
auf diesen Namen um, wer den Namen direkt nannte, ging an ihr vorbei.
Ein Kommentar, der eine Absicht beschreibt, erfuellt sie nicht.

Zwei Stellen im Haus haben sich damit widersprochen -- die Datei sagte
"nur auf crew.", pruef-crew-adresse verlangte ausdruecklich das
Gegenteil ("sie ist kein Geheimnis"). Durchgesetzt war die offene
Fassung. Filipe hat am 21.09. entschieden: zusperren. Die alte
Begruendung dagegen war die Sorge, eine Sperre koenne die Pruefung
blind machen -- die ist jetzt beantwortet statt vermieden: Jeder
Eintrag der Tafel wird in BEIDE Richtungen gemessen, und dass die
Umbiegung von `haus.css` auf crew. weiterhin greift, ebenfalls.

DIE ADRESSE WAR DAS EIGENTLICHE GEHEIMNIS, nicht das Wort. Die
Rollennamen stehen auf der Zugangswand von Team Dogi ohnehin offen --
so gewollt. WO sie liegt, stand dagegen im Klartext in gate.css,
gate.js und crew-haus.css, alle drei oeffentlich abrufbar. Jetzt steht
sie in keiner ausgelieferten Datei mehr.

DIE PRUEFUNG SELBST HATTE DREI MAENGEL:

  1. Sie kannte die Mehrzahl nicht. `\bmodi\b` fand "ein Modi", nicht
     "die Modis" -- 23 weitere Stellen, darunter der Satz "Fuer die
     rechte Hand und die Modis gibt es dort den stillen Zugang". Also
     genau die Auskunft, die sie verhindern soll, in der Form, die sie
     nicht sah.
  2. Ihre Ausnahmeliste war abgeschrieben. Sie nannte eine Datei; die
     zweite, die der Server auf crew. begrenzt, haette sie nie
     erfahren. Ausgenommen ist jetzt genau das, was der Server auch
     durchsetzt (GEHOERT_ZU_ADRESSE) -- kein Muster, sondern die
     Durchsetzung selbst.
  3. Sie mahnte 45 Kommentare an. Filipes Entscheidung: in Kommentaren
     ja, in Code und sichtbaren Texten nein. Rot, das immer da ist,
     wird ueberlesen -- und dann faengt sie auch den echten Fall nicht.

Dafuer neu: helfer-ohne-kommentar.mjs, ein Zerleger, der Kommentare
zeichengenau durch Leerzeichen ersetzt, ohne Zeichenketten,
Vorlagen oder Suchmuster zu beschaedigen. KEIN Suchausdruck -- genau
daran ist am 20.09. die Portumstellung gescheitert, mit gueltigem
JavaScript ohne das Feld `port`. Dreizehn Proben in beide Richtungen
beweisen, dass er weder zu viel noch zu wenig wegnimmt; ein Zerleger,
der zu viel nimmt, macht die ganze Pruefung STILL gruen.

Von 45 blieben damit drei echte, alle behoben:
  - daten.modis  -> daten.leute (Feldname in der Auskunft, also Code)
  - zwei Saetze, die Menschen lesen, auf "die Moderation" umgestellt --
    fuer jemanden, der neu im Treff ist, sogar klarer

Nebenbei, beim selben Durchgang gefunden und geschlossen:
  - teamlage.js fiel auf einen Rollennamen zurueck. Nachgemessen: Die
    Stilvorlage kennt zu dieser Karte gar keine solche Regel -- der
    Rueckfall hat nie etwas bewirkt und nur das Wort ausgeliefert.
  - werdegang.js fuehrte die Saetze ueber den Rollengruppen selbst,
    mit den Rollennamen als Schluessel. Der Kommentar daneben
    behauptete sogar, sie seien "abgeleitet, nicht abgeschrieben".
    Sie kommen jetzt vom Server, und pruef-werdegang misst, dass
    jede Gruppe ihren eigenen behaelt.

pruef-modi-wortleck  8/0  (war 5, davon 1 rot)
pruef-crew-adresse 144/0  (war 135)
pruef-werdegang    98 statt 95 Pruefungen, dieselben 3 alten Fehler
pruef-team-ampel 32/0, pruef-team-stufen 28/0, pruef-hilfe 84/0

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-21 13:00:01 +02:00
co-authored by Claude Opus 5
parent eca9aed279
commit ea8ceaa539
53 changed files with 1190 additions and 552 deletions
+40 -6
View File
@@ -214,12 +214,46 @@ export function istWorkspacePfad(pfad) {
die jede Wand im Browser ansehen, keine mehr oeffnen -- sie blieben
gruen und wuerden nichts mehr messen. Ein gruener Lauf, der nichts
mehr prueft, ist schlimmer als ein roter. */
/* EINE benannte Wand, seit der Treff keine eigene mehr hat. Die Tafel
bleibt trotzdem eine Tafel und wird nicht wieder zum Sonderfall: Sie
ist der Ort, an dem die naechste Wand eingetragen wird, ohne dass
jemand drei Bedingungen umbauen muss. */
const BENANNTE_WAENDE = [
/* Die Tafel bleibt eine Tafel und wird nicht wieder zum Sonderfall:
Sie ist der Ort, an dem der naechste Eintrag dazukommt, ohne dass
jemand drei Bedingungen umbauen muss.
---------------------------------------------------------------------
SEIT DEM 21.09.2026 STEHT HIER AUCH EINE STILVORLAGE
Im Kopf von crew-haus.css stand seit dem 10.09.: "Diese Datei wird
NUR auf crew.dogfather-universe.com ausgeliefert." Nachgemessen war
das falsch -- 27 806 Byte, HTTP 200, von der Agenturadresse, OHNE
Anmeldung. Die Weiche biegt `haus.css` auf diesen Namen um; wer den
Namen direkt nennt, kam an der Weiche vorbei.
Es war also wieder derselbe Befund: Ein Kommentar, der eine Absicht
beschreibt, erfuellt sie nicht. Und es war dieselbe Luecke wie bei
der Zugangswand am 10.09. -- express.static liefert jede Datei aus,
die man beim Namen nennt.
WAS DARIN STAND: das ganze Farbhaus von Team Dogi, mit seinen
Kommentaren -- darunter zweimal die Crew-Adresse im Klartext. Die
Adresse ist das eigentlich Verborgene; die Rollennamen stehen auf
der Zugangswand dort ohnehin offen (so gewollt: "3 rollen.
dogfather. rechte hand und modis"). Wer die Adresse hat, sieht sie.
Wer sie nicht hat, sollte sie nicht aus einer Stilvorlage der
Agenturseite erfahren.
DIE INTERNE UMBIEGUNG BLEIBT UNBERUEHRT, und das ist der Grund,
warum dieser Eintrag ueberhaupt funktioniert: Diese Tafel wird in
crewWeiche() ganz oben gefragt (Zeile ~323), die Umbiegung von
`haus.css` passiert weiter unten (~454). Auf crew. wird also nach
wie vor umgebogen -- dort ist die Datei zuhause --, und auf der
Agenturadresse gibt es sie beim Namen nicht mehr.
Nachgeprueft in pruef-crew-adresse: einmal, dass sie auf crew.
ankommt, und einmal, dass die Agenturadresse 404 sagt. Ohne die
zweite Haelfte waere der Eintrag eine Behauptung wie die, die er
ersetzt. */
export const GEHOERT_ZU_ADRESSE = [
{ datei: "/workspace/crew-index.html", zuhause: istCrewAdresse },
{ datei: "/workspace/assets/css/crew-haus.css", zuhause: istCrewAdresse },
];
/** Wird hier eine Wand verlangt, die zu einer ANDEREN Tuer gehoert? */
@@ -229,7 +263,7 @@ export function istFremdeWand(hostKopfzeile, pfad) {
zieht sie danach selbst zusammen und liefert die Datei aus. Genau
daran ist am 04.09.2026 die Schranke des Workspace vorbeigelaufen. */
const p = String(pfad || "").toLowerCase().replace(/\/{2,}/g, "/");
const wand = BENANNTE_WAENDE.find((w) => w.datei === p);
const wand = GEHOERT_ZU_ADRESSE.find((w) => w.datei === p);
if (!wand) return false;
if (istPruefAdresse(hostKopfzeile)) return false;
const benannt = istOhneModiAdresse(hostKopfzeile) || istCrewAdresse(hostKopfzeile);
+249
View File
@@ -0,0 +1,249 @@
/* =====================================================================
helfer-ohne-kommentar.mjs — Kommentare entfernen, ohne den Rest zu
beschaedigen (21.09.2026)
---------------------------------------------------------------------
WOFUER
Filipes Entscheidung vom 21.09.2026 zum Rollennamen der Community:
Er darf nicht in CODE und nicht in SICHTBAREN TEXTEN stehen -- in
Kommentaren schon. Die Begruendung ist messbar: Auf der Zugangswand
von Team Dogi stehen die drei Rollennamen ohnehin offen ("3 rollen.
dogfather. rechte hand und modis"), und geschuetzt wird der Zugang
durch den Code, nicht durch ein Wort. Eine Pruefung, die 45
Kommentare anmahnt, waere eine Dauer-Rotmeldung -- und Rot, das
immer da ist, wird ueberlesen.
Damit diese Regel ueberhaupt pruefbar ist, muss jemand sagen
koennen, was Kommentar ist und was nicht. Genau das tut diese Datei.
---------------------------------------------------------------------
WARUM KEIN EINFACHER SUCHEN-UND-ERSETZEN-AUSDRUCK
Ein Muster, das einfach vom naechsten Sternchen-Schraegstrich bis
zum uebernaechsten loescht, sieht richtig aus und ist es nicht.
Es zerschneidet zum Beispiel eine Adresse, in der dieselbe
Zeichenfolge mitten in einer Zeichenkette steht, oder ein
Suchmuster, das Schraegstrich und Sternchen als Zeichen
enthaelt -- und macht aus gueltigem Programmtext Unsinn.
(Beide Beispiele stehen hier bewusst NICHT ausgeschrieben: Ein
Kommentar, der die Zeichenfolge enthaelt, mit der ein Kommentar
endet, beendet sich selbst. Beim ersten Versuch ist genau das
passiert -- in der Datei, die davor warnt.)
IM HAUS IST DIESE FALLE SCHON EINMAL ZUGESCHNAPPT: Am 20.09.2026 hat ein Ausdruck beim
Umstellen der Portnummern `", port: 4231, path: "` fuer eine
Zeichenkette gehalten. Das Ergebnis war gueltiges JavaScript ohne
das Feld `port` -- `node --check` sagte bei allen 164 Dateien "in
Ordnung", und aufgefallen ist es erst, weil ein Lauf gegen einen
GEMESSENEN Vorstand verglichen wurde.
Deshalb wird hier Zeichen fuer Zeichen gelesen und mitgefuehrt, wo
man gerade steht: in Programmtext, in einer Zeichenkette, in einer
Vorlage, in einem Suchmuster oder in einem Kommentar.
---------------------------------------------------------------------
DAS SCHWIERIGE STUECK: IST `/` EIN TEILEN ODER EIN SUCHMUSTER
`a / b` teilt, `/a/.test(x)` sucht. Unterscheiden kann man das nur
am ZEICHEN DAVOR: Nach einem Wert (Zahl, Name, schliessende Klammer)
teilt es; nach einem Operator, einem Komma oder einer oeffnenden
Klammer beginnt ein Suchmuster. Das ist die Regel, die auch
Browser benutzen, und sie ist fuer diesen Zweck genau genug.
WAS SIE NICHT KANN: `return /x/` gegen `a++ /x/` unterscheiden,
wenn davor ein Schluesselwort steht, das wie ein Name aussieht.
Deshalb gelten `return`, `typeof`, `case`, `in`, `of`, `new`,
`delete`, `void`, `do` und `else` ausdruecklich als Operator. Die
Liste steht unten und ist abgezaehlt, nicht geraten.
---------------------------------------------------------------------
WAS ZURUECKKOMMT
Derselbe Text, gleich lang, mit Leerzeichen an den Stellen, an denen
Kommentar stand. GLEICH LANG ist Absicht: So stimmen Zeilennummern
und Spalten weiterhin, und ein Fund laesst sich ohne Umrechnung in
der Originaldatei zeigen. Zeilenumbrueche bleiben deshalb erhalten.
===================================================================== */
/* Nach diesen Woertern beginnt ein `/` ein Suchmuster und kein Teilen.
Abgezaehlt, nicht geraten -- siehe Kopf. */
const VOR_SUCHMUSTER = new Set([
"return", "typeof", "case", "in", "of", "new", "delete", "void",
"do", "else", "yield", "await", "instanceof",
]);
/** Ersetzt jeden Kommentar in JavaScript durch Leerzeichen.
*
* Zeichenketten, Vorlagen und Suchmuster bleiben unangetastet --
* auch wenn `//` oder darin steht. */
export function jsOhneKommentar(quelle) {
const t = String(quelle);
let aus = "";
let i = 0;
/* Das letzte Zeichen, das kein Leerraum war. Daran haengt die
Entscheidung Teilen-oder-Suchmuster. */
let letztes = "";
let letztesWort = "";
const schreibe = (s) => { aus += s; };
const leeren = (s) => { aus += s.replace(/[^\n]/g, " "); };
while (i < t.length) {
const c = t[i];
const d = t[i + 1];
/* ---- Kommentare ------------------------------------------------ */
if (c === "/" && d === "/") {
let j = i;
while (j < t.length && t[j] !== "\n") j++;
leeren(t.slice(i, j));
i = j;
continue;
}
if (c === "/" && d === "*") {
let j = t.indexOf("*/", i + 2);
j = j === -1 ? t.length : j + 2;
leeren(t.slice(i, j));
i = j;
continue;
}
/* ---- Zeichenketten --------------------------------------------- */
if (c === '"' || c === "'" || c === "`") {
let j = i + 1;
while (j < t.length) {
if (t[j] === "\\") { j += 2; continue; }
if (t[j] === c) { j++; break; }
/* In einer Vorlage kann `${…}` wieder Programmtext sein. Fuer
den Zweck hier -- Kommentare finden -- reicht es, das Stueck
als Ganzes stehen zu lassen: Ein Kommentar darin waere
ohnehin Programmtext und soll nicht verschwinden. */
j++;
}
schreibe(t.slice(i, j));
letztes = c; letztesWort = "";
i = j;
continue;
}
/* ---- Suchmuster ------------------------------------------------ */
if (c === "/") {
const wertDavor = /[\w$)\]]/.test(letztes) && !VOR_SUCHMUSTER.has(letztesWort);
if (!wertDavor) {
let j = i + 1;
let inKlasse = false;
let fertig = false;
while (j < t.length) {
const z = t[j];
if (z === "\\") { j += 2; continue; }
if (z === "\n") break; /* unfertig -- dann war es Teilen */
if (z === "[") inKlasse = true;
else if (z === "]") inKlasse = false;
else if (z === "/" && !inKlasse) { j++; fertig = true; break; }
j++;
}
if (fertig) {
while (j < t.length && /[a-z]/.test(t[j])) j++; /* Flaggen */
schreibe(t.slice(i, j));
letztes = "/"; letztesWort = "";
i = j;
continue;
}
}
}
/* ---- alles andere ---------------------------------------------- */
schreibe(c);
if (!/\s/.test(c)) {
letztes = c;
if (/[\w$]/.test(c)) letztesWort += c;
else letztesWort = "";
}
i++;
}
return aus;
}
/** CSS kennt nur die Block-Form und Zeichenketten. */
export function cssOhneKommentar(quelle) {
const t = String(quelle);
let aus = "";
let i = 0;
while (i < t.length) {
const c = t[i];
if (c === "/" && t[i + 1] === "*") {
let j = t.indexOf("*/", i + 2);
j = j === -1 ? t.length : j + 2;
aus += t.slice(i, j).replace(/[^\n]/g, " ");
i = j;
continue;
}
if (c === '"' || c === "'") {
let j = i + 1;
while (j < t.length) {
if (t[j] === "\\") { j += 2; continue; }
if (t[j] === c) { j++; break; }
j++;
}
aus += t.slice(i, j);
i = j;
continue;
}
aus += c;
i++;
}
return aus;
}
/** HTML: <!-- … --> heraus, und die eingebetteten <script>/<style>
* bekommen ihre eigene Behandlung -- sonst bliebe ein Kommentar
* mitten im Skript stehen. */
export function htmlOhneKommentar(quelle) {
const t = String(quelle);
let aus = "";
let i = 0;
while (i < t.length) {
if (t.startsWith("<!--", i)) {
let j = t.indexOf("-->", i + 4);
j = j === -1 ? t.length : j + 3;
aus += t.slice(i, j).replace(/[^\n]/g, " ");
i = j;
continue;
}
const skript = /^<script\b[^>]*>/i.exec(t.slice(i, i + 200));
if (skript) {
const start = i + skript[0].length;
const ende = t.toLowerCase().indexOf("</script", start);
const bis = ende === -1 ? t.length : ende;
aus += skript[0] + jsOhneKommentar(t.slice(start, bis));
i = bis;
continue;
}
const stil = /^<style\b[^>]*>/i.exec(t.slice(i, i + 200));
if (stil) {
const start = i + stil[0].length;
const ende = t.toLowerCase().indexOf("</style", start);
const bis = ende === -1 ? t.length : ende;
aus += stil[0] + cssOhneKommentar(t.slice(start, bis));
i = bis;
continue;
}
aus += t[i];
i++;
}
return aus;
}
/** Waehlt anhand der Endung. Unbekannte Endungen kommen UNVERAENDERT
* zurueck -- lieber eine Fundstelle zu viel melden als eine zu
* wenig. Wer hier stillschweigend alles durchliesse, haette eine
* Pruefung gebaut, die bei jeder neuen Dateiart blind wird. */
export function ohneKommentar(text, endung) {
const e = String(endung || "").toLowerCase();
if (e === ".js" || e === ".mjs") return jsOhneKommentar(text);
if (e === ".css") return cssOhneKommentar(text);
if (e === ".html" || e === ".htm") return htmlOhneKommentar(text);
return String(text);
}
+90 -5
View File
@@ -498,6 +498,68 @@ ok(dortSchon.status === 200, "crew.: dort gibt es sie natuerlich");
const lokalSchon = await hole("/workspace/crew-index.html", { host: LOKAL });
ok(lokalSchon.status === 200, "127.0.0.1: und auf den Pruefadressen auch");
/* ---------------------------------------------------------------------
JEDER EINTRAG DER TAFEL, NICHT NUR DIE WAND (21.09.2026)
Der Block darueber prueft crew-index.html namentlich. Am 21.09. kam
ein zweiter Eintrag dazu -- crew-haus.css, das ganze Farbhaus von
Team Dogi. Es stand bis dahin NICHT unter der Sperre: 27 806 Byte,
HTTP 200, von der Agenturadresse, ohne jede Anmeldung. Im Kopf der
Datei stand seit dem 10.09. das Gegenteil.
WAERE DIESER BLOCK EINE ZWEITE NAMENTLICHE ABSCHRIFT, stuende beim
dritten Eintrag dasselbe Loch wieder offen. Er geht deshalb die
Tafel durch -- dieselbe Liste, die der Server durchsetzt. Ein neuer
Eintrag wird damit automatisch in beide Richtungen gemessen, ohne
dass jemand hier etwas nachtraegt.
UND IN BEIDE RICHTUNGEN heisst: nicht nur "draussen gesperrt",
sondern auch "drinnen erreichbar". Eine Sperre, die zu viel sperrt,
nimmt der zweiten Adresse ihr Aussehen -- und das faellt erst auf,
wenn jemand hinsieht.
------------------------------------------------------------------ */
const { GEHOERT_ZU_ADRESSE } = await import("./crew-adresse.js");
ok(GEHOERT_ZU_ADRESSE.length >= 2,
`die Tafel hat ${GEHOERT_ZU_ADRESSE.length} Eintraege`);
for (const eintrag of GEHOERT_ZU_ADRESSE) {
const weg = eintrag.datei;
const draussen = await hole(weg, { host: WS });
ok(draussen.status === 404 || draussen.status === 410,
`workspace.: ${weg} gibt es dort nicht (${draussen.status})`);
/* DIE ZAHL ALLEIN REICHT NICHT. Ein 404 mit Inhalt waere kein
Schutz; gemessen wird deshalb auch, dass nichts Nennenswertes
mitkommt. */
ok((draussen.text || "").length < 200,
`workspace.: und es kommt auch kein Inhalt mit (${(draussen.text || "").length} Zeichen)`);
const drinnen = await hole(weg, { host: CREW });
ok(drinnen.status === 200,
`crew.: ${weg} kommt dort an (${drinnen.status})`);
ok((drinnen.text || "").length > 200,
`crew.: und zwar mit Inhalt (${(drinnen.text || "").length} Zeichen)`);
}
/* DIE UMBIEGUNG DARF DIE SPERRE NICHT MITNEHMEN.
`haus.css` wird auf crew. intern auf crew-haus.css umgebogen. Die
Tafel wird ganz oben in crewWeiche() gefragt, die Umbiegung passiert
weiter unten -- deshalb geht das gut. Stuende die Tafel eines Tages
NACH der Umbiegung, waere auf crew. jede Seite ohne ihr Farbhaus, und
niemand saehe eine Fehlermeldung: Eine Seite ohne Stilvorlage laedt,
sie sieht nur falsch aus. */
const umgebogen = await hole("/workspace/assets/css/haus.css", { host: CREW });
ok(umgebogen.status === 200 && (umgebogen.text || "").length > 200,
`crew.: haus.css wird weiterhin umgebogen (${umgebogen.status}, `
+ `${(umgebogen.text || "").length} Zeichen)`);
const leer = await hole("/workspace/assets/css/haus.css", { host: WS });
ok(leer.status === 200,
`workspace.: haus.css kommt dort weiterhin an (${leer.status})`);
ok((leer.text || "").length < (umgebogen.text || "").length,
`und ist dort die kleinere, leere Fassung `
+ `(${(leer.text || "").length} gegen ${(umgebogen.text || "").length} Zeichen)`);
/* ---------------------------------------------------------------------
WAS gate.js AUS DEM HTML BRAUCHT -- auf BEIDEN Seiten.
@@ -643,12 +705,35 @@ console.log("--- Welches Haus kommt an? ---");
ok(mitNummer.status === 200 && /--haus-name:\s*"crew"/.test(mitNummer.text),
`mit Fassungsnummer kommt dasselbe an (${mitNummer.status})`);
/* Und die Datei des anderen Hauses ist auf beiden Adressen direkt
abrufbar -- sie ist kein Geheimnis, sie ist nur nicht die
Vorgabe. Das steht hier, damit niemand spaeter eine Sperre
einbaut, die die Pruefung oben blind machen wuerde. */
/* HIER STAND BIS ZUM 21.09.2026 DAS GEGENTEIL -- und die Aenderung
ist eine Entscheidung von Filipe, keine stille Korrektur.
Der alte Satz lautete: "Die Datei des anderen Hauses ist auf
beiden Adressen direkt abrufbar -- sie ist kein Geheimnis, sie ist
nur nicht die Vorgabe." Dazu die Sorge, eine Sperre koenne die
Pruefung darueber blind machen.
WAS SICH GEAENDERT HAT, IST NICHT DIE MEINUNG, SONDERN DIE
MESSUNG. Nachgemessen am 21.09.: 27 806 Byte, HTTP 200, von der
Agenturadresse, OHNE jede Anmeldung -- also nicht nur fuer
Kollegen, sondern fuer jeden im Netz. Darin das ganze Farbhaus von
Team Dogi samt seiner Kommentare, und in denen zweimal die Adresse
der zweiten Wand im Klartext. Die Adresse ist das eigentlich
Verborgene: Die Rollennamen stehen auf jener Wand ohnehin offen,
WO sie liegt dagegen nicht.
Im Kopf der Datei selbst stand seit dem 10.09. das Gegenteil
("wird NUR auf crew... ausgeliefert"). Zwei Stellen im Haus haben
sich also widersprochen, und die durchgesetzte war die offene.
DIE ALTE SORGE IST BEANTWORTET, nicht uebergangen: Der Block
weiter oben misst jeden Eintrag der Tafel in BEIDE Richtungen und
prueft zusaetzlich, dass die Umbiegung von `haus.css` auf crew.
weiterhin greift. Genau das war der Fall, vor dem der alte
Kommentar gewarnt hat -- er ist jetzt gemessen statt vermieden. */
const direkt = await hole("/workspace/assets/css/crew-haus.css", { host: WS });
ok(direkt.status === 200, `crew-haus.css ist auch direkt abrufbar (${direkt.status})`);
ok(direkt.status === 404 || direkt.status === 410,
`crew-haus.css ist von der Agenturadresse nicht mehr abrufbar (${direkt.status})`);
}
/* =====================================================================
+1 -1
View File
@@ -205,7 +205,7 @@ console.log("");
/* SIE STEHT AUCH ALS MENSCH IM TEAM -- sonst waere die Meldung oben
eine Zeile ohne Absender, und ihre Ampel und ihre offenen Punkte
gaebe es nirgends. */
const leute = (b.daten?.modis || b.daten?.leute || []).map((p) => p.name);
const leute = (b.daten?.leute || []).map((p) => p.name);
ok(leute.includes("Rieke"), `und sie selbst im Team (${leute.join(", ") || "leer"})`);
/* GEGENPROBE: „Passt so" landet auch bei ihr nicht im Eingang --
+124 -3
View File
@@ -26,6 +26,7 @@
import { readdirSync, readFileSync, statSync } from "node:fs";
import { join, dirname, extname, relative } from "node:path";
import { fileURLToPath } from "node:url";
import { ohneKommentar } from "./helfer-ohne-kommentar.mjs";
const HIER = dirname(fileURLToPath(import.meta.url));
const ORDNER = join(HIER, "..", "workspace");
@@ -45,7 +46,18 @@ const ENDUNGEN = new Set([".js", ".html", ".css", ".webmanifest", ".json", ".svg
wird abgeschaltet, und dann faengt sie auch den echten Fall nicht
mehr. Nachgemessen: Keines der drei Woerter passt auf dieses Muster,
weil nach "modi" dort ein Buchstabe folgt. */
const MUSTER = /\bmodi\b/i;
/* DIE MEHRZAHL KAM AM 21.09.2026 DAZU -- und sie fehlte elf Tage.
`\bmodi\b` fand "ein Modi", aber nicht "die Modis". Nachgemessen:
23 weitere Fundstellen, darunter Saetze wie "Fuer die rechte Hand
und die Modis gibt es dort den stillen Zugang" -- also genau die
Auskunft, die diese Pruefung verhindern soll, in der Form, die sie
nicht sah. Eine Pruefung, die die Haelfte der Faelle nicht kennt,
beruhigt mehr, als sie schuetzt.
Die Gegenprobe unten bleibt gueltig: "modifiziert", "Modul",
"motion" und "Modus" passen auch auf das erweiterte Muster nicht. */
const MUSTER = /\bmodis?\b/i;
function dateien(pfad, aus = []) {
for (const name of readdirSync(pfad)) {
@@ -80,7 +92,30 @@ console.log("\n=== Der Rollenname darf in keiner ausgelieferten Datei stehen ===
AUSDRUECKLICH EINE EINZELNE DATEI und kein Muster wie "crew-*":
Sonst waere die naechste crew-Datei stillschweigend mit ausgenommen,
und niemand haette entschieden, ob sie es sein darf. */
const AUSGENOMMEN = new Set(["crew-index.html"]);
const { GEHOERT_ZU_ADRESSE } = await import("./crew-adresse.js");
/* KEIN MUSTER WIE "crew-*" -- ABER AUCH KEINE ZWEITE LISTE
(geaendert 21.09.2026).
Hier stand `new Set(["crew-index.html"])`, mit der Begruendung, ein
Muster wuerde die naechste crew-Datei stillschweigend mit
ausnehmen. Der Gedanke war richtig, die Umsetzung war eine
Abschrift: Am 21.09. kam crew-haus.css dazu (27 806 Byte, bis dahin
von der Agenturadresse OHNE Anmeldung abrufbar) -- und diese Liste
haette davon nichts gewusst.
Ausgenommen ist jetzt genau das, was der Server auch WIRKLICH auf
die zweite Adresse begrenzt: die Tafel GEHOERT_ZU_ADRESSE aus
crew-adresse.js. Das ist kein Muster, sondern die Durchsetzung
selbst. Wer eine Datei dort eintraegt, hat die Entscheidung
getroffen; wer es nicht tut, bekommt hier einen roten Lauf. Die
beiden koennen nicht mehr auseinanderlaufen.
DIE BEDINGUNG DER AUSNAHME BLEIBT DIESELBE: Sie gilt nur, solange
jene Sperre haelt. Gemessen wird das in pruef-crew-adresse.mjs, in
beide Richtungen und fuer jeden Eintrag der Tafel. */
const AUSGENOMMEN = new Set(
GEHOERT_ZU_ADRESSE.map((w) => relative(ORDNER, join(ORDNER, "..", w.datei))));
const alle = dateien(ORDNER);
/* DIE ZAHL GEHOERT IN DIE BEDINGUNG. Faende die Suche keine einzige
@@ -93,7 +128,36 @@ const treffer = [];
let ausgenommen = 0;
for (const datei of alle) {
if (AUSGENOMMEN.has(relative(ORDNER, datei))) { ausgenommen++; continue; }
const text = readFileSync(datei, "utf8");
/* KOMMENTARE ZAEHLEN NICHT MIT (Entscheidung von Filipe,
21.09.2026).
Bis heute suchte diese Pruefung in der ganzen Datei und fand
45 Stellen -- fast alle in Kommentaren. Die Frage war also nicht,
ob sie recht hat, sondern was eigentlich geschuetzt werden soll.
GEMESSEN, WORUM ES WIRKLICH GEHT: Auf der Zugangswand von Team
Dogi stehen die drei Rollennamen ohnehin offen -- als Kacheln,
sichtbar, so gewollt. Wer die Adresse hat, liest sie dort.
Geschuetzt wird der Zugang durch den Code, nicht durch ein Wort.
Und die ADRESSE, um die es wirklich geht, steht seit dem
21.09.2026 in keiner ausgelieferten Datei mehr.
45 Kommentare anzumahnen waere damit eine Dauer-Rotmeldung --
und Rot, das immer da ist, wird ueberlesen. Dann faengt diese
Pruefung auch den Tag nicht mehr, an dem jemand einen Vergleich
auf den Rollennamen in eine ausgelieferte Datei schreibt. Genau
das ist am 10.09.2026 passiert und der Grund, warum es sie gibt.
GEPRUEFT WIRD DESHALB, WAS DAS PROGRAMM TUT UND WAS EIN MENSCH ZU
SEHEN BEKOMMT: Code, Zeichenketten, sichtbarer HTML-Text.
Kommentare werden vorher durch Leerzeichen ersetzt -- zeichengenau,
damit die Zeilennummer eines Fundes weiter stimmt.
Der Zerleger dafuer steht in helfer-ohne-kommentar.mjs. Er wird
unten mit dreizehn Proben gegengeprueft, und das ist nicht
Zierde: Ein Zerleger, der zu viel wegnimmt, macht diese ganze
Pruefung still gruen. */
const text = ohneKommentar(readFileSync(datei, "utf8"), extname(datei));
const zeilen = text.split("\n");
for (let i = 0; i < zeilen.length; i++) {
if (MUSTER.test(zeilen[i])) {
@@ -137,5 +201,62 @@ console.log("\n=== Gegenprobe: schlaegt die Suche ueberhaupt an? ===\n");
`und "modifiziert", "Modul", "motion", "Modus" schlagen nicht an`);
}
/* ---------- DIE ZWEITE GEGENPROBE: TAUGT DER ZERLEGER? --------------
Seit dem 21.09.2026 werden Kommentare vor der Suche entfernt. Das
ist die gefaehrlichste Zeile dieser Datei: Ein Zerleger, der zu viel
wegnimmt, macht die ganze Pruefung STILL GRUEN -- sie laeuft, sie
meldet "keine Fundstelle", und sie sieht nichts mehr.
Deshalb dreizehn Proben, und zwar in beide Richtungen. Sechs
muessen gefunden werden, sieben nicht. Faende der Zerleger gar
nichts mehr, fielen die sechs durch; naehme er nichts weg, die
sieben.
Zwei davon sind die Fallen, an denen ein einfacher Suchausdruck
zerbricht: eine Adresse mit Sternchen-Schraegstrich in einer
Zeichenkette, und ein Teilen, dem ein Zeilenkommentar folgt. */
console.log("\n=== Gegenprobe: taugt der Zerleger? ===\n");
{
const PROBEN = [
{ text: "// Modi hier", endung: ".js", soll: false, satz: "ein Zeilenkommentar zaehlt nicht" },
{ text: "/* Modi im Block */", endung: ".js", soll: false, satz: "ein Blockkommentar auch nicht" },
{ text: "const r = { modi: 1 };", endung: ".js", soll: true, satz: "ein Feldname im Code SCHON" },
{ text: "const s = \"Nur du und der Modi\";", endung: ".js", soll: true, satz: "und eine Zeichenkette auch" },
{ text: "const p = \"https://x.de/*nicht*/mehr/modi\";", endung: ".js", soll: true, satz: "eine Adresse mit Sternchen-Schraegstrich bleibt heil" },
{ text: "a = b / c; // Modi", endung: ".js", soll: false, satz: "ein Teilen verwirrt den Zerleger nicht" },
{ text: "x = `Hallo ${name} Modi`;", endung: ".js", soll: true, satz: "eine Vorlage zaehlt als Text" },
{ text: "/* Modi */ .k[data-rolle=\"modi\"] {}", endung: ".css", soll: true, satz: "in CSS: Kommentar weg, Auswahlregel bleibt" },
{ text: "<!-- Modi --><p>x</p>", endung: ".html", soll: false, satz: "ein HTML-Kommentar zaehlt nicht" },
{ text: "<p>Der Modi sieht das</p>", endung: ".html", soll: true, satz: "sichtbarer Text auf der Seite SCHON" },
{ text: "<script>/* Modi */ var a=1;</script>", endung: ".html", soll: false, satz: "ein Kommentar IM eingebetteten Skript auch nicht" },
{ text: "<script>var t=\"Modi\";</script>", endung: ".html", soll: true, satz: "eine Zeichenkette im eingebetteten Skript schon" },
{ text: "<style>/* Modi */ p{}</style>", endung: ".html", soll: false, satz: "und im eingebetteten Stil ebenso wenig" },
];
let richtig = 0;
for (const pr of PROBEN) {
const rest = ohneKommentar(pr.text, pr.endung);
const gefunden = MUSTER.test(rest);
if (gefunden === pr.soll) richtig++;
else ok(false, `${pr.satz} -- ABER die Probe lief falsch: ${JSON.stringify(pr.text)}`);
}
/* DIE ZAHL GEHOERT IN DIE BEDINGUNG. "alle richtig" waere auch bei
einer leeren Liste wahr. */
ok(richtig === PROBEN.length && PROBEN.length === 13,
`alle ${richtig} von ${PROBEN.length} Proben treffen zu`);
/* Und die Laenge bleibt gleich -- daran haengen die Zeilennummern,
mit denen ein Fund oben gemeldet wird. Waere sie es nicht, zeigte
die Meldung auf die falsche Zeile, und wer nachsieht, findet
nichts und glaubt der Pruefung nicht mehr. */
const roh = "var a = 1; /* Modi */\nvar b = 2; // Modi\nvar c = 3;";
const ohne = ohneKommentar(roh, ".js");
ok(ohne.length === roh.length,
`der Text bleibt zeichengenau gleich lang (${ohne.length} von ${roh.length})`);
ok(ohne.split("\n").length === roh.split("\n").length,
`und behaelt seine ${roh.split("\n").length} Zeilen`);
}
console.log(`\n${fehler ? "FEHLGESCHLAGEN" : "BESTANDEN"} -- ${geprueft} geprueft, ${fehler} Fehler`);
process.exit(fehler ? 1 : 0);
+7 -7
View File
@@ -129,7 +129,7 @@ const antwort = await holeLage(keksDogi);
ok(antwort.status === 200, `die Lage kommt (${antwort.status})`);
const roh = await antwort.text();
const lage = JSON.parse(roh);
const leute = lage.modis || [];
const leute = lage.leute || [];
/* =====================================================================
1. KOMMT KLARTEXT DURCH?
@@ -196,11 +196,11 @@ console.log("--- Die Grenze bei drei Stunden ---");
const idGrenze = anlegen("Grete", "modi", "CODE-MODI-0004");
termin(idGrenze, 179, 10);
const g1 = ((await (await holeLage(keksDogi)).json()).modis || []).find((m) => m.id === idGrenze);
const g1 = ((await (await holeLage(keksDogi)).json()).leute || []).find((m) => m.id === idGrenze);
ok(g1?.verfuegbar?.[0]?.ampel === "teils", `179 Minuten sind "teils" (${g1?.verfuegbar?.[0]?.ampel})`);
d.prepare("UPDATE termine SET dauer_min = 180 WHERE creator_id = ?").run(idGrenze);
const g2 = ((await (await holeLage(keksDogi)).json()).modis || []).find((m) => m.id === idGrenze);
const g2 = ((await (await holeLage(keksDogi)).json()).leute || []).find((m) => m.id === idGrenze);
ok(g2?.verfuegbar?.[0]?.ampel === "voll", `180 Minuten sind "voll" (${g2?.verfuegbar?.[0]?.ampel})`);
/* =====================================================================
@@ -218,7 +218,7 @@ for (const id of [idFrei, idTeils, idVoll, idGrenze]) {
const nachRegel = d.prepare(
`SELECT COUNT(*) AS n FROM termine t WHERE (${regel.wo}) AND date(t.beginn) = ?`)
.get(...regel.werte, heute)?.n || 0;
const lage2 = ((await (await holeLage(keksDogi)).json()).modis || []).find((m) => m.id === id);
const lage2 = ((await (await holeLage(keksDogi)).json()).leute || []).find((m) => m.id === id);
const nachAmpel = lage2?.verfuegbar?.[0]?.termine ?? -1;
if (nachRegel === nachAmpel) gleich++; else ungleich++;
}
@@ -234,7 +234,7 @@ console.log("--- Wer die Ampel sieht ---");
const handLage = await holeLage(keksHand);
ok(handLage.status === 200, `die rechte Hand sieht die Lage (${handLage.status})`);
const handRoh = await handLage.text();
ok(JSON.parse(handRoh).modis?.[0]?.verfuegbar?.length === 7,
ok(JSON.parse(handRoh).leute?.[0]?.verfuegbar?.length === 7,
"und die Ampel gehoert dazu -- sie koordiniert das Team");
for (const wort of GEHEIM) {
ok(!handRoh.includes(wort), `auch bei ihr steht "${wort.slice(0, 18)}…" nicht drin`);
@@ -251,12 +251,12 @@ console.log("");
console.log("--- Gegenprobe: ein Termin veraendert die Farbe ---");
termin(idFrei, 300, 9);
const nachher = ((await (await holeLage(keksDogi)).json()).modis || []).find((m) => m.id === idFrei);
const nachher = ((await (await holeLage(keksDogi)).json()).leute || []).find((m) => m.id === idFrei);
ok(nachher?.verfuegbar?.[0]?.ampel === "voll",
`aus "frei" wird "voll" (${nachher?.verfuegbar?.[0]?.ampel})`);
d.prepare("DELETE FROM termine WHERE creator_id = ?").run(idFrei);
const zurueck = ((await (await holeLage(keksDogi)).json()).modis || []).find((m) => m.id === idFrei);
const zurueck = ((await (await holeLage(keksDogi)).json()).leute || []).find((m) => m.id === idFrei);
ok(zurueck?.verfuegbar?.[0]?.ampel === "frei",
`und zurueckgenommen wieder "frei" (${zurueck?.verfuegbar?.[0]?.ampel})`);
+3 -3
View File
@@ -118,7 +118,7 @@ console.log("--- Die Mitglieder-Kachel (Kapitel 4) ---");
const a1 = await holeLage(keksDogi);
ok(a1.status === 200, `DogFather bekommt die Lage (${a1.status})`);
const lage = await a1.json();
const leute = lage.modis || [];
const leute = lage.leute || [];
/* SEIT DEM 11.09.2026 GEHOERT DIE RECHTE HAND DAZU.
@@ -236,7 +236,7 @@ console.log("");
console.log("--- Beim naechsten Laden ---");
const a2 = await holeLage(keksDogi);
const marina2 = ((await a2.json()).modis || []).find((m) => m.id === idMarina);
const marina2 = ((await a2.json()).leute || []).find((m) => m.id === idMarina);
ok(marina2?.stufe === "senior", `die neue Stufe kommt zurueck (${marina2?.stufe})`);
const inDb = d.prepare("SELECT stufe FROM personen WHERE id = ?").get(idMarina);
ok(inDb?.stufe === "senior", `und steht in der Datenbank (${inDb?.stufe})`);
@@ -261,7 +261,7 @@ console.log("--- Gegenprobe: wieder zurueck ---");
const zurueck = await setzeStufe(keksDogi, idMarina, "standard");
ok(zurueck.status === 200, `zurueckstufen geht (${zurueck.status})`);
const a3 = await holeLage(keksDogi);
const marina3 = ((await a3.json()).modis || []).find((m) => m.id === idMarina);
const marina3 = ((await a3.json()).leute || []).find((m) => m.id === idMarina);
ok(marina3?.stufe === "standard",
`und die Anzeige folgt (${marina3?.stufe}) -- sie bleibt also nicht auf "senior" stehen`);
+34
View File
@@ -509,6 +509,40 @@ melde("=== 10. Die Liste ===");
`alphabetisch (${namen.join(", ")})`);
ok(/kein vergleich/i.test(l.hinweis || ""),
"und die Seite sagt selbst, dass sie niemanden vergleicht");
/* DER SATZ UEBER EINER GRUPPE KOMMT VOM SERVER (neu am 21.09.2026).
Er stand bis dahin als Liste in werdegang.js -- also in einer
Datei, die jeder im Netz ohne Anmeldung herunterladen kann, mit
den Rollennamen als Schluessel. Verschoben wurde er, weil
Rollennamen der Community dort nicht hingehoeren.
WARUM DAS HIER GEMESSEN WIRD: Beim Verschieben kann man eine
Erklaerung leicht ganz verlieren -- die Oberflaeche zeigt dann
einfach keine Zeile mehr, ohne Fehlermeldung. Eine Gruppe mit
Ueberschrift und ohne Erklaerung sieht nicht kaputt aus, sie sieht
nur aermer aus. Genau solche Verluste faellt niemandem auf. */
const mitSatz = l.liste.filter((p) => p.rolle_satz && p.rolle_satz.length > 10);
ok(mitSatz.length === l.liste.length,
`jede Karte bringt den Satz ihrer Gruppe mit (${mitSatz.length} von ${l.liste.length})`);
/* GEGENPROBE: Er darf nicht fuer alle derselbe sein -- sonst haette
das Verschieben aus zwei Saetzen einen gemacht, und die Pruefung
darueber waere trotzdem gruen. */
const verschieden = new Set(l.liste.map((p) => p.rolle_satz)).size;
ok(verschieden === new Set(l.liste.map((p) => p.rolle)).size,
`und jede Rolle hat ihren eigenen (${verschieden} Saetze auf `
+ `${new Set(l.liste.map((p) => p.rolle)).size} Rollen)`);
/* UND DIE OBERFLAECHE DARF IHN NICHT MEHR SELBST KENNEN. Bliebe die
alte Liste dort stehen, waere nichts gewonnen -- der Rollenname
stuende weiter in einer ausgelieferten Datei, und beide Fassungen
wuerden auseinanderlaufen. */
const { readFileSync } = await import("node:fs");
const vorne = readFileSync(
new URL("../workspace/assets/js/werdegang.js", import.meta.url), "utf8");
ok(!/GRUPPENSATZ\s*=/.test(vorne),
"und die Oberflaeche fuehrt keine eigene Liste mehr");
}
/* =======================================================================
+14 -2
View File
@@ -195,7 +195,7 @@ teamlageRouter.get("/workspace/api/teamlage", (req, res) => {
/* `eingang` auch hier -- die Oberflaeche darf nicht raten
muessen, ob das Feld fehlt oder leer ist. */
return res.json({
modis: [], eingang: [], angebote: [], bereiche: GESAMT, heute: heuteLokal(),
leute: [], eingang: [], angebote: [], bereiche: GESAMT, heute: heuteLokal(),
});
}
const platz = modis.map(() => "?").join(",");
@@ -378,7 +378,19 @@ teamlageRouter.get("/workspace/api/teamlage", (req, res) => {
undefined", weil eine Rolle in der Browser-Liste vergessen
worden war. Einmal geschrieben, einmal geaendert. */
stufen: STUFEN.map((wert) => ({ wert, name: STUFEN_NAME[wert] })),
modis: modis.map((m) => {
/* DER SCHLUESSEL HEISST "leute" UND NICHT MEHR NACH DER ROLLE
(21.09.2026).
Die Oberflaeche liest ihn in teamlage.js -- also in einer
Datei, die jeder im Netz ohne Anmeldung herunterladen kann.
Damit stand der Rollenname der Community dort im CODE, nicht
nur in einem Kommentar. Filipes Regel vom selben Tag: in
Kommentaren ja, in Code und sichtbaren Texten nein.
Die oertliche Variable darunter heisst weiter `modis` -- sie
verlaesst diese Datei nie. Umbenannt wurde genau das, was
ueber die Leitung geht. */
leute: modis.map((m) => {
const s = stand.get(m.id) || {};
const je = {};
for (const [b, gesamt] of Object.entries(GESAMT)) {
+29
View File
@@ -124,6 +124,22 @@ import {
VERBLASST_NACH_TAGEN, tabellen as entwicklungTabellen,
} from "./workspace-entwicklung.js";
/* WAS UEBER EINER GRUPPE STEHT (hierher geholt am 21.09.2026).
Vorher stand das in werdegang.js, also in einer ausgelieferten
Datei. Hier steht es richtig: Der Server schickt jeder Person ihren
Satz mit, und wer die Rolle nicht sehen darf, bekommt die Person
ohnehin nicht.
NUR ZWEI EINTRAEGE, UND DAS IST ABSICHT. Manager, Scouts und
Creator stehen im Werdegang unter ihrem Namen, ohne Erklaerung --
dort ist die Ueberschrift selbsterklaerend. Ein Satz um des Satzes
willen waere Fuellung. */
const ROLLEN_SATZ = {
hand: "Koordiniert den Alltag und schaut mit dir zusammen auf das Team.",
modi: "Die Leute, die im Chat und im Live stehen.",
};
export const werdegangRouter = express.Router();
const TAG = 86400000;
@@ -626,6 +642,19 @@ werdegangRouter.get("/workspace/api/werdegang/liste", nurLeitung, (req, res) =>
nächsten Umbenennen auseinanderfällt. */
rolle: p.rolle,
rolle_name: ROLLEN_NAME[p.rolle] ?? p.rolle,
/* DER SATZ UNTER DER UEBERSCHRIFT (21.09.2026).
Er stand bis heute in werdegang.js -- also in einer Datei,
die JEDER herunterlaedt, der den Arbeitsplatz oeffnet. Mit
den Rollennamen als Schluessel, und einer davon gehoert der
Community. Dieselbe Ueberlegung wie bei ROLLENTEXT in
start.js: Was einen Rollennamen traegt, kommt vom Server.
EIN FEHLENDER SATZ IST EIN GUELTIGER ZUSTAND. Nicht jede
Rolle braucht eine Erklaerung, und ein erfundener Satz waere
schlechter als keiner -- die Oberflaeche laesst die Zeile
dann einfach weg. */
rolle_satz: ROLLEN_SATZ[p.rolle] ?? null,
gesetzt: stand.length,
gesamt: ENTWICKLUNG_FREMD.length,
bewegt: bewegung.reduce((s, m) => s + m.vor + m.zurueck + m.neu + m.geklaert, 0),
+4 -4
View File
@@ -16,15 +16,15 @@
verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
WARUM das Telefon nicht klingelt, ist das besonders unpassend. -->
<link rel="manifest" href="/workspace/crew.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<style>
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
@@ -125,6 +125,6 @@
</main>
␍
<script src="assets/js/anruf-probe.js?v=202609211206" defer></script>
<script src="assets/js/anruf-probe.js?v=202609211259" defer></script>
</body>
</html>
+4 -4
View File
@@ -22,25 +22,25 @@
},
"icons": [
{
"src": "/assets/img/app-symbole/workspace-192.png?v=202609211206",
"src": "/assets/img/app-symbole/workspace-192.png?v=202609211259",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/workspace-512.png?v=202609211206",
"src": "/assets/img/app-symbole/workspace-512.png?v=202609211259",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609211206",
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609211259",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609211206",
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609211259",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
+18 -2
View File
@@ -5,9 +5,25 @@
dogi seite soll lila werden. richtig geiles lila und babyblau
mischung überall."
Diese Datei wird NUR auf crew.dogfather-universe.com ausgeliefert.
Diese Datei wird nur auf der zweiten Adresse ausgeliefert.
`crewWeiche()` biegt dafuer `haus.css` hierher um; auf der
Agenturadresse kommt weiterhin die leere Fassung an. Beide Haeuser
Agenturadresse kommt weiterhin die leere Fassung an.
BIS ZUM 21.09.2026 WAR DAS EINE BEHAUPTUNG UND KEINE TATSACHE.
Nachgemessen: 27 806 Byte, HTTP 200, von der Agenturadresse, ohne
jede Anmeldung -- jeder im Netz konnte diese Datei herunterladen.
Die Weiche biegt `haus.css` auf diesen Namen um; wer den Namen
direkt nannte, ging an ihr vorbei. Ein Kommentar, der eine Absicht
beschreibt, erfuellt sie nicht.
Seitdem steht sie in der Tafel GEHOERT_ZU_ADRESSE (crew-adresse.js)
-- dem Ort, an dem dieselbe Frage fuer die Zugangswand schon
beantwortet wird, und an dem sie auch durchgesetzt wird. Die interne
Umbiegung bleibt unberuehrt: Die Tafel wird oben in crewWeiche()
gefragt, die Umbiegung passiert weiter unten.
Nachgeprueft in pruef-crew-adresse, in beide Richtungen: Sie kommt
hier an, und auf der Agenturadresse gibt es sie beim Namen nicht. Beide Haeuser
liegen damit im selben Programm, auf denselben Daten -- und sehen
trotzdem nicht mehr wie dasselbe aus.
+14 -2
View File
@@ -2357,7 +2357,7 @@ body.gate {
color: #a9dcff;
text-shadow: 0 1px 10px rgba(99, 184, 238, .45);
}
/* TEAM DOGI (10.09.2026, nur auf crew.dogfather-universe.com).
/* TEAM DOGI (10.09.2026, nur auf der zweiten Zugangswand).
Bewusst NICHT .marke__spicy mitbenutzt, obwohl es dieselbe Stelle im
Satz ist: Die Klasse ist rosarot, weil dort "SpicyMedia" steht. Auf
@@ -2799,10 +2799,22 @@ body.gate {
/* =====================================================================
DIE ZWEITE ZUGANGSWAND (10.09.2026)
Nur crew-index.html traegt `gate--crew`. Hier stehen die wenigen
Nur die zweite Wand traegt `gate--crew`. Hier stehen die wenigen
Stellen, an denen die gemeinsame Gestaltung nicht passt -- und zwar
NUR die.
WARUM HIER WEDER IHRE ADRESSE NOCH IHR DATEINAME STEHT (21.09.2026):
Diese Stilvorlage wird von BEIDEN Adressen ausgeliefert, und zwar
ohne Anmeldung -- jeder im Netz kann sie herunterladen und lesen.
Bis heute stand die Adresse der zweiten Wand hier im Klartext. Das
war die eigentliche Auskunft: Die Rollennamen stehen auf jener Wand
ohnehin offen, WO sie liegt dagegen nicht.
Der Dateiname der Wand steht seit demselben Tag in der Tafel
GEHOERT_ZU_ADRESSE (crew-adresse.js) -- dort gehoert er hin, denn
dort wird er auch durchgesetzt. Hier waere er nur eine Notiz, die
jeder mitliest.
ES GEHT NICHT UM GESCHMACK, SONDERN UM DAS BILD DAHINTER.
Die Karte holt sich absichtlich die Farben des gemalten Rahmens
herein: rot oben links, blau unten rechts, "das, was die Karte mit
+8 -1
View File
@@ -306,9 +306,16 @@
/* =====================================================================
DIE ALTERSFRAGE ERSCHEINT MIT DER COMMUNITY-KACHEL (15.09.2026)
Sie steht in crew-index.html und nirgends sonst -- auf der
Sie steht auf der zweiten Zugangswand und nirgends sonst -- auf der
Agenturwand gibt es sie gar nicht. Deshalb hier ueberall mit „?.“:
Diese Datei laeuft auf beiden Waenden.
UND DESHALB STEHT HIER AUCH KEIN DATEINAME (21.09.2026): "Diese
Datei laeuft auf beiden Waenden" heisst, dass sie von beiden
Adressen ausgeliefert wird -- ohne Anmeldung, fuer jeden im Netz
lesbar. Ein Kommentar darin ist keine interne Notiz, sondern
Veroeffentlichung. Wo welche Wand zuhause ist, steht in
crew-adresse.js; dort wird es auch durchgesetzt.
===================================================================== */
(() => {
const alterFrage = document.getElementById('alterfrage');
+9 -2
View File
@@ -110,8 +110,15 @@
$('seiten-unter').textContent =
'Was die Community vertraulich gemeldet hat. Du siehst den Namen; sonst niemand.';
$('vertrauen-text').textContent =
'Diese Meldungen sehen nur du und die rechte Hand. Weder Modis noch '
+ 'andere Mitglieder haben Zugriff — auch nicht auf die Namen.';
/* „die Moderation“ statt des Rollennamens (21.09.2026).
Dieser Satz steht in einer Datei, die jeder im Netz ohne
Anmeldung herunterladen kann. Die Aussage bleibt dieselbe
-- und fuer jemanden, der neu im Treff ist, sogar klarer:
„die Moderation“ erklaert sich selbst, ein Rollenname
muss erst gelernt werden. */
'Diese Meldungen sehen nur du und die rechte Hand. Weder die '
+ 'Moderation noch andere Mitglieder haben Zugriff — auch nicht '
+ 'auf die Namen.';
}
const faelle = d.faelle || [];
+21 -3
View File
@@ -94,8 +94,26 @@
vergisst man eine.
`rolle` kam bis heute gar nicht erst mit -- die Abfrage im
Server las sie nicht einmal. */
k.dataset.rolle = m.rolle || 'modi';
Server las sie nicht einmal.
KEIN RUECKFALL AUF EINEN ROLLENNAMEN (21.09.2026). Hier stand
`m.rolle || 'modi'`. Der Rueckfall war doppelt daneben:
(1) Er stand in einer Datei, die JEDER herunterlaedt, der den
Arbeitsplatz oeffnet -- auch jeder Manager, Scout und
Creator auf der Agenturadresse, und zwar OHNE Anmeldung.
Rollennamen der Community gehoeren dort nicht hin; darueber
wacht eine eigene Pruefung im Serverordner.
(2) Er hat nie etwas bewirkt. Nachgemessen: Die Stilvorlage
kennt zu dieser Karte nur `[data-rolle="hand"]`. Fuer jeden
anderen Wert sieht sie gleich aus -- ob dort ein Rollenname
steht oder nichts.
Der Server liefert `rolle` seit dem 20.09. immer mit (die
Abfrage holt sie, und sie ist auf zwei Werte begrenzt). Fehlt
sie doch einmal, bleibt das Merkmal weg statt falsch. */
if (m.rolle) k.dataset.rolle = m.rolle;
const kopf = el('div', 'tperson__kopf');
/* DAS BILD BEKOMMT SEINE KLASSE -- UND DAS WAR EIN ECHTER FEHLER.
@@ -546,7 +564,7 @@
ziel.textContent = '';
ziel.setAttribute('aria-busy', 'false');
const leute = daten.modis || [];
const leute = daten.leute || [];
const offenGesamt = leute.reduce((s, m) =>
s + Object.values(m.bereiche).reduce((x, b) => x + b.offen, 0), 0);
/* Eine leere Seite ohne Erklaerung sieht aus wie ein Fehler --
+22 -8
View File
@@ -360,12 +360,26 @@
meisten Bewegung nach oben stellt, ist eine Rangliste mit einem
anderen Namen. Der Server sortiert nach Namen, und dabei bleibt es.
===================================================================== */
/* Was über einer Gruppe steht. Aus der Rolle abgeleitet, nicht
abgeschrieben -- der Rollenname kommt vom Server. */
const GRUPPENSATZ = {
hand: 'Koordiniert den Alltag und schaut mit dir zusammen auf das Team.',
modi: 'Die Leute, die im Chat und im Live stehen.',
};
/* DER SATZ ÜBER EINER GRUPPE KOMMT VOM SERVER (21.09.2026).
Hier stand er als Liste im Quelltext -- mit den Rollennamen als
Schlüssel. Der Kommentar daneben behauptete sogar, er sei
"abgeleitet, nicht abgeschrieben"; das stimmte für den NAMEN
daneben, nicht für diese Liste.
ZWEI GRÜNDE, WARUM ER JETZT VOM SERVER KOMMT:
(1) Diese Datei lädt JEDER herunter, der den Arbeitsplatz öffnet
-- auch jeder Manager, Scout und Creator auf
der Agenturadresse, und zwar OHNE Anmeldung. Rollennamen der
Community gehören dort nicht hin; darüber wacht eine eigene
Prüfung im Serverordner. Dieselbe Entscheidung wie bei
ROLLENTEXT in start.js.
(2) Es wäre die zweite Liste gewesen. Kommt eine Rolle dazu,
schickt der Server ihren Namen von selbst mit -- ihr Satz
hätte hier nachgetragen werden müssen, und genau so entstehen
Gruppen mit Überschrift und ohne Erklärung. */
function listeBauen(d) {
const wurzel = el('div', 'w-liste');
@@ -394,8 +408,8 @@
const kopf = el('div', 'w-gruppe');
kopf.dataset.rolle = p.rolle;
kopf.append(el('h3', 'w-gruppe__name', p.rolle_name));
if (GRUPPENSATZ[p.rolle]) {
kopf.append(el('p', 'w-gruppe__satz', GRUPPENSATZ[p.rolle]));
if (p.rolle_satz) {
kopf.append(el('p', 'w-gruppe__satz', p.rolle_satz));
}
wurzel.append(kopf);
gitter = el('div', 'w-liste__gitter');
+15 -15
View File
@@ -12,19 +12,19 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -291,14 +291,14 @@
</form>
</dialog>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/hochladen.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/hochladen.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/aufgaben.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/aufgaben.js?v=202609211259" defer></script>
</body>
</html>
+15 -15
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -168,13 +168,13 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>␍
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>␍
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/automation.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/automation.js?v=202609211259" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -160,13 +160,13 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/befinden.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/befinden.js?v=202609211259" defer></script>
</body>
</html>
+19 -19
View File
@@ -12,24 +12,24 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609211259" />
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
Stelle, an der dieselbe Sache anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -277,16 +277,16 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/checkliste.js?v=202609211206" defer></script>
<script src="assets/js/ampel.js?v=202609211206" defer></script>
<script src="assets/js/schulung.js?v=202609211206" defer></script>
<script src="assets/js/bereich.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/checkliste.js?v=202609211259" defer></script>
<script src="assets/js/ampel.js?v=202609211259" defer></script>
<script src="assets/js/schulung.js?v=202609211259" defer></script>
<script src="assets/js/bereich.js?v=202609211259" defer></script>
</body>
</html>
+17 -17
View File
@@ -7,17 +7,17 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -108,12 +108,12 @@
</main>
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/auskunft.js?v=202609211206" defer></script>
<script src="assets/js/bewerben.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/auskunft.js?v=202609211259" defer></script>
<script src="assets/js/bewerben.js?v=202609211259" defer></script>
</body>
</html>
+16 -16
View File
@@ -7,16 +7,16 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -80,13 +80,13 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/auskunft.js?v=202609211206" defer></script>
<script src="assets/js/bewerbungen.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/auskunft.js?v=202609211259" defer></script>
<script src="assets/js/bewerbungen.js?v=202609211259" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -89,14 +89,14 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/ki.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/calls.js?v=202609211206" defer></script>
<script src="assets/js/ki.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/calls.js?v=202609211259" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,26 +12,26 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
Dialog zu sehen bekam. -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -414,18 +414,18 @@
</form>
</dialog>
<script src="assets/js/bereiche.js?v=202609211206"></script>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/hochladen.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206"></script>
<script src="assets/js/glocke.js?v=202609211206"></script>
<script src="assets/js/bereiche.js?v=202609211259"></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/hochladen.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259"></script>
<script src="assets/js/glocke.js?v=202609211259"></script>
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
die Knoepfe fehlten, und niemand wuesste warum. -->
<script src="assets/js/anruf.js?v=202609211206"></script>
<script src="assets/js/chat.js?v=202609211206"></script>
<script src="assets/js/anruf.js?v=202609211259"></script>
<script src="assets/js/chat.js?v=202609211259"></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/content.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/content.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -179,14 +179,14 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/checkliste.js?v=202609211206" defer></script>
<script src="assets/js/content.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/checkliste.js?v=202609211259" defer></script>
<script src="assets/js/content.js?v=202609211259" defer></script>
</body>
</html>
+5 -5
View File
@@ -36,15 +36,15 @@
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
die eine Seite, auf der man das Umfaerben sieht. -->
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609211259" />
</head>
<body class="gate gate--crew">
@@ -358,6 +358,6 @@
<script src="assets/js/gate.js?v=202609211206" defer></script>
<script src="assets/js/gate.js?v=202609211259" defer></script>
</body>
</html>
+4 -4
View File
@@ -22,25 +22,25 @@
},
"icons": [
{
"src": "/assets/img/app-symbole/crew-192.png?v=202609211206",
"src": "/assets/img/app-symbole/crew-192.png?v=202609211259",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/crew-512.png?v=202609211206",
"src": "/assets/img/app-symbole/crew-512.png?v=202609211259",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609211206",
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609211259",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609211206",
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609211259",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -108,14 +108,14 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/hochladen.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/hochladen.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/dateien.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/dateien.js?v=202609211259" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -106,12 +106,12 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/entwicklung.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/entwicklung.js?v=202609211259" defer></script>
</body>
</html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -72,8 +72,8 @@
</span>
<p class="vertrauen__text" id="vertrauen-text">
<strong>DogFather und die rechte Hand lesen mit – sonst niemand.</strong>
Sie sehen auch deinen Namen. Kein anderes Mitglied und kein Modi
bekommt diese Meldungen zu Gesicht.
Sie sehen auch deinen Namen. Kein anderes Mitglied und niemand aus
der Moderation bekommt diese Meldungen zu Gesicht.
</p>
</div>
@@ -146,12 +146,12 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/hilfe.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/hilfe.js?v=202609211259" defer></script>
</body>
</html>
+4 -4
View File
@@ -30,9 +30,9 @@
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
</head>
<body class="gate">
@@ -411,6 +411,6 @@
</div>
<script src="assets/js/gate.js?v=202609211206" defer></script>
<script src="assets/js/gate.js?v=202609211259" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -383,14 +383,14 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/kalender.js?v=202609211206" defer></script>
<script src="assets/js/kalender-abo.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/kalender.js?v=202609211259" defer></script>
<script src="assets/js/kalender-abo.js?v=202609211259" defer></script>
</body>
</html>
+15 -15
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -444,12 +444,12 @@
</form>
</dialog>
<script src="assets/js/meldung.js?v=202609211206"></script>
<script src="assets/js/nachfrage.js?v=202609211206"></script>
<script src="assets/js/wahl.js?v=202609211206"></script>
<script src="assets/js/bereiche.js?v=202609211206"></script>
<script src="assets/js/kopf.js?v=202609211206"></script>
<script src="assets/js/glocke.js?v=202609211206"></script>
<script src="assets/js/leistung.js?v=202609211206"></script>
<script src="assets/js/meldung.js?v=202609211259"></script>
<script src="assets/js/nachfrage.js?v=202609211259"></script>
<script src="assets/js/wahl.js?v=202609211259"></script>
<script src="assets/js/bereiche.js?v=202609211259"></script>
<script src="assets/js/kopf.js?v=202609211259"></script>
<script src="assets/js/glocke.js?v=202609211259"></script>
<script src="assets/js/leistung.js?v=202609211259"></script>
</body>
</html>
+15 -15
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -453,13 +453,13 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/personen.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/personen.js?v=202609211259" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -214,15 +214,15 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/hochladen.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/hochladen.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/steckbrief.js?v=202609211206" defer></script>
<script src="assets/js/profil.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/steckbrief.js?v=202609211259" defer></script>
<script src="assets/js/profil.js?v=202609211259" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -134,11 +134,11 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/rechte.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/rechte.js?v=202609211259" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/report.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/report.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -106,14 +106,14 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/ki.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/report.js?v=202609211206" defer></script>
<script src="assets/js/ki.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/report.js?v=202609211259" defer></script>
</body>
</html>
+15 -15
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -173,13 +173,13 @@
</div>
</div>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/scouting.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/scouting.js?v=202609211259" defer></script>
</body>
</html>
+14 -14
View File
@@ -12,21 +12,21 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
<link rel="stylesheet" href="assets/css/heim.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/heim.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -678,13 +678,13 @@
</p>
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/start.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/start.js?v=202609211259" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -85,14 +85,14 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/ki.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/startcheck.js?v=202609211206" defer></script>
<script src="assets/js/ki.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/startcheck.js?v=202609211259" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -150,15 +150,15 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/hochladen.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/hochladen.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/auskunft.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/steckbrief.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/auskunft.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/steckbrief.js?v=202609211259" defer></script>
</body>
</html>
+15 -15
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211259" />
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
der Regel hier waere die zweite Stelle, an der dieselbe Sache
anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -111,12 +111,12 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/talente.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/talente.js?v=202609211259" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/team.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/team.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -110,12 +110,12 @@
</main>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/team.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/team.js?v=202609211259" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/team.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/team.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu
@@ -84,11 +84,11 @@
Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt
es niemandem auf, und deshalb prueft pruef-css-klassen die
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/teamlage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/teamlage.js?v=202609211259" defer></script>
</body>
</html>
+13 -13
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -112,12 +112,12 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/teilen.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/teilen.js?v=202609211259" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -126,12 +126,12 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/treff-moderation.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/treff-moderation.js?v=202609211259" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
Treffs biegt der Server genau diesen Dateinamen auf crew-haus.css
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -221,11 +221,11 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/auskunft.js?v=202609211206" defer></script>
<script src="assets/js/treff-regeln.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/auskunft.js?v=202609211259" defer></script>
<script src="assets/js/treff-regeln.js?v=202609211259" defer></script>
</body>
</html>
+15 -15
View File
@@ -12,22 +12,22 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
Dialog "Creator anlegen". -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -149,14 +149,14 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/uebersicht.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/uebersicht.js?v=202609211259" defer></script>
</body>
</html>
+12 -12
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -335,11 +335,11 @@
</main>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/unsere-seiten.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/unsere-seiten.js?v=202609211259" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,15 +7,15 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -144,11 +144,11 @@
</main>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/werdegang.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/werdegang.js?v=202609211259" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211206" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211206" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211206" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609211259" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211259" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609211259" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211259" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609211206" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211259" />
</head>
<body class="start">
@@ -190,14 +190,14 @@
</main>
<script src="assets/js/meldung.js?v=202609211206" defer></script>
<script src="assets/js/hochladen.js?v=202609211206" defer></script>
<script src="assets/js/nachfrage.js?v=202609211206" defer></script>
<script src="assets/js/meldung.js?v=202609211259" defer></script>
<script src="assets/js/hochladen.js?v=202609211259" defer></script>
<script src="assets/js/nachfrage.js?v=202609211259" defer></script>
<script src="assets/js/wahl.js?v=202609211206" defer></script>
<script src="assets/js/bereiche.js?v=202609211206" defer></script>
<script src="assets/js/kopf.js?v=202609211206" defer></script>
<script src="assets/js/glocke.js?v=202609211206" defer></script>
<script src="assets/js/wissen.js?v=202609211206" defer></script>
<script src="assets/js/wahl.js?v=202609211259" defer></script>
<script src="assets/js/bereiche.js?v=202609211259" defer></script>
<script src="assets/js/kopf.js?v=202609211259" defer></script>
<script src="assets/js/glocke.js?v=202609211259" defer></script>
<script src="assets/js/wissen.js?v=202609211259" defer></script>
</body>
</html>