Files
dogfather-universe/workspace/assets/css/entwicklung.css
T
DogFatherGitandClaude Opus 5 d4730deb30 Wie geht's dir? bekommt eine eigene Seite
Filipe, zum Bildschirmfoto der Kachel: "ich will dass du diese seite
perfektionnierst den gerade wenn ich drauf druecke geht die
entwicklungsseite auf."

Der Fehler war schlimmer als ein falscher Verweis. Auf der Kachel
steht "die Antworten sieht nur du" -- und sie oeffnete eine Seite
voller Namen und Beobachtungen ueber ANDERE Menschen. Wer ihr glaubt
und drauftippt, sieht im ersten Moment das Gegenteil dessen, was
draufsteht.

Jetzt: eine Seite, ein Zweck.

  workspace/befinden.html + assets/js/befinden.js   die eigene Seite
  server/workspace-befinden.js                      Rhythmus + Verlauf
  entwicklung.html                                  nur noch ein Verweis

Was die Recherche zu Puls-Abfragen ergeben hat (Quellen im Kopf des
Moduls): kurz halten (fuenf bis fuenfzehn Fragen -- sechs bleiben
sechs), WIEDERHOLEN (zweiwoechentlich), und der VERLAUF ist die
Auskunft, nicht der Einzelwert. Bisher beantwortete man die sechs
Fragen einmal, und die Antwort stand fuer immer -- ein Befinden von
vor drei Monaten ist keine Auskunft mehr, sondern ein Andenken.

Der Verlauf gehoert ihr allein: eigene Tabelle, kein von_id, kein
anderer Weg im Haus liest sie. Im Protokoll steht nur, DASS eine
Runde war, nie was darin stand. Die Ampel zaehlt weiterhin nur den
aktuellen Stand und kennt keine Namen.

Zwei Dinge, die erst die Pruefung gefunden hat:

  - Wer die neue Seite oeffnete, ohne dass vorher jemand die
    Entwicklungsseite besucht hatte, bekam "no such table" und eine
    503. entwicklung_stand wird beim ersten Aufruf angelegt, nicht
    beim Start. Die Tabelle wird jetzt angefordert, nicht ein zweites
    Mal abgeschrieben.
  - pruef-entwicklung suchte die Kachel ueber ziel ===
    "entwicklung.html" und hat den gemeldeten Fehler damit
    mitgetragen. Sie sucht jetzt die eigene Seite -- und prueft
    zusaetzlich, dass keine Kachel mehr ersatzweise dorthin fuehrt.

Ausserdem weg: die tote Funktion meins() in entwicklung.js (sie
zeichnete in drei Stellen, die es nicht mehr gibt) und der Titel
"Wie geht's dir?", den diese Seite fuer einen Modi trug -- er
versprach etwas anderes als die Seite zeigt, also derselbe Fehler
wie an der Kachel.

  server/pruef-befinden.mjs   48 Pruefungen, 0 Fehler (Port 4419)
  pruef-entwicklung           43 (vorher 40), 0 Fehler
  pruef-nachwuchs 123, pruef-rechtetafel 19, pruef-rechte-umstellen 46,
  pruef-css-klassen -- alle 0 Fehler

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-15 13:45:56 +02:00

502 lines
21 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;
min-width: 210px; flex: 1 1 210px;
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); }
/* ---------------------------------------------------------------------
Die Karte
------------------------------------------------------------------- */
.e-karte { margin: 26px 0 0; }
.e-karte__kopf {
display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px;
padding-bottom: 10px; 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
------------------------------------------------------------------- */
.e-block { margin: 0 0 26px; }
.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);
}
.e-punkt__anlass::placeholder { color: var(--text-still); }
.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; }
/* 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 { 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; }
}