Kacheln werden ein Raster -- dritter Anlauf, diesmal die FORM

Filipe zweimal davor: "das ist genau das gleiche" und "sorry aber ich
glaub du verstehst nicht was ich meine". Er hatte beide Male recht, und
ich weiss jetzt warum: Ich habe zweimal die OBERFLAECHE geaendert
(Mattglas, dann Leuchtschiene) und beide Male die FORM gelassen -- eine
breite Zeile, Zeichen links, Text daneben. Wer eine Zeile umlackiert,
bekommt eine lackierte Zeile.

AUS DREI BREITEN ZEILEN WIRD EIN RASTER AUS SECHS KARTEN.
Hochformat, Zeichen oben, Name unten, Schiene von links nach OBEN
gewandert (an einer hochkanten Karte wuerde ein Lichtbalken links sie
optisch halbieren). Die Zahl steht als Marke oben rechts statt in der
Namenszeile, der Pfeil unten rechts. `data-gross="ja"` behaelt das
Querformat -- so hebt sich die Kachel WIRKLICH ab, statt nur breiter zu
sein. Bei 1380 px passen jetzt sechs Karten nebeneinander statt drei.

BILDER: Kontrast 1,08 -> 1,14, Saettigung 1,10 -> 1,26, Glanz 0,34 ->
0,46, dazu ein neuer Durchgang "Tiefe" -- eine S-Kurve auf der
Helligkeit. Das ist NICHT mehr Kontrast: Kontrast dehnt alles gleich und
frisst Zeichnung in den Lichtern; die S-Kurve laesst die Mitte in Ruhe
(dort sitzt das Motiv) und arbeitet nur an den Enden. Gerechnet auf dem
Maximum der drei Kanaele, nicht je Kanal -- sonst wandert der Farbton
(ein dunkles Rot wuerde braun).

ANMELDESEITE: "Dogfather Universe" -> "SpicyMedia x DogFather" (das
Kreuz kleiner und leiser, sonst liest man drei Namen statt zwei), und
der Satz darunter nennt jetzt Manager, Scouts und Creator von Spicy
Media -- ohne DogFather.

ZAHLEN nur noch fuer DogFather. Beides zusammen, nicht nur die Kachel:
Eine Kachel ist ein Weg, keine Schranke -- wer die Adresse kennt, waere
weiterhin hineingekommen. Also auch in der Rechteliste auf ["admin"].

AUFGERAEUMT, weil pruef-struktur zu Recht rot wurde: start.css lief mit
202 KB in die 200-KB-Grenze. Der Grund war echter Ballast -- die Datei
trug DREI Generationen Kacheldesign uebereinander. Die ueberholten
Regeln sind weg (nur was der neue Entwurf nicht selbst setzt, bleibt),
der Entwurfstext dazu auf seine Lehre gekuerzt. 198,7 KB, und wichtiger:
nur noch EINE Stelle, an der eine Kachel beschrieben wird.

Gruen: buehne (38), css-klassen (15), leistung (50), start-ansicht (136),
handy (59), breiten (23), struktur (32).

NOCH OFFEN aus derselben Nachricht: die neue Rolle "Spicy Media" und die
Aenderung, dass Manager Creator anlegen duerfen. Beides greift in die
Rechte und in die CHECK-Regel der Personentabelle ein -- das kommt als
eigener Schritt mit Sicherung und eigener Pruefung, nicht nebenbei.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-07 03:59:16 +02:00
co-authored by Claude Opus 5
parent 1b2874299e
commit 8f8c283a1a
59 changed files with 578 additions and 281 deletions
+14 -8
View File
@@ -1443,14 +1443,20 @@ const GESCHUETZT = {
die Seite nicht öffnen dürfte, könnte auch nicht antworten, und
genau das Antworten ist der Zweck. */
"/workspace/chat.html": null,
/* Zahlen (06.09.2026): jede Rolle. WESSEN Zahlen jemand sieht,
entscheidet sichtbareCreatorIds() -- ein Creator sieht genau seine
eigenen. Ihn von der Seite auszusperren waere auch inhaltlich
falsch: Es sind SEINE Zahlen, und ohne sie ist jedes Ziel, das mit
ihm vereinbart wird, eine Behauptung. EINTRAGEN darf er sie
trotzdem nicht (darfEintragen() in workspace-leistung.js) -- eine
Zahl, die man sich selbst gibt, ist keine Messung. */
"/workspace/leistung.html": null,
/* NUR DogFather (07.09.2026). Wunsch Filipe: "nimm die kategorie
zahlen bei jedem weg, nur die rolle dogfather soll die sehen."
Bis heute stand hier `null` -- jede Rolle durfte die Seite oeffnen,
und WESSEN Zahlen jemand sah, entschied sichtbareCreatorIds().
Die Begruendung dafuer war gut (es sind SEINE Zahlen), sie ist
jetzt aber nicht mehr meine Entscheidung.
WICHTIG: Die Kachel wegzunehmen haette NICHT gereicht. Eine Kachel
ist ein Weg, keine Schranke -- wer die Adresse kennt oder ein altes
Lesezeichen hat, waere weiterhin hineingekommen. Beides gehoert
zusammen: bereiche.js zeigt sie nur noch DogFather, diese Zeile
laesst nur ihn hinein. */
"/workspace/leistung.html": ["admin"],
/* NUR DogFather (02.09.2026). Die Rollenauswahl verspricht das seit
jeher ("Manager -- dieselben Rechte, ausser der
Personenverwaltung"), die Schranke hielt sich nur nicht daran.
+49 -4
View File
@@ -386,11 +386,38 @@ const BILD_WERKZEUG = `
g.globalAlpha = 1;
g.globalCompositeOperation = "source-over";
}
/* S-Kurve auf der Helligkeit. staerke 0 = nichts, 0.15 = deutlich. */
function tiefe(g, c, staerke) {
if (staerke <= 0) return;
const d = g.getImageData(0, 0, c.width, c.height);
const D = d.data;
/* Nachschlagetabelle statt Rechnung je Bildpunkt: 256 Werte einmal,
statt drei Millionen Mal dieselbe Formel. */
const t = new Uint8Array(256);
for (let i = 0; i < 256; i++) {
const x = i / 255;
/* Glatte S-Kurve (smoothstep), gemischt mit dem Original. */
const s = x * x * (3 - 2 * x);
const v = x + (s - x) * staerke * 3;
t[i] = Math.max(0, Math.min(255, Math.round(v * 255)));
}
for (let i = 0; i < D.length; i += 4) {
const max = Math.max(D[i], D[i + 1], D[i + 2]);
if (max === 0) continue;
/* Ein Faktor fuer alle drei Kanaele -- der Farbton bleibt. */
const f = t[max] / max;
D[i] = Math.min(255, D[i] * f);
D[i + 1] = Math.min(255, D[i + 1] * f);
D[i + 2] = Math.min(255, D[i + 2] * f);
}
g.putImageData(d, 0, 0);
}
`;
async function bauen({ quelle, ziel, breite, ausschnitt = null, dunkel = 0, guete = 0.82,
seitenverhaeltnis = null, kontrast = 1.08, saettigung = 1.1, vignette = 0.34,
schaerfe = 0.9, glanzStaerke = 0.34 }) {
seitenverhaeltnis = null, kontrast = 1.14, saettigung = 1.26, vignette = 0.34,
schaerfe = 1.05, glanzStaerke = 0.46, tiefe = 0.10 }) {
const webp = await seite.evaluate(async (a) => {
const i = new Image(); i.src = a.daten; await i.decode();
@@ -438,7 +465,24 @@ async function bauen({ quelle, ziel, breite, ausschnitt = null, dunkel = 0, guet
/* 5: GLANZ. Nach dem Schaerfen, damit das Licht die geschaerften
Kanten umspielt und nicht umgekehrt der Glanz mitgeschaerft wird
(das gaebe harte Lichtsaeume statt weichem Strahlen). */
glanz(g, c, a.glanzStaerke, 176, Math.max(3, zb / 190));
glanz(g, c, a.glanzStaerke, 172, Math.max(3, zb / 190));
/* 6: TIEFE. Die dunkelsten Stellen werden noch etwas dunkler, die
hellsten noch etwas heller -- eine S-Kurve, wie sie jeder
Bildbearbeiter als Erstes zieht.
Das ist NICHT dasselbe wie mehr Kontrast: Kontrast dehnt alles
gleichmaessig und frisst dabei Zeichnung in den Lichtern. Die
S-Kurve laesst die MITTE in Ruhe (dort sitzt das Motiv) und
arbeitet nur an den Enden. Genau daran erkennt man ein poliertes
Bild -- der schwarze Stein ist wirklich schwarz, das Neon wirklich
hell, und dazwischen bleibt alles lesbar.
Gerechnet auf dem Maximum der drei Kanaele, nicht je Kanal
einzeln: Je Kanal wuerde die Kurve die FARBE verschieben (ein
dunkles Rot wird sonst braun). So bleibt der Farbton, nur die
Helligkeit wandert. */
tiefe(g, c, a.tiefe);
/* 3: Die Vignette. Elliptisch ueber die ganze Flaeche, in der Mitte
voellig klar, zu den Ecken hin dunkel. Der weiche Verlauf ist
@@ -462,7 +506,8 @@ async function bauen({ quelle, ziel, breite, ausschnitt = null, dunkel = 0, guet
}
return c.toDataURL("image/webp", a.guete);
}, { daten: alsDatenAdresse(quelle), breite, ausschnitt, dunkel, guete, seitenverhaeltnis,
kontrast, saettigung, vignette, schaerfe, glanzStaerke, werkzeug: BILD_WERKZEUG });
kontrast, saettigung, vignette, schaerfe, glanzStaerke, tiefe,
werkzeug: BILD_WERKZEUG });
const puffer = Buffer.from(webp.split(",")[1], "base64");
writeFileSync(ziel, puffer);
+31
View File
@@ -1750,3 +1750,34 @@ body.gate {
@media (forced-colors: active) {
.teilen { border: 1px solid ButtonText; background: ButtonFace; color: ButtonText; }
}
/* =====================================================================
„SpicyMedia × DogFather" im Kopf der Anmeldekarte (07.09.2026)
Zwei Marken und ein Zeichen dazwischen. Drei gleich laute Wörter
nebeneinander liest niemand als Paar -- das Kreuz muss kleiner und
leiser sein als die Namen, sonst wird aus einer Kooperation eine
Aufzählung.
Das Zeichen ist ein echtes Multiplikationszeichen (×, U+00D7), kein
kleines x: Das x einer Schrift steht auf der Grundlinie und sitzt
dadurch optisch zu tief zwischen zwei Versalien.
Die Farben nehmen die beiden Seiten des Neonrahmens auf, in dem die
Karte steckt: Spicy Media rot, DogFather blau. Beide gedeckt und
gegen den dunklen Grund gemessen -- augenschonend bleibt Vorgabe.
===================================================================== */
.marke--paar {
display: flex; align-items: baseline; gap: .42em;
flex-wrap: wrap;
}
.marke--paar .marke__spicy { color: #e9848c; }
.marke--paar .marke__dogi { color: #63b8ee; }
.marke--paar .marke__x {
/* Kleiner, leiser, und mit etwas Luft -- es verbindet, es benennt
nicht. */
font-size: .82em;
font-weight: 500;
color: var(--text-still);
transform: translateY(-.02em);
}
+292 -97
View File
@@ -4004,93 +4004,41 @@ body[data-fremde-sicht="ja"]::after {
}
/* =====================================================================
LEUCHTKASTEN — der zweite Anlauf, und diesmal ein anderes Ding
(07.09.2026, abends)
ZWEITER ANLAUF: MATTGLAS RAUS (07.09.2026)
Filipe zum ersten Anlauf: "das ist genau das gleiche ... ich wollte
eine krasse aenderung ... es muss einzigartig sein und der seite
angepasst." Und zum Hintergrund: "die sollen nicht durch die kacheln
gehen ... vielleicht ganz ganz ganz leicht durch zu sehen sein."
Die Kacheln lagen hinter `backdrop-filter: blur(16px)`. Auf einer
Seite mit siebzehn Kacheln heisst das: Der groesste Teil des
Hintergrundbildes ist verwaschen -- man sieht ein unscharfes Bild und
haelt das Bild fuer unscharf. Genau das hat Filipe gemeldet ("sehen
die sogar leicht verschwommen aus"), und ich hatte es selbst
eingebaut, mit der Begruendung, Kachel und Bild sollten
"zusammengehoeren". Sie gehoeren auch zusammen, wenn die Kachel ein
eigener Gegenstand ist; Mattglas war die falsche Antwort auf die
richtige Frage.
Er hat in beidem recht, und der zweite Satz erklaert den ersten.
DAS MATTGLAS WAR DER FEHLER. 16 px Weichzeichner hinter jeder Kachel
heisst: Unter jeder Kachel liegt eine verschwommene Fläche. Auf einer
Seite mit siebzehn Kacheln ist damit der grösste Teil des Bildes
verwaschen -- man sieht ein unscharfes Bild und hält das Bild für
unscharf. Genau das hat er gemeldet ("sehen die sogar leicht
verschwommen aus"), und ich hatte es selbst eingebaut, mit der
Begründung, Kachel und Bild sollten "zusammengehören". Sie gehören
auch zusammen, wenn die Kachel ein eigener Gegenstand ist -- Mattglas
war die falsche Antwort auf die richtige Frage.
WAS JETZT DA STEHT, IST EIN ANDERES DING, KEIN AUFGEHÜBSCHTES:
Die Kachel ist eine dunkle Platte, die in einer LEUCHTSCHIENE
steckt. Die Schiene ist die Farbe der Kategorie. Sie leuchtet nicht
nur am Rand -- sie WIRFT LICHT in die Platte hinein, das nach
rechts ausläuft. Deshalb ist die linke Kante scharf (dort sitzt sie
in der Schiene) und die rechte rund (dort ist sie frei).
Das ist der Unterschied zu vorher: Die Farbe war ein Strich AN der
Kachel; jetzt ist sie die Lichtquelle DER Kachel. Jede Kategorie
leuchtet in ihrem eigenen Licht, und man erkennt sie aus drei Metern
Entfernung, ohne ein Wort zu lesen.
Dazu drei Dinge, die eine Fläche zu einem Gegenstand machen und die
bleiben, weil sie richtig waren: Gewicht (zwei Schatten), Material-
stärke (Licht oben, Schatten unten) und Körnung. Neu dazu kommt der
GLANZ, der beim Überfahren über die Platte WANDERT -- so verhält sich
eine lackierte Oberfläche, wenn man den Kopf bewegt.
DURCHSICHT: 6 Prozent, und SCHARF. Genau das, worum er gebeten hat --
das Bild schimmert durch, ohne dass irgendwo etwas verwischt wird.
Seitdem: deckende Platte mit 6 % Durchsicht, und die SCHARF. Die
Form, die daraus wurde, steht weiter unten unter MODULKARTEN -- der
Entwurf von hier (Querformat mit Schiene links) hat nur einen
Nachmittag gehalten und ist dort vollstaendig ersetzt.
===================================================================== */
.kachel {
/* Links scharf, rechts rund. Das ist die Silhouette, an der man diese
Oberfläche wiedererkennt -- und der einzige Teil des Entwurfs, der
schon aus zehn Metern wirkt. */
border-radius: 4px 20px 20px 4px;
/* DREI SCHICHTEN, von oben nach unten:
1. das Licht der Schiene, das nach rechts ausläuft
2. die Platte selbst, leicht von oben links beleuchtet
3. 6 % Durchsicht (die Farbe ist nicht ganz deckend)
Kein backdrop-filter mehr -- nichts wird verwischt. */
background:
/* STEILER ABFALL, nicht flächig. Beim ersten Anlauf reichte das
Licht bis 68 % -- damit war die Kachel eingefärbt statt
beleuchtet, und eingefärbt sieht billig aus. Licht nimmt mit dem
Quadrat der Entfernung ab; die Stufen bilden das nach: satt an
der Schiene, nach einem Fünftel schon deutlich weniger, nach
einem Drittel nur noch ein Hauch. Das ist der Unterschied
zwischen "farbige Kachel" und "Kachel, auf die Licht fällt". */
linear-gradient(90deg,
color-mix(in srgb, var(--ton) 40%, transparent) 0%,
color-mix(in srgb, var(--ton) 15%, transparent) 9%,
color-mix(in srgb, var(--ton) 5%, transparent) 22%,
color-mix(in srgb, var(--ton) 1.5%, transparent) 38%,
transparent 52%),
linear-gradient(163deg,
rgba(23, 31, 45, .95) 0%,
rgba(11, 15, 24, .95) 58%,
rgba(8, 11, 18, .95) 100%);
/* WAS VON DIESEM ENTWURF BLEIBT (aufgeraeumt 07.09.2026).
Form, Flaeche, Schienenrichtung und Schatten stehen jetzt weiter
unten im Abschnitt MODULKARTEN -- die Kachel ist vom Quer- ins
Hochformat gewandert, und dabei hat sich jede einzelne dieser
Angaben geaendert.
Die alten Regeln hier stehen zu lassen waere doppelt schaedlich
gewesen: Sie kosten Bytes auf jeder Seite (die Datei lief in die
200-KB-Grenze von pruef-struktur), und vor allem waeren es ZWEI
Stellen, an denen dieselbe Kachel beschrieben wird. Genau daran
scheitert der Naechste, der etwas aendert: Er trifft die falsche.
Es bleibt, was der neue Entwurf NICHT selbst setzt. */
.kachel {
backdrop-filter: none;
-webkit-backdrop-filter: none;
/* MATERIALSTÄRKE: Licht oben, Schatten unten -- beide innen.
GEWICHT: zwei Schatten, ein enger dunkler direkt darunter und ein
weiter weicher. Ein einzelner Schatten sieht immer nach Aufkleber
aus; erst die Kombination liest sich als "liegt auf etwas".
Dazu innen links ein farbiger Saum: das Licht der Schiene, das auf
die Schnittkante der Platte fällt. */
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, .10),
inset 0 -1px 0 rgba(0, 0, 0, .50),
inset 2px 0 0 -1px color-mix(in srgb, var(--ton) 30%, transparent),
0 2px 5px -2px rgba(0, 0, 0, .55),
0 16px 34px -20px rgba(0, 0, 0, .88);
border-color: color-mix(in srgb, var(--ton) 18%, rgba(150, 186, 220, .13));
transition: border-color var(--tempo), transform var(--tempo), box-shadow var(--tempo);
}
@@ -4140,23 +4088,16 @@ body[data-fremde-sicht="ja"]::after {
transition: opacity var(--tempo), background-position .55s cubic-bezier(.35, 0, .2, 1);
}
/* DIE LEUCHTSCHIENE. Kein Strich am Rand mehr, sondern eine Lichtquelle:
ein heller Kern, darüber ein Schein, der nach beiden Seiten austritt.
Oben am hellsten -- Leuchtstoff altert nach unten, und genau diese
Ungleichmäßigkeit macht den Unterschied zu einem gemalten Balken. */
/* Die Leuchtschiene und der wandernde Glanz stehen im Abschnitt
MODULKARTEN weiter unten -- dort liegt die Schiene OBEN statt links,
weil die Kachel hochkant ist. Hier bleibt nur, was der neue Entwurf
nicht selbst setzt: die Grunddeckkraft des Glanzes und seine
Ueberblendung. */
.kachel::after {
opacity: .58;
transition: opacity var(--tempo), background-position .55s cubic-bezier(.35, 0, .2, 1);
}
.kachel::before {
width: 4px;
border-radius: 4px 0 0 4px;
background:
linear-gradient(180deg,
color-mix(in srgb, var(--ton) 55%, #fff) 0%,
var(--ton) 26%,
color-mix(in srgb, var(--ton) 82%, transparent) 72%,
color-mix(in srgb, var(--ton) 46%, transparent) 100%);
box-shadow:
0 0 9px 0 color-mix(in srgb, var(--ton) 55%, transparent),
3px 0 20px -3px color-mix(in srgb, var(--ton) 42%, transparent);
opacity: .92;
transition: opacity var(--tempo), width var(--tempo), box-shadow var(--tempo);
}
@@ -4519,3 +4460,257 @@ body[data-fremde-sicht="ja"]::after {
.uhr { background: Canvas; box-shadow: none; border: 1px solid CanvasText; }
.uhr__skala, .uhr__glas { display: none; }
}
/* =====================================================================
MODULKARTEN — die Kacheln werden ein Raster, keine Liste
(07.09.2026, dritter Anlauf)
Filipe zum zweiten Anlauf: "sorry aber ich glaub du verstehst nicht
was ich meine, ich sag ja ich will eine komplette änderung von den
kacheln, viel übersichtlicher ... es soll ganz anders aussehen wie
jetzt."
---------------------------------------------------------------------
ER HAT RECHT, UND ICH WEISS JETZT WARUM
Zweimal habe ich die OBERFLÄCHE geändert -- Mattglas, dann
Leuchtschiene -- und beide Male blieb die FORM gleich: eine breite
Zeile, Zeichen links, Text daneben, Pfeil rechts. Drei davon passen
nebeneinander, siebzehn ergeben sechs Reihen. Wer eine Zeile
umlackiert, bekommt eine lackierte Zeile.
Was sich ändern musste, ist die Form:
AUS DREI BREITEN ZEILEN WIRD EIN RASTER AUS SECHS KARTEN.
Das ist der eigentliche Punkt hinter "übersichtlicher". Eine breite
Zeile zwingt das Auge, von links nach rechts zu LESEN -- siebzehnmal.
Eine kompakte Karte erkennt man an ihrer Form und ihrem Zeichen,
ohne ein Wort zu lesen; das Auge springt statt zu wandern. Bei
1380 px passen jetzt sechs Karten nebeneinander statt drei: Der
ganze Arbeitsbereich steht auf einem Bildschirm, ohne zu scrollen.
---------------------------------------------------------------------
WAS SICH IM EINZELNEN ÄNDERT
FORM Hochformat statt Querformat. Zeichen oben, Name unten --
die Leserichtung eines Menschen, der etwas SUCHT (erst
das Bild, dann der Name), nicht eines, der liest.
SCHIENE Sie wandert von links nach OBEN. An einer hochkanten
Karte ist die lange Seite senkrecht; ein Lichtbalken
dort würde die Karte optisch halbieren. Oben liegt er
wie eine beschriftete Kante an einem Gerät.
ZEICHEN Größer und in einer eigenen, beleuchteten Mulde. Es ist
jetzt das erste, was man sieht, und trägt deshalb mehr
Gewicht als vorher.
ZAHL Nach oben rechts, als eigene Marke. Vorher stand sie in
derselben Zeile wie der Name und hat ihn gekürzt.
WASSER- Größer und weiter unten -- sie füllt jetzt die untere
ZEICHEN Hälfte der Karte und gibt jeder Kachel eine eigene
Silhouette. Bei sechs Karten nebeneinander ist genau das
der Unterschied zwischen "Raster" und "Sammlung".
GROSSE `data-gross="ja"` nimmt zwei Spalten und bekommt das
KACHEL Querformat von früher -- so hebt sie sich WIRKLICH ab,
statt nur breiter zu sein.
Material, Farben und Verhalten bleiben: beleuchtete Platte, Körnung,
Anheben statt Aufleuchten, jede Kategorie in ihrer Farbe. Das war
nicht das Problem.
===================================================================== */
.kacheln {
/* 214 px ist gemessen, nicht geraten: Bei 1380 px Inhaltsbreite und
12 px Abstand ergeben sich damit genau sechs Spalten (6 x 214 +
5 x 12 = 1344). Darunter greift auto-fill von selbst auf fünf,
vier, drei -- ohne eine einzige Umbruchschwelle, die man beim
nächsten Element nachziehen müsste. */
grid-template-columns: repeat(auto-fill, minmax(min(214px, 100%), 1fr));
gap: 12px;
}
.kachel {
border-radius: 16px;
/* Die Schiene liegt jetzt oben -- also gehört die Lichtkante des
Materials mit nach oben und der farbige Saum weg von links. */
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, .10),
inset 0 -1px 0 rgba(0, 0, 0, .50),
0 2px 5px -2px rgba(0, 0, 0, .55),
0 16px 34px -20px rgba(0, 0, 0, .88);
background:
/* Das Licht der Schiene fällt jetzt von OBEN in die Platte. */
linear-gradient(180deg,
color-mix(in srgb, var(--ton) 30%, transparent) 0%,
color-mix(in srgb, var(--ton) 11%, transparent) 12%,
color-mix(in srgb, var(--ton) 3%, transparent) 30%,
transparent 58%),
linear-gradient(163deg,
rgba(23, 31, 45, .95) 0%,
rgba(11, 15, 24, .95) 58%,
rgba(8, 11, 18, .95) 100%);
}
/* DIE SCHIENE OBEN. Volle Breite, hell in der Mitte, zu den Ecken
auslaufend -- so sieht eine beleuchtete Kante aus, wenn die Lampe
dahinter mittig sitzt. Ein gleichmäßiger Balken sähe aufgeklebt aus. */
.kachel::before {
left: 0; right: 0; top: 0; bottom: auto;
width: auto; height: 3px;
border-radius: 16px 16px 0 0;
background: linear-gradient(90deg,
color-mix(in srgb, var(--ton) 30%, transparent) 0%,
color-mix(in srgb, var(--ton) 55%, #fff) 34%,
var(--ton) 62%,
color-mix(in srgb, var(--ton) 34%, transparent) 100%);
box-shadow:
0 0 9px 0 color-mix(in srgb, var(--ton) 45%, transparent),
0 3px 20px -3px color-mix(in srgb, var(--ton) 38%, transparent);
opacity: .85;
}
.kachel:hover::before {
opacity: 1;
box-shadow:
0 0 14px 0 color-mix(in srgb, var(--ton) 70%, transparent),
0 5px 32px -3px color-mix(in srgb, var(--ton) 55%, transparent);
}
/* Der Glanz zieht jetzt von oben links nach unten rechts -- an einer
hochkanten Fläche ist das die Richtung, in der Licht fällt. */
.kachel::after {
background:
linear-gradient(148deg,
transparent 24%,
rgba(255, 255, 255, .05) 38%,
rgba(255, 255, 255, .10) 46%,
rgba(255, 255, 255, .03) 54%,
transparent 70%),
radial-gradient(130% 120% at var(--mx) var(--my),
color-mix(in srgb, var(--ton) 24%, transparent), transparent 62%);
background-size: 100% 240%, 100% 100%;
background-position: 0 -30%, 0 0;
}
.kachel:hover::after { background-position: 0 130%, 0 0; }
/* ---------- Der Aufbau der Karte ------------------------------------- */
.kachel__link {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 0;
padding: 15px 15px 14px;
/* Feste Mindesthöhe, damit alle Karten einer Reihe gleich hoch sind,
auch wenn eine Unterzeile fehlt. Ohne sie entsteht genau der
zerfranste Rand, den "übersichtlich" ausschließt. */
min-height: 152px;
}
.kachel__zeichen {
width: 46px; height: 46px;
margin: 0 0 auto; /* schiebt den Text nach unten */
border-radius: 14px;
}
.kachel__svg { width: 25px; height: 25px; }
.kachel__text {
width: 100%;
margin-top: 14px;
gap: 2px;
}
.kachel__name {
font-size: 1rem; font-weight: 700; letter-spacing: -.012em;
/* Zwei Zeilen erlaubt: "Calls & Protokolle" passt in einer Spalte von
214 px nicht in eine Zeile, und ein abgeschnittener Name ist auf
einer Übersichtsseite das Gegenteil von übersichtlich. */
white-space: normal;
display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
overflow: hidden;
}
.kachel__unter {
font-size: .765rem; line-height: 1.35;
color: var(--text-leise);
white-space: normal;
display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
overflow: hidden;
}
/* Die Zahl als Marke oben rechts -- neben dem Zeichen, nicht im Text.
Vorher stand sie in derselben Zeile wie der Name und hat ihn gekürzt. */
.kachel__zahl {
position: absolute; top: 13px; right: 13px;
margin: 0; z-index: 2;
min-width: 28px; padding: 4px 9px;
font-size: .84rem;
}
/* Der Pfeil rückt in die untere rechte Ecke: Er ist die leiseste
Angabe der Karte und darf keinem Text im Weg stehen. */
.kachel__pfeil {
position: absolute; right: 14px; bottom: 13px;
margin: 0; z-index: 2;
font-size: .95rem; line-height: 1;
color: color-mix(in srgb, var(--ton) 55%, var(--text-still));
transition: transform var(--tempo), color var(--tempo);
}
.kachel:hover .kachel__pfeil {
transform: translateX(3px);
color: color-mix(in srgb, var(--ton) 80%, #ffffff);
}
/* Das Merk-Zeichen (angepinnt) sitzt links neben der Zahl. */
.kachel__merk { position: absolute; top: 15px; right: 52px; margin: 0; z-index: 2; }
/* Das Wasserzeichen füllt die untere Hälfte -- es ist bei sechs Karten
nebeneinander das, was jede von ihnen unterscheidbar macht. */
.kachel__wasserzeichen {
right: -20px; bottom: -20px;
width: 118px; height: 118px;
opacity: .085;
}
.kachel:hover .kachel__wasserzeichen {
opacity: .15;
transform: rotate(-8deg) translate(-3px, -3px) scale(1.05);
}
/* ---------- Die große Kachel ----------------------------------------- */
/* Sie behält das Querformat von früher. Dadurch hebt sie sich WIRKLICH
ab: nicht "dieselbe Karte, nur breiter", sondern eine andere Form. */
.kachel[data-gross="ja"] {
grid-column: span 2;
}
.kachel[data-gross="ja"] .kachel__link {
flex-direction: row;
align-items: center;
gap: 16px;
padding: 18px 18px 18px 20px;
min-height: 152px;
}
.kachel[data-gross="ja"] .kachel__zeichen {
width: 62px; height: 62px; margin: 0; border-radius: 18px;
}
.kachel[data-gross="ja"] .kachel__svg { width: 32px; height: 32px; }
.kachel[data-gross="ja"] .kachel__text { margin-top: 0; }
.kachel[data-gross="ja"] .kachel__name { font-size: 1.22rem; -webkit-line-clamp: 1; }
.kachel[data-gross="ja"] .kachel__unter { font-size: .84rem; -webkit-line-clamp: 1; }
.kachel[data-gross="ja"] .kachel__wasserzeichen {
width: 158px; height: 158px; right: -24px; bottom: -30px;
}
@media (max-width: 560px) {
/* Auf dem Handy zwei Spalten. Eine einzige wäre wieder eine Liste --
und genau davon kommen wir gerade weg. Zwei Karten je Reihe passen
bei 390 px (2 x 172 + 12), und der Name bleibt zweizeilig lesbar. */
.kacheln { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.kachel__link { min-height: 138px; padding: 13px 13px 12px; }
.kachel[data-gross="ja"] { grid-column: span 2; }
.kachel[data-gross="ja"] .kachel__link { flex-direction: row; min-height: 96px; }
.kachel[data-gross="ja"] .kachel__zeichen { width: 48px; height: 48px; }
.kachel__zeichen { width: 40px; height: 40px; border-radius: 12px; }
.kachel__svg { width: 22px; height: 22px; }
.kachel__name { font-size: .93rem; }
.kachel__unter { font-size: .72rem; }
.kachel__wasserzeichen { width: 96px; height: 96px; }
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 KiB

After

Width:  |  Height:  |  Size: 365 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 KiB

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 KiB

After

Width:  |  Height:  |  Size: 476 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 KiB

After

Width:  |  Height:  |  Size: 365 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 KiB

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 267 KiB

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 KiB

After

Width:  |  Height:  |  Size: 433 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 KiB

After

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 KiB

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 KiB

After

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 KiB

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 KiB

After

Width:  |  Height:  |  Size: 485 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 KiB

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 341 KiB

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 KiB

After

Width:  |  Height:  |  Size: 450 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

+8 -1
View File
@@ -381,8 +381,15 @@
die Frage, welcher der richtige ist. */
{ name: 'Mein Profil', unter: 'Dein Bild, deine Ziele und Pläne', zeichen: 'profil', ton: 20,
rollen: ['creator'], ziel: 'profil.html', szene: 'halle' },
/* NUR DOGFATHER (07.09.2026, Wunsch Filipe: "nimm die kategorie
zahlen bei jedem weg, nur die rolle dogfather soll die
sehen"). Die Kachel verschwindet damit fuer Manager, Scouts
und Creator -- die SEITE bleibt fuer sie gesperrt, das regelt
weiterhin die Rechteliste in workspace.js. Eine Kachel
wegzunehmen, ohne die Seite zu schliessen, waere nur ein
versteckter Weg und keine Regel. */
{ name: 'Zahlen', unter: 'Diamanten, LIVE-Tage, Verweildauer', zeichen: 'zahlen', ton: 2,
rollen: ['admin', 'manager', 'creator', 'scout'], ziel: 'leistung.html', szene: 'arena' },
rollen: ['admin'], ziel: 'leistung.html', szene: 'arena' },
{ name: 'Start-Check', unter: 'Erstanalyse, 16 Punkte', zeichen: 'startcheck', ton: 16,
rollen: ['admin', 'manager', 'creator', 'scout'], ziel: 'startcheck.html', szene: 'wald' },
{ name: 'LIVE-Analyse', unter: 'Vorher, während, danach', zeichen: 'live', ton: 3,
+8 -8
View File
@@ -9,9 +9,9 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
</head>
<body class="start">
@@ -211,10 +211,10 @@
</form>
</dialog>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/aufgaben.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/aufgaben.js?v=202609070358" defer></script>
</body>
</html>
+9 -9
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609070358" />
</head>
<body class="start">
@@ -134,10 +134,10 @@
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/automation.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/automation.js?v=202609070358" defer></script>
</body>
</html>
+13 -13
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609070358" />
</head>
<body class="start">
@@ -143,14 +143,14 @@
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/checkliste.js?v=202609070334" defer></script>
<script src="assets/js/ampel.js?v=202609070334" defer></script>
<script src="assets/js/schulung.js?v=202609070334" defer></script>
<script src="assets/js/vorlagen.js?v=202609070334" defer></script>
<script src="assets/js/bereich.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/checkliste.js?v=202609070358" defer></script>
<script src="assets/js/ampel.js?v=202609070358" defer></script>
<script src="assets/js/schulung.js?v=202609070358" defer></script>
<script src="assets/js/vorlagen.js?v=202609070358" defer></script>
<script src="assets/js/bereich.js?v=202609070358" defer></script>
</body>
</html>
+10 -10
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609070358" />
</head>
<body class="start">
@@ -76,11 +76,11 @@
</main>
<script src="assets/js/ki.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/calls.js?v=202609070334" defer></script>
<script src="assets/js/ki.js?v=202609070358" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/calls.js?v=202609070358" defer></script>
</body>
</html>
+8 -8
View File
@@ -9,16 +9,16 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<!-- 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=202609070334" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609070358" />
</head>
<body class="start">
@@ -154,9 +154,9 @@
</form>
</dialog>
<script src="assets/js/bereiche.js?v=202609070334"></script>
<script src="assets/js/kopf.js?v=202609070334"></script>
<script src="assets/js/glocke.js?v=202609070334"></script>
<script src="assets/js/chat.js?v=202609070334"></script>
<script src="assets/js/bereiche.js?v=202609070358"></script>
<script src="assets/js/kopf.js?v=202609070358"></script>
<script src="assets/js/glocke.js?v=202609070358"></script>
<script src="assets/js/chat.js?v=202609070358"></script>
</body>
</html>
+11 -11
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/content.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/content.css?v=202609070358" />
</head>
<body class="start">
@@ -166,12 +166,12 @@
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/checkliste.js?v=202609070334" defer></script>
<script src="assets/js/vorlagen.js?v=202609070334" defer></script>
<script src="assets/js/content.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/checkliste.js?v=202609070358" defer></script>
<script src="assets/js/vorlagen.js?v=202609070358" defer></script>
<script src="assets/js/content.js?v=202609070358" defer></script>
</body>
</html>
+9 -9
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609070358" />
</head>
<body class="start">
@@ -95,10 +95,10 @@
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/dateien.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/dateien.js?v=202609070358" defer></script>
</body>
</html>
+17 -4
View File
@@ -27,7 +27,7 @@
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
</head>
<body class="gate">
@@ -79,10 +79,23 @@
<main class="tafel" id="tafel">
<div class="tafel__kante" aria-hidden="true"></div>
<!-- 07.09.2026, Wunsch Filipe: "dogfather universe auch ersetzen durch
SpicyMedia x DogFather" und der Satz darunter soll "nur um manager
scouts und creator von spicy media" gehen, ohne DogFather.
Das "x" steht als eigenes Element, damit es kleiner und in der
Zwischenfarbe gesetzt werden kann -- so liest man zwei Namen und
ein Zeichen dazwischen, nicht drei gleich laute Wörter. Es trägt
aria-hidden nicht: Vorgelesen wird "SpicyMedia x DogFather", und
genau so spricht man es auch aus. -->
<header class="kopf">
<p class="marke">Dogfather&nbsp;Universe</p>
<p class="marke marke--paar">
<span class="marke__spicy">SpicyMedia</span>
<span class="marke__x">×</span>
<span class="marke__dogi">DogFather</span>
</p>
<h1 class="titel">Creator&nbsp;Workspace</h1>
<p class="unterzeile">Privater Bereich für Creator, Scouts und DogFather.</p>
<p class="unterzeile">Privater Bereich für die Manager, Scouts und Creator von Spicy&nbsp;Media.</p>
</header>
<div class="rollen" role="radiogroup" aria-labelledby="rollen-schild">
@@ -173,6 +186,6 @@
</main>
</div>
<script src="assets/js/gate.js?v=202609070334" defer></script>
<script src="assets/js/gate.js?v=202609070358" defer></script>
</body>
</html>
+10 -10
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609070358" />
</head>
<body class="start">
@@ -257,11 +257,11 @@
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/kalender.js?v=202609070334" defer></script>
<script src="assets/js/kalender-abo.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/kalender.js?v=202609070358" defer></script>
<script src="assets/js/kalender-abo.js?v=202609070358" defer></script>
</body>
</html>
+9 -9
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609070358" />
</head>
<body class="start">
@@ -211,10 +211,10 @@
</form>
</dialog>
<script src="assets/js/wahl.js?v=202609070334"></script>
<script src="assets/js/bereiche.js?v=202609070334"></script>
<script src="assets/js/kopf.js?v=202609070334"></script>
<script src="assets/js/glocke.js?v=202609070334"></script>
<script src="assets/js/leistung.js?v=202609070334"></script>
<script src="assets/js/wahl.js?v=202609070358"></script>
<script src="assets/js/bereiche.js?v=202609070358"></script>
<script src="assets/js/kopf.js?v=202609070358"></script>
<script src="assets/js/glocke.js?v=202609070358"></script>
<script src="assets/js/leistung.js?v=202609070358"></script>
</body>
</html>
+9 -9
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609070358" />
</head>
<body class="start">
@@ -123,10 +123,10 @@
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/personen.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/personen.js?v=202609070358" defer></script>
</body>
</html>
+10 -10
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609070358" />
</head>
<body class="start">
@@ -201,11 +201,11 @@
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/steckbrief.js?v=202609070334" defer></script>
<script src="assets/js/profil.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/steckbrief.js?v=202609070358" defer></script>
<script src="assets/js/profil.js?v=202609070358" defer></script>
</body>
</html>
+10 -10
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/report.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/report.css?v=202609070358" />
</head>
<body class="start">
@@ -93,11 +93,11 @@
</main>
<script src="assets/js/ki.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/report.js?v=202609070334" defer></script>
<script src="assets/js/ki.js?v=202609070358" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/report.js?v=202609070358" defer></script>
</body>
</html>
+9 -9
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609070358" />
</head>
<body class="start">
@@ -126,10 +126,10 @@
</div>
</div>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/scouting.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/scouting.js?v=202609070358" defer></script>
</body>
</html>
+7 -7
View File
@@ -9,8 +9,8 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
</head>
<body class="start">
@@ -187,10 +187,10 @@
</p>
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/start.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/start.js?v=202609070358" defer></script>
</body>
</html>
+10 -10
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609070358" />
</head>
<body class="start">
@@ -72,11 +72,11 @@
</main>
<script src="assets/js/ki.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/startcheck.js?v=202609070334" defer></script>
<script src="assets/js/ki.js?v=202609070358" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/startcheck.js?v=202609070358" defer></script>
</body>
</html>
+9 -9
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609070358" />
</head>
<body class="start">
@@ -113,10 +113,10 @@
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/steckbrief.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/steckbrief.js?v=202609070358" defer></script>
</body>
</html>
+7 -7
View File
@@ -9,9 +9,9 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609070358" />
</head>
<body class="start">
@@ -82,10 +82,10 @@
</main>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/uebersicht.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/uebersicht.js?v=202609070358" defer></script>
</body>
</html>
+9 -9
View File
@@ -9,10 +9,10 @@
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609070334" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/start.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609070358" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609070358" />
</head>
<body class="start">
@@ -177,10 +177,10 @@
</main>
<script src="assets/js/wahl.js?v=202609070334" defer></script>
<script src="assets/js/bereiche.js?v=202609070334" defer></script>
<script src="assets/js/kopf.js?v=202609070334" defer></script>
<script src="assets/js/glocke.js?v=202609070334" defer></script>
<script src="assets/js/wissen.js?v=202609070334" defer></script>
<script src="assets/js/wahl.js?v=202609070358" defer></script>
<script src="assets/js/bereiche.js?v=202609070358" defer></script>
<script src="assets/js/kopf.js?v=202609070358" defer></script>
<script src="assets/js/glocke.js?v=202609070358" defer></script>
<script src="assets/js/wissen.js?v=202609070358" defer></script>
</body>
</html>