Files
dogfather-universe/workspace/assets/css/entwicklung.css
T
DogFatherGitandClaude Opus 5 d69eb34448 Die Kanalzeile -- und der Kasten, der auf dem Chili-Motiv stand
SCHRITT 3 AUS DEM VIDEO-PLAN: DIE KANALZEILE
Filipe: "fuer meinen Account, dogfather, dann dogfather clips und
hasidog." Sobald Videos aus drei Kanaelen nebeneinander liegen, ist die
erste Frage nicht "welche Art", sondern "von welchem Kanal".

ALS ZWEITE DIMENSION, nicht als weiterer Wert in derselben Leiste. Der
vorhandene Filter ist EIN Wert (Alle / Nur offene / die Arten); wer den
Kanal dort hineinpresst, kann "nur offene Clips von HasiDog" nicht mehr
fragen. Zwei getrennte Reihen zeigen ausserdem, dass es zwei Fragen
sind -- in einer Zeile klickt man das zweite und wundert sich, warum
das erste wieder aus ist.

SIE ERSCHEINT NUR AB ZWEI KANAELEN, und die Kanaele werden aus den
vorhandenen Eintraegen abgeleitet statt aufgezaehlt. Auf einem Brett
ohne Videos steht keine leere Leiste; bei einem Kanal steht kein
Filter, der nichts tut. Ein Knopf, bei dem nichts passiert, kostet das
Vertrauen in den naechsten.

Die drei Toene sind dieselben wie am Zeichen auf der Karte -- wer
"DogFather Clips" in Tuerkis filtert, findet darunter Karten mit
tuerkisem Zeichen. Ungewaehlt bleiben sie gedeckt: drei bunte Knoepfe
nebeneinander waeren eine Ampel, und eine Ampel sagt "gut/schlecht",
wo nur "welcher Kanal" gemeint ist.

DER KASTEN, DER AUF DEM CHILI-MOTIV STAND
Der leere Zustand der Talente-Seite von heute Vormittag hatte nur einen
gestrichelten Rand. Solange dort EIN Satz stand, ging das; jetzt stehen
dort drei Absaetze, fuenf Merkmale und zwei Knoepfe -- und das
Spicy-Media-Motiv mit Chilischoten und Neonlicht schien voll durch den
Text. Lesbar war das nicht, augenschonend erst recht nicht.

DIE WARNUNG STAND 70 ZEILEN WEITER UNTEN in derselben Datei, bei
.t-fuss, und beschreibt exakt diesen Fehler ("Sie stand als einziger
Text der Seite direkt auf der Buehne"). Ich habe sie gelesen und bin
trotzdem hineingelaufen. Ein Kommentar, der vor einem Fehler warnt,
verhindert ihn nicht -- gefunden hat es erst das Bildschirmfoto.

GESEHEN STATT GEZAEHLT (server/bild-stufen.mjs)
Stufenleiter und Talente-Seite waren heute Vormittag nur an Zahlen
geprueft. Das Bild zeigte: die Leiste sitzt sauber in einer Zeile
(1400 px) und in vier auf 412 px, nichts laeuft ueber den Rand, keine
Konsolenfehler -- und den Kasten ohne Grund.

DIE PRUEFUNG (server/pruef-kanalzeile.mjs, 14 Pruefungen)
Sie prueft nicht nur, DASS gefiltert wird, sondern dass das Richtige
uebrig bleibt: "weniger" allein waere auch erfuellt, wenn der Filter
irgendetwas wegwirft. Dazu der zweite Klick (hebt auf) und Abschnitt 4:
Kanal UND Art zusammen -- der eigentliche Grund fuer zwei Reihen.

ZWEI GEGENPROBEN:
  a) Kanalfilter ausgebaut       -> 3 Pruefungen rot
  b) Zeile immer anzeigen        -> 1 rot, genau der Ein-Kanal-Fall

UND ZWEI FEHLER IN DER PRUEFUNG SELBST, beide von mir:
  * Der Kartenselektor traf nichts, und die Messung meldete "0 -> 0".
    Das sah aus wie ein Ergebnis und war keins.
  * Beim Berichtigen machte String.replace aus "$$" ein "$" --
    seite.$$() wurde zu seite.$(). Der Fehler steht woertlich in den
    Hausregeln und hat trotzdem zugeschlagen. Aufgefallen ist er nur,
    weil "undefined" in der Ausgabe stand; "0" waere durchgegangen.
  * Und eine verlorene Escaping-Ebene machte aus /\s+/ ein /s+/ --
    die Pruefung ersetzte jedes "s" durch ein Leerzeichen und las
    "Ca per chläft im Wä chekorb". Sie wurde rot, und das war richtig.

Stempel 202609171407.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-17 14:08:15 +02:00

1000 lines
41 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* =====================================================================
Entwicklung & Nachwuchs — die zwei Katalogseiten (11.09.2026)
Zwei Seiten, ein Stil: Auf beiden klickt man kurze Aussagen an,
beide zeigen daneben eine Zahl, die etwas über UNS sagt (wie alt die
Einschätzung ist, wie lange eine Karte liegt).
---------------------------------------------------------------------
DIE WICHTIGSTE ENTSCHEIDUNG IST EINE FARBE, DIE NICHT VORKOMMT
Es gibt hier kein Rot. „Da hakt es" ist eine Beobachtung, kein Alarm;
ein Warnzeichen an einem Kandidaten ist ein Grund hinzusehen, kein
Nein. Rot würde in beiden Fällen mehr sagen als die Sache — und aus
einem Gesprächsanlass ein Urteil machen.
Stattdessen: warm (Bernstein) für „hakt" und für Warnzeichen, kühl
für „läuft", babyblau für „wächst", grau für „kann ich nicht sagen".
Vier unterscheidbare Töne, keiner davon laut. Das ist auch die
Hausregel — augenschonend, gedeckt, dunkles Schema.
---------------------------------------------------------------------
UND EINE, DIE MAN NICHT SIEHT: ES GIBT KEINEN BALKEN
Kein Fortschrittsbalken je Person, kein Prozentwert, keine Punktzahl.
Eine Zahl über einem Menschen wird gelesen, verglichen und
weitererzählt. Was hier gebraucht wird, ist ein Gesprächsanlass.
===================================================================== */
/* ---------------------------------------------------------------------
Gemeinsam
------------------------------------------------------------------- */
.e-abschnitt {
margin: 26px 0 12px;
font-size: .82rem;
font-weight: 650;
letter-spacing: .09em;
text-transform: uppercase;
color: var(--text-still);
}
/* ---------------------------------------------------------------------
Die Ampel
Sie steht ganz oben und ist absichtlich die einzige Fläche auf der
Seite, die eine Farbe trägt. Unter 34 Beobachtungen hätte sie
niemand je gelesen.
------------------------------------------------------------------- */
.e-ampel {
margin: 0 0 22px;
padding: 14px 18px;
border: 1px solid var(--rand);
border-left: 3px solid var(--rand-hell);
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
}
.e-ampel[data-lage="jemand"] { border-left-color: #cc9451; }
.e-ampel[data-lage="mehrere"] { border-left-color: #cc7a51; }
.e-ampel[data-lage="ruhig"] { border-left-color: #668e6e; }
.e-ampel__satz { margin: 0; font-size: .93rem; line-height: 1.6; color: var(--text); }
.e-ampel__zusatz {
margin: 7px 0 0; font-size: .8rem; line-height: 1.55; color: var(--text-still);
}
/* ---------------------------------------------------------------------
Die Personenreihe
------------------------------------------------------------------- */
.e-personen { display: flex; flex-wrap: wrap; gap: 10px; }
.e-person {
display: flex; flex-direction: column; gap: 3px;
/* Seit die drei Bilanz-Kaesten darin stehen, braucht die Kachel
mehr Grundbreite -- bei 210px wurde jeder Kasten einzeilig
gequetscht und die Ziffer rutschte unter ihr Wort. */
min-width: 260px; flex: 1 1 300px;
padding: 13px 15px; text-align: left; cursor: pointer;
font: inherit;
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
border: 1px solid var(--rand);
transition: border-color .16s ease;
}
.e-person:hover, .e-person:focus-visible {
border-color: color-mix(in srgb, var(--akzent) 45%, transparent);
}
.e-person__name { font-size: .98rem; font-weight: 640; color: var(--text); }
.e-person__rolle { font-size: .78rem; color: var(--text-still); }
.e-person__zahlen { display: flex; flex-wrap: wrap; gap: 5px 10px; margin-top: 6px; }
.e-person__zahl { font-size: .77rem; color: var(--text-leise); }
/* Die Abweichung ist das Ergebnis dieser Seite — sie darf als Einzige
auffallen. */
.e-person__zahl--wichtig { color: var(--text); font-weight: 620; }
.e-person__zahl--alt { color: var(--text-still); margin-top: 8px; }
/* ---------------------------------------------------------------------
DIE DREI ZAHLEN AUF DER KACHEL (17.09.2026)
Filipe, mit zwei Bildschirmfotos nebeneinander: „wieso ist diese seite
noch nicht im stil und perfektioniert wie die auf screen2". Der
Unterschied lag an den Zahlen: hier graue Textzeilen, drüben die
abgesetzten Kästen mit großer Ziffer.
`.bilanz-zahl` kommt aus start.css und wird hier nur gesetzt — nicht
nachgebaut. Ein zweites Aussehen für dieselbe Sache läuft auseinander,
sobald jemand eins davon anfasst.
AUTO-FIT STATT DREI SPALTEN: Auf dem Handy ist eine Kachel schmal,
am Rechner breit. `minmax` bricht genau dann um, wenn der Platz nicht
reicht — eine feste Spaltenzahl wäre wieder eine Rechnung von gestern.
------------------------------------------------------------------- */
.e-person__bilanz {
display: grid; gap: 8px; margin-top: 10px;
grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
}
/* Die Kästen sitzen in einem Knopf und dürfen ihn nicht abfangen —
sonst trifft ein Tippen auf die Zahl die Kachel nicht. */
.e-person__bilanz .bilanz-zahl { pointer-events: none; padding: 9px 11px; }
.e-person__bilanz .bilanz-zahl__n { font-size: 1.35rem; }
.e-person__bilanz .bilanz-zahl__text { font-size: .74rem; }
/* WEN HABE ICH GERADE OFFEN? Vorher sah die Kachel nach dem Klick aus
wie vorher; wer scrollte, verlor den Faden. Gedämpft hell statt
grell — die Karte darunter ist die Hauptsache, die Kachel sagt nur,
wozu sie gehört. */
.e-person[aria-pressed="true"] {
border-color: color-mix(in srgb, var(--akzent) 58%, transparent);
background:
linear-gradient(180deg, color-mix(in srgb, var(--akzent) 11%, transparent), transparent 62%),
color-mix(in srgb, var(--tinte) 90%, #ffffff 10%);
}
/* ---------------------------------------------------------------------
Die Karte
------------------------------------------------------------------- */
/* DIE KARTE BEKOMMT EINE EIGENE FLÄCHE (15.09.2026).
Bis heute hatte sie keine: Name, Rolle und der Weg zum Notizbrett
standen direkt auf der Bühne — also auf einem Foto. Im Bildschirmfoto
lag die Kopfzeile der Karte quer über dem Spicy-Media-
Schriftzug, und der Knopf darunter über einer Chilischote.
Das ist genau der Fall, für den die Kontrastmessung ihren dritten
Ausgang hat („konnte nicht nachsehen"): Über einem Foto lässt sich
Lesbarkeit nicht ausrechnen, weil das Dahinter von Bild zu Bild
wechselt. Die Antwort darauf ist keine hellere Schrift, sondern eine
deckende Fläche. */
.e-karte {
margin: 26px 0 0; padding: 18px 20px;
background: color-mix(in srgb, var(--tinte) 92%, #ffffff 8%);
border: 1px solid var(--rand);
}
.e-karte__kopf {
display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px;
padding-bottom: 12px; margin-bottom: 16px;
border-bottom: 1px solid var(--rand-hell);
}
.e-karte__name { margin: 0; font-size: 1.22rem; font-weight: 660; color: var(--text); }
.e-karte__rolle { font-size: .82rem; color: var(--text-still); }
.e-karte__stand { font-size: .8rem; color: var(--text-leise); margin-left: auto; }
.e-karte__brett { text-decoration: none; }
/* Die Abweichungen. Sie stehen oben und bekommen als Einzige einen
Rahmen, der auffällt — sie sind der Grund, warum zwei Leute getrennt
klicken. */
.e-abweichung {
margin: 0 0 22px; padding: 15px 18px;
border: 1px solid color-mix(in srgb, var(--akzent) 32%, transparent);
background: color-mix(in srgb, var(--akzent) 7%, var(--tinte));
}
.e-abweichung__titel { margin: 0 0 5px; font-size: 1rem; font-weight: 650; color: var(--text); }
.e-abweichung__satz { margin: 0 0 10px; font-size: .85rem; color: var(--text-leise); }
.e-abweichung__liste { margin: 0; padding-left: 1.1em; }
.e-abweichung__liste li { margin-bottom: 6px; }
.e-abweichung__punkt { display: block; font-size: .88rem; color: var(--text); }
.e-abweichung__gegen { display: block; font-size: .8rem; color: var(--text-leise); }
/* ---------------------------------------------------------------------
Ein Block und seine Punkte
------------------------------------------------------------------- */
/* =====================================================================
DIE KATEGORIEN LASSEN SICH AUF- UND ZUKLAPPEN (15.09.2026)
Filipe: „ich will auch dass man die kategorien von den fragen, also
die liste auf und zu drücken kann mit einem button."
Achtundzwanzig Punkte offen sind rund zwei Meter Seite. Man scrollt,
verliert die Stelle und macht es beim nächsten Mal gar nicht mehr.
DER KOPF MUSS ZUGEKLAPPT ETWAS SAGEN, sonst klappt man einmal auf und
danach nie wieder zu. Er trägt deshalb drei Dinge: den Namen, wie
weit die Kategorie ist (3 / 7) und ob darin etwas hakt.
===================================================================== */
.e-bloecke__leiste {
display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
margin: 0 0 14px;
}
.e-bloecke__alle {
font: inherit; font-size: .81rem; font-weight: 600;
padding: 7px 14px; border-radius: 999px; cursor: pointer;
color: var(--text-leise);
background: transparent;
border: 1px solid var(--rand-hell);
transition: background .16s ease, color .16s ease;
}
.e-bloecke__alle:hover { color: var(--text); background: rgba(255, 255, 255, .05); }
.e-bloecke__alle:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; }
/* ---------------------------------------------------------------------
DIE STUFENLEITER (17.09.2026)
Filipe: „wieso ist da immer noch nicht perfektionniert wie bei den
anderen mit fortgeschritten und so."
GEDECKT UND OHNE AMPEL, aus demselben Grund, aus dem die Stufe am
einzelnen Punkt gedeckt ist (siehe .e-punkt__erwartung weiter
unten): Sie sagt, ab WANN etwas erwartet wird -- nicht, wie gut
jemand ist. Ein Farbverlauf von grün nach rot würde daraus eine
Note machen, und keine Note über einem Menschen ist der wichtigste
Einzelentscheid dieses ganzen Bereichs.
Die gewählte Stufe bekommt deshalb mehr GEWICHT, nicht mehr Farbe.
------------------------------------------------------------------- */
.e-stufen {
display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
/* Umgebrochen wird, wenn der Platz nicht reicht -- keine feste
Schwelle. Genau daran ist die Kopfleiste am 06.09.2026 zweimal
gescheitert: Eine Zahl, die zum sechsten Element nicht mehr
passte, und niemand hat sie nachgerechnet. */
margin-inline-start: auto;
}
.e-stufen__knopf {
display: inline-flex; align-items: center; gap: 7px;
font: inherit; font-size: .78rem; font-weight: 600;
padding: 6px 12px; border-radius: 999px; cursor: pointer;
color: var(--text-still);
background: transparent;
border: 1px solid var(--rand);
transition: background .16s ease, color .16s ease, border-color .16s ease;
}
.e-stufen__knopf:hover {
color: var(--text-leise);
background: rgba(255, 255, 255, .04);
border-color: var(--rand-hell);
}
.e-stufen__knopf:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; }
/* Die gewählte Stufe: heller Text, kräftigerer Rand -- kein Farbwechsel. */
.e-stufen__knopf[aria-pressed="true"] {
color: var(--text);
border-color: var(--text-still);
background: rgba(255, 255, 255, .06);
}
.e-stufen__zahl {
/* .72rem = 11,5 px -- die Grenze, die pruef-css-klassen bewacht.
Darunter liest man Ziffern auf einem Handy nicht mehr, man ahnt
sie. Und diese Zahl ist der Grund, warum man überhaupt klickt:
Ein Filter, der auf eine leere Liste führt, sieht aus wie ein
Fehler. */
font-size: .72rem; font-weight: 700;
min-width: 1.6em; padding: 1px 6px;
border-radius: 999px; text-align: center;
color: var(--text-still);
background: rgba(255, 255, 255, .06);
}
.e-stufen__knopf[aria-pressed="true"] .e-stufen__zahl {
color: var(--text-leise);
background: rgba(255, 255, 255, .1);
}
/* Auf dem Handy gehört die Leiste unter den Knopf, nicht neben ihn --
sonst quetschen sich fünf Knöpfe auf 40 % der Breite. */
@media (max-width: 640px) {
.e-stufen { margin-inline-start: 0; width: 100%; }
}
.e-block {
margin: 0 0 10px;
border: 1px solid var(--rand);
background: color-mix(in srgb, var(--tinte) 96%, #ffffff 4%);
}
/* Offen bekommt der Kasten etwas mehr Gewicht -- man soll auf einen
Blick sehen, welcher gerade aufgeschlagen ist. */
.e-block[data-offen="ja"] { border-color: var(--rand-hell); }
.e-block__zeile { margin: 0; }
.e-block__schalter {
display: flex; align-items: center; gap: 11px;
width: 100%; text-align: left;
font: inherit;
padding: 13px 15px; cursor: pointer;
background: transparent; border: 0;
color: var(--text);
}
.e-block__schalter:hover { background: rgba(255, 255, 255, .04); }
.e-block__schalter:focus-visible { outline: 2px solid var(--akzent); outline-offset: -2px; }
.e-block__pfeil {
flex: 0 0 auto; width: 18px; height: 18px;
fill: none; stroke: var(--text-still); stroke-width: 2;
stroke-linecap: round; stroke-linejoin: round;
transition: transform .18s ease;
}
.e-block[data-offen="ja"] .e-block__pfeil { transform: rotate(90deg); stroke: var(--text-leise); }
.e-block__name {
flex: 1 1 auto; font-size: 1rem; font-weight: 650; color: var(--text);
}
/* Der Stand. Zahlen in Tabellenbreite, damit 3 / 7 und 10 / 12
untereinander nicht wackeln. */
.e-block__stand {
flex: 0 0 auto; font-size: .82rem; color: var(--text-still);
font-variant-numeric: tabular-nums;
padding: 2px 9px; border-radius: 999px; border: 1px solid var(--rand);
}
.e-block__stand[data-fertig="ja"] {
color: #7fb08a; border-color: color-mix(in srgb, #668e6e 50%, transparent);
}
/* „2 × hakt" -- die einzige Stelle im Kopf, die eine Farbe bekommt.
Sie ist auch der einzige Grund, eine zugeklappte Kategorie zu
oeffnen, ohne dass man sie durchgehen will. */
.e-block__hakt {
flex: 0 0 auto; display: inline-flex; align-items: baseline; gap: 4px;
font-size: .78rem; color: #d8a76a;
font-variant-numeric: tabular-nums;
}
.e-block__hakt-wort { font-size: .78rem; }
/* Die Zahl steht in einem eigenen Feld, damit sie nachgezogen
werden kann, ohne den ganzen Kopf neu zu bauen -- ein neu
gebauter Kopf waere wieder eine Bewegung auf der Seite. */
.e-block__hakt-zahl { font-size: .78rem; font-variant-numeric: tabular-nums; }
.e-block__koerper { padding: 0 15px 13px; }
.e-block__titel { margin: 0 0 4px; font-size: 1.02rem; font-weight: 650; color: var(--text); }
.e-block__satz {
margin: 0 0 12px; max-width: 64ch;
font-size: .85rem; line-height: 1.6; color: var(--text-leise);
}
.e-punkt {
margin: 0 0 9px; padding: 12px 15px;
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
border: 1px solid var(--rand);
/* Der linke Balken trägt die Antwort. Er ist die einzige Stelle, an
der man beim Überfliegen sieht, wie eine Zeile steht — ohne dass
die ganze Karte einfärbt. */
border-left: 3px solid transparent;
}
.e-punkt[data-stufe="laeuft"] { border-left-color: #668e6e; }
.e-punkt[data-stufe="waechst"] { border-left-color: #8ec9ff; }
.e-punkt[data-stufe="hakt"] { border-left-color: #cc9451; }
.e-punkt[data-stufe="unklar"] { border-left-color: var(--rand-hell); }
/* Verblasst: die Zeile tritt zurück, verschwindet aber nicht. Eine
Akte, die heimlich vergisst, wäre schlimmer als eine, die alles
behält. */
.e-punkt[data-verblasst="ja"] { opacity: .68; }
.e-punkt__kopf { display: flex; flex-wrap: wrap; align-items: baseline; gap: 9px; }
.e-punkt__titel { margin: 0; font-size: .95rem; font-weight: 620; color: var(--text); }
.e-punkt__erwartung {
/* .75rem = 12 px und nicht .7rem = 11,2 px.
pruef-css-klassen zaehlt die Stellen unter 11,5 px gegen eine
Grundlinie und meldet JEDE neue -- hier war es eine. Elf Pixel in
Grossbuchstaben mit Sperrung liest man auf einem Handy nicht mehr,
man erkennt sie hoechstens wieder. Und das hier ist keine Zierde,
sondern die Angabe, ab wann etwas ueberhaupt erwartet wird. */
font-size: .75rem; letter-spacing: .04em; text-transform: uppercase;
padding: 2px 7px; border: 1px solid var(--rand-hell); border-radius: 999px;
color: var(--text-still);
}
/* Die Erwartungsstufe ist KEINE Note — deshalb drei fast gleiche Töne
und kein Ampelverlauf. Sie sagt, ab wann etwas erwartet wird, nicht
wie gut jemand ist. */
.e-punkt__erwartung[data-erwartung="senior"] { color: var(--text-leise); }
.e-punkt__text {
margin: 5px 0 10px; max-width: 66ch;
font-size: .83rem; line-height: 1.6; color: var(--text-leise);
}
.e-wahl { display: flex; flex-wrap: wrap; gap: 6px; }
.e-wahl__knopf {
display: inline-flex; align-items: center; gap: 6px;
font: inherit; font-size: .8rem; font-weight: 600;
padding: 6px 12px; border-radius: 999px; cursor: pointer;
color: var(--text-leise);
background: transparent;
border: 1px solid var(--rand-hell);
transition: background .16s ease, color .16s ease, border-color .16s ease;
}
.e-wahl__zeichen { font-size: .9rem; line-height: 1; }
.e-wahl__knopf:hover:not(:disabled) { color: var(--text); }
.e-wahl__knopf[aria-pressed="true"] { color: var(--text); }
.e-wahl__knopf[data-stufe="laeuft"][aria-pressed="true"] {
background: color-mix(in srgb, #668e6e 22%, transparent);
border-color: color-mix(in srgb, #668e6e 55%, transparent);
}
.e-wahl__knopf[data-stufe="waechst"][aria-pressed="true"] {
background: color-mix(in srgb, #8ec9ff 18%, transparent);
border-color: color-mix(in srgb, #8ec9ff 50%, transparent);
}
.e-wahl__knopf[data-stufe="hakt"][aria-pressed="true"] {
background: color-mix(in srgb, #cc9451 20%, transparent);
border-color: color-mix(in srgb, #cc9451 55%, transparent);
}
.e-wahl__knopf[data-stufe="unklar"][aria-pressed="true"] {
background: rgba(255, 255, 255, .06);
border-color: var(--rand-hell);
}
.e-punkt__anlass {
display: block; width: 100%; margin: 9px 0 0;
font: inherit; font-size: .84rem; line-height: 1.5;
padding: 8px 10px; resize: vertical;
color: var(--text);
background: rgba(0, 0, 0, .28);
border: 1px solid var(--rand);
transition: border-color .16s ease, background .16s ease;
}
.e-punkt__anlass::placeholder { color: var(--text-still); }
/* ES BLEIBT SICHTBAR, AUCH WENN ES NICHT GEBRAUCHT WIRD -- ein Feld,
das erst aufklappt, kostet einen zweiten Blick, und genau an der
Stelle hört man auf zu schreiben. Aber es tritt zurück. */
.e-punkt__anlass[data-noetig="nein"] {
background: rgba(0, 0, 0, .18);
border-color: color-mix(in srgb, var(--rand) 70%, transparent);
}
/* Und es meldet sich, sobald es gebraucht wird. */
.e-punkt__anlass[data-noetig="ja"] {
border-color: color-mix(in srgb, #cc9451 55%, transparent);
background: rgba(0, 0, 0, .3);
}
.e-punkt__anlass[data-noetig="ja"]::placeholder { color: #c99a62; }
.e-punkt__andere, .e-punkt__verdeckt, .e-punkt__wann {
margin: 8px 0 0; font-size: .78rem; line-height: 1.5; color: var(--text-still);
}
.e-punkt__andere { color: var(--text-leise); }
/* Der verdeckte Stand: sichtbar, dass es ihn gibt — unsichtbar, was er
ist. Ohne diese Zeile sähen „noch niemand" und „du darfst es noch
nicht sehen" gleich aus, und das erste ist eine Auskunft, das zweite
eine Täuschung. */
.e-punkt__verdeckt { font-style: italic; }
/* Die eigenen sechs Fragen. Sie stehen ganz unten und tragen als
Einzige eine eigene Umrandung — sie gehören nicht in dieselbe Liste
wie das, was über andere gesagt wird. */
.e-meins {
margin: 34px 0 0; padding: 20px 22px;
border: 1px solid color-mix(in srgb, var(--akzent) 26%, transparent);
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
}
.e-meins__satz {
margin: 0 0 16px; max-width: 62ch;
font-size: .88rem; line-height: 1.65; color: var(--text-leise);
}
.e-punkt--meins { background: rgba(0, 0, 0, .2); }
/* ---------------------------------------------------------------------
Talente — der Trichter
------------------------------------------------------------------- */
.t-trichter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.t-stufe {
display: flex; flex-direction: column; gap: 1px;
flex: 1 1 130px; padding: 11px 14px;
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
border: 1px solid var(--rand);
/* Der Trichter wird nach hinten leiser — nicht bunter. Fünf Farben
für fünf Stufen wären fünf Bedeutungen, die keine sind. */
border-top: 2px solid color-mix(in srgb, var(--akzent) 40%, transparent);
}
.t-stufe[data-stufe="probe"] { border-top-color: color-mix(in srgb, var(--akzent) 65%, transparent); }
.t-stufe[data-stufe="imteam"] { border-top-color: #668e6e; }
.t-stufe__zahl { font-size: 1.5rem; font-weight: 660; color: var(--text); line-height: 1.1; }
.t-stufe__name { font-size: .79rem; color: var(--text-leise); }
.t-stufe__liegt { font-size: .74rem; color: #cc9451; margin-top: 3px; }
.t-liste { display: block; }
.t-karte {
margin: 0 0 14px; padding: 16px 18px;
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
border: 1px solid var(--rand);
border-left: 3px solid transparent;
}
.t-karte[data-liegt="ja"] { border-left-color: #cc9451; }
.t-karte__kopf { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.t-karte__titel { margin: 0; font-size: 1.05rem; font-weight: 650; color: var(--text); }
.t-karte__stufe {
font-size: .74rem; letter-spacing: .05em; text-transform: uppercase;
padding: 2px 8px; border-radius: 999px;
border: 1px solid color-mix(in srgb, var(--akzent) 40%, transparent);
color: var(--text-leise);
}
.t-karte__zeit { font-size: .78rem; color: var(--text-still); }
.t-karte__warn {
font-size: .76rem; color: #cc9451; margin-left: auto;
}
.t-karte__wo, .t-karte__text {
margin: 8px 0 0; max-width: 66ch;
font-size: .85rem; line-height: 1.6; color: var(--text-leise);
}
.t-karte__wo { color: var(--text-still); font-size: .8rem; }
.t-schritt {
display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
margin: 13px 0 0; padding: 11px 13px;
background: rgba(0, 0, 0, .24);
border: 1px solid var(--rand);
}
.t-schritt__satz { margin: 0; flex: 1 1 220px; font-size: .86rem; color: var(--text); }
.t-schritt__liegt { margin: 0; flex: 1 1 100%; font-size: .79rem; color: #cc9451; }
.t-karte__auf {
margin: 12px 0 0; font: inherit; font-size: .8rem;
padding: 5px 0; cursor: pointer;
background: none; border: 0; border-bottom: 1px solid var(--rand-hell);
color: var(--text-leise);
}
.t-karte__auf:hover { color: var(--text); }
.t-gruppe { margin: 16px 0 0; }
.t-gruppe__titel { margin: 0 0 3px; font-size: .9rem; font-weight: 640; color: var(--text); }
.t-gruppe__satz {
margin: 0 0 8px; max-width: 64ch;
font-size: .8rem; line-height: 1.55; color: var(--text-still);
}
.t-merkmale { display: flex; flex-wrap: wrap; gap: 6px; }
.t-merkmal {
display: inline-flex; align-items: center; gap: 7px;
font: inherit; font-size: .8rem; text-align: left;
padding: 6px 12px; border-radius: 999px; cursor: pointer;
color: var(--text-leise);
background: transparent;
border: 1px solid var(--rand-hell);
transition: background .16s ease, color .16s ease, border-color .16s ease;
}
.t-merkmal__haken { font-size: .85rem; line-height: 1; color: var(--text-still); }
.t-merkmal:hover:not(:disabled) { color: var(--text); }
.t-merkmal[aria-pressed="true"] {
color: var(--text);
background: color-mix(in srgb, var(--akzent) 14%, transparent);
border-color: color-mix(in srgb, var(--akzent) 42%, transparent);
}
.t-merkmal[aria-pressed="true"] .t-merkmal__haken { color: var(--akzent); }
/* Warnzeichen: warm, nicht rot. Keines davon ist ein Nein. */
.t-merkmal[data-warnung="ja"][aria-pressed="true"] {
background: color-mix(in srgb, #cc9451 20%, transparent);
border-color: color-mix(in srgb, #cc9451 55%, transparent);
}
.t-merkmal[data-warnung="ja"][aria-pressed="true"] .t-merkmal__haken { color: #cc9451; }
.t-gruppe--warn .t-gruppe__titel { color: #cc9451; }
.t-leer {
padding: 22px; text-align: center;
border: 1px dashed var(--rand-hell);
color: var(--text-leise);
}
.t-leer p { margin: 0 0 12px; max-width: 54ch; margin-inline: auto; font-size: .88rem; line-height: 1.6; }
.t-leer .schritt { text-decoration: none; }
/* ---------------------------------------------------------------------
DER LEERE ZUSTAND ARBEITET (17.09.2026)
Filipe: „mach dass da fertige sachen sind, aber nicht basich sonder
hochwertig, profissionel bis zum letzten punkt verbunden."
LINKSBÜNDIG STATT ZENTRIERT, sobald etwas zu lesen da ist: Eine
zentrierte Liste liest sich schlecht -- das Auge sucht bei jeder
Zeile den Anfang neu. Zentriert war richtig, solange dort ein
einziger Satz stand; jetzt steht dort eine Aufzählung.
------------------------------------------------------------------- */
.t-leer:has(.t-leer__merkmale) {
text-align: start;
/* UND ER BRAUCHT EINEN GRUND. Gesehen im Bildschirmfoto, nicht in
einer Zahl: Der Kasten hatte nur einen gestrichelten Rand, und das
Spicy-Media-Motiv -- Chilischoten, Neonlicht, helle Stellen --
schien voll durch den Text. Lesbar war das nicht, augenschonend
erst recht nicht.
SOLANGE DORT EIN SATZ STAND, ging es. Jetzt stehen dort drei
Absätze, fünf Merkmale und zwei Knöpfe.
DIE WARNUNG STAND 70 ZEILEN WEITER UNTEN, bei .t-fuss, und sie
beschreibt exakt diesen Fehler ("Sie stand als einziger Text der
Seite direkt auf der Bühne"). Ich habe sie gelesen und bin
trotzdem hineingelaufen -- ein Kommentar, der vor einem Fehler
warnt, verhindert ihn nicht. Gefunden hat es erst das Bild.
Derselbe Wert wie bei .t-fuss, damit auf dieser Seite nicht zwei
verschiedene Grautöne nebeneinander liegen. */
padding: 20px;
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
border-style: solid;
border-color: var(--rand);
}
.t-leer:has(.t-leer__merkmale) p { margin-inline: 0; }
.t-leer__titel {
margin: 0 0 8px;
font-size: .95rem; font-weight: 700; letter-spacing: .01em;
color: var(--text);
}
.t-leer__merkmale {
list-style: none; margin: 14px 0; padding: 0;
display: flex; flex-wrap: wrap; gap: 8px;
}
.t-leer__merkmal {
display: inline-flex; align-items: baseline; gap: 8px;
padding: 7px 13px; border-radius: 999px;
border: 1px solid var(--rand-hell);
background: rgba(255, 255, 255, .03);
}
.t-leer__merkmal-name {
font-size: .84rem; font-weight: 600; color: var(--text-leise);
}
.t-leer__merkmal-zahl {
/* .72rem = 11,5 px, die Grenze, die pruef-css-klassen bewacht.
Darunter erkennt man Ziffern nur noch wieder, statt sie zu
lesen. */
font-size: .72rem; color: var(--text-still);
}
.t-leer__weg {
/* Etwas abgesetzt: Das hier ist der Weg, nicht die Aufzählung. */
padding-top: 12px; border-top: 1px solid var(--rand);
}
.t-leer__knoepfe {
display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px;
}
/* Der zweite Weg ist der leisere -- „Im Treff umsehen" ist ein
Angebot, „Jemanden eintragen" der Schritt. Zwei gleich laute Knöpfe
nebeneinander stellen eine Frage, statt einen Weg zu zeigen. */
.schritt--leise {
color: var(--text-still);
border-color: var(--rand);
background: transparent;
}
.schritt--leise:hover { color: var(--text-leise); border-color: var(--rand-hell); }
/* DIE FUSSZEILE BRAUCHT DENSELBEN GRUND WIE ALLES ANDERE.
Sie stand als einziger Text der Seite direkt auf der Bühne — dem
Spicy-Media-Motiv mit Neonlicht und Chilischoten. Lesbar war es
knapp; gemessen war es gar nicht, weil die Kontrastprüfung
Elemente mit Kindern überspringt und hier ein Link darin steht.
Das ist derselbe Befund wie am Nachmittag bei der Rechtetafel, nur
eine Ecke weiter — und der Grund, warum in diesem Haus jede Fläche
mit Text eine deckende Unterlage bekommt statt einer
halbdurchsichtigen. */
.t-fuss {
margin: 18px 0 0; padding: 11px 14px;
font-size: .8rem; line-height: 1.55; color: var(--text-still);
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
border: 1px solid var(--rand);
}
.t-fuss a { color: var(--text-leise); }
@media (prefers-reduced-motion: reduce) {
.e-person, .e-wahl__knopf, .t-merkmal,
.e-bloecke__alle, .e-punkt__anlass { transition: none; }
/* Der Pfeil DREHT SICH weiterhin -- er ist keine Verzierung,
sondern die Auskunft "offen oder zu". Nur der Weg dorthin
faellt weg. */
.e-block__pfeil { transition: none; }
}
@media (max-width: 620px) {
.e-karte__stand { margin-left: 0; }
.t-karte__warn { margin-left: 0; }
.e-punkt__text, .e-block__satz { font-size: .88rem; }
}
/* =====================================================================
DER VORLAGENTEXT UND DIE EIGENE KARTE (11.09.2026)
===================================================================== */
.t-text {
margin: 14px 0 0; padding: 15px 17px;
background: rgba(0, 0, 0, .3);
border: 1px solid var(--rand-hell);
}
.t-text__titel { margin: 0 0 5px; font-size: .95rem; font-weight: 640; color: var(--text); }
.t-text__satz {
margin: 0 0 11px; max-width: 62ch;
font-size: .82rem; line-height: 1.6; color: var(--text-leise);
}
.t-text__feld {
display: block; width: 100%;
font: inherit; font-size: .86rem; line-height: 1.65;
padding: 11px 13px; resize: vertical;
color: var(--text);
background: rgba(0, 0, 0, .35);
border: 1px solid var(--rand);
}
.t-text__knoepfe { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 11px; }
/* Zwei, die seit dem Bau der Seite ohne eigene Regel dastanden: der
Knopf am naechsten Schritt und die Beschriftung eines Merkmals. Sie
sahen richtig aus, weil .schritt und .t-merkmal sie getragen haben --
aber wer eines davon umbaut, merkt es hier nicht. */
.t-schritt__knopf { margin-top: 2px; }
.t-schritt__text { margin-top: 2px; }
.t-merkmal__titel { text-align: left; line-height: 1.35; }
/* DIE EIGENE KARTE HAT KEINE KNOEPFE. Hier wird nichts gesetzt, hier
wird gelesen -- deshalb ein anderer Grund als auf der Karte, auf der
man klickt, und kein einziges anklickbares Feld darin. */
.e-meine {
margin: 30px 0 0; padding: 20px 22px;
border: 1px solid var(--rand);
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
}
.e-meine__satz {
margin: 0 0 16px; max-width: 64ch;
font-size: .88rem; line-height: 1.65; color: var(--text-leise);
}
.e-punkt--meine { background: rgba(0, 0, 0, .2); }
.e-meine__antworten { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.e-meine__antwort {
font-size: .8rem; font-weight: 600; padding: 4px 11px; border-radius: 999px;
color: var(--text-leise);
border: 1px solid var(--rand-hell);
}
.e-meine__antwort[data-stufe="laeuft"] {
color: var(--text); border-color: color-mix(in srgb, #668e6e 55%, transparent);
}
.e-meine__antwort[data-stufe="waechst"] {
color: var(--text); border-color: color-mix(in srgb, #8ec9ff 50%, transparent);
}
.e-meine__antwort[data-stufe="hakt"] {
color: var(--text); border-color: color-mix(in srgb, #cc9451 55%, transparent);
}
/* „Darüber seid ihr euch nicht einig“ ist keine Warnung, sondern eine
Einladung zu fragen – deshalb leise und ohne Farbe. */
.e-meine__uneinig { font-size: .78rem; color: var(--text-still); font-style: italic; }
/* =====================================================================
WIE GEHT'S DIR? -- die eigene Seite (15.09.2026)
===================================================================== */
/* Der Takt steht ueber den Fragen: Wer hereinkommt, soll zuerst
wissen, ob gerade etwas von ihm erwartet wird. */
.b-takt {
margin: 0 0 22px; padding: 14px 17px;
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
border: 1px solid var(--rand);
border-left: 3px solid var(--rand-hell);
display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
}
/* Faellig heisst: es ist Zeit. Kein Alarm -- eine Einladung. */
.b-takt[data-lage="faellig"] { border-left-color: color-mix(in srgb, #8ec9ff 60%, transparent); }
.b-takt[data-lage="bereit"] { border-left-color: color-mix(in srgb, #668e6e 60%, transparent); }
.b-takt__satz {
margin: 0; flex: 1 1 24ch; max-width: 70ch;
font-size: .86rem; line-height: 1.6; color: var(--text-leise);
}
.b-verlauf { margin: 34px 0 0; }
.b-verlauf__satz {
margin: 0 0 14px; max-width: 68ch;
font-size: .85rem; line-height: 1.6; color: var(--text-leise);
}
.b-verlauf__gitter {
display: grid; gap: 4px;
padding: 14px 16px;
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
border: 1px solid var(--rand);
overflow-x: auto;
}
.b-verlauf__zeile {
display: grid;
grid-template-columns: minmax(12ch, 1fr) repeat(auto-fit, minmax(2.4rem, 2.4rem));
align-items: center; gap: 6px;
}
.b-verlauf__frage {
font-size: .8rem; line-height: 1.35; color: var(--text-leise);
padding-right: 8px;
}
.b-verlauf__datum {
font-size: .72rem; color: var(--text-still); text-align: center;
font-variant-numeric: tabular-nums;
}
.b-verlauf__zeile--kopf { margin-bottom: 4px; }
/* Das Zeichen sagt die Antwort, die Farbe verstaerkt sie nur -- wer
Farben schlecht sieht, liest dasselbe Zeichen. */
.b-verlauf__punkt {
display: grid; place-items: center;
width: 2.2rem; height: 1.9rem;
font-size: .9rem; font-weight: 700;
border-radius: var(--radius);
color: var(--text-still);
background: rgba(0, 0, 0, .25);
border: 1px solid var(--rand);
}
.b-verlauf__punkt[data-stufe="laeuft"] { color: #7fb08a; border-color: color-mix(in srgb, #668e6e 55%, transparent); }
.b-verlauf__punkt[data-stufe="waechst"] { color: #8ec9ff; border-color: color-mix(in srgb, #8ec9ff 45%, transparent); }
.b-verlauf__punkt[data-stufe="hakt"] { color: #d8a76a; border-color: color-mix(in srgb, #cc9451 55%, transparent); }
.b-verlauf__punkt[data-stufe="leer"] { opacity: .4; }
/* Der Verweis auf der Entwicklungsseite -- ruhig, er ist kein Angebot,
sondern ein Hinweis. */
.e-meins--verweis { margin-top: 30px; }
@media (max-width: 560px) {
.b-verlauf__zeile { grid-template-columns: minmax(9ch, 1fr) repeat(auto-fit, minmax(2rem, 2rem)); }
.b-verlauf__punkt { width: 1.9rem; }
}
/* =====================================================================
DER ÜBERGANG — Buddy und erste Schicht (15.09.2026)
Er steht unter dem nächsten Schritt und sieht anders aus als der
Rest der Karte: ein durchgehender linker Rand statt eines Kastens.
Während einer Probe ist er die Karte, nicht eine Angabe darauf.
Augenschonend heißt hier vor allem: keine zweite Signalfarbe. Das
Orange auf dieser Seite bedeutet „liegt zu lange" — wenn der
Übergang es auch benutzt, bedeutet es bald gar nichts mehr.
===================================================================== */
.t-uebergang {
margin: 11px 0 0; padding: 12px 14px;
background: color-mix(in srgb, var(--tinte) 90%, #ffffff 10%);
border: 1px solid var(--rand);
border-left: 3px solid color-mix(in srgb, #668e6e 55%, transparent);
}
/* Kein Buddy mehr: die einzige Lage, die eine Farbe verdient. */
.t-uebergang[data-weg="ja"] { border-left-color: #cc9451; }
.t-uebergang__titel {
margin: 0 0 5px; font-size: .95rem; font-weight: 640; color: var(--text);
}
.t-uebergang__zeile {
margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px;
}
.t-uebergang__was {
font-size: .72rem; letter-spacing: .05em; text-transform: uppercase;
color: var(--text-still);
}
.t-uebergang__wer { font-size: .9rem; font-weight: 620; color: var(--text); }
.t-uebergang[data-weg="ja"] .t-uebergang__wer { color: #d8a76a; font-weight: 500; }
.t-uebergang__satz {
margin: 7px 0 0; max-width: 66ch;
font-size: .82rem; line-height: 1.6; color: var(--text-leise);
}
.t-uebergang__hinweis {
margin: 8px 0 0; max-width: 66ch;
font-size: .8rem; line-height: 1.55; color: #d8a76a;
}
.t-uebergang__tag { margin: 6px 0 0; padding-left: 18px; }
.t-uebergang__punkt {
margin: 3px 0; max-width: 66ch;
font-size: .81rem; line-height: 1.55; color: var(--text-leise);
}
.t-uebergang__punkt strong { color: var(--text); font-weight: 620; }
/* ---- Das Fragefeld ----------------------------------------------------
Zwei Felder untereinander, nicht nebeneinander: Auf einem Handy
werden aus zwei Spalten zwei zu schmale Spalten, und ein Datumsfeld,
das nicht vollständig hineinpasst, öffnet den Gerätekalender an der
falschen Stelle. */
.t-uebergang--frage { border-left-color: color-mix(in srgb, #8ec9ff 50%, transparent); }
.t-uebergang__feld {
display: grid; gap: 4px;
margin: 10px 0 0; max-width: 34ch;
}
.t-uebergang__wahl {
font: inherit; font-size: .88rem;
padding: 8px 10px;
color: var(--text);
background: var(--tinte);
border: 1px solid var(--rand-hell);
border-radius: var(--radius);
/* Der eigene Kalenderknopf des Browsers ist auf Dunkel hell gezeichnet.
`color-scheme` sagt ihm, dass er dunkel zeichnen soll — sonst sitzt
ein weißes Kästchen im dunklen Feld. */
color-scheme: dark;
}
.t-uebergang__wahl:focus-visible {
outline: 2px solid var(--akzent); outline-offset: 1px;
}
.t-uebergang__knoepfe {
display: flex; flex-wrap: wrap; gap: 9px; margin: 13px 0 0;
}
.t-uebergang__aendern { margin: 11px 0 0; }
/* =====================================================================
AUS DER BEOBACHTUNG WIRD EIN SCHRITT (15.09.2026)
Die Zeile steht ganz unten an einem Punkt und ist absichtlich leise:
Sie ist kein zweites Ergebnis neben den vier Knöpfen, sondern das,
was aus einem von ihnen folgt. Bei einem Punkt, der läuft, ist sie
gar nicht da — leer und ohne Rand, nicht als leerer Kasten.
===================================================================== */
.e-schritt {
display: flex; flex-wrap: wrap; align-items: baseline; gap: 9px;
margin: 9px 0 0;
}
.e-schritt:not([data-lage]) { display: none; }
.e-schritt[data-lage] {
padding: 8px 11px;
background: rgba(0, 0, 0, .22);
border: 1px solid var(--rand);
border-left: 2px solid var(--rand-hell);
}
.e-schritt[data-lage="laeuft"] { border-left-color: color-mix(in srgb, #8ec9ff 50%, transparent); }
.e-schritt[data-lage="durch"] { border-left-color: color-mix(in srgb, #668e6e 60%, transparent); }
.e-schritt__was {
font-size: .72rem; letter-spacing: .05em; text-transform: uppercase;
color: var(--text-still);
}
.e-schritt__hin { font-size: .84rem; color: var(--text); }
.e-schritt__frist, .e-schritt__satz {
font-size: .79rem; color: var(--text-leise);
}
.e-schritt__knopf { margin: 0; }
/* =====================================================================
WAS DEIN VERLAUF SAGT (15.09.2026)
Der linke Rand trägt die Aussage — dieselbe Sprache wie überall auf
dieser Seite: Gedeckt, kein Ampelgesicht, keine Farbe, die schreit.
Das Thema ist heikel genug; eine Oberfläche, die dramatisiert, macht
aus einer ehrlichen Antwort eine, die man sich überlegt.
===================================================================== */
.b-analyse { margin: 34px 0 0; }
/* DER SATZ UND DIE QUELLEN BRAUCHEN EINE FLÄCHE.
Beide standen im Bildschirmfoto direkt auf der Bühne -- also auf
einem Foto. Über einem Foto lässt sich Lesbarkeit nicht ausrechnen,
und die Quellenzeile ist die kleinste Schrift der Seite. Dieselbe
Antwort wie bei der Entwicklungskarte heute Mittag: keine hellere
Schrift, sondern etwas Deckendes darunter. */
.b-analyse__satz {
margin: 0 0 14px; padding: 12px 15px; max-width: 68ch;
font-size: .92rem; line-height: 1.65; color: var(--text);
background: color-mix(in srgb, var(--tinte) 92%, #ffffff 8%);
border: 1px solid var(--rand);
border-left: 3px solid color-mix(in srgb, var(--akzent) 45%, transparent);
}
.b-analyse__liste { display: grid; gap: 9px; }
.b-analyse__zeile {
padding: 13px 15px;
background: color-mix(in srgb, var(--tinte) 94%, #ffffff 6%);
border: 1px solid var(--rand);
border-left: 3px solid var(--rand-hell);
}
/* Vier Lagen, vier Töne. „Hakt seit mehreren Runden" ist der einzige,
der wirklich auffällt — die anderen treten zurück. */
.b-analyse__zeile[data-ton="hakt"] { border-left-color: #cc9451; }
.b-analyse__zeile[data-ton="neu"] { border-left-color: color-mix(in srgb, #cc9451 55%, transparent); }
.b-analyse__zeile[data-ton="besser"] { border-left-color: #668e6e; }
.b-analyse__zeile[data-ton="gut"] { border-left-color: color-mix(in srgb, #668e6e 55%, transparent); }
.b-analyse__zeile[data-ton="still"] { border-left-color: var(--rand); }
.b-analyse__kopf {
display: flex; flex-wrap: wrap; align-items: baseline; gap: 9px;
}
.b-analyse__titel { margin: 0; font-size: .93rem; font-weight: 620; color: var(--text); }
.b-analyse__marke {
font-size: .73rem; letter-spacing: .04em; text-transform: uppercase;
padding: 2px 8px; border-radius: 999px;
border: 1px solid var(--rand-hell); color: var(--text-still);
}
.b-analyse__zeile[data-ton="hakt"] .b-analyse__marke {
color: #d8a76a; border-color: color-mix(in srgb, #cc9451 50%, transparent);
}
.b-analyse__zeile[data-ton="besser"] .b-analyse__marke { color: #7fb08a; }
/* Der Befund aus der Welt. Er ist der Grund, warum die Zeile mehr ist
als eine Wiederholung der eigenen Antwort. */
.b-analyse__welt {
margin: 7px 0 0; max-width: 68ch;
font-size: .83rem; line-height: 1.62; color: var(--text-leise);
}
.b-analyse__hilft {
margin: 9px 0 0; max-width: 68ch; padding: 9px 11px;
font-size: .83rem; line-height: 1.62; color: var(--text);
background: rgba(0, 0, 0, .24);
border: 1px solid var(--rand);
}
.b-analyse__hilft-marke {
display: block; margin-bottom: 3px;
font-size: .72rem; letter-spacing: .05em; text-transform: uppercase;
color: var(--text-still);
}
.b-analyse__quelle {
margin: 14px 0 0; padding: 10px 13px; max-width: 72ch;
font-size: .78rem; line-height: 1.7; color: var(--text-still);
background: rgba(0, 0, 0, .3);
border: 1px solid var(--rand);
}
.b-analyse__quelle-hin { color: var(--text-leise); }
.b-analyse__quelle-hin:hover { color: var(--text); }