/* =================================================================== Personenverwaltung. =================================================================== */ /* ==== PERSONEN ALS KACHELN (24.09.2026) ============================= Filipe: "gestalte diese seite auch anders bitte. viel krasser geiler uebersichtlicher." Auf das Angebot, die Rollen als Kacheln statt Zeilen zu bauen: "will ich." WAS SICH AENDERT: Eine Person war eine Zeile ueber die volle Breite -- links der Name, darunter fuenf halbe Saetze, rechts die Knoepfe. Bei 1765 px lief dieselbe Zeile ueber 1160 px, mit achthundert Pixeln Luft in der Mitte. Zehn Personen hiessen zehn Zeilen untereinander, und wer zwei vergleichen wollte, musste in jeder Zeile an einer anderen Stelle nach derselben Zahl suchen. JETZT EIN RASTER AUS KACHELN. Drei bis vier nebeneinander statt einer pro Zeile: Dieselben zehn Personen brauchen drei Reihen statt zehn. Und in jeder Kachel steht jede Angabe an derselben Stelle -- die Zahlen fluchten untereinander, man sieht mit einem Blick, wer sieben offene Aufgaben hat und wer keine. ES FAELLT NICHTS WEG. Jede Angabe, die vorher in der Zeile stand, steht auch jetzt da: Name, Rolle, gesperrt, letzte Anmeldung, offene Aufgaben, Sitzungen, betreute Creator, zugeteilte Scouts, Zugehoerigkeit, die Zustaendigkeitsauswahl und alle Knoepfe. */ .gruppe__raster { display: grid; gap: 12px; /* KEINE FESTE SPALTENZAHL. "auto-fill" laesst den Browser rechnen: bei 1160 px sind es drei, bei 390 px eine. Eine Zahl hier waere genau der Fehler, der in diesem Haus schon fuenfmal passiert ist -- eine Rechnung von gestern, die still falsch wird. */ grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); } .person { display: flex; flex-direction: column; gap: 11px; padding: 14px 15px 13px; margin-bottom: 0; background: var(--flaeche); border: 1px solid var(--rand); border-radius: var(--radius-klein); /* Die Kacheln einer Reihe werden gleich hoch, damit die Knoepfe unten fluchten (siehe margin-top bei .person__knoepfe). */ height: 100%; } /* DIE ROLLENFARBE ALS SCHMALER STREIFEN OBEN. Dieselben Farben, die das Haus fuer die Rollen ohnehin fuehrt -- gedeckt beigemischt, nicht als Leuchtbalken: Bei zehn Kacheln nebeneinander waere ein voller Farbton Unruhe statt Ordnung. */ .person { --r: var(--text-still); } .person[data-rolle="spicy"] { --r: var(--spicy-haupt); } .person[data-rolle="admin"] { --r: var(--dogi-haupt); } .person[data-rolle="manager"] { --r: var(--manager-haupt); } .person[data-rolle="scout"] { --r: var(--scout-haupt); } .person[data-rolle="creator"] { --r: var(--creator-haupt); } .person { border-top: 2px solid color-mix(in srgb, var(--r) 50%, transparent); } .person[data-aktiv="nein"] { opacity: .58; } .person__innen { display: flex; flex-direction: column; gap: 11px; } .person__kopf { display: flex; align-items: center; gap: 11px; min-width: 0; } /* DAS NAMENSZEICHEN. Gab es bisher nur in der Ueberschrift einer zugeklappten Gruppe. In der Kachel ist es das, woran man eine Person wiedererkennt, bevor man den Namen gelesen hat. */ .person__zeichen { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font-size: .92rem; font-weight: 800; letter-spacing: .03em; color: var(--r); background: color-mix(in srgb, var(--r) 14%, transparent); border: 1px solid color-mix(in srgb, var(--r) 32%, transparent); } .person__wer { min-width: 0; display: flex; flex-direction: column; gap: 5px; } .person__name { font-weight: 600; font-size: .98rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .person__marken { display: flex; flex-wrap: wrap; gap: 5px; } /* ---- Das Zahlenband ---- Ein Raster statt einer Reihe: So stehen die Felder in jeder Kachel an derselben Stelle, auch wenn eine Person drei Felder hat und die naechste fuenf. */ .person__werte { display: grid; gap: 9px 10px; grid-template-columns: repeat(auto-fit, minmax(74px, 1fr)); padding-top: 10px; border-top: 1px solid color-mix(in srgb, var(--rand) 75%, transparent); } .person__wert { display: flex; flex-direction: column; gap: 1px; min-width: 0; } .person__wert-zahl { font-size: 1.22rem; font-weight: 700; color: var(--text); line-height: 1.15; } /* Die Zeitangabe ist keine Zahl -- sie darf nicht so schreien wie eine, steht aber im selben Band. */ .person__wert--zeit .person__wert-zahl { font-size: .87rem; font-weight: 600; } .person__wert-wort { font-size: .75rem; color: var(--text-still); line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .person__bezug { font-size: .79rem; color: var(--text-still); } .marke-rolle { padding: 1px 9px; border-radius: 999px; /* 11,2 px waren unter der Hausgrenze von 11,5 px (24.09.2026). Gemessen, nicht gelesen: In der Kachel steht die Marke gross genug neben dem Namen, um aufzufallen -- das war der Grund fuer die kleine Schrift, und in einer Zeile mit fuenf grauen Saetzen war er auch richtig. Hier braucht sie ihn nicht mehr. */ font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; } /* Alle FUENF Rollen, aus den zentralen Farben (08.09.2026). Vorher standen hier nur drei -- Spicy und Manager fehlten ganz und liefen ohne Marke, also farblos, durch die Liste. Ausserdem trug `creator` das Lila des Managers: Zwei verschiedene Rollen sahen in derselben Liste gleich aus. `color-mix` statt fester rgba-Werte, damit Flaeche und Schrift automatisch aus derselben Rollenfarbe kommen -- wer die Farbe oben aendert, muss hier nichts nachziehen. */ .marke-rolle[data-rolle="spicy"] { background: color-mix(in srgb, var(--spicy-haupt) 16%, transparent); color: var(--spicy-haupt); } .marke-rolle[data-rolle="admin"] { background: color-mix(in srgb, var(--dogi-haupt) 16%, transparent); color: var(--dogi-haupt); } .marke-rolle[data-rolle="manager"] { background: color-mix(in srgb, var(--manager-haupt) 16%, transparent); color: var(--manager-haupt); } .marke-rolle[data-rolle="scout"] { background: color-mix(in srgb, var(--scout-haupt) 16%, transparent); color: var(--scout-haupt); } .marke-rolle[data-rolle="creator"] { background: color-mix(in srgb, var(--creator-haupt) 16%, transparent); color: var(--creator-haupt); } /* DIE KNOEPFE STEHEN UNTEN, bei allen Kacheln einer Reihe auf derselben Hoehe. "margin-top: auto" schiebt sie ans Ende der Kachel, egal wie viele Felder darueber stehen. Und links statt rechts: In einer 300 px breiten Kachel beginnt jede Zeile links, eine rechtsbuendige Knopfreihe waere die einzige Ausnahme. */ .person__knoepfe { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-start; margin-top: auto; } /* Gesperrt ist jetzt eine Marke in der Warnfarbe, kein graues Wort in einer Reihe grauer Woerter. */ .marke-rolle[data-rolle="gesperrt"] { background: color-mix(in srgb, var(--warn) 16%, transparent); color: var(--warn); } /* ---------- Code-Anzeige ---------------------------------------------- STEHT SEIT DEM 11.09.2026 IN start.css. Nicht aufgeraeumt, sondern umgezogen: Seit dem Talente-Trichter entsteht ein Zugang an zwei Stellen, und talente.html laedt diese Datei nicht. Der Kasten waere dort unsichtbar gewesen -- ein Code in weisser Grundschrift, ohne Rahmen, mitten im Text. Gesucht unter ".code-kasten" in start.css. */ /* ---------- Protokoll --------------------------------------------------- */ .protokoll-block { margin-top: 44px; } /* Das Auf- und Zuklappen selbst steht in start.css (.klapp-kopf, .klapp-pfeil, [data-klapp="zu"]) -- es wird auch auf der Automationen-Seite gebraucht. */ /* DIE SPALTEN NACH IHREM GEWICHT (23.09.2026). Vorher: 128px Zeit, 190px Aktion, Rest fuer das Was, und die IP-Adresse ganz rechts mit "auto" -- also so breit, wie sie will. Auf Filipes Bildschirmfoto nahm sie ein Viertel der Zeile, und was dort stand ("79.252.248.142") beantwortet eine Frage, die man selten stellt. Die Aktion braucht seit heute mehr Platz, weil sie ein Satz ist und kein Spaltenwert ("Einstellung geändert" statt "einstellung_geaendert"). Die IP bekommt eine feste, schmale Spalte und tritt farblich zurueck -- sie steht weiter da, aber sie draengt sich nicht mehr auf. */ .protokoll-zeile { display: grid; gap: 10px; grid-template-columns: 124px 210px 1fr 132px; padding: 7px 10px; font-size: .8rem; color: var(--text-leise); border-bottom: 1px solid rgba(150, 186, 220, .08); } .protokoll-zeile:first-child { border-top: 1px solid rgba(150, 186, 220, .08); } .protokoll-zeit { color: var(--text-still); font-variant-numeric: tabular-nums; } .protokoll-ip { color: color-mix(in srgb, var(--text-still) 70%, transparent); font-variant-numeric: tabular-nums; font-size: .74rem; text-align: right; align-self: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* Das WAS ist die Hauptsache der Zeile -- es sagt, was passiert ist. Vorher stand dort ein Spaltenwert und sah aus wie alles andere. */ .protokoll-was { color: var(--text); } @media (max-width: 760px) { .person { grid-template-columns: 1fr; } .person__knoepfe { justify-content: flex-start; margin-top: 10px; } .protokoll-zeile { grid-template-columns: 1fr; gap: 2px; padding: 10px; } /* Am Handy steht die IP unter dem Rest statt daneben -- rechts ausgerichtet waere sie dort eine einsame Zahl am Rand. */ .protokoll-ip { text-align: left; } } /* ---------- Zuständigkeit ------------------------------------------------ Wer betreut welchen Creator. Bewusst direkt in der Personenzeile und nicht auf einer eigenen Seite: Es ist eine Eigenschaft der Person, kein eigener Vorgang. */ .betreuung { display: flex; align-items: center; gap: 9px; margin-top: 9px; flex-wrap: wrap; } .betreuung__schild { /* Auch hier 11,2 px statt der 11,5 px, die im Haus die Untergrenze sind (24.09.2026, beim Umbau gemessen). Beides zusammen -- Marke und Schild -- waren die einzigen zwei Stellen auf der Seite darunter. */ font-size: .75rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text-still); } .betreuung__wahl { padding: 6px 10px; min-width: 165px; background: rgba(255, 255, 255, .05); border: 1px solid var(--rand); border-radius: var(--radius-klein); color: var(--text); font: inherit; font-size: .84rem; } .betreuung__wahl:focus { outline: none; border-color: rgba(63, 189, 245, .65); box-shadow: 0 0 0 3px rgba(63, 189, 245, .14); } /* =================================================================== Rollenwahl (28.08.2026). Ersetzt ein