Drei Fächer, Gesichter, Zeichen an jedem Handgriff -- der Chat ist nicht wiederzuerkennen

Filipe: "ich will 3 kategorien haben. chats mit einzelnen personen,
gruppen chats und kanäle." Und: "ich will dass du überhaupt die
komplette kachel veränderst, ich will dass alles anderst aussieht und
gestaltet ist, mach wirklich was verrücktes und übertrieben krank
geiles ... dass die ganze community und team morgen total überrascht
sind und den chat nicht wieder erkennen."

DIE LISTE HAT DREI FÄCHER. Personen, Gruppen, Kanäle -- als Mulde mit
drei Schaltern über dem Suchfeld, nicht als drei freie Knöpfe: Drei
Dinge, die einander ausschließen, liest man nur als EINE Entscheidung,
wenn sie in einer gemeinsamen Fassung sitzen. Das gewählte Fach liegt
oben auf (Licht, Schatten, Akzentsaum), die anderen liegen darin -- man
sieht die Wahl an der Tiefe, nicht nur an der Farbe. Die Wahl überlebt
das Neuladen; beim Suchen gilt sie nicht, wer einen Namen tippt will
ihn finden und nicht raten, in welchem Fach er liegt.

WAS EIN GESCHLOSSENES FACH NICHT VERSCHLUCKEN DARF: die Ungelesenen und
den Ruf. Beides steht deshalb AM Fach -- die Zahl in der Warnfarbe, das
@ in der Akzentfarbe. Gefunden hat die Lücke nicht ein Blick, sondern
pruef-erwaehnung: Die Erwähnung lag in einer Gruppe, offen war
"Personen", und das @ war damit nirgends zu sehen.

EIN LEERES FACH MERKT MAN SICH NICHT. Wer nur einen Kanal hat -- jeder
Neue im Haus -- landete auf "Personen" und sah eine leere Liste neben
einem vollen Kanal. Beim ersten Zeichnen wird deshalb ins erste Fach
gewechselt, in dem etwas steht; Reihenfolge: gerufen, dann ungelesen,
dann überhaupt vorhanden. Gespeichert wird das NICHT -- es ist geraten,
nicht gewählt. Gefunden von pruef-gifs.

EIN GESICHT IM KOPF DES GESPRÄCHS. Links in der Liste trägt jedes
Gespräch sein Zeichen, und ausgerechnet beim Öffnen verschwand es. Es
ist dasselbe Zeichen, nicht ein ähnliches: `zeichenFuellen()` füllt jetzt
Liste und Kopf -- rund fünfzig Zeilen standen vorher mitten im Zeichnen
und hätten sonst ein zweites Mal dagestanden. Am Handy bleibt es weg,
nachgerechnet: mit ihm blieben dem Namen 126 px bei 128 Untergrenze, die
Knopfreihe fiele eine Zeile tiefer.

JEDER HANDGRIFF BEKOMMT SEIN ZEICHEN. Unter jeder Blase standen fünf
Wörter in Versalien -- bei zwölf Nachrichten sechzig. Jetzt Pfeil,
Gesicht, Papierkorb, Nadel und zwei Blätter, das Wort klein daneben.
Die Wörter bleiben: "anheften" und "lösen" sehen als Nadel gleich aus,
und "löschen (Notfall)" darf nie ein Rätsel sein. Breiter wird es
trotzdem nicht -- gesperrte Versalien kosten rund ein Viertel mehr
Breite, genau das, was die Zeichen brauchen. Die Zeichen sind Masken:
sie folgen `currentColor` und damit jedem Zustand der Schrift daneben.

AUS DER FUSSZEILE WIRD EINE MULDE, und der Grund wird dabei dunkler,
nie heller -- das ist die Bedingung dafür, dass die Kontrastzusage
gültig bleibt. Die Uhrzeit bekommt ein eigenes Schild: eine Angabe,
keine Bedienung.

AUS DEM FARBFLECK WIRD EIN RING. Der Knopf für die eigene Kachel war
ein voller Kreis in der gewählten Farbe, direkt neben einer gleich
großen Marke -- man las ihn als Meldung, und er meldet nichts. Farbe
erscheint auf dieser Seite überall als Kontur; jetzt auch hier.

AUS DEM TOTEN TRENNER WIRD LICHT. Die senkrechte Linie am Verlauf
stammte aus der Zeit, als Liste und Verlauf EIN Kasten waren; seit dem
Umbau auf zwei Tafeln klebte sie ohne Aufgabe an der Kante. An ihrer
Stelle ein sehr weicher Schein oben rechts, unter vier Prozent Deckung
-- Tiefe, kein Leuchten.

DIE KONSOLE: Das Schreibfeld ist eine Rinne statt eines flachen
Kastens, die vier Werkzeuge sprechen dieselbe Sprache, und der
Absendeknopf ist als einziger gefüllt. Keine Maßzahl angefasst -- die
Zeile ist seit dem 23.09. auf den Pixel voll.

ZWEI PRÜFUNGEN WURDEN GENAUER, NICHT NACHSICHTIGER:

  pruef-chatkachel suchte ihre "freie Stelle" nicht, sie rechnete sie
  aus -- 6 px vom rechten Rand, halbe Höhe. Das lag mal auf dem
  Rollbalken, mal auf einer Blase, und meldete beides Mal "das
  Bühnenbild ist gar nicht da". Sie sucht die Stelle jetzt mit
  `elementFromPoint` und sagt es, wenn es keine gibt.

  pruef-erwaehnung prüft jetzt beides: dass das Fach den Ruf meldet,
  ohne geöffnet zu werden, UND dass die Zeile nach dem Wechsel dasteht
  -- mit der Gegenprobe, dass das Fach wirklich filtert. 126 -> 129.

Nachgebessert: die Ungelesen-Marke am Fach stand auf 0,64 rem = 10,24 px,
unter der Hausgrenze von 11,5. Gemeldet von pruef-css-klassen, bevor es
jemand auf einem Telefon sehen musste -- der zweite Anlauf desselben
Reflexes an einem Tag.

Geprüft: pruef-chat-optik, pruef-chatkachel (40), pruef-chat (ALLES IN
ORDNUNG), pruef-chat-neu (32), pruef-chat-ausbau (64),
pruef-chat-kanaele (81), pruef-chat-aufloesen (126),
pruef-chat-anhaenge (109), pruef-erwaehnung (129), pruef-css-klassen,
pruef-tippziele (11), pruef-lesbarkeit. pruef-gifs hat weiterhin die
zwei Fehler, die schon vor diesem Umbau da waren (an HEAD nachgemessen).

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-25 02:25:06 +02:00
co-authored by Claude Opus 5
parent d47ccf0d5f
commit 24f9be8e4f
45 changed files with 1608 additions and 725 deletions
+61 -4
View File
@@ -475,12 +475,69 @@ try {
/* Mitten in der Kachel -- nicht am Rand, dort liegen Kante und /* Mitten in der Kachel -- nicht am Rand, dort liegen Kante und
abgerundete Ecke. */ abgerundete Ecke. */
kachel: { x: Math.round(rb.left + rb.width / 2), y: Math.round(rb.top + rb.height / 2) }, kachel: { x: Math.round(rb.left + rb.width / 2), y: Math.round(rb.top + rb.height / 2) },
/* Und ein Fleck im Verlauf, auf dem sicher keine Kachel liegt: /* Die freie Stelle steht weiter unten -- sie wird GESUCHT. */
ganz rechts aussen, wo die eigenen Nachrichten nicht hinreichen. */ frei: null,
frei: { x: Math.round(rv.right - 6), y: Math.round(rv.top + rv.height / 2) },
}; };
}); });
ok(!!punkte, "Kachel und freie Fläche gefunden");
/* ==== DIE FREIE STELLE WIRD GESUCHT, NICHT GERATEN ================
(nachgebessert 25.09.2026, nach zwei Fehlalarmen an einem Abend)
Hier stand ein fester Punkt: „6 Pixel vom rechten Rand, auf halber
Hoehe". Das hat zweimal dasselbe Ergebnis gehabt -- rot, ohne dass
an der Sache etwas war:
1. `rect.right` schliesst den ROLLBALKEN ein. Sobald der Verlauf
laenger wird als das Fenster, liegt der Punkt auf ihm: eine
deckende Flaeche, die sich nicht aendert, wenn man das
Buehnenbild abschaltet.
2. Auch ohne Balken ist „halbe Hoehe" nicht frei. Eigene
Nachrichten stehen rechtsbuendig und reichen bis an die
Polsterung; wird eine Blase um ein paar Pixel hoeher (heute:
die Handgriffe sitzen jetzt in einer Mulde), liegt auf halber
Hoehe ploetzlich eine Kachel. Die Pruefung meldet dann „das
Buehnenbild ist gar nicht da", und der Fehler steht an einer
Stelle, die niemand im Verdacht hat.
Der Punkt ist also nicht die Sache -- die Sache ist „eine Stelle
im Verlauf, auf der KEINE Kachel liegt". Genau das laesst sich
fragen, statt es auszurechnen: `elementFromPoint` sagt, was an
einer Stelle obenauf liegt. Gesucht wird von oben nach unten, bis
dort keine Nachricht mehr ist.
UND WENN ES KEINE GIBT, wird das gesagt und nicht geschwiegen --
der dritte Ausgang: Eine Messung, die ihre Voraussetzung nicht
findet, muss scheitern, nicht bestaetigen. */
const freiePunkte = await s.evaluate(() => {
const v = document.querySelector(".chat__verlauf");
if (!v) return null;
const rv = v.getBoundingClientRect();
/* `clientWidth` laesst den Rollbalken aussen vor, die 6 px liegen
damit immer in der 18-px-Polsterung des Verlaufs. */
const x = Math.round(rv.left + v.clientWidth - 6);
for (let y = Math.round(rv.top) + 10; y < rv.bottom - 10; y += 6) {
const e = document.elementFromPoint(x, y);
/* Nicht nur „ist keine Blase", sondern „gehoert zu gar keiner
Nachricht": Reaktionen, Zitate und Anhaenge sind ebenfalls
deckend und haengen an derselben Zeile. */
if (e && !e.closest(".chat-nachricht") && v.contains(e)) {
return { x, y, gefunden: true };
}
}
/* KEIN `null`. Die Pruefung soll scheitern und trotzdem
weiterlaufen -- mit `null` wuerde die naechste Aufnahme
abstuerzen, und ein Absturz sagt weniger als ein roter Punkt
mit Begruendung. Der Ersatzpunkt liegt oben in der Polsterung;
er misst dann eben nichts Aussagekraeftiges, und genau das
steht in der Zeile darueber. */
return { x, y: Math.round(rv.top) + 10, gefunden: false };
});
ok(!!punkte && !!freiePunkte && freiePunkte.gefunden,
freiePunkte && freiePunkte.gefunden
? `Kachel und freie Fläche gefunden (frei bei y ${freiePunkte.y})`
: "ABBRUCH: im Verlauf ist keine Stelle ohne Kachel zu finden — "
+ "ohne sie lässt sich nicht nachweisen, dass das Bühnenbild da ist");
if (punkte && freiePunkte) punkte.frei = freiePunkte;
/* Playwright kann einen Ausschnitt aufnehmen -- ein Bildpunkt reicht. */ /* Playwright kann einen Ausschnitt aufnehmen -- ein Bildpunkt reicht. */
const punktFarbe = async (pkt) => { const punktFarbe = async (pkt) => {
+66
View File
@@ -754,11 +754,43 @@ try {
Jetzt der Fall, um den es wirklich geht: Sie ist woanders, und es Jetzt der Fall, um den es wirklich geht: Sie ist woanders, und es
kommt etwas für sie herein. */ kommt etwas für sie herein. */
/* ==== DIE LISTE HAT SEIT DEM 25.09.2026 DREI FAECHER =============
Filipe: „ich will 3 kategorien haben. chats mit einzelnen
personen, gruppen chats und kanäle."
Diese Erwaehnung liegt in einer GRUPPE („Testgruppe", weiter
oben), das voreingestellte Fach ist „Personen" -- die Zeile mit
dem @ steht also nicht in der Liste, bevor man das Fach wechselt.
Die Pruefung ist daran rot geworden, und das war RICHTIG: Sie hat
eine echte Luecke gefunden, keine Aeusserlichkeit. Ein Ruf, den
ein geschlossenes Fach verschluckt, ist schlimmer als gar keiner.
GEBAUT WURDE DARAUFHIN das @ AM FACH (`.chat-art__at`). Die
Pruefung misst jetzt beides und sagt damit mehr als vorher:
1. Das Fach „Gruppen" traegt das Zeichen, OHNE dass man es
oeffnet -- man sieht, dass etwas wartet.
2. Im Fach „Personen" steht die Zeile dabei NICHT (Gegenprobe:
das Fach filtert wirklich, das Zeichen ist keine Dekoration).
3. Nach dem Wechsel steht die Zeile mit ihrem @ da.
EIN HELFER STATT DREI ABSCHRIFTEN: Jede Stelle, die ein Fach
waehlt, tut es hier gleich -- sonst waere die dritte die, die
auf das Warten verzichtet. */
const fachWaehlen = async (seite, art) => {
await seite.click(`.chat-art[data-art="${art}"]`);
await seite.waitForTimeout(400);
};
await vs.goto(`${BASIS}/workspace/chat.html`, { waitUntil: "networkidle" }); await vs.goto(`${BASIS}/workspace/chat.html`, { waitUntil: "networkidle" });
await vs.waitForTimeout(900); await vs.waitForTimeout(900);
await fachWaehlen(vs, "gruppe");
const vorSchon = await vs.locator(".chat-raum__erwaehnt").count(); const vorSchon = await vs.locator(".chat-raum__erwaehnt").count();
ok(vorSchon === 0, ok(vorSchon === 0,
`solange nichts Neues da ist, leuchtet auch nichts (${vorSchon})`); `solange nichts Neues da ist, leuchtet auch nichts (${vorSchon})`);
const vorFach = await vs.locator(".chat-art__at").count();
ok(vorFach === 0, ` und auch an keinem der drei Fächer (${vorFach})`);
await s.click("#text"); await s.click("#text");
await s.type("#text", "@VanVan noch eine Sache", { delay: 15 }); await s.type("#text", "@VanVan noch eine Sache", { delay: 15 });
@@ -767,6 +799,32 @@ try {
await vs.reload({ waitUntil: "networkidle" }); await vs.reload({ waitUntil: "networkidle" });
await vs.waitForTimeout(1200); await vs.waitForTimeout(1200);
/* ERST ZURUECK AUF „Personen". Der erste Anlauf verliess sich
darauf, dass das Neuladen dort landet -- tat es nicht, und die
Gegenprobe war rot: Die Wahl des Fachs UEBERLEBT das Neuladen
(localStorage, Absicht seit dem 25.09.2026 -- wer im Kanal
arbeitet, arbeitet meist den ganzen Tag im Kanal).
Das ist ein Fund und kein Aergernis: Die Pruefung hat damit
nebenbei belegt, dass das Merken wirklich greift. Der Fall, um
den es hier geht, muss aber ausdruecklich hergestellt werden --
sie steht in einem ANDEREN Fach, und der Ruf liegt woanders. */
await fachWaehlen(vs, "direkt");
const fachAt = vs.locator(".chat-art__at");
ok(await fachAt.count() === 1,
`das Fach mit der Erwähnung trägt das @-Zeichen, ungeöffnet (${await fachAt.count()})`);
const amFach = await vs.locator('.chat-art[data-art="gruppe"] .chat-art__at').count();
ok(amFach === 1, ` und zwar genau an „Gruppen" (${amFach})`);
ok((await fachAt.first().getAttribute("aria-label") || "").includes("erwähnt"),
" mit einem Satz für Vorleseprogramme statt eines nackten Zeichens");
/* GEGENPROBE: Im falschen Fach steht die Zeile nicht -- das Fach
filtert wirklich. Ohne diese Zeile koennte das @ am Fach auch
dann gruen sein, wenn die Liste gar nicht filtert. */
const zeileFalschesFach = await vs.locator(".chat-raum__erwaehnt").count();
ok(zeileFalschesFach === 0,
`Gegenprobe: im Fach „Personen" steht die Zeile nicht (${zeileFalschesFach}) — das Fach filtert wirklich`);
await fachWaehlen(vs, "gruppe");
const zeichen = vs.locator(".chat-raum__erwaehnt"); const zeichen = vs.locator(".chat-raum__erwaehnt");
ok(await zeichen.count() === 1, `in ihrer Gesprächsliste steht das @-Zeichen (${await zeichen.count()})`); ok(await zeichen.count() === 1, `in ihrer Gesprächsliste steht das @-Zeichen (${await zeichen.count()})`);
ok((await zeichen.first().getAttribute("aria-label") || "").includes("erwähnt"), ok((await zeichen.first().getAttribute("aria-label") || "").includes("erwähnt"),
@@ -778,8 +836,16 @@ try {
der Antwort des Servers. */ der Antwort des Servers. */
const funny = await alsRolle("scout", "CODE-SCOU-0002", 1280, "chat.html"); const funny = await alsRolle("scout", "CODE-SCOU-0002", 1280, "chat.html");
await funny.seite.waitForTimeout(1200); await funny.seite.waitForTimeout(1200);
/* AUCH HIER INS RICHTIGE FACH. Im Fach „Personen" waere bei Funny
ohnehin nichts zu sehen -- die Gegenprobe waere dann gruen, ohne
die Gruppe je angesehen zu haben. Genau die Sorte Haken, die
nichts bestaetigt. */
await fachWaehlen(funny.seite, "gruppe");
const beiFunny = await funny.seite.locator(".chat-raum__erwaehnt").count(); const beiFunny = await funny.seite.locator(".chat-raum__erwaehnt").count();
const beiFunnyFach = await funny.seite.locator(".chat-art__at").count();
const zahlFunny = await funny.seite.locator(".chat-raum__zahl").count(); const zahlFunny = await funny.seite.locator(".chat-raum__zahl").count();
ok(beiFunnyFach === 0,
`Gegenprobe: bei Funny trägt auch kein Fach das @ (${beiFunnyFach})`);
ok(beiFunny === 0, `Gegenprobe: bei Funny leuchtet nichts (${beiFunny})`); ok(beiFunny === 0, `Gegenprobe: bei Funny leuchtet nichts (${beiFunny})`);
ok(zahlFunny >= 1, ok(zahlFunny >= 1,
` obwohl sie Ungelesenes hat (${zahlFunny} Gespräch(e) mit Zahl) — es liegt nicht daran`); ` obwohl sie Ungelesenes hat (${zahlFunny} Gespräch(e) mit Zahl) — es liegt nicht daran`);
+5 -5
View File
@@ -16,15 +16,15 @@
verdeckt. Gefunden hat es pruef-struktur. verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. --> Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als <!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
ausserhalb der App -- auf einer Seite, die genau erklaeren soll, ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
WARUM das Telefon nicht klingelt, ist das besonders unpassend. --> WARUM das Telefon nicht klingelt, ist das besonders unpassend. -->
<link rel="manifest" href="/workspace/crew.webmanifest" /> <link rel="manifest" href="/workspace/crew.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<style> <style>
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite /* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht, soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
@@ -126,7 +126,7 @@
<script src="assets/js/anruf-probe.js?v=202609250141" defer></script> <script src="assets/js/anruf-probe.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+4 -4
View File
@@ -23,25 +23,25 @@
}, },
"icons": [ "icons": [
{ {
"src": "/assets/img/app-symbole/workspace-192.png?v=202609250141", "src": "/assets/img/app-symbole/workspace-192.png?v=202609250224",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/workspace-512.png?v=202609250141", "src": "/assets/img/app-symbole/workspace-512.png?v=202609250224",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609250141", "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609250224",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
}, },
{ {
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609250141", "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609250224",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
+560 -43
View File
@@ -53,14 +53,42 @@
overflow: hidden; overflow: hidden;
} }
/* =====================================================================
AUS EINEM KASTEN WERDEN ZWEI TAFELN (25.09.2026)
=====================================================================
Filipe: „ich will wirklich dass du das ingesamte veränderst und so
krass geil machst dass die ganze community und team morgen total
überrascht sind und den chat nicht wieder erkennen."
WAS VORHER DA WAR: ein Rechteck mit einer Linie in der Mitte. Beide
Haelften teilten sich einen Rahmen, einen Grund, eine Ebene -- die
Seite war eine Tabelle mit zwei Spalten.
WAS JETZT DA IST: zwei getrennte Tafeln, die ueber der Buehne
schweben, mit einer Fuge dazwischen. Links das Verzeichnis, rechts
das Gespraech -- zwei Dinge, die man auch als zwei sieht. Das ist
der eine Griff, der die Seite am staerksten veraendert, und er
kostet keine einzige Zeile im Skript.
WARUM DAS MEHR IST ALS EIN ABSTAND: Zwischen den Tafeln scheint die
Buehne durch. Damit bekommt die Seite eine Tiefe, die ein einzelner
Kasten nie haben kann -- man sieht, dass etwas DAHINTER ist, und
dass die Tafeln DARUEBER liegen.
DIE FUGE IST 14 px UND NICHT MEHR: Breiter, und die beiden Haelften
verlieren den Zusammenhang; sie gehoeren ja zusammen. 14 px sind
genug, um zwei Koerper zu sehen, und wenig genug, um sie als Paar
zu lesen.
===================================================================== */
.chat { .chat {
flex: 1; flex: 1;
min-height: 0; /* sonst wächst das Raster über die Fläche */ min-height: 0; /* sonst wächst das Raster über die Fläche */
display: grid; display: grid;
grid-template-columns: minmax(240px, 320px) 1fr; grid-template-columns: minmax(250px, 340px) 1fr;
gap: 0; gap: 14px;
border: 1px solid var(--rand); border: 0;
border-radius: var(--radius); border-radius: 0;
/* ==== DAS BUEHNENBILD SCHEINT DURCH (20.09.2026) ================== /* ==== DAS BUEHNENBILD SCHEINT DURCH (20.09.2026) ==================
Filipe: „ich will auch ein krasses hintergrundbild fuer den treff Filipe: „ich will auch ein krasses hintergrundbild fuer den treff
@@ -123,42 +151,95 @@
still falsch machen. Deshalb bekommt die Blase Tiefe ueber still falsch machen. Deshalb bekommt die Blase Tiefe ueber
Kante und Schatten, nicht ueber den Untergrund. Kante und Schatten, nicht ueber den Untergrund.
=================================================================== */ =================================================================== */
/* Der Grund liegt jetzt an den Tafeln, nicht am Raster. */
background: none;
box-shadow: none;
overflow: visible;
}
/* ---- DIE TAFEL: der Koerper, aus dem beide Haelften bestehen -------
Eine Regel fuer beide statt zweier fast gleicher: Die Fase oben
links ist dieselbe wie an jeder Kachel im Haus, der Rest ist das
Licht-und-Tiefe-System dieser Seite. */
.chat__spalte {
position: relative;
border: 1px solid rgba(255, 255, 255, .07);
border-radius: 0;
clip-path: polygon(var(--fase, 18px) 0, 100% 0, 100% 100%, 0 100%, 0 var(--fase, 18px));
background:
radial-gradient(140% 100% at 0% 0%, rgba(255, 255, 255, .045), transparent 52%),
linear-gradient(168deg, rgba(17, 24, 36, .86) 0%, rgba(8, 12, 19, .9) 100%);
backdrop-filter: blur(22px) saturate(118%);
box-shadow: box-shadow:
inset 0 1px 0 rgba(255, 255, 255, .085), inset 0 1px 0 rgba(255, 255, 255, .09),
inset 0 -1px 0 rgba(0, 0, 0, .5), inset 0 -1px 0 rgba(0, 0, 0, .55),
0 34px 70px -34px rgba(0, 0, 0, .95), 0 40px 80px -40px rgba(0, 0, 0, .96),
0 6px 18px -10px rgba(0, 0, 0, .7); 0 8px 22px -14px rgba(0, 0, 0, .8);
overflow: hidden;
} }
/* Die Fuge zwischen den Spalten ist keine Linie, sondern eine Kante: /* Die Fuge zwischen den Spalten ist keine Linie, sondern eine Kante:
links dunkel, rechts hell -- so, wie zwei Bleche aneinanderstossen. links dunkel, rechts hell -- so, wie zwei Bleche aneinanderstossen.
Eine Linie haette gesagt "hier ist eine Grenze"; die Kante sagt Eine Linie haette gesagt "hier ist eine Grenze"; die Kante sagt
"hier liegt eine Platte auf einer anderen". */ "hier liegt eine Platte auf einer anderen". */
.chat__spalte--liste { /* DIE FUGE VON GESTERN IST WEG (25.09.2026). Sie zeichnete eine
position: relative; Kante zwischen zwei Haelften EINES Kastens. Seit es zwei Tafeln
background: linear-gradient(180deg, gibt, liegt dort echter Abstand -- eine gemalte Kante daneben waere
rgba(255, 255, 255, .022) 0%, rgba(255, 255, 255, 0) 30%); eine Linie zu viel. Die Leuchtschiene links an der Liste bleibt
} dagegen: Sie gehoert zur Tafel, nicht zur Fuge. */
.chat__spalte--liste::after { .chat__spalte--liste::after {
content: ""; position: absolute; top: 0; bottom: 0; right: -1px; width: 2px; content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
background: linear-gradient(180deg, background: linear-gradient(180deg,
color-mix(in srgb, var(--akzent) 26%, transparent) 0%, color-mix(in srgb, var(--akzent) 55%, #ffffff) 0%,
rgba(255, 255, 255, .05) 22%, color-mix(in srgb, var(--akzent) 75%, transparent) 30%,
rgba(0, 0, 0, .35) 100%); transparent 100%);
pointer-events: none; box-shadow: 0 0 14px -2px color-mix(in srgb, var(--akzent) 55%, transparent);
pointer-events: none; z-index: 3;
} }
.chat__spalte { .chat__spalte {
display: flex; flex-direction: column; display: flex; flex-direction: column;
min-height: 0; min-width: 0; min-height: 0; min-width: 0;
} }
/* Der Trenner zwischen Liste und Verlauf. Läuft oben und unten aus -- /* =====================================================================
eine durchgehende Linie zerschneidet die Kachel in zwei. */ AUS DEM TRENNER WIRD LICHT (25.09.2026)
Hier stand eine senkrechte Linie am linken Rand des Verlaufs – der
Trenner zwischen Liste und Verlauf, aus der Zeit, als beide noch
EIN Kasten waren. Seit dem Umbau auf zwei Tafeln liegt dort echter
Abstand; die Linie klebte seitdem ohne Aufgabe an der Kante der
rechten Tafel. Eine Linie, die nichts mehr trennt, ist eine Linie
zu viel.
An ihrer Stelle liegt jetzt ein sehr weicher Schein in der
Akzentfarbe, oben rechts – so, als stünde das Licht der Bühne
hinter der Tafel, und unten links ein Hauch Gegenlicht. Erst damit
sieht die große leere Fläche rechts nach einem Raum aus statt nach
einem leeren Kasten.
SCHWACH, UND ZWAR ABSICHTLICH: 13 % Akzent in einem Verlauf, der
nach 62 % ausläuft – am hellsten Punkt keine vier Prozent Deckung.
Er soll Tiefe machen, nicht leuchten. Ein Chat wird stundenlang
angesehen; was beim ersten Mal auffällt, nervt beim zwanzigsten
(Hausregel: augenschonend).
`z-index: -1` UND NICHT 0: `.chat__spalte` hat `backdrop-filter`
und bildet damit einen eigenen Stapelzusammenhang. Ein negativer
Wert legt den Schein darin über den Grund der Tafel, aber unter
alles, was darin steht. Mit `0` läge er über den Nachrichten – ein
Schleier über der Schrift, und genau das wäre der Fehler, den diese
Datei an anderer Stelle schon zweimal notiert hat.
===================================================================== */
.chat__spalte--verlauf { position: relative; } .chat__spalte--verlauf { position: relative; }
.chat__spalte--verlauf::before { .chat__spalte--verlauf::before {
content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 1px; content: ""; position: absolute; inset: 0;
background: linear-gradient(180deg, background:
transparent, var(--rand-hell) 15%, var(--rand-hell) 85%, transparent); radial-gradient(72% 56% at 88% 0%,
color-mix(in srgb, var(--akzent) 13%, transparent), transparent 62%),
radial-gradient(60% 46% at 6% 100%,
rgba(255, 255, 255, .032), transparent 58%);
pointer-events: none;
z-index: -1;
} }
.chat__kopf { .chat__kopf {
@@ -211,6 +292,33 @@
Rest. Wird er unterschritten, wandert die Knopfreihe eine Zeile Rest. Wird er unterschritten, wandert die Knopfreihe eine Zeile
tiefer -- das ist der Umbruch oben. */ tiefer -- das ist der Umbruch oben. */
.chat__kopf-text { min-width: 0; flex: 1 1 8rem; } .chat__kopf-text { min-width: 0; flex: 1 1 8rem; }
/* ---- Das Gesicht im Kopf des Gesprächs (25.09.2026) -----------------
Es trägt die Klasse `.chat-raum__zeichen` und bekommt damit Farbe,
Licht, Saum und Profilbild der Liste geschenkt. Hier steht nur, was
am Kopf anders ist: eine Spur kleiner, damit es die Überschrift
nicht überragt.
`[hidden]` MUSS hier stehen. `.chat-raum__zeichen` setzt
`display: grid`, und eine Klassenregel schlägt das eingebaute
`display: none` des Browsers – ohne diese Zeile stünde ein leerer
Kreis da, solange kein Gespräch offen ist. Genau diese Falle hat
dieses Haus bei `hidden` schon einmal erwischt.
AM HANDY BLEIBT ES WEG (siehe die schmale Fassung am Dateiende).
Nachgerechnet bei 390 px: Zurück-Pfeil 44 + Zeichen 40 + drei
Knöpfe 132 + vier Abstände 48 = 264. Für den Namen blieben 126 px,
seine Untergrenze sind 128 (`flex: 1 1 8rem`) – die Knopfreihe
fiele also eine Zeile tiefer, und der Kopf würde 44 px höher.
Dafür ist es zu wenig wert: Am Handy kommt man aus der Liste, in
der man das Gesicht gerade angetippt hat. */
.chat__kopf-zeichen {
width: 40px; height: 40px;
font-size: .82rem;
}
.chat__kopf-zeichen[hidden] { display: none; }
/* DER TITEL WAR SO GROSS WIE DIE VORSCHAUZEILE DARUNTER (25.09.2026). /* DER TITEL WAR SO GROSS WIE DIE VORSCHAUZEILE DARUNTER (25.09.2026).
Im Bildschirmfoto stand „VanVan" in derselben Staerke wie „Du: Im Bildschirmfoto stand „VanVan" in derselben Staerke wie „Du:
@@ -296,7 +404,146 @@
PILLENFORM, weil darunter Zeilen mit 14px-Ecken stehen — ein PILLENFORM, weil darunter Zeilen mit 14px-Ecken stehen — ein
scharfkantiger Kasten darüber wirkt wie von einer anderen Seite. */ scharfkantiger Kasten darüber wirkt wie von einer anderen Seite. */
.chat__suche { padding: 12px 12px 8px; flex: none; } /* =====================================================================
DIE DREI FAECHER (25.09.2026)
Filipe: „ich will 3 kategorien haben. chats mit einzelnen personen,
gruppen chats und kanäle."
EINE MULDE MIT DREI SCHALTERN, nicht drei freie Knoepfe: Drei Dinge
nebeneinander, die einander ausschliessen, liest man nur dann als
EINE Entscheidung, wenn sie in einer gemeinsamen Fassung sitzen.
Sonst sind es drei Sachen.
DAS GEWAEHLTE FACH LIEGT OBEN AUF -- heller Grund, Lichtkante,
Schatten darunter. Die anderen liegen IN der Mulde. Man sieht die
Wahl also an der Tiefe und nicht nur an der Farbe; das trennt auch
dann, wenn jemand Farben schlecht unterscheidet.
DIE ZAHL DER UNGELESENEN STEHT AM FACH und nicht nur an der Zeile:
Ein geschlossenes Fach waere sonst ein Ort, an dem Nachrichten
liegen bleiben, ohne dass es jemand sieht.
===================================================================== */
.chat-arten {
display: grid; grid-template-columns: repeat(3, 1fr);
gap: 3px;
margin: 12px 12px 0;
padding: 3px;
border-radius: 14px;
border: 1px solid rgba(255, 255, 255, .06);
background: linear-gradient(180deg, rgba(0, 0, 0, .4) 0%, rgba(255, 255, 255, .02) 100%);
box-shadow:
inset 0 2px 5px -2px rgba(0, 0, 0, .75),
0 1px 0 rgba(255, 255, 255, .05);
}
.chat-art {
position: relative;
display: flex; align-items: center; justify-content: center; gap: 6px;
min-height: 38px; padding: 6px 4px;
border: 1px solid transparent; border-radius: 11px;
background: none;
font: inherit; font-size: .78rem; font-weight: 650;
letter-spacing: .01em;
color: var(--text-still); cursor: pointer;
transition: color .16s ease, background-color .16s ease,
border-color .16s ease, box-shadow .16s ease;
}
.chat-art:hover { color: var(--text); background: rgba(255, 255, 255, .04); }
.chat-art:focus-visible { outline: 2px solid var(--akzent); outline-offset: 1px; }
.chat-art[aria-selected="true"] {
color: #f2f7fd;
border-color: rgba(255, 255, 255, .1);
background: linear-gradient(180deg,
rgba(255, 255, 255, .1) 0%, rgba(255, 255, 255, .035) 100%);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, .16),
0 6px 14px -10px rgba(0, 0, 0, .95);
}
/* Der Saum in der Akzentfarbe sagt, welches Fach offen ist -- er
sitzt UNTEN am Schalter, wie ein Reiter an einer Mappe. */
.chat-art[aria-selected="true"]::after {
content: ""; position: absolute; left: 22%; right: 22%; bottom: -1px; height: 2px;
border-radius: 2px 2px 0 0;
background: var(--akzent);
box-shadow: 0 0 10px -1px color-mix(in srgb, var(--akzent) 75%, transparent);
}
.chat-art__name { white-space: nowrap; }
.chat-art__zahl {
font-size: .72rem; font-weight: 700; opacity: .6;
font-variant-numeric: tabular-nums;
}
.chat-art[aria-selected="true"] .chat-art__zahl { opacity: .85; }
/* DAS @ AM FACH (25.09.2026).
Es sagt „hier ging es an dich" -- dieselbe Auskunft wie das @ an
der Zeile, nur eine Ebene hoeher, damit ein geschlossenes Fach sie
nicht verschluckt.
ES IST KEINE MARKE MIT FLAECHE. Neben der Ungelesen-Marke stuenden
sonst zwei gleich laute Punkte nebeneinander, und man muesste
lesen, um sie zu unterscheiden. So bleibt ein Zeichen in der
Akzentfarbe -- gleiche Bedeutung, andere Gestalt.
`text-shadow` STATT `box-shadow`: Der Schein soll am Buchstaben
haengen, nicht an einem Kasten darum. */
.chat-art__at {
flex: none;
font-size: .82rem; font-weight: 800; line-height: 1;
color: color-mix(in srgb, var(--akzent) 45%, #ffffff);
text-shadow: 0 0 9px color-mix(in srgb, var(--akzent) 70%, transparent);
}
/* Die Ungelesenen: klein, in der Warnfarbe, oben rechts am Schalter --
dort, wo man sie von jedem Programm her sucht. */
/* ENTWEDER ODER, NICHT BEIDES (25.09.2026). Im ersten Anlauf stand
die Ungelesen-Marke absolut oben rechts -- und lag damit genau auf
der Gesamtzahl. Zwei Zahlen uebereinander sind schlimmer als eine
zu wenig.
Was wartet, ist wichtiger als was da ist: Gibt es Ungelesene, tritt
die Gesamtzahl zurueck. `:has()` entscheidet das im Stilblatt, damit
beide Zahlen im Baum bleiben -- eine Vorlesehilfe liest so weiter
"Personen, 3 Gespräche, 2 ungelesene Nachrichten". */
.chat-art:has(.chat-art__neu) .chat-art__zahl { display: none; }
/* 0,72 rem UND NICHT 0,64 (nachgebessert 25.09.2026).
pruef-css-klassen hat es gemeldet: „43 Stellen unter 11,5 px – das
ist 1 MEHR als die Grundlinie 42." Die eine neue war genau diese
Marke: 0,64 rem sind 10,24 px. Die Hausgrenze liegt bei 11,5, weil
Schrift darunter auf einem Telefon zu flimmern anfängt – und eine
Zahl, die man nicht lesen kann, ist keine Auskunft.
DAS IST DER ZWEITE ANLAUF AM SELBEN TAG. Heute früh stand die
Fußzeile der Nachricht auf 0,66 rem und dieselbe Prüfung hat sie
zurückgeholt. Zweimal derselbe Reflex: „klein wirkt leise". Leise
macht in diesem Haus die Deckung und die Farbe, nicht die Größe.
DIE MARKE WÄCHST MIT: 18 px Höhe sind für 11,5-px-Schrift zu
knapp – bei „99+" stieße die Schrift oben und unten an. 20 px
lassen 4 px Luft, und die Marke bleibt kleiner als die 22 px des
Zählers an der Zeile (sie ist die kleinere Auskunft von beiden). */
.chat-art__neu {
flex: none;
min-width: 20px; height: 20px; padding: 0 5px;
display: grid; place-items: center;
border-radius: 999px;
font-size: .72rem; font-weight: 750; line-height: 1;
font-variant-numeric: tabular-nums;
color: #16060a;
background: linear-gradient(160deg,
color-mix(in srgb, var(--warn) 88%, #ffffff), var(--warn));
box-shadow:
0 0 0 1px rgba(0, 0, 0, .5),
0 3px 8px -3px color-mix(in srgb, var(--warn) 70%, transparent);
}
@media (max-width: 560px) {
.chat-art { font-size: .74rem; }
/* Die GESAMTZAHL faellt weg, nicht die Ungelesenen und nicht das @.
Wie viele Gespraeche es gibt, sieht man in der Liste darunter;
was darin auf einen wartet, nicht. */
.chat-art__zahl { display: none; }
}
.chat__suche { padding: 10px 12px 8px; flex: none; }
/* EINGELASSEN STATT AUFGELEGT. Ein Eingabefeld ist eine Vertiefung -- /* EINGELASSEN STATT AUFGELEGT. Ein Eingabefeld ist eine Vertiefung --
Licht faellt hinein, nicht darauf. Deshalb hier der Schatten INNEN Licht faellt hinein, nicht darauf. Deshalb hier der Schatten INNEN
und oben, genau andersherum als bei allem, was obenauf liegt. Das und oben, genau andersherum als bei allem, was obenauf liegt. Das
@@ -1140,18 +1387,47 @@
.chat-nachricht__fuss { .chat-nachricht__fuss {
display: flex; align-items: center; flex-wrap: wrap; display: flex; align-items: center; flex-wrap: wrap;
column-gap: 4px; row-gap: 2px; column-gap: 4px; row-gap: 2px;
margin-top: 9px; padding-top: 7px; /* AUS DER KANTE WIRD EINE MULDE (25.09.2026). Eine Linie trennt;
border-top: 1px solid color-mix(in srgb, eine Mulde sagt zusätzlich, dass die Handgriffe eine Ebene TIEFER
var(--ton, var(--kachel-standard)) 18%, rgba(255, 255, 255, .06)); liegen als das Gesagte – sie gehören zur Nachricht, sind aber
nicht die Nachricht. Es ist dieselbe Form wie an der
Registerleiste links: eingesenkt = zur Auswahl, aufliegend =
gewählt. Eine Seite, eine Sprache.
DER GRUND WIRD DUNKLER, NIE HELLER. Das ist kein Geschmack,
sondern die Bedingung dafür, dass die Messung gültig bleibt:
pruef-chatkachel rechnet die leise Schrift gegen den HELLSTEN
denkbaren Grund (Blase zu 92 % über weißem Foto). 26 % Schwarz
darüber kann diesen Wert nur verbessern. Wer hier je etwas
Helles einsetzt, hebt die Zusage auf und muss neu messen.
DIE NEGATIVEN RÄNDER holen die Mulde in die Polsterung der Blase
hinein (12/17/9 px), damit sie nicht wie ein zweiter Kasten
wirkt, sondern wie eine Vertiefung IN der Blase. */
margin: 10px -9px -3px; padding: 6px 8px;
border-radius: 14px;
border-top: 0;
background: rgba(0, 0, 0, .26);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, .045),
inset 0 0 0 1px color-mix(in srgb,
var(--ton, var(--kachel-standard)) 12%, transparent);
/* 0,72 rem = 11,52 px -- KNAPP UEBER DER HAUSGRENZE (25.09.2026). /* 0,72 rem = 11,52 px -- KNAPP UEBER DER HAUSGRENZE (25.09.2026).
Der erste Anlauf stand auf 0,66 rem (10,56 px). pruef-css-klassen Der erste Anlauf stand auf 0,66 rem (10,56 px). pruef-css-klassen
hat es gemeldet: "45 Stellen unter 11,5 px -- das sind 3 MEHR als hat es gemeldet: "45 Stellen unter 11,5 px -- das sind 3 MEHR als
die Grundlinie 42." Die Grenze ist kein Geschmack; darunter faengt die Grundlinie 42." Die Grenze ist kein Geschmack; darunter faengt
Schrift an, auf einem Telefon zu flimmern. Schrift an, auf einem Telefon zu flimmern.
Die Zeile wirkt trotzdem leise -- das machen Versalien, Sperrung Die Zeile wirkt trotzdem leise – das machen die Mulde, die
und die gedaempfte Deckung, nicht die Groesse. */ gedämpfte Deckung und die Zeichen davor, nicht die Größe.
font-size: .72rem; letter-spacing: .07em; text-transform: uppercase;
KEINE VERSALIEN MEHR (25.09.2026). Sie waren richtig, solange
dort fünf nackte Wörter standen und sich als Beschriftung von
einem Satz abheben mussten. Seit jedes Wort ein Zeichen vor sich
hat, macht das Zeichen diese Arbeit – und gesperrte Versalien
kosten rund ein Viertel mehr Breite, also genau den Platz, den
die Zeichen brauchen. */
font-size: .72rem; letter-spacing: .01em;
opacity: .78; opacity: .78;
transition: opacity .18s ease; transition: opacity .18s ease;
/* War var(--text-leise) (#94a5bb). Diese eine Farbe war die Bremse /* War var(--text-leise) (#94a5bb). Diese eine Farbe war die Bremse
@@ -1166,10 +1442,17 @@
.chat-nachricht__fuss { transition: none; } .chat-nachricht__fuss { transition: none; }
} }
/* DIE ZEIT WIRD EIN SCHILD. In einer Reihe mit fünf Knöpfen war sie
der einzige Text ohne Fläche – und sah dadurch aus wie ein
vergessener Knopf. Jetzt trägt sie ein eigenes kleines Feld: eine
Angabe, keine Bedienung. */
.chat-nachricht__zeit { .chat-nachricht__zeit {
font-size: .72rem; color: inherit; font-size: .72rem; color: inherit;
font-variant-numeric: tabular-nums; font-variant-numeric: tabular-nums;
letter-spacing: .07em; letter-spacing: .02em;
padding: 2px 8px;
border-radius: 999px;
background: rgba(255, 255, 255, .05);
/* Die Zeit bleibt links, die Handgriffe ruecken nach rechts: Das /* Die Zeit bleibt links, die Handgriffe ruecken nach rechts: Das
eine ist eine Angabe, das andere sind Knoepfe. Zusammen in einer eine ist eine Angabe, das andere sind Knoepfe. Zusammen in einer
Reihe sahen sie aus wie sechs gleichwertige Dinge. */ Reihe sahen sie aus wie sechs gleichwertige Dinge. */
@@ -1244,13 +1527,31 @@
.chat-nachricht__weg-knopf[data-notfall="ja"] { .chat-nachricht__weg-knopf[data-notfall="ja"] {
display: inline-flex; align-items: center; gap: 5px; display: inline-flex; align-items: center; gap: 5px;
} }
/* AUS DEM PUNKT WIRD EIN PAPIERKORB (25.09.2026) -- die Überlegung
darüber gilt unverändert, nur trägt jetzt ein Zeichen die Warnfarbe
statt eines Flecks. Es ist dasselbe Zeichen wie am gewöhnlichen
Löschen daneben, nur rot: Man sieht auf einen Blick, dass es
dieselbe Handlung ist und dass sie hier anders wiegt.
DIE ALTE RECHNUNG IST ÜBERHOLT. Darüber steht „auf Babyblau
1,91:1" – das galt, als die Blase die Kachelfarbe trug. Seit dem
25.09.2026 ist sie für alle dunkles Glas (`--blasengrund`,
#0b1019); Lachs darauf liegt weit über den 3:1, die für ein
Zeichen gelten. Die Schrift daneben bleibt trotzdem `--blase-leise`
und wird nicht eingefärbt – der Grund dafür war nie der Kontrast
allein, sondern dass eine Schriftfarbe auf zwölf wählbaren Tönen
nicht zu garantieren ist.
`mask-size` MUSS MIT: Die gemeinsame Regel oben setzt 13 px über
die Kurzschreibweise `mask`. Wer hier nur Breite und Höhe ändert,
bekommt ein 13-px-Bild in einem 14-px-Kasten – oben links klebend,
nicht mittig. */
.chat-nachricht__weg-knopf[data-notfall="ja"]::before { .chat-nachricht__weg-knopf[data-notfall="ja"]::before {
content: ""; flex: none; width: 14px; height: 14px; border-radius: 0;
width: 6px; height: 6px; border-radius: 50%;
background: var(--warn, #ff9aa2); background: var(--warn, #ff9aa2);
/* Ein duenner dunkler Saum, damit der Punkt auch auf der hellen box-shadow: none;
Kachel eine Kante hat -- sonst verschwimmt Lachs auf Babyblau. */ -webkit-mask-size: 14px 14px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, .35); mask-size: 14px 14px;
} }
.chat-nachricht__weg-knopf[data-notfall="ja"]:hover { color: var(--blase-text); } .chat-nachricht__weg-knopf[data-notfall="ja"]:hover { color: var(--blase-text); }
@@ -1366,6 +1667,38 @@
resize: none; resize: none;
min-height: 42px; max-height: 160px; min-height: 42px; max-height: 160px;
line-height: 1.5; line-height: 1.5;
/* ==== AUS DEM FELD WIRD EINE RINNE (25.09.2026) ==================
Es war ein flacher dunkler Kasten in der Hausform -- dasselbe
Feld wie in jedem Formular, an der Stelle, an der man auf dieser
Seite am häufigsten steht. Jetzt liegt es sichtbar TIEFER als
die Konsole ringsum: Lichtkante oben innen, Schatten darunter,
runde Enden.
Das ist dieselbe Sprache wie an der Registerleiste links und an
der Mulde unter jeder Nachricht: eingesenkt heißt „hier hinein",
aufliegend heißt „hier drücken". Drei Stellen, eine Regel.
KEINE POLSTERUNG UND KEINE RAHMENSTÄRKE ANGEFASST. Die Zeile ist
seit dem 23.09.2026 auf den Pixel voll -- zwei Pixel mehr am
Absendeknopf haben ihn damals unter das Feld geschoben. Geändert
wird hier nur, was nichts misst: Farbe, Rundung, Schatten. */
border-radius: 15px;
border-color: rgba(255, 255, 255, .07);
background: rgba(0, 0, 0, .34);
box-shadow:
inset 0 2px 6px -3px rgba(0, 0, 0, .95),
inset 0 1px 0 rgba(255, 255, 255, .04);
}
/* Beim Hineinschreiben hebt sich die Rinne nicht -- sie bekommt Licht.
Ein Feld, das beim Tippen die Zeile verschiebt, ist ein Feld, das
beim Tippen stört. */
.chat__eingabe textarea:focus {
background: rgba(0, 0, 0, .28);
border-color: color-mix(in srgb, var(--akzent) 45%, transparent);
box-shadow:
inset 0 2px 6px -3px rgba(0, 0, 0, .95),
0 0 0 3px color-mix(in srgb, var(--akzent) 13%, transparent);
} }
/* Der eine Knopf, den man in diesem Fenster am haeufigsten drueckt -- /* Der eine Knopf, den man in diesem Fenster am haeufigsten drueckt --
und er sah aus wie die Bueroklammer daneben. Jetzt ist er der und er sah aus wie die Bueroklammer daneben. Jetzt ist er der
@@ -1395,9 +1728,25 @@
transition: background .16s ease, color .16s ease; transition: background .16s ease, color .16s ease;
} }
.chat__senden svg { width: 20px; height: 20px; fill: currentColor; } .chat__senden svg { width: 20px; height: 20px; fill: currentColor; }
/* DER EINE KNOPF, DER GEDRÜCKT WERDEN SOLL (25.09.2026). Er sah aus
wie die Werkzeuge daneben -- gleiche Größe, gleiche Ruhe. Jetzt
trägt er als einziges Bedienelement der Konsole eine gefüllte
Fläche in der Akzentfarbe und einen weichen Schein darunter; beim
Überfahren wird die Fläche kräftiger und der Schein weiter.
KEINE BEWEGUNG, KEIN WACHSEN. Ein Knopf, der beim Überfahren
springt, verschiebt in einer bis auf den Pixel vollen Zeile alles
daneben -- und er wird hundertmal am Tag überfahren (Hausregel:
augenschonend). */
.chat__senden:hover { .chat__senden:hover {
background: color-mix(in srgb, var(--akzent) 28%, transparent); background: linear-gradient(168deg,
color-mix(in srgb, var(--akzent) 62%, transparent) 0%,
color-mix(in srgb, var(--akzent) 38%, transparent) 100%);
border-color: color-mix(in srgb, var(--akzent) 78%, transparent);
color: #fff; color: #fff;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, .28),
0 12px 26px -12px color-mix(in srgb, var(--akzent) 85%, transparent);
} }
.chat__senden:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; } .chat__senden:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; }
@@ -1839,13 +2188,50 @@
dann, wenn man sie meint. Die Flaeche waechst dabei auf ueber dann, wenn man sie meint. Die Flaeche waechst dabei auf ueber
24x24 px; vorher war ein Wort nur so hoch wie seine Schrift. 24x24 px; vorher war ein Wort nur so hoch wie seine Schrift.
===================================================================== */ ===================================================================== */
/* =====================================================================
DIE HANDGRIFFE BEKOMMEN ZEICHEN (25.09.2026)
Filipe: „ich will wirklich dass du das ingesamte veränderst und so
krass geil machst dass die ganze community und team morgen total
überrascht sind und den chat nicht wieder erkennen."
Unter jeder Blase standen fünf Wörter in Versalien. Sie waren leise
und ordentlich – und trotzdem fünf Wörter, die man in jeder
Nachricht wieder liest, ohne sie zu brauchen. Bei zwölf Nachrichten
sind das sechzig.
JETZT: Zeichen voran, Wort daneben, in Kleinbuchstaben. Ein Pfeil,
ein Gesicht, ein Papierkorb, eine Nadel, zwei Blätter – die kennt
jeder aus jedem Messenger, und das Auge findet sie, ohne zu lesen.
WARUM DIE WÖRTER TROTZDEM BLEIBEN: Reine Zeichenknöpfe wären
schöner und schlechter. „anheften" und „lösen" sehen als Nadel
gleich aus – wer sie verwechselt, verschiebt eine Ankündigung im
Kanal, ohne es zu merken. Und „löschen (Notfall)" darf nie ein
Rätsel sein: Es entfernt fremde Worte.
BREITER WIRD ES DADURCH NICHT. Versalien mit .07em Sperrung sind
rund ein Viertel breiter als dieselben Wörter klein gesetzt.
Nachgerechnet an „antworten" bei 11,5 px: vorher rund 66 px, jetzt
rund 50 px Schrift + 13 px Zeichen + 5 px Abstand = 68. Die Zeile
bleibt also so lang wie vorher und sagt mehr.
DIE ZEICHEN SIND MASKEN, KEINE BILDER. `mask-image` färbt sie mit
`currentColor`: Jedes Zeichen folgt damit der Schrift daneben – im
Ruhezustand leise, beim Überfahren hell, beim Notfall-Löschen in
der Warnfarbe. Ein <img> müsste man für jeden dieser Zustände neu
einfärben, und einer davon wäre irgendwann vergessen. Fehlt
`mask` (sehr alte Browser), bleibt schlicht das Wort stehen – kein
Schaden, nur weniger Bild.
===================================================================== */
.chat-nachricht__antwort-knopf, .chat-nachricht__antwort-knopf,
.chat-nachricht__reag-knopf, .chat-nachricht__reag-knopf,
.chat-nachricht__kopie-knopf, .chat-nachricht__kopie-knopf,
.chat-nachricht__weg-knopf { .chat-nachricht__weg-knopf {
display: inline-flex; align-items: center; gap: 5px;
border: 1px solid transparent; border: 1px solid transparent;
background: none; background: none;
padding: 3px 8px; padding: 3px 9px 3px 7px;
border-radius: 999px; border-radius: 999px;
font: inherit; font-size: .72rem; font-weight: 600; font: inherit; font-size: .72rem; font-weight: 600;
line-height: 1.5; line-height: 1.5;
@@ -1855,6 +2241,32 @@
transition: opacity .16s ease, background-color .16s ease, transition: opacity .16s ease, background-color .16s ease,
border-color .16s ease, color .16s ease; border-color .16s ease, color .16s ease;
} }
/* Eine Regel für alle fünf – die Familie steht an EINER Stelle
beieinander, wie schon die Form darüber. Wer einen sechsten
Handgriff baut, trägt ihn hier ein und bekommt sein Zeichen. */
.chat-nachricht__antwort-knopf::before,
.chat-nachricht__reag-knopf::before,
.chat-nachricht__kopie-knopf::before,
.chat-nachricht__pin-knopf::before,
.chat-nachricht__weg-knopf::before {
content: ""; flex: none;
width: 13px; height: 13px;
background: currentColor;
-webkit-mask: var(--zeichen) center / 13px 13px no-repeat;
mask: var(--zeichen) center / 13px 13px no-repeat;
}
.chat-nachricht__antwort-knopf {
--zeichen: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M9.5 5.5 3.5 11.5l6 6'/><path d='M3.5 11.5h9.5a7 7 0 0 1 7 7v.6'/></svg>");
}
.chat-nachricht__reag-knopf {
--zeichen: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M8.6 9.9h.01'/><path d='M15.4 9.9h.01'/><path d='M8.2 14.4a5 5 0 0 0 7.6 0'/></svg>");
}
.chat-nachricht__kopie-knopf {
--zeichen: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='8.5' y='8.5' width='12' height='12' rx='3'/><path d='M15.5 8.5v-2a3 3 0 0 0-3-3h-6a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h2'/></svg>");
}
.chat-nachricht__weg-knopf {
--zeichen: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 7h15'/><path d='M10 7V4.8h4V7'/><path d='M6.6 7l.9 12.2h9L17.4 7'/></svg>");
}
.chat-nachricht__antwort-knopf:hover, .chat-nachricht__antwort-knopf:hover,
.chat-nachricht__reag-knopf:hover, .chat-nachricht__reag-knopf:hover,
.chat-nachricht__kopie-knopf:hover, .chat-nachricht__kopie-knopf:hover,
@@ -1918,6 +2330,36 @@
outline: 2px solid var(--akzent); outline-offset: 2px; border-radius: 4px; outline: 2px solid var(--akzent); outline-offset: 2px; border-radius: 4px;
} }
/* ==== DIE VIER WERKZEUGE SPRECHEN EINE SPRACHE (25.09.2026) =========
Büroklammer, Mikrofon, GIF und Emoji standen in drei verschiedenen
Fassungen nebeneinander -- verschiedene Rundungen, verschiedene
Ränder, einer mit Fläche, einer ohne. Im Bildschirmfoto sah die
Konsole dadurch aus wie vier Knöpfe aus vier Programmen.
Sie bekommen jetzt dieselbe Mulde wie die Schalter der
Registerleiste: eingesenkt, mit Lichtkante oben. Beim Überfahren
heben sie sich in die Akzentfarbe.
NUR OBERFLÄCHE, KEINE MASSE. Breite, Höhe, Polsterung und Abstände
bleiben unangetastet -- die Zeile ist seit dem 23.09.2026 auf den
Pixel voll, und sechs Pixel haben dort schon einmal gereicht, um
„Senden" auf eine eigene Zeile zu schieben. Wer hier eine Maßzahl
ändert, misst auf 320, 390 und 412 px nach. */
.chat__eingabe :is(.chat__anhang, .chat__ton, .chat__gif, .chat__emoji) {
border-radius: 13px;
border-color: rgba(255, 255, 255, .07);
background: linear-gradient(180deg,
rgba(0, 0, 0, .34) 0%, rgba(255, 255, 255, .022) 100%);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, .055),
inset 0 -2px 5px -3px rgba(0, 0, 0, .75);
}
.chat__eingabe :is(.chat__anhang, .chat__ton, .chat__gif, .chat__emoji):hover {
border-color: color-mix(in srgb, var(--akzent) 45%, transparent);
background: color-mix(in srgb, var(--akzent) 14%, transparent);
}
/* ---- Emoji ---------------------------------------------------------- */ /* ---- Emoji ---------------------------------------------------------- */
.chat__emoji { .chat__emoji {
flex: none; flex: none;
@@ -2540,10 +2982,17 @@
eintragen -- deshalb stehen alle fuenf Namen jetzt an EINER Stelle eintragen -- deshalb stehen alle fuenf Namen jetzt an EINER Stelle
beieinander (siehe die gemeinsame Regel weiter oben). */ beieinander (siehe die gemeinsame Regel weiter oben). */
.chat-nachricht__pin-knopf { .chat-nachricht__pin-knopf {
/* Die Nadel steht in derselben Familie wie die vier daneben (siehe
die gemeinsame Zeichen-Regel weiter oben); hier steht nur ihr
eigenes Bild. Zwei Zustände, ein Zeichen: „anheften" und „lösen"
unterscheidet das WORT -- eine durchgestrichene Nadel wäre bei
13 px nicht mehr als ein Fleck. */
--zeichen: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 3.6h6'/><path d='M10.6 3.6v5.6L7.4 14.2h9.2L13.4 9.2V3.6'/><path d='M12 14.2v6.2'/></svg>");
display: inline-flex; align-items: center; gap: 5px;
appearance: none; appearance: none;
border: 1px solid transparent; border: 1px solid transparent;
background: none; background: none;
padding: 3px 8px; padding: 3px 9px 3px 7px;
border-radius: 999px; border-radius: 999px;
font: inherit; font-size: .72rem; font-weight: 600; font: inherit; font-size: .72rem; font-weight: 600;
line-height: 1.5; line-height: 1.5;
@@ -3475,12 +3924,47 @@
box-shadow: 0 0 0 3px color-mix(in srgb, var(--akzent) 14%, transparent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--akzent) 14%, transparent);
} }
.chat__kachelknopf:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; } .chat__kachelknopf:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; }
/* =====================================================================
AUS DEM FLECK WIRD EIN RING (25.09.2026)
Im Bildschirmfoto war das ein voller Kreis in der gewählten Farbe,
28 px groß, zwischen der Überschrift „Gespräche" und dem Knopf
„Neu". In dieser Umgebung liest man einen farbigen Vollkreis als
MARKE – als Zahl, die gerade keine Zahl hat. Genau daneben steht
ja auch eine (der Zähler der ungelesenen Nachrichten, gleiche
Größe, gleiche Form). Er meldet aber nichts, er ist ein SCHALTER.
Jetzt: ein Ring in der Farbe um einen dunklen Kern. Zwei Gründe,
und beide zählen mehr als der Geschmack:
1. DIESELBE SPRACHE WIE DIE GANZE SEITE. Farbe erscheint hier
überall als Kontur – die Kante an der Blase, die Schiene an
der offenen Zeile, der Saum am Zeichen. Eine gefüllte Scheibe
war der einzige Ort, an dem Farbe Fläche war.
2. EIN RING IST DIE FORM, in der jedes Zeichenprogramm eine
Farbwahl anbietet. Sie muss niemandem erklärt werden.
DAS SKRIPT BLEIBT UNBERÜHRT: Es setzt weiterhin nur `background`
auf den gewählten Ton. Der dunkle Kern liegt als `::after`
darüber – so bleibt die eine Zeile im Skript die eine Zeile im
Skript, und die Farbe ist trotzdem ein Ring.
`inset: 5px` auf 28 px ergibt einen Ring von 5 px Stärke. Dünner,
und ein dunkler Ton verschwindet gegen den dunklen Kern; dicker,
und es ist wieder ein Fleck. */
.chat__kachelknopf-probe { .chat__kachelknopf-probe {
display: block; width: 100%; height: 100%; display: block; position: relative;
width: 100%; height: 100%;
border-radius: 50%; border-radius: 50%;
/* Eine feine Innenkante, damit ein sehr dunkler Ton nicht aussieht /* Eine feine Innenkante, damit ein sehr dunkler Ton nicht aussieht
wie ein Loch im Knopf. */ wie ein Loch im Knopf. */
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .10); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}
.chat__kachelknopf-probe::after {
content: ""; position: absolute; inset: 5px;
border-radius: 50%;
background: rgba(8, 12, 19, .94);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .7);
} }
/* „Neu" steht danach und schiebt sich nicht mehr selbst -- der /* „Neu" steht danach und schiebt sich nicht mehr selbst -- der
Farbfleck hat den auto-Rand übernommen. Zwei auto-Ränder Farbfleck hat den auto-Rand übernommen. Zwei auto-Ränder
@@ -4042,9 +4526,34 @@
damit in zwei statt drei Reihen, ohne dass die Schrift damit in zwei statt drei Reihen, ohne dass die Schrift
schrumpft. */ schrumpft. */
font-size: .72rem; letter-spacing: .02em; text-transform: none; font-size: .72rem; letter-spacing: .02em; text-transform: none;
margin-top: 7px; padding-top: 6px; /* DIE MULDE ZIEHT MIT (25.09.2026). Seit die Fusszeile eine
eingesenkte Flaeche ist, reicht es nicht mehr, oben Abstand
wegzunehmen -- die Polsterung der Mulde selbst gehoert dazu.
Bliebe hier `padding-top`, haette die Mulde auf dem Handy
unten 6 px und oben 6+6 px, und sie saesse schief. */
margin: 8px -7px -2px; padding: 5px 6px;
border-radius: 12px;
} }
.chat-nachricht__fuss button { padding: 3px 5px; } .chat-nachricht__fuss button { padding: 3px 6px 3px 5px; gap: 4px; }
/* EIN PIXEL KLEINER, UND ES SPART FUENF. Die Zeichen sind am
Rechner 13 px; auf 412 px sparen 12 px mal fuenf Knoepfe plus
der engere Abstand zusammen rund 10 px -- genug, dass „loeschen
(Notfall)" nicht allein in eine dritte Zeile faellt. Unter 12 px
wird aus einem Papierkorb ein Fleck; das ist die Grenze. */
.chat-nachricht__fuss button::before {
width: 12px; height: 12px;
-webkit-mask-size: 12px 12px;
mask-size: 12px 12px;
}
.chat-nachricht__weg-knopf[data-notfall="ja"]::before {
width: 13px; height: 13px;
-webkit-mask-size: 13px 13px;
mask-size: 13px 13px;
}
/* Die Uhrzeit gibt ihr Schild ab: Auf dem Handy zaehlt jede
Polsterung, und die Trennung zwischen Angabe und Knopf macht
hier ohnehin schon die Reihenfolge. */
.chat-nachricht__zeit { padding: 0 2px; background: none; }
/* KEIN `margin-right: auto` AUF DEM HANDY. Am Rechner schiebt es /* KEIN `margin-right: auto` AUF DEM HANDY. Am Rechner schiebt es
die Handgriffe nach rechts und trennt sie von der Angabe -- gut. die Handgriffe nach rechts und trennt sie von der Angabe -- gut.
Auf 412 px nimmt es die ganze erste Zeile fuer die Uhrzeit, und Auf 412 px nimmt es die ganze erste Zeile fuer die Uhrzeit, und
@@ -4055,4 +4564,12 @@
/* Die Knopfgruppe oben rechts: Auf 412 px schob ihre Polsterung /* Die Knopfgruppe oben rechts: Auf 412 px schob ihre Polsterung
sie unter den Titel. Ohne sie passt sie wieder daneben. */ sie unter den Titel. Ohne sie passt sie wieder daneben. */
.chat__kopf-knoepfe { padding: 2px; gap: 2px; border-radius: 11px; } .chat__kopf-knoepfe { padding: 2px; gap: 2px; border-radius: 11px; }
/* DAS GESICHT IM KOPF BLEIBT AM HANDY WEG. Die Rechnung steht bei
`.chat__kopf-zeichen` weiter oben: Mit ihm blieben dem Namen
126 px, seine Untergrenze sind 128 -- die Knopfreihe fiele eine
Zeile tiefer und der Kopf waere 44 px hoeher. Zwei Klassen weit
genug (`.chat__kopf .chat__kopf-zeichen`), um die Grundregel
`.chat-raum__zeichen { display: grid }` zu schlagen; eine
Medienabfrage allein erhoeht die Spezifitaet nicht. */
.chat__kopf .chat__kopf-zeichen { display: none; }
} }
+242 -48
View File
@@ -792,15 +792,237 @@
ungelesenMelden(); ungelesenMelden();
} }
/* ==== DIE DREI FAECHER (25.09.2026) ==============================
Filipe: „ich will 3 kategorien haben. chats mit einzelnen
personen, gruppen chats und kanäle."
DIE ART STEHT SCHON AN JEDEM GESPRAECH (`r.art`: direkt, gruppe,
kanal) -- es gibt also nichts zu erfinden, nur zu sortieren. Genau
deshalb ist diese Liste hier eine ABLEITUNG und keine zweite
Wahrheit: Kaeme morgen eine vierte Art dazu, faellt sie hier auf
(die Zeilen waeren in keinem Fach), statt still zu verschwinden.
GEMERKT WIRD DIE WAHL, und zwar ueber das Neuladen hinaus: Wer im
Kanal arbeitet, arbeitet meist den ganzen Tag im Kanal. Jedes Mal
neu zu waehlen waere ein Griff, den niemand will.
`try` UM DEN SPEICHER: In einem privaten Fenster wirft
localStorage. Ohne den Fang waere die ganze Liste weg -- wegen
einer Bequemlichkeit. */
const FAECHER = [
{ wert: 'direkt', name: 'Personen', leer: 'Noch kein Gespräch mit einer einzelnen Person.' },
{ wert: 'gruppe', name: 'Gruppen', leer: 'Noch keine Gruppe. Mit „Neu" legst du eine an.' },
{ wert: 'kanal', name: 'Kanäle', leer: 'Noch kein Kanal.' },
];
let fach = (() => {
try { return localStorage.getItem('chat-fach') || 'direkt'; } catch { return 'direkt'; }
})();
if (!FAECHER.some((f) => f.wert === fach)) fach = 'direkt';
/* Einmal je Seitenaufruf wird geprueft, ob das gemerkte Fach
ueberhaupt etwas enthaelt -- siehe raeumeZeichnen(). */
let fachGeprueft = false;
function fachWaehlen(wert) {
fach = wert;
try { localStorage.setItem('chat-fach', wert); } catch { /* egal */ }
raeumeZeichnen();
}
/* Die Leiste wird bei jedem Zeichnen neu gebaut -- die Zahlen daran
aendern sich mit jeder Nachricht. */
function faecherZeichnen() {
const leiste = $('chat-arten');
if (!leiste) return;
leiste.textContent = '';
for (const f of FAECHER) {
const drin = raeume.filter((r) => (r.art || 'direkt') === f.wert);
const neu = drin.reduce((n, r) => n + (Number(r.ungelesen) || 0), 0);
/* WURDE ICH IN DIESEM FACH GERUFEN? (25.09.2026)
Gefunden hat das nicht ein Blick, sondern pruef-erwaehnung:
Die Erwaehnung lag in einer GRUPPE, das offene Fach war
„Personen" -- und das @ an der Zeile war damit nirgends zu
sehen. Ein Ruf, den ein geschlossenes Fach verschluckt, ist
schlimmer als gar kein Ruf: Man glaubt, es wartet nichts.
Dieselbe Antwort wie bei den Ungelesenen eine Zeile weiter
oben, und aus demselben Grund. Der Unterschied: Das @ tritt
NICHT zurueck, wenn daneben eine Zahl steht -- es ist die
wichtigere Auskunft von beiden ("es ging an DICH"), genau wie
an der Zeile selbst. */
const gerufen = drin.some((r) => r.erwaehnt);
const k = el('button', 'chat-art');
k.type = 'button';
k.setAttribute('role', 'tab');
k.dataset.art = f.wert;
k.setAttribute('aria-selected', String(f.wert === fach));
/* NICHT AUSWAEHLBAR HEISST NICHT UNSICHTBAR: Ein leeres Fach
bleibt stehen und sagt "hier ist nichts". Waere es weg,
wuesste niemand, dass es die Art ueberhaupt gibt -- und die
Leiste haette mal zwei, mal drei Faecher. */
k.append(el('span', 'chat-art__name', f.name));
if (gerufen) {
const at = el('span', 'chat-art__at', '@');
at.title = 'In diesem Fach wurdest du erwähnt';
/* Ein nacktes "@" wird je nach Vorleseprogramm als "at",
"Klammeraffe" oder gar nicht gelesen -- derselbe Satz wie
an der Zeile. */
at.setAttribute('aria-label', 'In diesem Fach wurdest du erwähnt');
k.append(at);
}
k.append(el('span', 'chat-art__zahl', String(drin.length)));
if (neu) {
/* DIE UNGELESENEN DES FACHS STEHEN AM FACH. Sonst waere ein
geschlossenes Fach ein Ort, an dem Nachrichten liegen
bleiben, ohne dass man es sieht -- der schlimmste Fehler,
den eine Sortierung machen kann. */
const punkt = el('span', 'chat-art__neu', neu > 99 ? '99+' : String(neu));
punkt.setAttribute('aria-label',
neu === 1 ? '1 ungelesene Nachricht' : neu + ' ungelesene Nachrichten');
k.append(punkt);
}
k.addEventListener('click', () => fachWaehlen(f.wert));
/* Mit den Pfeiltasten zwischen den Faechern -- so erwartet es,
wer eine Registerleiste bedient. */
k.addEventListener('keydown', (e) => {
const i = FAECHER.findIndex((x) => x.wert === f.wert);
if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {
e.preventDefault();
const n = (i + (e.key === 'ArrowRight' ? 1 : FAECHER.length - 1)) % FAECHER.length;
fachWaehlen(FAECHER[n].wert);
$('chat-arten')?.querySelector(`[data-art="${FAECHER[n].wert}"]`)?.focus();
}
});
leiste.append(k);
}
}
/* ==== EIN ZEICHEN, EINE STELLE (25.09.2026) =====================
Das runde Zeichen – Raute für einen Kanal, Zahl für eine Gruppe,
Gesicht oder Anfangsbuchstaben für einen Menschen – stand bisher
nur in der Liste, als rund fünfzig Zeilen mitten im Zeichnen.
Seit der Kopf des Gesprächs dasselbe Zeichen trägt, gäbe es das
zweimal, und die zweite Abschrift ist immer die, in der beim
nächsten Umbau eine Zeile fehlt (siehe 11.09.2026, die
abgeschriebene Spaltenliste – sie hat Daten gekostet).
SIE FÜLLT EIN VORHANDENES ELEMENT, statt eines zu bauen: Der Kopf
hat sein Zeichen fest im HTML und tauscht nur den Inhalt. Deshalb
wird hier ZUERST aufgeräumt – sonst trüge ein Zweiergespräch noch
die Raute des Kanals von vorhin. */
function zeichenFuellen(ziel, r) {
ziel.textContent = '';
delete ziel.dataset.kanal;
delete ziel.dataset.gruppe;
delete ziel.dataset.rolle;
const art = r.art || 'direkt';
if (art === 'kanal') {
/* Das Rautenzeichen ist die Schreibweise, die jeder aus anderen
Messengern kennt -- es muss nicht erklaert werden. */
ziel.dataset.kanal = 'ja';
ziel.textContent = '#';
} else if (art === 'gruppe') {
/* Eine Gruppe zeigt ihre Groesse statt einer Initiale -- der
Name steht ohnehin daneben. */
ziel.dataset.gruppe = 'ja';
ziel.textContent = String(r.teilnehmer.length);
} else {
ziel.textContent = initialen(r.name);
const gegen = r.teilnehmer.find((t) => t.id !== ich.id);
if (gegen) {
/* DAS GESICHT STATT DER INITIALEN (20.09.2026).
Filipe: "da soll man im chat auch die profilfotos von den
leuten sehen wenn die schon eins drin haben."
DER BUCHSTABE BLEIBT ALS UNTERLAGE LIEGEN und wird nicht
ersetzt: Laedt das Bild nicht, steht dort weiterhin etwas
Sinnvolles statt eines kaputten Bildsymbols.
EINMAL, NICHT ZWEIMAL (behoben 24.09.2026): Dieser Block
stand einmal vor und einmal nach der Rollenzeile. Jedes
Gespraech mit Profilbild lud das Bild also zweimal -- zu
sehen war davon nichts, gekostet hat es trotzdem, bei jedem
Neuzeichnen der Liste. */
ziel.dataset.rolle = gegen.rolle;
if (gegen.bild) {
const b = document.createElement('img');
b.src = gegen.bild; b.alt = '';
b.addEventListener('error', () => b.remove());
ziel.append(b);
}
}
}
return ziel;
}
function raeumeZeichnen() { function raeumeZeichnen() {
const ziel = $('raeume'); const ziel = $('raeume');
/* ==== EIN LEERES FACH MERKT MAN SICH NICHT (25.09.2026) =========
Gefunden hat das pruef-gifs, nicht ein Blick: In der Pruefung
gibt es genau EIN Gespraech, den Treff -- einen Kanal. Das
voreingestellte Fach ist „Personen", und dort stand: „Noch kein
Gespräch mit einer einzelnen Person." Die Seite sah leer aus,
obwohl ein voller Kanal danebenlag, nur eine Lasche weiter.
Genau so geht es jedem Neuen im Haus: Der erste Raum, in dem er
landet, ist der Treff -- ein Kanal. Er haette beim ersten
Oeffnen eine leere Liste gesehen.
DIE WAHL WIRD NICHT GESPEICHERT. Das hier ist geraten, nicht
gewaehlt: Sobald jemand selbst auf ein Fach tippt, gilt seine
Wahl und ueberlebt das Neuladen. Wuerde diese Notlage mit
abgespeichert, waere sie beim naechsten Mal nicht mehr von
einer echten Entscheidung zu unterscheiden.
DIE REIHENFOLGE IST NICHT BELIEBIG: erst das Fach, in dem
jemand GERUFEN wurde, dann das mit Ungelesenem, dann das erste,
in dem ueberhaupt etwas steht. Dieselbe Rangfolge wie an jeder
Zeile -- „es ging an dich" wiegt schwerer als „es ist neu",
und das wiegt schwerer als „es ist da".
EINMAL, NICHT BEI JEDEM ZEICHNEN: Die Liste wird bei jeder
eintreffenden Nachricht neu gezeichnet. Ohne den Merker
spraenge das Fach mitten im Lesen um, sobald irgendwo etwas
hereinkommt -- eine Seite, die unter den Haenden wegwandert. */
if (!fachGeprueft && raeume.length) {
fachGeprueft = true;
const inFach = (w, pruefe) => raeume.some(
(r) => (r.art || 'direkt') === w && (!pruefe || pruefe(r)));
if (!inFach(fach)) {
const wahl = FAECHER.find((f) => inFach(f.wert, (r) => r.erwaehnt))
|| FAECHER.find((f) => inFach(f.wert, (r) => r.ungelesen))
|| FAECHER.find((f) => inFach(f.wert));
if (wahl) fach = wahl.wert;
}
}
const suchtext = ($('suche').value || '').trim().toLowerCase(); const suchtext = ($('suche').value || '').trim().toLowerCase();
faecherZeichnen();
/* BEIM SUCHEN GILT DAS FACH NICHT. Wer einen Namen eintippt, will
ihn finden -- und nicht erst raten, in welchem der drei Faecher
er liegt. Ein Treffer, der wegen einer Voreinstellung nicht
erscheint, ist schlimmer als kein Suchfeld. */
const zeigen = suchtext const zeigen = suchtext
? raeume.filter((r) => r.name.toLowerCase().includes(suchtext)) ? raeume.filter((r) => r.name.toLowerCase().includes(suchtext))
: raeume; : raeume.filter((r) => (r.art || 'direkt') === fach);
ziel.textContent = ''; ziel.textContent = '';
$('liste-leer').hidden = raeume.length > 0; /* DER LEER-SATZ GEHOERT ZUM FACH, nicht zur ganzen Liste. Vorher
stand er nur da, wenn es GAR kein Gespraech gab -- ein leeres
Fach neben zwei vollen zeigte einfach nichts an, und das sieht
aus wie ein Fehler beim Laden. */
const leerSatz = $('liste-leer');
if (leerSatz) {
leerSatz.hidden = zeigen.length > 0 || !!suchtext;
if (!zeigen.length && !suchtext) {
leerSatz.textContent = raeume.length
? (FAECHER.find((f) => f.wert === fach)?.leer || 'Hier ist noch nichts.')
: 'Noch keine Gespräche. Mit „Neu" schreibst du der ersten Person.';
}
}
/* WIE VIELE WARTEN AUF MICH (24.09.2026) -- die Summe, nicht die /* WIE VIELE WARTEN AUF MICH (24.09.2026) -- die Summe, nicht die
Zahl der Gespraeche. „3 Gespraeche mit Neuem" und „17 neue Zahl der Gespraeche. „3 Gespraeche mit Neuem" und „17 neue
@@ -847,53 +1069,13 @@
const zeichen = el('span', 'chat-raum__zeichen'); const zeichen = el('span', 'chat-raum__zeichen');
zeichen.setAttribute('aria-hidden', 'true'); zeichen.setAttribute('aria-hidden', 'true');
if (r.art === 'kanal') { /* GEBAUT WIRD ES AN EINER STELLE (25.09.2026). Hier standen
/* Das Rautenzeichen ist die Schreibweise, die jeder aus rund fuenfzig Zeilen, die seit heute auch der Kopf des
anderen Messengern kennt -- es muss nicht erklaert werden. */ Gespraechs braucht -- siehe zeichenFuellen() weiter oben.
zeichen.dataset.kanal = 'ja'; Die Begruendungen zum Profilbild sind dorthin mitgewandert
zeichen.textContent = '#'; und nicht verlorengegangen. */
} else if (r.art === 'gruppe') { zeichenFuellen(zeichen, r);
zeichen.dataset.gruppe = 'ja';
zeichen.textContent = String(r.teilnehmer.length);
} else {
zeichen.textContent = initialen(r.name);
const gegen = r.teilnehmer.find((t) => t.id !== ich.id);
if (gegen) {
/* DAS GESICHT STATT DER INITIALEN (20.09.2026).
Filipe: "da soll man im chat auch die profilfotos von den
leuten sehen wenn die schon eins drin haben."
Im offenen Gespraech stand es laengst -- in der Liste
daneben ein Buchstabe, vom selben Menschen. Der Grund war
eine Zeile im Server, die das Bild wegwarf.
DER BUCHSTABE BLEIBT ALS UNTERLAGE LIEGEN und wird nicht
ersetzt: Laedt das Bild nicht, steht dort weiterhin etwas
Sinnvolles statt eines kaputten Bildsymbols. Dieselbe
Bauweise wie im Verlauf, in der Kopfleiste und in der
Personenauswahl -- vier Stellen, ein Verhalten. */
/* EINMAL, NICHT ZWEIMAL (behoben 24.09.2026).
Dieser Block stand hier doppelt -- Zeichen fuer Zeichen
gleich, einmal vor und einmal nach der Rollenzeile. Jedes
Gespraech mit Profilbild lud das Bild also zweimal und
haengte zwei <img> uebereinander.
Zu SEHEN war davon nichts: Beide liegen deckend
uebereinander und zeigen dasselbe Bild. Gekostet hat es
trotzdem -- doppelte Ladelast bei jedem Neuzeichnen der
Liste, und die wird bei jeder eintreffenden Nachricht neu
gezeichnet. */
zeichen.dataset.rolle = gegen.rolle;
if (gegen.bild) {
const b = document.createElement('img');
b.src = gegen.bild; b.alt = '';
b.addEventListener('error', () => b.remove());
zeichen.append(b);
}
}
}
knopf.append(zeichen); knopf.append(zeichen);
const mitte = el('span', 'chat-raum__mitte'); const mitte = el('span', 'chat-raum__mitte');
@@ -1104,6 +1286,13 @@
antwortAuf = null; antwortAuf = null;
} catch { return; } } catch { return; }
/* DAS GESICHT ZUM NAMEN (25.09.2026) -- dieselbe Funktion, die
auch jede Zeile der Liste fuellt. */
const kopfZeichen = $('verlauf-zeichen');
if (kopfZeichen) {
zeichenFuellen(kopfZeichen, offen);
kopfZeichen.hidden = false;
}
$('verlauf-titel').textContent = offen.name; $('verlauf-titel').textContent = offen.name;
/* Bei allem, was mehr als zwei Leute hat, stehen die Namen darunter /* Bei allem, was mehr als zwei Leute hat, stehen die Namen darunter
-- bei einem Zweier-Gespraech die Rolle des Gegenuebers. */ -- bei einem Zweier-Gespraech die Rolle des Gegenuebers. */
@@ -4041,6 +4230,11 @@
$('gespraech-weg').hidden = true; $('gespraech-weg').hidden = true;
$('raum-aufloesen').hidden = true; $('raum-aufloesen').hidden = true;
$('kanal-leute').hidden = true; $('kanal-leute').hidden = true;
/* UND ES GEHT AUCH WIEDER WEG. Ein Gesicht neben „Wähle ein
Gespräch" gehörte zu einem Gespräch, das gerade geschlossen
wurde – es zeigte auf niemanden. */
const kopfZeichenWeg = $('verlauf-zeichen');
if (kopfZeichenWeg) { kopfZeichenWeg.hidden = true; kopfZeichenWeg.textContent = ''; }
$('verlauf-titel').textContent = 'Wähle ein Gespräch'; $('verlauf-titel').textContent = 'Wähle ein Gespräch';
$('verlauf-unter').textContent = ''; $('verlauf-unter').textContent = '';
$('verlauf-leer').hidden = false; $('verlauf-leer').hidden = false;
+19 -19
View File
@@ -12,19 +12,19 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -391,22 +391,22 @@
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach <!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne `window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. --> Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
<script src="assets/js/textform.js?v=202609250141"></script> <script src="assets/js/textform.js?v=202609250224"></script>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/hochladen.js?v=202609250141" defer></script> <script src="assets/js/hochladen.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/zuteilung.js?v=202609250141" defer></script> <script src="assets/js/zuteilung.js?v=202609250224" defer></script>
<!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in <!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in
aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine
eigene Datei; hier zeigt er den Creator-Katalog. eigene Datei; hier zeigt er den Creator-Katalog.
Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. --> Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. -->
<script src="assets/js/vorlagenbrett.js?v=202609250141" defer></script> <script src="assets/js/vorlagenbrett.js?v=202609250224" defer></script>
<script src="assets/js/aufgaben.js?v=202609250141" defer></script> <script src="assets/js/aufgaben.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/automation.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -168,15 +168,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/automation.js?v=202609250141" defer></script> <script src="assets/js/automation.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -197,16 +197,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/holen.js?v=202609250141" defer></script> <script src="assets/js/holen.js?v=202609250224" defer></script>
<script src="assets/js/befinden.js?v=202609250141" defer></script> <script src="assets/js/befinden.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+22 -22
View File
@@ -12,24 +12,24 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/bereich.css?v=202609250224" />
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett <!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite „Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
Stelle, an der dieselbe Sache anders aussieht. --> Stelle, an der dieselbe Sache anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -304,19 +304,19 @@
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach <!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne `window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. --> Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
<script src="assets/js/textform.js?v=202609250141"></script> <script src="assets/js/textform.js?v=202609250224"></script>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/checkliste.js?v=202609250141" defer></script> <script src="assets/js/checkliste.js?v=202609250224" defer></script>
<script src="assets/js/ampel.js?v=202609250141" defer></script> <script src="assets/js/ampel.js?v=202609250224" defer></script>
<script src="assets/js/schulung.js?v=202609250141" defer></script> <script src="assets/js/schulung.js?v=202609250224" defer></script>
<script src="assets/js/holen.js?v=202609250141" defer></script> <script src="assets/js/holen.js?v=202609250224" defer></script>
<script src="assets/js/bereich.js?v=202609250141" defer></script> <script src="assets/js/bereich.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+19 -19
View File
@@ -7,17 +7,17 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/bereich.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/treff.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. --> <!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -108,15 +108,15 @@
</main> </main>
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. --> <!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/auskunft.js?v=202609250141" defer></script> <script src="assets/js/auskunft.js?v=202609250224" defer></script>
<script src="assets/js/bewerben.js?v=202609250141" defer></script> <script src="assets/js/bewerben.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -7,16 +7,16 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. --> <!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -80,16 +80,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/auskunft.js?v=202609250141" defer></script> <script src="assets/js/auskunft.js?v=202609250224" defer></script>
<script src="assets/js/bewerbungen.js?v=202609250141" defer></script> <script src="assets/js/bewerbungen.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/calls.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -89,15 +89,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/ki.js?v=202609250141" defer></script> <script src="assets/js/ki.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/calls.js?v=202609250141" defer></script> <script src="assets/js/calls.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+68 -19
View File
@@ -12,26 +12,26 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog, <!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem .neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html. zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
Dialog zu sehen bekam. --> Dialog zu sehen bekam. -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/chat.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -159,6 +159,29 @@
<!-- Suchen erst, wenn es etwas zu suchen gibt (chat.js blendet <!-- Suchen erst, wenn es etwas zu suchen gibt (chat.js blendet
es ab acht Gesprächen ein). Ein Suchfeld über drei Einträgen es ab acht Gesprächen ein). Ein Suchfeld über drei Einträgen
ist Zierde. --> ist Zierde. -->
<!-- ================================================================
DREI KATEGORIEN (25.09.2026)
Filipe: „ich will 3 kategorien haben. chats mit einzelnen
personen, gruppen chats und kanäle. ich will dass man diese
drei kategorien hat und in den jeweiligen kategorien halt
die richtigen chats."
SIE STEHEN GANZ OBEN, ueber dem Suchfeld: Man waehlt zuerst
das Fach und sucht dann darin -- nicht andersherum.
GEBAUT WIRD SIE VOM SKRIPT, nicht hier: An jeder Karte
haengt eine Zahl (wie viele Gespraeche) und ein Punkt (wie
viele ungelesen), und beides aendert sich mit jeder
Nachricht. Fest eingetragene Beschriftungen waeren beim
ersten Eintreffen falsch.
`role="tablist"` und nicht einfach drei Knoepfe: Wer mit der
Tastatur arbeitet, springt damit mit den Pfeiltasten
zwischen den Faechern statt mit sechs Tabulatorschritten. -->
<div class="chat-arten" id="chat-arten" role="tablist"
aria-label="Art der Gespräche"></div>
<div class="chat__suche" id="suche-zeile" hidden> <div class="chat__suche" id="suche-zeile" hidden>
<input type="search" id="suche" placeholder="Name oder Gruppe …" <input type="search" id="suche" placeholder="Name oder Gruppe …"
aria-label="Gespräche durchsuchen" autocomplete="off" /> aria-label="Gespräche durchsuchen" autocomplete="off" />
@@ -198,6 +221,32 @@
<button type="button" class="chat__zurueck" id="zur-liste" aria-label="Zurück zu den Gesprächen"> <button type="button" class="chat__zurueck" id="zur-liste" aria-label="Zurück zu den Gesprächen">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.5 5.5 8 12l6.5 6.5" /></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.5 5.5 8 12l6.5 6.5" /></svg>
</button> </button>
<!-- ================================================================
EIN GESICHT IM KOPF DES GESPRÄCHS (25.09.2026)
Filipe: „ich will dass du überhaupt die komplette kachel
veränderst, ich will dass alles anderst aussieht und
gestaltet ist … dass die ganze community und team morgen
total überrascht sind und den chat nicht wieder erkennen."
Im Kopf stand bisher nur ein Name. Links in der Liste
trägt jedes Gespräch sein Zeichen – Gesicht, Raute oder
Gruppenzahl –, und ausgerechnet beim Öffnen verschwand
es. Am Handy ist die Liste dann gar nicht mehr zu sehen:
Man sitzt in einem Gespräch und hat nur ein Wort davon.
ES IST DASSELBE ZEICHEN wie in der Liste, nicht ein
ähnliches: dieselbe Klasse, dieselben Rollenfarben,
dasselbe Profilbild – gefüllt von derselben Funktion
(`zeichenFuellen` in chat.js). Eine zweite Bauweise für
dieselbe Sache wäre die, die beim nächsten Umbau
vergessen wird.
`hidden`, solange kein Gespräch offen ist: Dann steht
rechts „Wähle ein Gespräch", und es gibt niemanden
abzubilden. -->
<span class="chat-raum__zeichen chat__kopf-zeichen" id="verlauf-zeichen"
hidden aria-hidden="true"></span>
<div class="chat__kopf-text"> <div class="chat__kopf-text">
<h2 class="chat__titel" id="verlauf-titel">Wähle ein Gespräch</h2> <h2 class="chat__titel" id="verlauf-titel">Wähle ein Gespräch</h2>
<p class="chat__unter" id="verlauf-unter"></p> <p class="chat__unter" id="verlauf-unter"></p>
@@ -619,25 +668,25 @@
</form> </form>
</dialog> </dialog>
<script src="assets/js/bereiche.js?v=202609250141"></script> <script src="assets/js/bereiche.js?v=202609250224"></script>
<!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js <!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js
fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter, fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter,
waere die erste gezeichnete Nachricht ohne Gestaltung -- und das waere die erste gezeichnete Nachricht ohne Gestaltung -- und das
faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie
wirklich vor den anderen dasteht. --> wirklich vor den anderen dasteht. -->
<script src="assets/js/textform.js?v=202609250141"></script> <script src="assets/js/textform.js?v=202609250224"></script>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/hochladen.js?v=202609250141" defer></script> <script src="assets/js/hochladen.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141"></script> <script src="assets/js/kopf.js?v=202609250224"></script>
<script src="assets/js/glocke.js?v=202609250141"></script> <script src="assets/js/glocke.js?v=202609250224"></script>
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten` <!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt. bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
Andersherum waere die Reihenfolge eine stille Abhaengigkeit -- Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
die Knoepfe fehlten, und niemand wuesste warum. --> die Knoepfe fehlten, und niemand wuesste warum. -->
<script src="assets/js/anruf.js?v=202609250141"></script> <script src="assets/js/anruf.js?v=202609250224"></script>
<script src="assets/js/chat.js?v=202609250141"></script> <script src="assets/js/chat.js?v=202609250224"></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/content.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/content.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -179,15 +179,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/checkliste.js?v=202609250141" defer></script> <script src="assets/js/checkliste.js?v=202609250224" defer></script>
<script src="assets/js/content.js?v=202609250141" defer></script> <script src="assets/js/content.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+6 -6
View File
@@ -36,15 +36,15 @@
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp" <link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" /> type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst <!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen 404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es: statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
die eine Seite, auf der man das Umfaerben sieht. --> die eine Seite, auf der man das Umfaerben sieht. -->
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/crew-haus.css?v=202609250224" />
</head> </head>
<body class="gate gate--crew"> <body class="gate gate--crew">
@@ -459,7 +459,7 @@
<script src="assets/js/gate.js?v=202609250141" defer></script> <script src="assets/js/gate.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+4 -4
View File
@@ -23,25 +23,25 @@
}, },
"icons": [ "icons": [
{ {
"src": "/assets/img/app-symbole/crew-192.png?v=202609250141", "src": "/assets/img/app-symbole/crew-192.png?v=202609250224",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/crew-512.png?v=202609250141", "src": "/assets/img/app-symbole/crew-512.png?v=202609250224",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609250141", "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609250224",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
}, },
{ {
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609250141", "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609250224",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/dateien.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -108,15 +108,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/hochladen.js?v=202609250141" defer></script> <script src="assets/js/hochladen.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/dateien.js?v=202609250141" defer></script> <script src="assets/js/dateien.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -297,20 +297,20 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/holen.js?v=202609250141" defer></script> <script src="assets/js/holen.js?v=202609250224" defer></script>
<!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein, <!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein,
also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide
in Dokumentreihenfolge. --> in Dokumentreihenfolge. -->
<script src="assets/js/vorlagenbrett.js?v=202609250141" defer></script> <script src="assets/js/vorlagenbrett.js?v=202609250224" defer></script>
<script src="assets/js/entwicklung.js?v=202609250141" defer></script> <script src="assets/js/entwicklung.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/hilfe.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -146,14 +146,14 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/hilfe.js?v=202609250141" defer></script> <script src="assets/js/hilfe.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+5 -5
View File
@@ -30,9 +30,9 @@
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp" <link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" /> type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
</head> </head>
<body class="gate"> <body class="gate">
@@ -427,7 +427,7 @@
<script src="assets/js/gate.js?v=202609250141" defer></script> <script src="assets/js/gate.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/kalender.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -383,15 +383,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/kalender.js?v=202609250141" defer></script> <script src="assets/js/kalender.js?v=202609250224" defer></script>
<script src="assets/js/kalender-abo.js?v=202609250141" defer></script> <script src="assets/js/kalender-abo.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/leistung.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -444,13 +444,13 @@
</form> </form>
</dialog> </dialog>
<script src="assets/js/meldung.js?v=202609250141"></script> <script src="assets/js/meldung.js?v=202609250224"></script>
<script src="assets/js/nachfrage.js?v=202609250141"></script> <script src="assets/js/nachfrage.js?v=202609250224"></script>
<script src="assets/js/wahl.js?v=202609250141"></script> <script src="assets/js/wahl.js?v=202609250224"></script>
<script src="assets/js/bereiche.js?v=202609250141"></script> <script src="assets/js/bereiche.js?v=202609250224"></script>
<script src="assets/js/kopf.js?v=202609250141"></script> <script src="assets/js/kopf.js?v=202609250224"></script>
<script src="assets/js/glocke.js?v=202609250141"></script> <script src="assets/js/glocke.js?v=202609250224"></script>
<script src="assets/js/leistung.js?v=202609250141"></script> <script src="assets/js/leistung.js?v=202609250224"></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,13 +12,13 @@
vergessen wird. --> vergessen wird. -->
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/material.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/material.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start" data-ton="42" data-buehne="studio"> <body class="start" data-ton="42" data-buehne="studio">
@@ -138,14 +138,14 @@
<p class="m-laedt" id="laedt">Einen Moment …</p> <p class="m-laedt" id="laedt">Einen Moment …</p>
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/hochladen.js?v=202609250141" defer></script> <script src="assets/js/hochladen.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/material.js?v=202609250141" defer></script> <script src="assets/js/material.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/personen.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -453,14 +453,14 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/personen.js?v=202609250141" defer></script> <script src="assets/js/personen.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/profil.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -214,16 +214,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/hochladen.js?v=202609250141" defer></script> <script src="assets/js/hochladen.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/steckbrief.js?v=202609250141" defer></script> <script src="assets/js/steckbrief.js?v=202609250224" defer></script>
<script src="assets/js/profil.js?v=202609250141" defer></script> <script src="assets/js/profil.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/treff.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -134,14 +134,14 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. --> die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/holen.js?v=202609250141" defer></script> <script src="assets/js/holen.js?v=202609250224" defer></script>
<script src="assets/js/rechte.js?v=202609250141" defer></script> <script src="assets/js/rechte.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/report.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/report.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -106,17 +106,17 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/ki.js?v=202609250141" defer></script> <script src="assets/js/ki.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/holen.js?v=202609250141" defer></script> <script src="assets/js/holen.js?v=202609250224" defer></script>
<script src="assets/js/report.js?v=202609250141" defer></script> <script src="assets/js/report.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/scouting.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -173,14 +173,14 @@
</div> </div>
</div> </div>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/scouting.js?v=202609250141" defer></script> <script src="assets/js/scouting.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,21 +12,21 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe <!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. --> den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
<link rel="stylesheet" href="assets/css/heim.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/heim.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -700,16 +700,16 @@
</p> </p>
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/live.js?v=202609250141" defer></script> <script src="assets/js/live.js?v=202609250224" defer></script>
<script src="assets/js/start.js?v=202609250141" defer></script> <script src="assets/js/start.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/startcheck.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -85,16 +85,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/ki.js?v=202609250141" defer></script> <script src="assets/js/ki.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/startcheck.js?v=202609250141" defer></script> <script src="assets/js/startcheck.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/profil.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -150,16 +150,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/hochladen.js?v=202609250141" defer></script> <script src="assets/js/hochladen.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/auskunft.js?v=202609250141" defer></script> <script src="assets/js/auskunft.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/steckbrief.js?v=202609250141" defer></script> <script src="assets/js/steckbrief.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+14 -14
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/support.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/support.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -123,16 +123,16 @@
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese (reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
trotzdem, deshalb sah man es nur in der Browserkonsole. --> trotzdem, deshalb sah man es nur in der Browserkonsole. -->
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der <!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
uebersicht.html, und heute hier. --> uebersicht.html, und heute hier. -->
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/support.js?v=202609250141" defer></script> <script src="assets/js/support.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250224" />
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie <!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
der Regel hier waere die zweite Stelle, an der dieselbe Sache der Regel hier waere die zweite Stelle, an der dieselbe Sache
anders aussieht. --> anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -111,15 +111,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/holen.js?v=202609250141" defer></script> <script src="assets/js/holen.js?v=202609250224" defer></script>
<script src="assets/js/talente.js?v=202609250141" defer></script> <script src="assets/js/talente.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/team.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/team.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -110,15 +110,15 @@
</main> </main>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/holen.js?v=202609250141" defer></script> <script src="assets/js/holen.js?v=202609250224" defer></script>
<script src="assets/js/team.js?v=202609250141" defer></script> <script src="assets/js/team.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/team.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/team.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu <!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu
@@ -84,15 +84,15 @@
Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt
es niemandem auf, und deshalb prueft pruef-css-klassen die es niemandem auf, und deshalb prueft pruef-css-klassen die
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. --> ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/holen.js?v=202609250141" defer></script> <script src="assets/js/holen.js?v=202609250224" defer></script>
<script src="assets/js/teamlage.js?v=202609250141" defer></script> <script src="assets/js/teamlage.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/bereich.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -112,15 +112,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/teilen.js?v=202609250141" defer></script> <script src="assets/js/teilen.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/treff.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -126,14 +126,14 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/treff-moderation.js?v=202609250141" defer></script> <script src="assets/js/treff-moderation.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/treff.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des <!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. --> Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -248,14 +248,14 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. --> die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/auskunft.js?v=202609250141" defer></script> <script src="assets/js/auskunft.js?v=202609250224" defer></script>
<script src="assets/js/treff-regeln.js?v=202609250141" defer></script> <script src="assets/js/treff-regeln.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,22 +12,22 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der <!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
Dialog "Creator anlegen". --> Dialog "Creator anlegen". -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/uebersicht.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -149,16 +149,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/uebersicht.js?v=202609250141" defer></script> <script src="assets/js/uebersicht.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -335,14 +335,14 @@
</main> </main>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/live.js?v=202609250141" defer></script> <script src="assets/js/live.js?v=202609250224" defer></script>
<script src="assets/js/unsere-seiten.js?v=202609250141" defer></script> <script src="assets/js/unsere-seiten.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -106,17 +106,17 @@
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js <!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit
„Cannot read properties of undefined (reading 'LEITUNG')" ab. --> „Cannot read properties of undefined (reading 'LEITUNG')" ab. -->
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/holen.js?v=202609250141" defer></script> <script src="assets/js/holen.js?v=202609250224" defer></script>
<!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort <!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort
des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet
von pruef-meldungen, nicht beim Ansehen. --> von pruef-meldungen, nicht beim Ansehen. -->
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/unterstuetzen.js?v=202609250141" defer></script> <script src="assets/js/unterstuetzen.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,15 +7,15 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/werdegang.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -144,14 +144,14 @@
</main> </main>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/werdegang.js?v=202609250141" defer></script> <script src="assets/js/werdegang.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -12,13 +12,13 @@
vergessen wird. --> vergessen wird. -->
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/willkommen.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/willkommen.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026). <!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026).
`body.gate` ist die Anmeldewand: `display:flex; align-items:center`, `body.gate` ist die Anmeldewand: `display:flex; align-items:center`,
@@ -75,13 +75,13 @@
<p class="fehler" id="fehler" hidden></p> <p class="fehler" id="fehler" hidden></p>
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/willkommen.js?v=202609250141" defer></script> <script src="assets/js/willkommen.js?v=202609250224" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250141" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250224" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250141" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250224" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/gate.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/start.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/start.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/wissen.css?v=202609250224" />
<link rel="stylesheet" href="assets/css/module.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/module.css?v=202609250224" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609250141" /> <link rel="stylesheet" href="assets/css/haus.css?v=202609250224" />
</head> </head>
<body class="start"> <body class="start">
@@ -190,15 +190,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609250141" defer></script> <script src="assets/js/meldung.js?v=202609250224" defer></script>
<script src="assets/js/hochladen.js?v=202609250141" defer></script> <script src="assets/js/hochladen.js?v=202609250224" defer></script>
<script src="assets/js/nachfrage.js?v=202609250141" defer></script> <script src="assets/js/nachfrage.js?v=202609250224" defer></script>
<script src="assets/js/wahl.js?v=202609250141" defer></script> <script src="assets/js/wahl.js?v=202609250224" defer></script>
<script src="assets/js/bereiche.js?v=202609250141" defer></script> <script src="assets/js/bereiche.js?v=202609250224" defer></script>
<script src="assets/js/installieren.js?v=202609250141" defer></script> <script src="assets/js/installieren.js?v=202609250224" defer></script>
<script src="assets/js/kopf.js?v=202609250141" defer></script> <script src="assets/js/kopf.js?v=202609250224" defer></script>
<script src="assets/js/glocke.js?v=202609250141" defer></script> <script src="assets/js/glocke.js?v=202609250224" defer></script>
<script src="assets/js/wissen.js?v=202609250141" defer></script> <script src="assets/js/wissen.js?v=202609250224" defer></script>
</body> </body>
</html> </html>