Zwei Meldungen von Filipe, und sie gehoeren zusammen: Er hat beides am
selben Klick gemerkt.
"immer wenn ich auf was drücke dan geht das fenster wieder hoch. die
seite soll sich nicht immer wieder bewegen wenn ich auf was drücke."
"und wieso steht bei vanvan 0 von 28 obwohl ich alle durch habe."
DER SPRUNG: In karte() stand ein scrollIntoView OHNE Bedingung -- und
die Funktion wird an vier Stellen gerufen. Beim Oeffnen einer Person
ist es richtig; nach dem ersten Klick auf einen Punkt, beim Aufklappen
aller Kategorien und nach dem Anlegen eines Schritts ist es falsch. Man
tippt unten auf "Läuft" und steht wieder ganz oben. `springen` ist
jetzt Vorgabe NEIN, und genau eine Stelle sagt ja.
Und selbst ohne Sprung bewegte sich die Seite: Der Neuaufbau aendert
die Hoehe der Karte (eine Zeile "Schritt läuft" kommt dazu), der
Browser behaelt nur die Pixelzahl. Die Hoehe wird deshalb gehalten.
"Alle aufklappen" holt die Karte gar nicht mehr neu -- Aufklappen ist
eine Sache der Anzeige, dafuer braucht es den Server nicht.
DIE NULL: Die Kachel kommt aus /entwicklung/lage -- EINMAL, beim Laden
der Seite. Die Karte holt ihren Stand bei jedem Oeffnen neu. Wer 28
Punkte durchklickt, sieht in der Karte 28 von 28 und auf der Kachel
darueber die Zahl von vorhin. Zwei Wahrheiten auf einem Bildschirm, und
die falsche steht oben.
Die Liste NICHT neu zu holen ist Absicht -- jeder Neuaufbau bewegt die
Seite, und darueber ging die andere Meldung. Stattdessen wandert die
Zahl mit, zusammen mit dem Kopf der Karte und den Koepfen der
Kategorien ("3 / 7", "2 x hakt").
WAS DIE PRUEFUNG AN MIR SELBST GEFUNDEN HAT, dreimal:
- Sie mass nach dem Sprung aufs Aufgabenbrett weiter und verglich
zwei leere Texte. Zwei leere Texte sind gleich und beweisen nichts
-- gemeldet hat es die Zahl in der Bedingung daneben.
- Danach verglich sie Fridas Kachel mit Riekes Karte und meldete
einen Unterschied zwischen zwei verschiedenen Menschen. Beinahe
haette ich einen Fehler gesucht, den es nicht gab.
- Und "wo etwas hakt, steht es im Kopf" waere ab heute auch ueber
vier VERSTECKTEN Hinweisen gruen gewesen: Der Hinweis steht jetzt
immer im Baum, damit er nachgezogen werden kann, ohne den Kopf neu
zu bauen. Jetzt wird auf sichtbar geprueft, nicht auf vorhanden.
server/pruef-schritt.mjs 65 Pruefungen (vorher 57), 0 Fehler
Beide Meldungen werden am selben Klick nachgestellt: Hoehe und Zahl
vorher merken, EINMAL druecken, beides nachsehen. Mit Gegenprobe --
auf eine Person zu druecken DARF springen, sonst hiesse "springt
nicht" nur, dass gar nichts mehr scrollt.
pruef-css-klassen, pruef-entwicklung 43, pruef-neue-seiten 93 -- 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
732 lines
30 KiB
CSS
732 lines
30 KiB
CSS
/* =====================================================================
|
||
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
|
||
------------------------------------------------------------------- */
|
||
/* 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 „Frida · Modi · 2 von 28 angesehen" 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; }
|
||
|
||
.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; }
|
||
|
||
/* 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; }
|