Eine Kachel "Unterstuetzen" -- und die Gespraechsliste neu gebaut

=== 1. UNTERSTUETZEN (neue Kachel im Community-Bereich) ===

Filipe: "ich brauch auch noch eine kachel im community bereich. wo mein
paypal und meine amazon liste sein wird. wo die leute alle supporten
koennen auf andere art anstatt nur tiktok. jeder soll diese kachel sehen
aber nur dogfather soll sie veraendern koennen oder vieles mehr sehen."

Neu: unterstuetzen.html + css + js, server/workspace-unterstuetzung.js,
server/unterstuetzung-tabellen.js. Ton 45 (#7567fe) ist gerechnet, das
Kachelzeichen ist ein Herz ueber zwei offenen Haenden.

DIE WEGE STEHEN IN DER DATENBANK, nicht im Quelltext -- ein Recht, das
man nur ueber einen Entwickler ausueben kann, ist keines. DogFather
schreibt Titel, Text, Knopf und Adresse selbst, blendet Wege aus und
nimmt neue dazu.

DER PAYPAL-LINK STEHT LEER UND UNSICHTBAR DA. Filipe schrieb "mein
paypal kennst du ja schon" -- gesucht im ganzen Haus und im Vault,
nirgends gefunden. Eine Zahlungsadresse zu RATEN waere der
gefaehrlichste Fehler dieser Seite: Geld an einen Fremden, und niemand
merkt es. Also steht dort nichts, der Weg ist ausgeblendet, und die
Seite sagt genau EINER Person, dass er fehlt.

DREI ARTEN, UND DIE DRITTE IST DIE WICHTIGSTE: geld, geschenk, frei.
"Kostet nichts" bekommt dieselbe Kartenform und dieselbe Groesse.
Waeren die freien Wege kleiner oder weiter unten, waere die Aussage
"das ist zweite Wahl" -- und die Mehrheit derer, die hier lesen, waere
damit zweite Wahl.

DIE ZAEHLUNG IST ANONYM, UND ZWAR VON DER TABELLE HER. DogFather sieht,
wie oft ein Weg geoeffnet wurde (7/30 Tage/gesamt). Was er NICHT sieht,
ist WER -- weil es in unterstuetzung_striche keine Spalte dafuer gibt.
Geprueft wird das ueber PRAGMA table_info, nicht ueber eine Abfrage:
eine Abfrage liesse sich morgen erweitern, eine fehlende Spalte nicht.

Schreiben haengt an istDogFather, nicht an istLeitung -- die rechte Hand
fuehrt dieses Team mit und kommt trotzdem nicht an diesen Link. Jede
Adresse wird beim SCHREIBEN geprueft (nur https:// oder eine Seite
dieses Hauses); javascript:, data:, http:// und // werden abgewiesen.

Neu: server/pruef-unterstuetzung.mjs -- 70 Pruefungen, alle gruen.
Sie misst ueber die CREW-ADRESSE: Beim ersten Lauf waren vier Rollen
gruen und der Zuschauer rot, und es sah nach einem Rechtefehler aus.
Es war ein Messfehler -- ueber 127.0.0.1 landet man still im
Agenturhaus, und dort gibt es die Rolle "gast" gar nicht.

=== 2. DIE GESPRAECHSLISTE (screen1 + screen2) ===

Filipe: "ich will dass die komplette kachel viel krasser und geiler
aussieht. der hintergrund der kachel soll gleich bleiben."

Der Hintergrund ist unangetastet. Zwei echte Fehler auf seinem Bild:

  - Bei "Das Rudel" stand das "@" rechts oben und die orange "6" eine
    ZEILE TIEFER. Der Knopf ist ein Raster mit DREI Spalten und bekam
    VIER Kinder -- das vierte fiel um. Ausgerechnet die wichtigste
    Auskunft der Liste landete an der unauffaelligsten Stelle.
  - Jedes Gespraech mit Profilbild haengte das Bild ZWEIMAL ein: ein
    Block stand Zeichen fuer Zeichen doppelt da. Zu sehen war nichts,
    gekostet hat es die doppelte Ladelast bei jedem Neuzeichnen.

Und eine tote Regel: `.chat-raum__knopf[data-an="ja"]` beschrieb die
Schiene am offenen Gespraech -- gesetzt wird aber `data-offen` am <li>.
Die Regel griff nie, und daneben stand eine zweite, blassere Fassung
derselben Sache. Jetzt steht alles einmal, und die Schiene ist da.

Dazu: Zeilen als Karten, 44px-Gesichter, ein Zaehler neben "Gespraeche",
Suchfeld als Pille mit Lupe, runder Farbfleck statt Quadrat, und der
leere Raum rechts bekommt eine Mitte statt eines Satzes in der Ecke.

=== 3. VIER FUNDE NEBENBEI ===

  - supportAufraeumen() war exportiert und wurde NIRGENDS gerufen. Die
    Meldungen samt Bildschirmfotos waeren fuer immer liegen geblieben,
    obwohl "90 Tage" dokumentiert ist. Jetzt im Loeschkonzept.
  - aufgaben_zuteilung fehlte ebenfalls im Loeschkonzept (seit 21.09.).
    pruef-aufbewahrung ist damit wieder gruen.
  - pruef-start-ansicht war rot, seit "Aufgaben" am 23.09. die silberne
    Kachel bekam -- die ueberschreibt ihr --ton absichtlich. Die
    Pruefung nimmt sie jetzt aus UND prueft die Ausnahme selbst.
  - pruef-buehne meldete auf entwicklung.html 1,79:1 Kontrast bei "Wen
    gehst du durch?" -- die Ueberschrift lag direkt auf dem Foto. Sie
    steht jetzt auf einer deckenden Flaeche.

OFFEN: pruef-buehne meldet treff-regeln.html mal "0 von 40", mal "3 von
40" -- dieselbe Seite, verschiedene Antworten. Eine Pruefung, die
schwankt, ist schlimmer als eine rote. Nicht in diesem Zug behoben.

Gemessen: pruef-unterstuetzung 70, pruef-start-ansicht, pruef-buehne
(bis auf den Wackler), pruef-workspace-seiten, pruef-aufbewahrung 45,
pruef-rechtetafel 19, pruef-css-klassen, pruef-chatkachel 36,
pruef-chat-ausbau, pruef-entwicklung-kacheln 31 -- gruen.

Neu: server/mess-chat-liste.mjs (zeigt die Liste mit sieben Gespraechen
verschiedener Art, prueft nichts).

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-24 14:14:25 +02:00
co-authored by Claude Opus 5
parent 5b244ab7ec
commit aa2e1a4ae2
57 changed files with 3349 additions and 678 deletions
+5 -5
View File
@@ -16,15 +16,15 @@
verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
WARUM das Telefon nicht klingelt, ist das besonders unpassend. -->
<link rel="manifest" href="/workspace/crew.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<style>
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
@@ -126,7 +126,7 @@
<script src="assets/js/anruf-probe.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/anruf-probe.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
</body>
</html>
+4 -4
View File
@@ -23,25 +23,25 @@
},
"icons": [
{
"src": "/assets/img/app-symbole/workspace-192.png?v=202609241329",
"src": "/assets/img/app-symbole/workspace-192.png?v=202609241413",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/workspace-512.png?v=202609241329",
"src": "/assets/img/app-symbole/workspace-512.png?v=202609241413",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609241329",
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609241413",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609241329",
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609241413",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
+251 -48
View File
@@ -152,6 +152,29 @@
font-size: .78rem; color: var(--text-still);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* WIE VIELE WARTEN AUF MICH (24.09.2026).
Die Summe aller ungelesenen Nachrichten, direkt neben der
Überschrift. Sie steht nur da, wenn es etwas zu zählen gibt — eine
Null wäre jeden Tag im Weg für den einen Tag, an dem sie etwas sagt
(das Verstecken macht das Skript).
DIESELBE FORM WIE DIE ZAHL AN DER ZEILE, absichtlich: Wer sie oben
sieht und unten wiederfindet, muss nicht lernen, dass es dasselbe
ist. */
.chat__zaehler {
flex: none;
min-width: 22px; height: 22px; padding: 0 7px;
display: inline-grid; place-items: center;
border-radius: 999px;
font-size: .72rem; font-weight: 750;
font-variant-numeric: tabular-nums;
color: #0b0f16;
background: linear-gradient(160deg,
color-mix(in srgb, var(--akzent) 92%, #ffffff),
var(--akzent));
}
.chat__kopf .knopf { margin-left: auto; flex: none; }
/* Der Zurück-Pfeil gehört dem Handy. Am Rechner stehen beide Spalten
@@ -173,49 +196,194 @@
.chat__zurueck svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chat__zurueck:hover { color: var(--text); border-color: var(--rand-hell); }
.chat__suche { padding: 10px 14px 4px; flex: none; }
.chat__suche input { width: 100%; }
/* ---- Das Suchfeld ---------------------------------------------------
Vorher ein nackter Kasten in der Hausform. Er tat, was er sollte,
sah aber aus wie ein Eingabefeld in einem Formular — und dies ist
kein Formular, sondern eine Suche über einer Liste.
DIE LUPE STECKT IM HINTERGRUND und nicht als eigenes Element im
HTML: Ein Zeichen, das nichts tut und nichts sagt, braucht keinen
Platz im Dokument; manche Vorleseprogramme lesen es sonst als
„Grafik" mit. Das Feld selbst trägt seinen Namen über aria-label.
PILLENFORM, weil darunter Zeilen mit 14px-Ecken stehen — ein
scharfkantiger Kasten darüber wirkt wie von einer anderen Seite. */
.chat__suche { padding: 10px 12px 6px; flex: none; }
.chat__suche input {
width: 100%;
padding-left: 36px;
border-radius: 999px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a5bb' stroke-width='1.9' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.2'/%3E%3Cpath d='m15.8 15.8 4 4'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: 12px 50%;
background-size: 16px 16px;
}
.chat__leer {
margin: 0; padding: 20px 18px;
font-size: .86rem; color: var(--text-still); line-height: 1.55;
}
/* ---------- Links: die Gespräche ----------------------------------------- */
/* ---- Der leere Raum rechts (24.09.2026) -----------------------------
Vorher stand der Satz oben links in einer Fläche von rund tausend
mal siebenhundert Pixeln. Das sah nicht ruhig aus, sondern unfertig
— als wäre die Seite nicht zu Ende geladen.
Der Satz ist Wort für Wort derselbe geblieben: Er sagt, was zu tun
ist, und das war nie das Problem. Er steht nur nicht mehr in der
Ecke.
DAS ZEICHEN IST SEHR LEISE: Es soll den Blick auffangen, nicht ihn
halten. Wer hierher sieht, will ein Gespräch öffnen — kein Bild
ansehen. */
.chat__leer--mitte {
flex: 1; min-height: 0;
display: flex; flex-direction: column;
align-items: center; justify-content: center;
gap: 16px; padding: 30px;
text-align: center;
}
.chat__leer-text { max-width: 30ch; }
.chat__leer-zeichen {
display: grid; place-items: center;
width: 82px; height: 82px;
border-radius: 50%;
border: 1px solid color-mix(in srgb, var(--rand-hell) 55%, transparent);
background:
radial-gradient(90% 90% at 50% 20%,
color-mix(in srgb, var(--akzent) 9%, transparent), transparent 70%),
rgba(255, 255, 255, .02);
}
.chat__leer-zeichen svg {
width: 34px; height: 34px;
fill: none; stroke: color-mix(in srgb, var(--akzent) 55%, var(--text-still));
stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
}
/* =====================================================================
DIE GESPRÄCHSLISTE (neu gebaut am 24.09.2026)
=====================================================================
Filipe, mit zwei Bildschirmfotos: „ich will dass die komplette
kachel viel krasser und geiler aussieht. der hintergrund der kachel
soll gleich bleiben aber ansonsten soll alles viel krasser schöner
und geiler sein, viel moderner. hau richtig rein und mach was
spezielles."
DER HINTERGRUND BLEIBT unangetastet – ausdrücklicher Wunsch, und er
ist ohnehin gemessen (siehe der Block weiter oben über die Deckkraft
der Fläche). Geändert wird alles, was darauf liegt.
WAS AUF SEINEM BILD NICHT STIMMTE, und zwar nicht als Geschmack:
1. Bei „Das Rudel" stand das „@" rechts oben und die orange „6"
eine ZEILE TIEFER, links unter dem Zeichen. Das Raster hatte
drei Spalten und bekam vier Kinder – das vierte fiel um.
Ausgerechnet die wichtigste Auskunft der Liste („hier warten
sechs") landete damit an der unauffälligsten Stelle, und die
Zeile war höher als alle anderen.
2. Die Zeilen hatten keine Kanten. Sieben Gespräche standen als
eine einzige graue Fläche da; was gerade offen ist, sah fast
aus wie der Rest.
3. Alles war gleich laut: Name, Uhrzeit und Vorschau in drei
Grautönen, die sich kaum unterscheiden.
WAS JETZT ANDERS IST
ZEILEN SIND KARTEN. Jede hat ihre eigene Fläche, die beim
Überfahren aufwacht. Das offene Gespräch trägt eine Schiene an der
linken Kante – man sieht auch nach dem Scrollen, wo man ist.
DREI ARTEN, DREI FORMEN. Ein Mensch ist rund, eine Gruppe ist ein
abgerundetes Quadrat, ein Kanal trägt die Raute. Auch ohne Farbe
auseinanderzuhalten – wer Farben schlecht unterscheidet, sieht die
Form.
UNGELESENES IST DAS LAUTESTE auf der Zeile, und sonst nichts: die
Zahl in der Akzentfarbe, der Name kräftiger, die Fläche eine Spur
heller. Alles andere tritt zurück.
AUGENSCHONEND (Hausregel): kein Leuchten, kein Blinken, keine
Bewegung außer einem kurzen Farbwechsel beim Überfahren. Ein Chat
wird stundenlang angesehen – was einmal auffällt, nervt beim
zwanzigsten Mal.
------------------------------------------------------------------- */
.chat__liste {
flex: 1; min-height: 0;
overflow-y: auto;
margin: 0; padding: 8px; list-style: none;
display: grid; gap: 3px; align-content: start;
margin: 0; padding: 8px 8px 14px; list-style: none;
display: grid; gap: 4px; align-content: start;
/* Ein schmaler, ruhiger Balken statt des breiten Systemstreifens —
die Liste ist nur rund 300 px breit, da nimmt der Standardbalken
ein Zwanzigstel davon weg. */
scrollbar-width: thin;
scrollbar-color: color-mix(in srgb, var(--rand-hell) 70%, transparent) transparent;
}
.chat-raum__knopf {
--r: var(--akzent);
position: relative;
width: 100%;
display: grid; grid-template-columns: auto 1fr auto;
/* DREI SPALTEN, UND ES BLEIBEN DREI. Alles, was rechts steht, sitzt
in `.chat-raum__rail` — käme morgen eine vierte Marke dazu, bricht
das Raster nicht wieder um (siehe Punkt 1 oben). */
display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
align-items: center; gap: 11px;
padding: 10px 11px;
border: 1px solid transparent; border-radius: 12px;
border: 1px solid transparent;
border-radius: 14px;
background: transparent;
color: inherit; font: inherit; text-align: left; cursor: pointer;
transition: background .16s ease, border-color .16s ease;
}
.chat-raum__knopf:hover { background: rgba(255, 255, 255, .04); }
.chat-raum__knopf:hover {
background: rgba(255, 255, 255, .045);
border-color: color-mix(in srgb, var(--rand-hell) 55%, transparent);
}
.chat-raum__knopf:focus-visible { outline: 2px solid var(--akzent); outline-offset: -2px; }
/* Das offene Gespräch bleibt sichtbar markiert -- sonst weiß man nach
dem Scrollen nicht mehr, wo man ist. */
/* DIE SCHIENE AM OFFENEN GESPRÄCH.
Hier stand bis zum 24.09.2026 eine zweite, schönere Fassung dieser
Regel weiter unten in derselben Datei — mit dem Selektor
`.chat-raum__knopf[data-an="ja"]`. Den hat nie etwas gesetzt: Das
Skript schreibt `data-offen` an das <li>, nicht `data-an` an den
Knopf. Die Regel war also monatelang tote Gestaltung, und das
offene Gespräch bekam nur die blassere erste Fassung.
Jetzt gibt es eine Regel, und sie greift. */
.chat-raum[data-offen="ja"] .chat-raum__knopf {
background: color-mix(in srgb, var(--akzent) 11%, transparent);
border-color: color-mix(in srgb, var(--akzent) 32%, transparent);
background: linear-gradient(90deg,
color-mix(in srgb, var(--akzent) 17%, transparent),
color-mix(in srgb, var(--akzent) 5%, transparent) 62%,
rgba(255, 255, 255, .03));
border-color: color-mix(in srgb, var(--akzent) 34%, transparent);
}
.chat-raum[data-offen="ja"] .chat-raum__knopf::before {
content: "";
position: absolute; left: -1px; top: 10px; bottom: 10px;
width: 3px; border-radius: 0 3px 3px 0;
background: var(--akzent);
}
/* Ungelesenes ist der Grund, warum man hier ist — die Zeile hebt sich
eine Spur, aber nur eine. */
.chat-raum[data-neu="ja"] .chat-raum__knopf {
background: rgba(255, 255, 255, .05);
border-color: color-mix(in srgb, var(--rand) 80%, transparent);
}
.chat-raum[data-neu="ja"][data-offen="ja"] .chat-raum__knopf {
border-color: color-mix(in srgb, var(--akzent) 34%, transparent);
}
/* ---- Das Zeichen: Mensch, Gruppe, Kanal ----------------------------- */
.chat-raum__zeichen {
flex: none;
width: 38px; height: 38px; border-radius: 50%;
width: 44px; height: 44px; border-radius: 50%;
display: grid; place-items: center;
font-size: .82rem; font-weight: 700;
font-size: .86rem; font-weight: 700; letter-spacing: .02em;
color: var(--r);
background: color-mix(in srgb, var(--r) 13%, transparent);
border: 1px solid color-mix(in srgb, var(--r) 30%, transparent);
@@ -225,46 +393,69 @@
.chat-raum__zeichen[data-rolle="manager"] { --r: var(--manager-haupt); }
.chat-raum__zeichen[data-rolle="scout"] { --r: var(--scout-haupt); }
.chat-raum__zeichen[data-rolle="creator"] { --r: var(--creator-haupt); }
/* Eine Gruppe zeigt ihre Größe statt einer Initiale -- der Name der
Gruppe steht ohnehin daneben. */
/* Eine Gruppe zeigt ihre Größe statt einer Initiale — der Name steht
ohnehin daneben. Eckiger als ein Mensch, runder als ein Kanal. */
.chat-raum__zeichen[data-gruppe="ja"] {
--r: #a0aec4;
border-radius: 12px;
border-radius: 14px;
font-size: .95rem;
font-variant-numeric: tabular-nums;
}
/* ---- Die Mitte ------------------------------------------------------ */
.chat-raum__mitte { min-width: 0; }
.chat-raum__oben { display: flex; align-items: baseline; gap: 8px; }
.chat-raum__name {
flex: 1; min-width: 0;
font-size: .89rem; font-weight: 600; color: var(--text-leise);
font-size: .92rem; font-weight: 620; color: var(--text-leise);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.chat-raum__zeit {
flex: none;
font-size: .75rem; color: var(--text-still);
font-size: .73rem; color: var(--text-still);
font-variant-numeric: tabular-nums;
}
.chat-raum__vorschau {
display: block; margin-top: 2px;
font-size: .78rem; color: var(--text-still);
display: block; margin-top: 3px;
font-size: .79rem; line-height: 1.35; color: var(--text-still);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.chat-raum__vorschau[data-weg="ja"] { font-style: italic; opacity: .8; }
/* WER GESCHRIEBEN HAT, eine Spur heller als der Satz. Beim Überfliegen
einer Gruppe sucht man den Namen, nicht den Text — vorher war beides
derselbe Grauton und man musste lesen. */
.chat-raum__wer {
color: color-mix(in srgb, var(--text-leise) 82%, transparent);
font-weight: 600;
}
.chat-raum__vorschau[data-weg="ja"] { font-style: italic; opacity: .78; }
/* Ungelesen: die Zahl UND ein kräftigerer Name. Nur eine Zahl übersieht
man beim Überfliegen. */
.chat-raum[data-neu="ja"] .chat-raum__name { color: var(--text); font-weight: 700; }
.chat-raum[data-neu="ja"] .chat-raum__name { color: var(--text); font-weight: 720; }
.chat-raum[data-neu="ja"] .chat-raum__vorschau { color: var(--text-leise); }
.chat-raum[data-neu="ja"] .chat-raum__zeit { color: var(--text-leise); }
/* ---- Die rechte Spalte ---------------------------------------------- */
/* Sie steht IMMER da, auch leer — sonst wäre die Mitte bei Zeilen ohne
Marke breiter als bei Zeilen mit, und die Namen stünden nicht mehr
untereinander. Eine Liste, deren Kanten wandern, wirkt unruhig, ohne
dass man sagen kann, warum. */
.chat-raum__rail {
flex: none;
display: flex; align-items: center; gap: 6px;
min-width: 22px; justify-content: flex-end;
}
.chat-raum__zahl {
flex: none;
min-width: 21px; height: 21px; padding: 0 6px;
min-width: 22px; height: 22px; padding: 0 7px;
display: grid; place-items: center;
border-radius: 999px;
font-size: .72rem; font-weight: 700;
font-size: .72rem; font-weight: 750;
font-variant-numeric: tabular-nums;
color: #0b0f16;
background: var(--akzent);
background: linear-gradient(160deg,
color-mix(in srgb, var(--akzent) 92%, #ffffff),
var(--akzent));
}
/* ---------- Rechts: der Verlauf ------------------------------------------ */
@@ -914,24 +1105,22 @@
}
/* ---------- Die Gesprächsliste --------------------------------------- */
.chat-raum__knopf {
position: relative;
border-radius: 12px;
margin: 0 8px 4px;
transition: background var(--tempo), box-shadow var(--tempo);
}
/* Das offene Gespräch trägt eine Schiene -- man sieht auch beim Scrollen
der Liste, wo man gerade ist. */
.chat-raum__knopf[data-an="ja"] {
background: linear-gradient(90deg,
color-mix(in srgb, var(--akzent) 16%, transparent),
rgba(255, 255, 255, .03) 55%);
box-shadow: inset 3px 0 0 var(--akzent);
}
/* Ungelesenes ist der Grund, warum man hier ist. */
.chat-raum__knopf:has(.chat-raum__zahl) {
background: rgba(255, 255, 255, .045);
}
/* HIER STAND EINE ZWEITE FASSUNG DERSELBEN REGELN (weg am 24.09.2026).
Sie hat `.chat-raum__knopf` ein zweites Mal beschrieben — Rundung,
Rand und Übergang — und dabei die erste Fassung weiter oben still
überschrieben. Zwei Beschreibungen derselben Sache in derselben
Datei: Wer eine davon ändert, ändert am Ergebnis nichts und sucht
danach den Fehler an der falschen Stelle.
Und die schönere der beiden griff gar nicht: Ihr Selektor hieß
`.chat-raum__knopf[data-an="ja"]`, gesetzt wird aber `data-offen`
am <li>. Das offene Gespräch trug deshalb monatelang die blasse
erste Fassung, während daneben eine Schiene beschrieben stand,
die nie jemand gesehen hat.
Alles steht jetzt EINMAL, weiter oben unter „Die Gesprächsliste
(neu gebaut am 24.09.2026)" — samt Schiene, und die greift. */
/* ---------- Die Nachrichten ------------------------------------------ */
/* HIER STAND DIE ZWEITE FASSUNG DERSELBEN BLASE — sie ist am
@@ -2659,16 +2848,27 @@
ist — ein Knopf mit der Aufschrift „Kachel" müsste erst geöffnet
werden, damit man sieht, was gerade gilt.
===================================================================== */
/* RUND STATT ECKIG (24.09.2026).
Auf Filipes Bildschirmfoto stand hier ein blaues Quadrat mit
weichen Ecken — es sah aus wie ein Bauteil, das noch niemand
gestaltet hat, und nicht wie „so sehen deine Nachrichten aus".
Ein Kreis sagt es besser: Es ist die Farbe EINER PERSON, und
Personen sind in diesem Haus überall rund (Gesicht in der Liste, im
Verlauf, in der Kopfleiste). Der Ring darum ist derselbe wie am
Gesicht — man erkennt die Verwandtschaft, ohne sie zu lernen. */
.chat__kachelknopf {
flex: 0 0 auto;
margin-left: auto;
width: 30px; height: 30px;
width: 32px; height: 32px;
padding: 3px;
border: 1px solid var(--rand-hell);
border-radius: 9px;
border-radius: 50%;
background: transparent;
cursor: pointer;
display: inline-flex; align-items: center; justify-content: center;
transition: border-color .16s ease, box-shadow .16s ease;
}
/* AM FINGER GROESSER (20.09.2026). Gemeldet von pruef-tippziele:
30x30 ist mit der Maus bequem und mit dem Daumen zu klein -- die
@@ -2702,11 +2902,14 @@
content: ""; position: absolute; inset: -8px;
}
}
.chat__kachelknopf:hover { border-color: var(--akzent); }
.chat__kachelknopf:hover {
border-color: var(--akzent);
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-probe {
display: block; width: 100%; height: 100%;
border-radius: 6px;
border-radius: 50%;
/* Eine feine Innenkante, damit ein sehr dunkler Ton nicht aussieht
wie ein Loch im Knopf. */
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .10);
+25 -1
View File
@@ -30,13 +30,37 @@
Gemeinsam
------------------------------------------------------------------- */
/* DIE ÜBERSCHRIFT STEHT AUF EINER FLÄCHE, NICHT AUF DEM FOTO
(24.09.2026).
Gemessen von pruef-buehne: „Wen gehst du durch?" kam auf 1,79:1 --
nötig sind 4,5:1. Gemessen wurde auf rgb(123,95,67), einer hellen
Stelle des Hintergrundbildes. Die Überschrift war dort praktisch
unsichtbar, und zwar genau über der Personenliste, die Filipe heute
umbauen ließ.
Die Prüfung war seit Tagen rot und ist mir erst beim Umbau
aufgefallen -- ein roter Befund, den niemand mehr liest, sichert
nichts. (Der zweite ihrer Befunde, treff-regeln.html, steht noch
offen.)
DIE ANTWORT IST KEINE HELLERE SCHRIFT, SONDERN EINE DECKENDE
FLÄCHE. Über einem Foto lässt sich Lesbarkeit nicht ausrechnen --
das Dahinter wechselt von Motiv zu Motiv, und beim nächsten Bild
wäre auch Weiß zu wenig. Dieselbe Entscheidung wie bei der Karte
weiter unten („Die Karte bekommt eine eigene Fläche", 15.09.2026)
und bei den Gruppenköpfen auf unterstuetzen.css. */
.e-abschnitt {
display: inline-flex; align-items: baseline;
margin: 26px 0 12px;
padding: 6px 13px;
border: 1px solid var(--rand); border-radius: 999px;
background: var(--flaeche);
font-size: .82rem;
font-weight: 650;
letter-spacing: .09em;
text-transform: uppercase;
color: var(--text-still);
color: var(--text-leise);
}
/* ---------------------------------------------------------------------
+16
View File
@@ -1150,6 +1150,22 @@ body.start > main { position: relative; z-index: 1; }
Sorge, eine fast weisse Kachel koennte blenden, war unbegruendet --
gemessen statt vermutet. */
[data-ton="44"] { --ton: #fd6401; } /* Support (gerechnet 24.09.2026) */
/* GERECHNET, NICHT GEWAEHLT (24.09.2026) -- mit
`node tools/kachel-farbe-einzeln.mjs 45 --schreiben`, das die Farbe
sucht, die von den 44 vorhandenen am weitesten entfernt liegt, ohne
eine einzige davon anzufassen.
Abstand zur naechsten vorhandenen Farbe 0,0862 -- das engste
vorhandene Paar liegt bei 0,0154 (Ton 20 <-> Ton 35), sie ist also
rund funfeinhalbmal weiter weg als das schwaechste Glied.
KONTRAST 4,59:1 -- knapp ueber der Hausgrenze von 4,5, und das ist
hier die richtige Entscheidung und nicht die bequeme: Das Werkzeug
prueft seit dem 22.09.2026 ERST die Regeln und DANN den Abstand
(vorher hielt es eine zu blasse Farbe, weil ihr Abstand gut war).
Wer diesen Ton spaeter aufhellen will, muss den Abstand neu rechnen
-- nicht nach Gefuehl nachbessern. */
[data-ton="45"] { --ton: #7567fe; } /* Unterstützen (gerechnet 24.09.2026) */
/* Rückfallwert für alles, was einen Ton braucht, aber keine Nummer hat.
Steht bewusst in :where() -- damit zählt die Zeile beim Wettstreit der
+295
View File
@@ -0,0 +1,295 @@
/* =====================================================================
UNTERSTÜTZEN (24.09.2026)
=====================================================================
Filipe: „ich brauch auch noch eine kachel im community bereich. wo
mein paypal und meine amazon liste sein wird. wo die leute alle
supporten können auf andere art anstatt nur tiktok. … mach das
richtig geil, übertrieben geil."
---------------------------------------------------------------------
DIE GESTALTUNG HAT EINE AUFGABE, UND DIE IST NICHT „SCHÖN"
Auf dieser Seite steht eine Bitte um Geld. Solche Seiten sehen
üblicherweise laut aus: große Knöpfe, Ausrufezeichen, ein Balken mit
einem Ziel. Das funktioniert einmal und fühlt sich danach unangenehm
an — für beide Seiten.
Deshalb hier das Gegenteil, und zwar konsequent:
DIE DREI ARTEN SIND GLEICH GROSS. „Kostet nichts" bekommt dieselbe
Kartenform wie PayPal. Wären die freien Wege kleiner oder weiter
unten, wäre die Aussage „das ist die zweite Wahl" — und die
Mehrheit derer, die hier lesen, wäre damit zweite Wahl.
DIE FARBE KOMMT VON DER KANTE, nicht von der Fläche. Ein Streifen
oben und ein Hauch Verlauf darunter; der Rest bleibt die ruhige
Hausfläche. Eine vollflächig eingefärbte Karte schreit, und diese
Seite soll nicht schreien.
KEIN ZÄHLER FÜR DIE COMMUNITY. Wie oft ein Weg benutzt wurde,
sieht nur DogFather. Eine öffentliche Zahl wäre Druck („erst 3 von
100") oder Beschämung — je nachdem, wie sie ausfällt.
AUGENSCHONEND (Hausregel): keine Leuchtkanten, kein Puls, keine
Bewegung außer einem kurzen Farbwechsel beim Überfahren.
===================================================================== */
/* ---- Die Gruppen ---------------------------------------------------- */
.u-gruppe { margin: 30px 0 0; }
/* DIE ÜBERSCHRIFT STEHT AUF EINER FLÄCHE, NICHT AUF DEM FOTO.
Gemessen am ersten Bildschirmfoto: Der Text lag direkt auf der Bühne
— und über einem Bild lässt sich Lesbarkeit nicht ausrechnen, weil
das Dahinter von Motiv zu Motiv wechselt. Das ist genau der Fall,
für den die Kontrastmessung des Hauses ihren dritten Ausgang hat
(„konnte nicht nachsehen").
Die Antwort darauf ist keine hellere Schrift, sondern eine deckende
Fläche. `--flaeche` ist die des Hauses und mehrfach nachgemessen. */
.u-gruppe__kopf {
display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 11px;
margin: 0 0 13px;
padding: 7px 14px;
border: 1px solid var(--rand); border-radius: 999px;
background: var(--flaeche);
}
.u-gruppe__titel {
margin: 0;
font-size: .78rem; font-weight: 700; letter-spacing: .09em;
text-transform: uppercase; color: var(--text-leise);
}
.u-gruppe__satz { margin: 0; font-size: .82rem; color: var(--text-still); }
.u-gitter {
display: grid; gap: 14px;
/* Dieselbe Rechenweise wie bei den Personenkacheln: `auto-fill` legt
feste Spalten an, damit eine allein stehende Karte in der letzten
Zeile nicht auf die volle Breite wächst und dadurch wichtiger
aussieht als die anderen. */
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}
/* ---- Eine Karte ----------------------------------------------------- */
.u-weg {
--wton: var(--akzent);
position: relative; overflow: hidden;
display: flex; flex-direction: column; gap: 9px;
min-width: 0;
padding: 20px 20px 18px;
border: 1px solid var(--rand);
border-radius: var(--radius, 18px);
background:
linear-gradient(180deg,
color-mix(in srgb, var(--wton) 9%, transparent), transparent 48%),
color-mix(in srgb, var(--tinte) 92%, #ffffff 8%);
transition: border-color .16s ease;
}
.u-weg:hover { border-color: color-mix(in srgb, var(--wton) 38%, var(--rand)); }
/* DIE KANTE IST DIE FARBE. Oben ein Streifen, der nach rechts
ausläuft — so bleibt die Fläche darunter ruhig lesbar. */
.u-weg::before {
content: ""; position: absolute; inset: 0 0 auto; height: 3px;
background: linear-gradient(90deg,
var(--wton), color-mix(in srgb, var(--wton) 30%, transparent) 55%, transparent);
}
/* Drei Arten, drei Töne. Sie stehen HIER und nicht in der Datenbank:
Eine Farbe ist Gestaltung, kein Inhalt — und aus der Datenbank
käme sie ungeprüft in ein Stilblatt. */
.u-weg[data-art="geld"] { --wton: #f0b25a; }
.u-weg[data-art="geschenk"] { --wton: #79d1c4; }
.u-weg[data-art="frei"] { --wton: var(--akzent); }
.u-weg__kopf { display: flex; align-items: center; gap: 13px; }
.u-weg__zeichen {
flex: none;
width: 46px; height: 46px; border-radius: 14px;
display: grid; place-items: center;
color: var(--wton);
background: color-mix(in srgb, var(--wton) 12%, transparent);
border: 1px solid color-mix(in srgb, var(--wton) 28%, transparent);
}
.u-weg__zeichen svg {
width: 24px; height: 24px;
fill: none; stroke: currentColor;
stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
}
.u-weg__zeichen svg .voll { fill: currentColor; stroke: none; }
.u-weg__namen { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.u-weg__titel {
margin: 0;
font-size: 1.06rem; font-weight: 650; color: var(--text);
overflow-wrap: anywhere;
}
.u-weg__marke {
align-self: flex-start;
font-size: .68rem; font-weight: 700; letter-spacing: .07em;
text-transform: uppercase;
padding: 2px 8px; border-radius: 999px;
color: color-mix(in srgb, var(--wton) 72%, #ffffff);
border: 1px solid color-mix(in srgb, var(--wton) 32%, transparent);
background: color-mix(in srgb, var(--wton) 8%, transparent);
}
.u-weg__text {
margin: 0;
font-size: .87rem; line-height: 1.62; color: var(--text-still);
}
/* Der Knopf steht UNTEN und auf einer Linie mit den Nachbarkarten —
`margin-top: auto` schiebt ihn ans Ende, egal wie lang der Text
darüber ist. Ohne das säße er bei jeder Karte auf einer anderen
Höhe, und das Auge müsste ihn jedes Mal neu suchen. */
.u-weg__knopf {
margin-top: auto;
align-self: flex-start;
display: inline-flex; align-items: center; gap: 8px;
/* 44px Höhe — die Fingergrenze des Hauses. Dieser Knopf führt zu
einer Zahlung; ihn zu verfehlen ist ärgerlicher als anderswo. */
min-height: 44px; padding: 10px 17px;
border-radius: 999px;
border: 1px solid color-mix(in srgb, var(--wton) 42%, transparent);
background: color-mix(in srgb, var(--wton) 14%, transparent);
color: color-mix(in srgb, var(--wton) 78%, #ffffff);
font: inherit; font-size: .88rem; font-weight: 620;
text-decoration: none; cursor: pointer;
transition: background .16s ease, border-color .16s ease;
}
.u-weg__knopf:hover {
background: color-mix(in srgb, var(--wton) 22%, transparent);
border-color: color-mix(in srgb, var(--wton) 62%, transparent);
}
.u-weg__knopf svg {
width: 15px; height: 15px; flex: none;
fill: none; stroke: currentColor; stroke-width: 1.8;
stroke-linecap: round; stroke-linejoin: round;
}
/* ---- Was nur DogFather sieht ---------------------------------------- */
.u-leitung {
margin: 22px 0 0; padding: 15px 17px;
border: 1px solid color-mix(in srgb, var(--akzent) 26%, var(--rand));
border-radius: var(--radius-klein, 12px);
background:
linear-gradient(180deg,
color-mix(in srgb, var(--akzent) 7%, transparent), transparent 60%),
color-mix(in srgb, var(--tinte) 90%, #ffffff 10%);
}
.u-leitung__kopf {
display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
}
.u-leitung__titel {
margin: 0; flex: 1 1 12rem;
font-size: .95rem; font-weight: 650; color: var(--text);
}
.u-leitung__satz {
margin: 7px 0 0; font-size: .83rem; line-height: 1.6; color: var(--text-still);
}
.u-leitung__satz[data-warnung="ja"] {
color: color-mix(in srgb, var(--warn) 50%, #ffffff); font-weight: 600;
}
.u-zahlen {
display: grid; gap: 8px; margin-top: 13px;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.u-zahl {
padding: 9px 12px;
border: 1px solid var(--rand); border-radius: 10px;
background: rgba(255, 255, 255, .03);
}
.u-zahl__n {
display: block;
font-size: 1.3rem; font-weight: 700; color: var(--text);
font-variant-numeric: tabular-nums;
}
.u-zahl__text { display: block; font-size: .75rem; color: var(--text-leise); }
/* Die Zeile an der Karte — nur im Änderungsmodus, nur für ihn. */
.u-weg__zahl {
font-size: .75rem; color: var(--text-leise);
font-variant-numeric: tabular-nums;
}
.u-weg[data-aus="ja"] { opacity: .62; }
.u-weg__aus {
align-self: flex-start;
font-size: .7rem; font-weight: 650;
padding: 2px 9px; border-radius: 999px;
color: var(--text-still);
border: 1px dashed var(--rand-hell);
}
/* ---- Der Änderungsmodus --------------------------------------------- */
/* Die Felder stehen IN der Karte, nicht in einem eigenen Fenster: Man
sieht beim Tippen, was dabei herauskommt. Ein Dialog über der Seite
hätte genau das verdeckt, was man gerade ändert. */
.u-form { display: flex; flex-direction: column; gap: 9px; }
.u-form label {
display: flex; flex-direction: column; gap: 4px;
font-size: .76rem; color: var(--text-leise);
}
.u-form input[type="text"],
.u-form input[type="url"],
.u-form textarea,
.u-form select { width: 100%; }
.u-form textarea { min-height: 76px; resize: vertical; }
.u-form__reihe { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.u-form__an {
display: inline-flex; align-items: center; gap: 7px;
font-size: .82rem; color: var(--text-still);
}
.u-form__knoepfe {
display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px;
}
.u-form__weg {
margin-left: auto;
color: color-mix(in srgb, var(--warn) 55%, #ffffff);
border-color: color-mix(in srgb, var(--warn) 32%, transparent);
}
.u-neu {
display: grid; place-items: center; gap: 8px;
min-height: 150px; padding: 20px;
border: 1px dashed var(--rand-hell); border-radius: var(--radius, 18px);
background: transparent;
color: var(--text-leise); font: inherit; font-size: .88rem;
cursor: pointer;
transition: border-color .16s ease, color .16s ease;
}
.u-neu:hover { border-color: var(--akzent); color: var(--text); }
.u-neu__plus { font-size: 1.6rem; line-height: 1; }
/* ---- Rand und Ränder ------------------------------------------------- */
.u-laedt { margin: 26px 0; font-size: .88rem; color: var(--text-still); }
/* Auch dieser Satz stand auf dem Foto — und er ist der wichtigste der
Seite: Er nimmt den Druck weg. Deshalb ebenfalls auf eine deckende
Flaeche, und nicht nur eine Trennlinie darueber. */
.u-fuss {
margin: 34px 0 6px; padding: 14px 17px;
border: 1px solid var(--rand); border-radius: var(--radius-klein, 12px);
background: var(--flaeche);
font-size: .84rem; line-height: 1.65; color: var(--text-still);
max-width: 68ch;
}
/* Am Handy eine Karte je Zeile — zwei nebeneinander wären hier keine
Übersicht, sondern zwei halbe Texte. Der Unterschied zur
Personenliste ist Absicht: Dort steht eine Zahl, hier ein Satz. */
@media (max-width: 620px) {
.u-gitter { grid-template-columns: 1fr; }
.u-weg { padding: 16px 16px 15px; }
.u-weg__titel { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
.u-weg, .u-weg__knopf, .u-neu { transition: none; }
}
/* Im Kontrastmodus fällt `color-mix` weg — eine Markierung, die nur aus
einer Tönung besteht, verschwindet dort komplett. Deshalb echte
Rahmen, die jeden Farbmodus überleben. */
@media (forced-colors: active) {
.u-weg, .u-weg__zeichen, .u-weg__knopf, .u-weg__marke, .u-zahl {
border: 1px solid CanvasText;
}
}
+21
View File
@@ -327,6 +327,27 @@
linien: ['M8 7.6h11.2a1.2 1.2 0 0 1 1.2 1.2v8.4a1.2 1.2 0 0 1-1.2 1.2H8a1.2 1.2 0 0 1-1.2-1.2V8.8A1.2 1.2 0 0 1 8 7.6z',
'M4.6 16.6V5.6A1.2 1.2 0 0 1 5.8 4.4h10.6'],
},
/* UNTERSTUETZEN (24.09.2026) -- ein Herz ueber zwei offenen Haenden.
Filipe: "wo die leute alle supporten koennen auf andere art
anstatt nur tiktok."
DAS HERZ IST FLAECHE, die Haende sind Linie. Auf 19 Pixeln
verschwindet eine reine Strichzeichnung, und ein ganz
gefuelltes Zeichen sieht aus wie ein Klecks -- dieselbe
Aufteilung wie bei `galerie` darueber.
WARUM NICHT NUR EIN HERZ: Ein Herz allein heisst "gefaellt
mir" -- das gibt es im Haus schon an den Beitraegen. Die
Schale darunter macht daraus "etwas geben", ohne ein
Geldstueck zu zeichnen. Ein Muenzsymbol waere falsch: Die
Haelfte der Wege auf dieser Seite kostet nichts. */
unterstuetzen: {
fuellung: ['M12 12.2 8.62 9.02a2.2 2.2 0 0 1 3.03-3.18l.35.33.35-.33a2.2 2.2 0 0 1 3.03 3.18z'],
/* Eine Schale, kein Kreis: Sie ist oben offen -- man haelt etwas
hin, man schliesst es nicht ein. */
linien: ['M4.9 14.4c0 2.9 3.18 4.9 7.1 4.9s7.1-2 7.1-4.9'],
},
hinaus: {
/* Nur der Pfeilkopf ist Flaeche -- er ist die Aussage. */
fuellung: ['M13.8 4H20v6.2z'],
+75 -13
View File
@@ -790,6 +790,25 @@
ziel.textContent = '';
$('liste-leer').hidden = raeume.length > 0;
/* WIE VIELE WARTEN AUF MICH (24.09.2026) -- die Summe, nicht die
Zahl der Gespraeche. „3 Gespraeche mit Neuem" und „17 neue
Nachrichten" sind zwei verschiedene Auskuenfte, und die zweite
ist die, nach der man fragt, bevor man anfaengt.
GERECHNET UEBER `raeume` UND NICHT UEBER `zeigen`: Wer im
Suchfeld tippt, filtert die Liste -- die Summe darueber wuerde
dann mitwandern und behaupten, es warte weniger. */
{
const zaehler = $('liste-zaehler');
if (zaehler) {
const summe = raeume.reduce((n, r) => n + (Number(r.ungelesen) || 0), 0);
zaehler.textContent = summe > 99 ? '99+' : String(summe);
zaehler.setAttribute('aria-label',
summe === 1 ? '1 ungelesene Nachricht' : summe + ' ungelesene Nachrichten');
zaehler.hidden = summe === 0;
}
}
/* Das Suchfeld erst, wenn die Liste lang genug ist, um darin zu
suchen. Vorher ist es ein Feld ohne Zweck. */
/* IMMER SICHTBAR SEIT DEM 09.09.2026.
@@ -804,6 +823,11 @@
for (const r of zeigen) {
const li = el('li', 'chat-raum');
li.dataset.id = String(r.id);
/* DIE ART GEHOERT AN DIE ZEILE (24.09.2026). Kanal, Gruppe und
Zweiergespraech sehen unterschiedlich aus; bisher stand die
Art nur am runden Zeichen, und das Stilblatt konnte deshalb
nur DAS einfaerben -- nicht die Zeile drumherum. */
li.dataset.art = r.art || 'direkt';
if (offen && r.id === offen.id) li.dataset.offen = 'ja';
if (r.ungelesen) li.dataset.neu = 'ja';
@@ -838,12 +862,18 @@
Sinnvolles statt eines kaputten Bildsymbols. Dieselbe
Bauweise wie im Verlauf, in der Kopfleiste und in der
Personenauswahl -- vier Stellen, ein Verhalten. */
if (gegen.bild) {
const b = document.createElement('img');
b.src = gegen.bild; b.alt = '';
b.addEventListener('error', () => b.remove());
zeichen.append(b);
}
/* 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');
@@ -867,6 +897,11 @@
zwei Leute schreiben koennen -- in einer Gruppe wie in einem
Kanal. Hier stand `=== 'gruppe'`, und ein Kanal waere damit
die einzige Stelle ohne Absender in der Vorschau gewesen. */
/* WER GESCHRIEBEN HAT, steht seit dem 24.09.2026 in einem
eigenen Stueck Text statt mitten im Satz. Damit kann das
Stilblatt den Namen leicht absetzen -- beim Ueberfliegen
sucht man „wer", nicht „was", und ein durchgehend grauer
Satz zwingt zum Lesen. */
const wer = r.letzte.von === ich.name ? 'Du: '
: (r.art !== 'direkt' ? `${r.letzte.von}: ` : '');
/* KEIN „Nachricht zurueckgenommen" MEHR (22.09.2026). Hier
@@ -876,10 +911,13 @@
nicht mehr als letzte, weil es die Zeile nicht mehr gibt.
Sollte doch einmal eine alte, zurueckgenommene durchkommen,
steht hier lieber nichts als ein Hinweis auf sie. */
vorschau.textContent = r.letzte.zurueckgenommen
? 'Noch nichts geschrieben'
: wer + r.letzte.text;
if (r.letzte.zurueckgenommen) vorschau.dataset.weg = 'ja';
if (r.letzte.zurueckgenommen) {
vorschau.textContent = 'Noch nichts geschrieben';
vorschau.dataset.weg = 'ja';
} else {
if (wer) vorschau.append(el('span', 'chat-raum__wer', wer));
vorschau.append(document.createTextNode(r.letzte.text));
}
} else {
vorschau.textContent = 'Noch nichts geschrieben';
vorschau.dataset.weg = 'ja';
@@ -898,17 +936,41 @@
ist, und es traegt einen eigenen Satz fuer Vorleseprogramme:
Ein "@" allein wird je nach Programm als "at", "Klammeraffe"
oder gar nicht vorgelesen. */
/* ==== DIE RECHTE SPALTE (24.09.2026) =========================
HIER LAG EIN ECHTER FEHLER, und man sah ihn auf Filipes
Bildschirmfoto: Bei „Das Rudel" stand das „@" rechts oben und
die orange „6" eine ZEILE TIEFER, links unter dem Zeichen.
URSACHE: Der Knopf ist ein Raster mit DREI Spalten
(Zeichen | Mitte | Rest). Mit „@" UND Zahl sind es aber VIER
Kinder -- und das vierte faellt in die naechste Rasterzeile.
Die Zeile wurde dadurch hoeher als alle anderen, und die
wichtigste Auskunft der ganzen Liste („hier warten sechs
ungelesene") stand an der unauffaelligsten Stelle.
Beide sitzen jetzt in EINER Spalte nebeneinander. Damit bleibt
das Raster dreispaltig, egal wie viele Marken dazukommen --
und eine vierte Marke morgen bricht es nicht wieder auf. */
const rail = el('span', 'chat-raum__rail');
if (r.erwaehnt) {
const marke = el('span', 'chat-raum__erwaehnt', '@');
marke.title = 'Du wurdest hier erwähnt';
marke.setAttribute('aria-label', 'Du wurdest hier erwähnt');
knopf.append(marke);
rail.append(marke);
}
if (r.ungelesen) {
const zahl = el('span', 'chat-raum__zahl', String(r.ungelesen));
const zahl = el('span', 'chat-raum__zahl',
r.ungelesen > 99 ? '99+' : String(r.ungelesen));
zahl.setAttribute('aria-label', `${r.ungelesen} ungelesen`);
knopf.append(zahl);
rail.append(zahl);
}
/* Die Spalte steht IMMER da, auch leer. Ohne sie waere die Mitte
bei Zeilen ohne Marke breiter als bei Zeilen mit -- und die
Namen staenden nicht mehr untereinander. Eine Liste, in der
die Kanten wandern, wirkt unruhig, ohne dass man sagen kann,
warum. */
knopf.append(rail);
knopf.addEventListener('click', () => raumOeffnen(r.id));
li.append(knopf);
+476
View File
@@ -0,0 +1,476 @@
/* =====================================================================
UNTERSTÜTZEN (24.09.2026)
=====================================================================
Filipe: „jeder soll diese kachel sehen aber nur dogfather soll sie
verändern können oder vieles mehr sehen. alle anderen, rechte und
linke hand, modis und community sollen supporten können."
---------------------------------------------------------------------
DREI DINGE, DIE HIER ANDERS SIND ALS AUF DEN ÜBRIGEN SEITEN
1. DIE OBERFLÄCHE ENTSCHEIDET NICHTS. `darf_aendern` kommt vom
Server und wird hier nur GELESEN. Wer das Feld im Browser auf
„true" setzt, bekommt trotzdem 404 zurück — die Regel steht in
workspace-unterstuetzung.js. Ein verstecktes Feld ist eine
Bitte, keine Sperre.
2. DER ZÄHLER DARF DEN WEG NIE AUFHALTEN. Ein Klick auf „Bei PayPal
öffnen" muss PayPal öffnen, auch wenn der Server gerade nicht
antwortet. Deshalb `sendBeacon`: Er schickt den Strich los und
wartet auf nichts. Ein `await fetch()` vor der Weiterleitung
wäre ein Zähler, der im Zweifel eine Zahlung verhindert.
3. EINE ADRESSE WIRD NICHT AUS TEXT ZUSAMMENGESETZT. Das Ziel geht
über `href` in ein `<a>`, nie über `innerHTML` — und jeder Weg
nach draußen bekommt `rel="noopener noreferrer"`. Ohne
`noopener` kann die geöffnete Seite über `window.opener` auf
diese hier zurückgreifen.
===================================================================== */
(() => {
const $ = (id) => document.getElementById(id);
const el = (t, k, text) => {
const n = document.createElement(t);
if (k) n.className = k;
if (text !== undefined) n.textContent = text;
return n;
};
const hole = (pfad, optionen) => window.holen(pfad, optionen);
const melde = (text, gut) => {
const f = $('fehler');
if (!f) return;
f.textContent = text || '';
f.hidden = !text;
f.dataset.gut = gut ? 'ja' : 'nein';
};
let stand = null; // die Antwort des Servers
let aendern = false; // steht der Änderungsmodus an?
/* =====================================================================
DIE ZEICHEN
Eines je Weg, mit einem Rückfall je Art. Ein Weg, den DogFather
neu anlegt, hat keinen eigenen Schlüssel in dieser Liste — und
bekommt trotzdem ein Zeichen, statt ein Loch zu lassen.
`voll` markiert die Teile, die Fläche sind statt Linie. Auf 24
Pixeln verschwindet eine reine Strichzeichnung, und ein ganz
gefülltes Zeichen sieht aus wie ein Klecks — dieselbe Aufteilung
wie bei den Kachelzeichen in bereiche.js.
===================================================================== */
const ZEICHEN = {
paypal: [
['M3.6 8.2h16.8a1.4 1.4 0 0 1 1.4 1.4v8.2a1.4 1.4 0 0 1-1.4 1.4H3.6a1.4 1.4 0 0 1-1.4-1.4V9.6a1.4 1.4 0 0 1 1.4-1.4z'],
['M2.2 12.4h19.6'],
['M5.6 8.2 7.2 5a1.4 1.4 0 0 1 1.9-.6l6.9 3.8', 'voll-nein'],
],
amazon: [
['M4 11.2h16v7.2a1.4 1.4 0 0 1-1.4 1.4H5.4A1.4 1.4 0 0 1 4 18.4z'],
['M3 8.1h18v3.1H3z'],
['M12 8.1v11.7'],
['M12 8.1S10.9 4.2 8.8 4.2a2 2 0 0 0 0 3.9z'],
['M12 8.1s1.1-3.9 3.2-3.9a2 2 0 0 1 0 3.9z'],
],
dabei: [
['M9.2 11.4a3.1 3.1 0 1 0 0-6.2 3.1 3.1 0 0 0 0 6.2z'],
['M2.8 19.6c0-3.3 2.9-5.6 6.4-5.6s6.4 2.3 6.4 5.6'],
['M16.4 6a3 3 0 0 1 0 5.6'],
['M17.6 14.6c2.2.6 3.6 2.4 3.6 5'],
],
weitersagen: [
['M17.8 8.4a2.6 2.6 0 1 0 0-5.2 2.6 2.6 0 0 0 0 5.2z'],
['M5.6 14.6a2.6 2.6 0 1 0 0-5.2 2.6 2.6 0 0 0 0 5.2z'],
['M17.8 20.8a2.6 2.6 0 1 0 0-5.2 2.6 2.6 0 0 0 0 5.2z'],
['M7.9 10.7 15.5 7', 'M7.9 13.3l7.6 3.7'],
],
draussen: [
['M11 4.8H5.4A1.4 1.4 0 0 0 4 6.2v12.4a1.4 1.4 0 0 0 1.4 1.4h12.4a1.4 1.4 0 0 0 1.4-1.4V13'],
['M13.8 4H20v6.2'],
['M19.4 4.6 12 12'],
],
/* Rückfall je Art. */
geld: [['M3.6 8.2h16.8a1.4 1.4 0 0 1 1.4 1.4v8.2a1.4 1.4 0 0 1-1.4 1.4H3.6a1.4 1.4 0 0 1-1.4-1.4V9.6a1.4 1.4 0 0 1 1.4-1.4z'], ['M2.2 12.4h19.6']],
geschenk: [['M4 11.2h16v7.2a1.4 1.4 0 0 1-1.4 1.4H5.4A1.4 1.4 0 0 1 4 18.4z'], ['M3 8.1h18v3.1H3z'], ['M12 8.1v11.7']],
frei: [['M12 20.2 4.4 12.6a4.6 4.6 0 0 1 6.3-6.7l1.3 1.2 1.3-1.2a4.6 4.6 0 0 1 6.3 6.7z']],
};
function zeichenBauen(w) {
const pfade = ZEICHEN[w.schluessel] || ZEICHEN[w.art] || ZEICHEN.frei;
const NS = 'http://www.w3.org/2000/svg';
const svg = document.createElementNS(NS, 'svg');
svg.setAttribute('viewBox', '0 0 24 24');
svg.setAttribute('aria-hidden', 'true');
for (const gruppe of pfade) {
for (const d of gruppe) {
if (!d.startsWith('M')) continue;
const p = document.createElementNS(NS, 'path');
p.setAttribute('d', d);
svg.append(p);
}
}
return svg;
}
const PFEIL_RAUS = ['M13.8 4H20v6.2', 'M19.4 4.6 12 12',
'M11 4.8H5.4A1.4 1.4 0 0 0 4 6.2v12.4a1.4 1.4 0 0 0 1.4 1.4h12.4a1.4 1.4 0 0 0 1.4-1.4V13'];
function pfeilBauen() {
const NS = 'http://www.w3.org/2000/svg';
const svg = document.createElementNS(NS, 'svg');
svg.setAttribute('viewBox', '0 0 24 24');
svg.setAttribute('aria-hidden', 'true');
for (const d of PFEIL_RAUS) {
const p = document.createElementNS(NS, 'path');
p.setAttribute('d', d);
svg.append(p);
}
return svg;
}
/* =====================================================================
EINE KARTE
===================================================================== */
/** Führt die Adresse aus dem Haus hinaus?
*
* Entscheidet über `target` und `rel` — und darüber, ob überhaupt
* ein `rel` nötig ist. Eine Seite dieses Hauses öffnet im selben
* Fenster: Ein neuer Tab für „Draußen" wäre ein Fenster mehr, das
* niemand zumacht. */
const nachDraussen = (ziel) => /^https:\/\//i.test(ziel);
function karte(w) {
const k = el('article', 'u-weg');
k.dataset.art = w.art;
k.dataset.schluessel = w.schluessel;
if (!w.sichtbar) k.dataset.aus = 'ja';
const kopf = el('div', 'u-weg__kopf');
const zeichen = el('span', 'u-weg__zeichen');
zeichen.setAttribute('aria-hidden', 'true');
zeichen.append(zeichenBauen(w));
kopf.append(zeichen);
const namen = el('div', 'u-weg__namen');
namen.append(el('h3', 'u-weg__titel', w.titel));
namen.append(el('span', 'u-weg__marke', stand.arten[w.art] || w.art));
kopf.append(namen);
k.append(kopf);
if (w.text) k.append(el('p', 'u-weg__text', w.text));
if (aendern && stand.darf_aendern) {
k.append(formular(w));
return k;
}
/* NUR EIN KNOPF, WENN ES EINEN WEG GIBT. „Einfach da sein" hat
keinen — und ein Knopf, der nichts tut, lässt die Seite kaputt
aussehen statt den Weg selbsterklärend. */
if (w.ziel && w.knopf) {
const a = el('a', 'u-weg__knopf');
a.href = w.ziel;
a.append(document.createTextNode(w.knopf));
if (nachDraussen(w.ziel)) {
a.target = '_blank';
/* `noopener` ist die Sicherung: Ohne ihn kann die geöffnete
Seite über `window.opener` auf diese hier zugreifen. */
a.rel = 'noopener noreferrer';
a.append(pfeilBauen());
}
a.addEventListener('click', () => strich(w.id));
k.append(a);
}
/* WAS NUR DOGFATHER SIEHT. Ohne Änderungsmodus, damit er im Alltag
dieselbe Seite sieht wie alle anderen — und nur dann mehr, wenn
er danach fragt. */
if (stand.darf_aendern) {
if (!w.sichtbar) k.append(el('span', 'u-weg__aus', 'steht für niemanden da'));
const z = stand.zahlen?.[w.id];
k.append(el('span', 'u-weg__zahl', z
? `${z.gesamt}× geöffnet · ${z.tage30} in 30 Tagen · ${z.tage7} in 7 Tagen`
: 'noch nicht geöffnet'));
}
return k;
}
/* =====================================================================
DER STRICH
Kein Name, keine Nummer — der Server zählt Weg und Tag (siehe
unterstuetzung-tabellen.js).
`sendBeacon` und nicht `fetch`: Der Browser folgt dem Link im
selben Augenblick, und eine laufende Anfrage würde dabei
abgebrochen. Ein Strich, der nur gezählt wird, wenn die Seite noch
offen ist, zählt ausgerechnet die erfolgreichen Klicks nicht.
===================================================================== */
function strich(id) {
const weg = `/workspace/api/unterstuetzung/${id}/strich`;
try {
if (navigator.sendBeacon && navigator.sendBeacon(weg, new Blob())) return;
} catch { /* dann eben der Rückfall darunter */ }
/* RÜCKFALL, und er darf ebenfalls nichts aufhalten: `keepalive`
lässt die Anfrage weiterlaufen, während die Seite wechselt. */
try {
fetch(weg, { method: 'POST', credentials: 'same-origin', keepalive: true })
.catch(() => {});
} catch { /* der Weg nach draußen zählt, nicht der Strich */ }
}
/* =====================================================================
DAS FORMULAR — nur im Änderungsmodus
===================================================================== */
function feld(art, name, wert, hinweis) {
const l = el('label');
l.append(el('span', null, hinweis));
const i = document.createElement(art === 'lang' ? 'textarea' : 'input');
if (art !== 'lang') i.type = 'text';
i.value = wert ?? '';
i.dataset.feld = name;
l.append(i);
return l;
}
function formular(w) {
const f = el('div', 'u-form');
f.append(feld('kurz', 'titel', w.titel, 'Name'));
f.append(feld('lang', 'text', w.text, 'Was dahintersteht'));
const reihe = el('div', 'u-form__reihe');
const artFeld = el('label');
artFeld.append(el('span', null, 'Art'));
const auswahl = document.createElement('select');
auswahl.dataset.feld = 'art';
for (const [wert, name] of Object.entries(stand.arten)) {
const o = document.createElement('option');
o.value = wert; o.textContent = name;
if (wert === w.art) o.selected = true;
auswahl.append(o);
}
artFeld.append(auswahl);
reihe.append(artFeld);
const an = el('label', 'u-form__an');
const haken = document.createElement('input');
haken.type = 'checkbox';
haken.dataset.feld = 'sichtbar';
haken.checked = !!w.sichtbar;
an.append(haken, document.createTextNode('steht für alle da'));
reihe.append(an);
f.append(reihe);
f.append(feld('kurz', 'knopf', w.knopf, 'Aufschrift des Knopfes (leer = kein Knopf)'));
const zielFeld = feld('kurz', 'ziel', w.ziel, 'Adresse (https://… oder seite.html)');
f.append(zielFeld);
const knoepfe = el('div', 'u-form__knoepfe');
const sichern = el('button', 'knopf knopf--klein', 'Speichern');
sichern.type = 'button';
sichern.addEventListener('click', () => sichere(w.id, f));
knoepfe.append(sichern);
const weg = el('button', 'abmelden u-form__weg', 'Entfernen');
weg.type = 'button';
weg.addEventListener('click', () => entferne(w));
knoepfe.append(weg);
f.append(knoepfe);
return f;
}
const lies = (f, name) => {
const e = f.querySelector(`[data-feld="${name}"]`);
if (!e) return undefined;
return e.type === 'checkbox' ? e.checked : e.value;
};
async function sichere(id, f) {
melde('');
const koerper = {
titel: lies(f, 'titel'), text: lies(f, 'text'),
knopf: lies(f, 'knopf'), ziel: lies(f, 'ziel'),
art: lies(f, 'art'), sichtbar: lies(f, 'sichtbar'),
};
try {
const a = await hole(`/workspace/api/unterstuetzung/${id}`, {
method: 'PUT', headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(koerper),
});
if (!a.ok) {
const r = await a.json().catch(() => ({}));
melde(r.fehler || 'Das ließ sich nicht speichern.');
return;
}
melde('Gespeichert.', true);
await laden();
} catch { melde('Das ließ sich nicht speichern.'); }
}
async function entferne(w) {
/* GEFRAGT WIRD ÜBER DIE HAUS-NACHFRAGE und nicht über `confirm`.
Sie sieht aus wie der Rest des Hauses und lässt sich mit der
Tastatur bedienen — `confirm` sperrt die ganze Seite. */
const ja = window.bestaetige
? await window.bestaetige({
titel: `„${w.titel}" entfernen?`,
text: 'Der Weg verschwindet für alle, und die Striche der letzten '
+ 'Monate gehen mit. Das lässt sich nicht zurückholen.',
ja: 'Entfernen', nein: 'Behalten',
})
: true;
if (!ja) return;
try {
const a = await hole(`/workspace/api/unterstuetzung/${w.id}`, { method: 'DELETE' });
if (!a.ok) { melde('Das ließ sich nicht entfernen.'); return; }
melde('Entfernt.', true);
await laden();
} catch { melde('Das ließ sich nicht entfernen.'); }
}
async function neuerWeg() {
melde('');
try {
const a = await hole('/workspace/api/unterstuetzung', {
method: 'POST', headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ titel: 'Neuer Weg', art: 'frei', text: '' }),
});
if (!a.ok) {
const r = await a.json().catch(() => ({}));
melde(r.fehler || 'Das ließ sich nicht anlegen.');
return;
}
await laden();
} catch { melde('Das ließ sich nicht anlegen.'); }
}
/* =====================================================================
ZEICHNEN
===================================================================== */
function gruppe(titel, satz, wege) {
if (!wege.length) return null;
const s = el('section', 'u-gruppe');
const kopf = el('div', 'u-gruppe__kopf');
kopf.append(el('h2', 'u-gruppe__titel', titel));
if (satz) kopf.append(el('p', 'u-gruppe__satz', satz));
s.append(kopf);
const gitter = el('div', 'u-gitter');
for (const w of wege) gitter.append(karte(w));
s.append(gitter);
return s;
}
function zeichnen() {
const ziel = $('wege');
ziel.textContent = '';
const geben = stand.wege.filter((w) => w.art !== 'frei');
const frei = stand.wege.filter((w) => w.art === 'frei');
/* ZWEI GRUPPEN, UND DIE ZWEITE IST NICHT DIE ABTEILUNG FÜR ARME.
Sie trägt dieselbe Kartenform und dieselbe Größe; nur die
Überschrift sortiert. Ohne Überschriften stünden fünf Karten
nebeneinander und man müsste jede lesen, um zu wissen, was
Geld kostet. */
const a = gruppe('Direkt etwas geben',
'Geht an Dogi selbst – ohne Umweg über TikTok.', geben);
const b = gruppe('Kostet nichts',
'Genauso viel wert. Wirklich.', frei);
if (a) ziel.append(a);
if (b) ziel.append(b);
if (aendern && stand.darf_aendern) {
const neu = el('button', 'u-neu');
neu.type = 'button';
neu.append(el('span', 'u-neu__plus', '+'));
neu.append(el('span', null, 'Noch einen Weg dazunehmen'));
neu.addEventListener('click', neuerWeg);
const gitter = el('div', 'u-gitter');
gitter.append(neu);
const s = el('section', 'u-gruppe');
s.append(gitter);
ziel.append(s);
}
if (!stand.wege.length) {
ziel.append(el('p', 'u-laedt', stand.darf_aendern
? 'Noch kein Weg eingetragen. Leg oben einen an.'
: 'Hier steht gerade nichts. Schau später noch einmal vorbei.'));
}
}
function leitungZeichnen() {
const block = $('leitung');
if (!stand.darf_aendern) { block.hidden = true; return; }
block.hidden = false;
/* DER HINWEIS AUF DEN FEHLENDEN PAYPAL-LINK.
Er steht hier und nicht als Platzhalter in der Datenbank: Eine
geratene Zahlungsadresse wäre der gefährlichste Fehler dieser
ganzen Seite — Geld an einen Fremden, und niemand merkt es.
Also steht dort nichts, der Weg ist unsichtbar, und genau EINE
Person erfährt, dass er fehlt. */
const ohne = stand.wege.filter((w) => w.knopf === '' && w.ziel === '' && w.art !== 'frei');
const unsichtbar = stand.wege.filter((w) => !w.sichtbar);
const satz = $('leitung-satz');
if (ohne.length || unsichtbar.length) {
const namen = [...new Set([...ohne, ...unsichtbar].map((w) => w.titel))].join(', ');
satz.textContent = `Noch ohne Adresse und deshalb für niemanden sichtbar: ${namen}. `
+ 'Drück auf „Ändern", trag die Adresse ein und setz den Haken bei '
+ '„steht für alle da".';
satz.dataset.warnung = 'ja';
} else {
satz.textContent = 'Du kannst hier jeden Weg umschreiben, ausblenden oder '
+ 'einen neuen dazunehmen. Alle anderen sehen nur, was sichtbar ist.';
delete satz.dataset.warnung;
}
/* DIE SUMME ÜBER ALLE WEGE. Eine Zahl je Karte steht unten an der
Karte; hier oben steht, ob die Seite überhaupt benutzt wird. */
const kasten = $('zahlen');
kasten.textContent = '';
const z = Object.values(stand.zahlen || {});
if (!z.length) { kasten.hidden = true; return; }
kasten.hidden = false;
const summe = (feld) => z.reduce((n, x) => n + (x[feld] || 0), 0);
for (const [wert, text] of [
[summe('tage7'), 'geöffnet in 7 Tagen'],
[summe('tage30'), 'in 30 Tagen'],
[summe('gesamt'), 'insgesamt'],
]) {
const kachel = el('div', 'u-zahl');
kachel.append(el('span', 'u-zahl__n', String(wert)));
kachel.append(el('span', 'u-zahl__text', text));
kasten.append(kachel);
}
/* KEIN NAME, NIRGENDS. Die Tabelle hat gar keine Spalte dafür —
das steht so im Schema und ist nicht nur eine Abfrage, die
jemand später ändern könnte. */
}
async function laden() {
try {
const a = await hole('/workspace/api/unterstuetzung');
if (!a.ok) { melde('Die Seite ließ sich nicht laden.'); return; }
stand = await a.json();
$('laedt')?.remove();
leitungZeichnen();
zeichnen();
} catch {
window.ladefehler?.();
}
}
$('aendern-an')?.addEventListener('click', () => {
aendern = !aendern;
$('aendern-an').textContent = aendern ? 'Fertig' : 'Ändern';
melde('');
zeichnen();
});
laden();
})();
+19 -19
View File
@@ -12,19 +12,19 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -391,22 +391,22 @@
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
<script src="assets/js/textform.js?v=202609241329"></script>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/hochladen.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/textform.js?v=202609241413"></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/hochladen.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/zuteilung.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/zuteilung.js?v=202609241413" defer></script>
<!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in
aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine
eigene Datei; hier zeigt er den Creator-Katalog.
Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. -->
<script src="assets/js/vorlagenbrett.js?v=202609241329" defer></script>
<script src="assets/js/aufgaben.js?v=202609241329" defer></script>
<script src="assets/js/vorlagenbrett.js?v=202609241413" defer></script>
<script src="assets/js/aufgaben.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -168,15 +168,15 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/automation.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/automation.js?v=202609241413" defer></script>
</body>
</html>
+17 -17
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -197,16 +197,16 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/holen.js?v=202609241329" defer></script>
<script src="assets/js/befinden.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/holen.js?v=202609241413" defer></script>
<script src="assets/js/befinden.js?v=202609241413" defer></script>
</body>
</html>
+22 -22
View File
@@ -12,24 +12,24 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609241413" />
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
Stelle, an der dieselbe Sache anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -304,19 +304,19 @@
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
<script src="assets/js/textform.js?v=202609241329"></script>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/textform.js?v=202609241413"></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/checkliste.js?v=202609241329" defer></script>
<script src="assets/js/ampel.js?v=202609241329" defer></script>
<script src="assets/js/schulung.js?v=202609241329" defer></script>
<script src="assets/js/holen.js?v=202609241329" defer></script>
<script src="assets/js/bereich.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/checkliste.js?v=202609241413" defer></script>
<script src="assets/js/ampel.js?v=202609241413" defer></script>
<script src="assets/js/schulung.js?v=202609241413" defer></script>
<script src="assets/js/holen.js?v=202609241413" defer></script>
<script src="assets/js/bereich.js?v=202609241413" defer></script>
</body>
</html>
+19 -19
View File
@@ -7,17 +7,17 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -108,15 +108,15 @@
</main>
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/auskunft.js?v=202609241329" defer></script>
<script src="assets/js/bewerben.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/auskunft.js?v=202609241413" defer></script>
<script src="assets/js/bewerben.js?v=202609241413" defer></script>
</body>
</html>
+18 -18
View File
@@ -7,16 +7,16 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -80,16 +80,16 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/auskunft.js?v=202609241329" defer></script>
<script src="assets/js/bewerbungen.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/auskunft.js?v=202609241413" defer></script>
<script src="assets/js/bewerbungen.js?v=202609241413" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -89,15 +89,15 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/ki.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/calls.js?v=202609241329" defer></script>
<script src="assets/js/ki.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/calls.js?v=202609241413" defer></script>
</body>
</html>
+48 -21
View File
@@ -12,26 +12,26 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
Dialog zu sehen bekam. -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -70,6 +70,17 @@
<section class="chat__spalte chat__spalte--liste" aria-labelledby="liste-titel">
<div class="chat__kopf">
<h1 class="chat__titel" id="liste-titel">Gespräche</h1>
<!-- WIE VIELE WARTEN AUF MICH? (24.09.2026)
Die Zahl stand bisher nur an jeder einzelnen Zeile. Wer
morgens hereinkommt, will aber zuerst wissen, ob es
ÜBERHAUPT etwas gibt – und am Handy sieht man von der
Liste nur die ersten drei Zeilen.
Sie steht NUR da, wenn es etwas zu zählen gibt. Eine „0"
neben der Überschrift wäre jeden Tag im Weg für den einen
Tag, an dem sie etwas sagt. -->
<span class="chat__zaehler" id="liste-zaehler" hidden></span>
<!-- MEINE KACHEL (20.09.2026).
Filipe: "jeder account soll seine kachel personalisieren
koennen."
@@ -265,8 +276,24 @@
Weg für den Fall, dass irgendwann etwas darin steht. -->
<div class="chat-pins" id="pins" hidden aria-label="Angeheftet"></div>
<div class="chat__verlauf" id="verlauf" role="log" aria-live="polite" aria-relevant="additions">
<p class="chat__leer" id="verlauf-leer">
Links ein Gespräch auswählen – oder mit <strong>Neu</strong> eines anfangen.
<!-- DER LEERE RAUM RECHTS (24.09.2026).
Vorher stand hier ein einzelner grauer Satz, oben links
in einer Fläche von tausend mal siebenhundert Pixeln. Das
sah nicht ruhig aus, sondern unfertig – als hätte die
Seite nicht zu Ende geladen.
Jetzt steht er in der Mitte, mit einem Zeichen darüber.
Der Satz bleibt Wort für Wort derselbe: Er sagt, was zu
tun ist, und das war nie das Problem. -->
<p class="chat__leer chat__leer--mitte" id="verlauf-leer">
<span class="chat__leer-zeichen" aria-hidden="true">
<svg viewBox="0 0 24 24">
<path d="M20 12a8 8 0 0 1-8 8H7l-3.2 2.4A.5.5 0 0 1 3 22v-4.6A8 8 0 1 1 20 12Z" />
<path d="M8.5 11.5h7M8.5 14.5h4" />
</svg>
</span>
<span class="chat__leer-text">Links ein Gespräch auswählen – oder mit <strong>Neu</strong> eines anfangen.</span>
</p>
</div>
@@ -592,25 +619,25 @@
</form>
</dialog>
<script src="assets/js/bereiche.js?v=202609241329"></script>
<script src="assets/js/bereiche.js?v=202609241413"></script>
<!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js
fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter,
waere die erste gezeichnete Nachricht ohne Gestaltung -- und das
faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie
wirklich vor den anderen dasteht. -->
<script src="assets/js/textform.js?v=202609241329"></script>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/hochladen.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329"></script>
<script src="assets/js/glocke.js?v=202609241329"></script>
<script src="assets/js/textform.js?v=202609241413"></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/hochladen.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413"></script>
<script src="assets/js/glocke.js?v=202609241413"></script>
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
die Knoepfe fehlten, und niemand wuesste warum. -->
<script src="assets/js/anruf.js?v=202609241329"></script>
<script src="assets/js/chat.js?v=202609241329"></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/anruf.js?v=202609241413"></script>
<script src="assets/js/chat.js?v=202609241413"></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/content.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/content.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -179,15 +179,15 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/checkliste.js?v=202609241329" defer></script>
<script src="assets/js/content.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/checkliste.js?v=202609241413" defer></script>
<script src="assets/js/content.js?v=202609241413" defer></script>
</body>
</html>
+6 -6
View File
@@ -36,15 +36,15 @@
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
die eine Seite, auf der man das Umfaerben sieht. -->
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609241413" />
</head>
<body class="gate gate--crew">
@@ -459,7 +459,7 @@
<script src="assets/js/gate.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/gate.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
</body>
</html>
+4 -4
View File
@@ -23,25 +23,25 @@
},
"icons": [
{
"src": "/assets/img/app-symbole/crew-192.png?v=202609241329",
"src": "/assets/img/app-symbole/crew-192.png?v=202609241413",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/crew-512.png?v=202609241329",
"src": "/assets/img/app-symbole/crew-512.png?v=202609241413",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609241329",
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609241413",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609241329",
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609241413",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -108,15 +108,15 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/hochladen.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/hochladen.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/dateien.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/dateien.js?v=202609241413" defer></script>
</body>
</html>
+18 -18
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -297,20 +297,20 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/holen.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/holen.js?v=202609241413" defer></script>
<!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein,
also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide
in Dokumentreihenfolge. -->
<script src="assets/js/vorlagenbrett.js?v=202609241329" defer></script>
<script src="assets/js/entwicklung.js?v=202609241329" defer></script>
<script src="assets/js/vorlagenbrett.js?v=202609241413" defer></script>
<script src="assets/js/entwicklung.js?v=202609241413" defer></script>
</body>
</html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -146,14 +146,14 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/hilfe.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/hilfe.js?v=202609241413" defer></script>
</body>
</html>
+5 -5
View File
@@ -30,9 +30,9 @@
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
</head>
<body class="gate">
@@ -427,7 +427,7 @@
<script src="assets/js/gate.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/gate.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -383,15 +383,15 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/kalender.js?v=202609241329" defer></script>
<script src="assets/js/kalender-abo.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/kalender.js?v=202609241413" defer></script>
<script src="assets/js/kalender-abo.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -444,13 +444,13 @@
</form>
</dialog>
<script src="assets/js/meldung.js?v=202609241329"></script>
<script src="assets/js/nachfrage.js?v=202609241329"></script>
<script src="assets/js/wahl.js?v=202609241329"></script>
<script src="assets/js/bereiche.js?v=202609241329"></script>
<script src="assets/js/kopf.js?v=202609241329"></script>
<script src="assets/js/glocke.js?v=202609241329"></script>
<script src="assets/js/leistung.js?v=202609241329"></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413"></script>
<script src="assets/js/nachfrage.js?v=202609241413"></script>
<script src="assets/js/wahl.js?v=202609241413"></script>
<script src="assets/js/bereiche.js?v=202609241413"></script>
<script src="assets/js/kopf.js?v=202609241413"></script>
<script src="assets/js/glocke.js?v=202609241413"></script>
<script src="assets/js/leistung.js?v=202609241413"></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,13 +12,13 @@
vergessen wird. -->
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/material.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/material.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start" data-ton="42" data-buehne="studio">
@@ -138,14 +138,14 @@
<p class="m-laedt" id="laedt">Einen Moment …</p>
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/hochladen.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/material.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/hochladen.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/material.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -453,14 +453,14 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/personen.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/personen.js?v=202609241413" defer></script>
</body>
</html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -214,16 +214,16 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/hochladen.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/hochladen.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/steckbrief.js?v=202609241329" defer></script>
<script src="assets/js/profil.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/steckbrief.js?v=202609241413" defer></script>
<script src="assets/js/profil.js?v=202609241413" defer></script>
</body>
</html>
+17 -17
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -134,14 +134,14 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/holen.js?v=202609241329" defer></script>
<script src="assets/js/rechte.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/holen.js?v=202609241413" defer></script>
<script src="assets/js/rechte.js?v=202609241413" defer></script>
</body>
</html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/report.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/report.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -106,17 +106,17 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/ki.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/holen.js?v=202609241329" defer></script>
<script src="assets/js/report.js?v=202609241329" defer></script>
<script src="assets/js/ki.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/holen.js?v=202609241413" defer></script>
<script src="assets/js/report.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -173,14 +173,14 @@
</div>
</div>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/scouting.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/scouting.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,21 +12,21 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
<link rel="stylesheet" href="assets/css/heim.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/heim.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -684,16 +684,16 @@
</p>
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/live.js?v=202609241329" defer></script>
<script src="assets/js/start.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/live.js?v=202609241413" defer></script>
<script src="assets/js/start.js?v=202609241413" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -85,16 +85,16 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/ki.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/startcheck.js?v=202609241329" defer></script>
<script src="assets/js/ki.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/startcheck.js?v=202609241413" defer></script>
</body>
</html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -150,16 +150,16 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/hochladen.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/hochladen.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/auskunft.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/steckbrief.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/auskunft.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/steckbrief.js?v=202609241413" defer></script>
</body>
</html>
+14 -14
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/support.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/support.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -123,16 +123,16 @@
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
trotzdem, deshalb sah man es nur in der Browserkonsole. -->
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
uebersicht.html, und heute hier. -->
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/support.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/support.js?v=202609241413" defer></script>
</body>
</html>
+18 -18
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241413" />
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
der Regel hier waere die zweite Stelle, an der dieselbe Sache
anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -111,15 +111,15 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/holen.js?v=202609241329" defer></script>
<script src="assets/js/talente.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/holen.js?v=202609241413" defer></script>
<script src="assets/js/talente.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/team.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/team.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -110,15 +110,15 @@
</main>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/holen.js?v=202609241329" defer></script>
<script src="assets/js/team.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/holen.js?v=202609241413" defer></script>
<script src="assets/js/team.js?v=202609241413" defer></script>
</body>
</html>
+17 -17
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/team.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/team.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<!-- `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
es niemandem auf, und deshalb prueft pruef-css-klassen die
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/holen.js?v=202609241329" defer></script>
<script src="assets/js/teamlage.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/holen.js?v=202609241413" defer></script>
<script src="assets/js/teamlage.js?v=202609241413" defer></script>
</body>
</html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -112,15 +112,15 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/teilen.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/teilen.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -126,14 +126,14 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/treff-moderation.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/treff-moderation.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -248,14 +248,14 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/auskunft.js?v=202609241329" defer></script>
<script src="assets/js/treff-regeln.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/auskunft.js?v=202609241413" defer></script>
<script src="assets/js/treff-regeln.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -12,22 +12,22 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
Dialog "Creator anlegen". -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -149,16 +149,16 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/uebersicht.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/uebersicht.js?v=202609241413" defer></script>
</body>
</html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -335,14 +335,14 @@
</main>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/live.js?v=202609241329" defer></script>
<script src="assets/js/unsere-seiten.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/live.js?v=202609241413" defer></script>
<script src="assets/js/unsere-seiten.js?v=202609241413" defer></script>
</body>
</html>
+118
View File
@@ -0,0 +1,118 @@
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<title>Unterstützen · Spicy &amp; Dogi</title>
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
<div class="schleier" aria-hidden="true"></div>
<header class="kopfleiste">
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="M14.5 5.5 8 12l6.5 6.5" />
</svg>
<span class="zurueck-knopf__text">Zurück</span>
</button>
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Creator&nbsp;Workspace</a> · Unterstützen</span></p>
<div class="kopfleiste__rechts">
<span class="wer" id="wer">…</span>
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
</div>
</header>
<main class="inhalt inhalt--breit">
<!-- ==================================================================
DER KOPF SAGT ZUERST, DASS NIEMAND MUSS (24.09.2026)
Filipe: „wo die leute alle supporten können auf andere art
anstatt nur tiktok."
Eine Seite, die mit „unterstütze mich" anfängt, liest sich wie
eine hohle Hand. Der erste Satz sagt deshalb das Gegenteil: Es
gibt Wege, die nichts kosten, und keiner davon ist zweite Wahl.
Erst danach kommen die, bei denen Geld fließt.
Wer nichts geben kann, soll diese Seite nicht mit einem
schlechten Gefühl schließen — das ist die ganze Überlegung
hinter dem Aufbau.
============================================================== -->
<section class="kopf-zeile">
<div>
<p class="marke">Community</p>
<h1 class="titel" id="seiten-titel">Dogi etwas zurückgeben</h1>
<p class="unterzeile" id="seiten-unter">
Es geht auch ohne TikTok – und es geht auch ohne Geld.
Such dir aus, was zu dir passt. Niemand muss etwas geben, um dazuzugehören.
</p>
</div>
</section>
<p class="fehler" id="fehler" role="alert" aria-live="polite" hidden></p>
<!-- ==================================================================
NUR DOGFATHER: die Leiste zum Ändern und die Zahlen
„nur dogfather soll sie verändern können oder vieles mehr sehen."
Sie steht im Dokument und wird von unterstuetzen.js eingeblendet
— ausgeliefert bekommt sie jeder, das ist nur HTML. Die
ENTSCHEIDUNG trifft der Server: Er liefert `darf_aendern` und
weist jedes Schreiben ohne dieses Recht mit 404 ab. Ein
verstecktes Feld ist eine Bitte, keine Sperre.
============================================================== -->
<section class="u-leitung" id="leitung" hidden aria-labelledby="leitung-titel">
<div class="u-leitung__kopf">
<h2 class="u-leitung__titel" id="leitung-titel">Nur du siehst das hier</h2>
<button type="button" class="knopf knopf--klein" id="aendern-an">Ändern</button>
</div>
<p class="u-leitung__satz" id="leitung-satz"></p>
<div class="u-zahlen" id="zahlen" hidden></div>
</section>
<!-- Die Wege. unterstuetzen.js baut sie aus der Antwort des Servers —
hier steht nur, wo sie hingehören. -->
<div id="wege" aria-live="polite">
<p class="u-laedt" id="laedt">Wird geladen …</p>
</div>
<!-- ==================================================================
DER LETZTE SATZ IST KEIN SCHMUCK
Er steht fest im Dokument und nicht in der Datenbank: Was hier
zugesagt wird, soll nicht aus Versehen wegzuklicken sein.
============================================================== -->
<p class="u-fuss">
Nichts davon ist Pflicht, und niemand sieht, wer etwas gegeben hat.
Wer nur zuschaut, gehört genauso dazu.
</p>
</main>
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit
„Cannot read properties of undefined (reading 'LEITUNG')" ab. -->
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/holen.js?v=202609241413" defer></script>
<script src="assets/js/unterstuetzen.js?v=202609241413" defer></script>
</body>
</html>
+16 -16
View File
@@ -7,15 +7,15 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -144,14 +144,14 @@
</main>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/werdegang.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/werdegang.js?v=202609241413" defer></script>
</body>
</html>
+15 -15
View File
@@ -12,13 +12,13 @@
vergessen wird. -->
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/willkommen.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/willkommen.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026).
`body.gate` ist die Anmeldewand: `display:flex; align-items:center`,
@@ -75,13 +75,13 @@
<p class="fehler" id="fehler" hidden></p>
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/willkommen.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/willkommen.js?v=202609241413" defer></script>
</body>
</html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241329" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241329" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241329" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241413" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241413" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609241413" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241413" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609241329" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241413" />
</head>
<body class="start">
@@ -190,15 +190,15 @@
</main>
<script src="assets/js/meldung.js?v=202609241329" defer></script>
<script src="assets/js/hochladen.js?v=202609241329" defer></script>
<script src="assets/js/nachfrage.js?v=202609241329" defer></script>
<script src="assets/js/meldung.js?v=202609241413" defer></script>
<script src="assets/js/hochladen.js?v=202609241413" defer></script>
<script src="assets/js/nachfrage.js?v=202609241413" defer></script>
<script src="assets/js/wahl.js?v=202609241329" defer></script>
<script src="assets/js/bereiche.js?v=202609241329" defer></script>
<script src="assets/js/installieren.js?v=202609241329" defer></script>
<script src="assets/js/kopf.js?v=202609241329" defer></script>
<script src="assets/js/glocke.js?v=202609241329" defer></script>
<script src="assets/js/wissen.js?v=202609241329" defer></script>
<script src="assets/js/wahl.js?v=202609241413" defer></script>
<script src="assets/js/bereiche.js?v=202609241413" defer></script>
<script src="assets/js/installieren.js?v=202609241413" defer></script>
<script src="assets/js/kopf.js?v=202609241413" defer></script>
<script src="assets/js/glocke.js?v=202609241413" defer></script>
<script src="assets/js/wissen.js?v=202609241413" defer></script>
</body>
</html>