/*
 * Optometrie Online — das Forum.
 *
 * Wird nur auf Forenseiten geladen. Der Rahmen kommt aus layout.css; hier
 * geht es nur darum, wpForos eigene Gestaltung an die gemeinsamen Bausteine
 * anzugleichen.
 *
 * wpForo bringt eine vollständige Oberfläche mit. Sie wird nicht ersetzt,
 * sondern an den Stellen gefasst, die neben den anderen Modulen auffallen
 * würden: Breite, Rahmenfarbe, Radius, Zeilenhöhe.
 */

/*
 * Die Breite. wpForo läuft im Inhaltsbereich und darf ihn ganz ausnutzen —
 * eine Forenübersicht ist eine Tabelle, kein Fließtext.
 */
.oo-forum .oo-main {
	padding-inline: 20px;
}

/*
 * page.php legt den Seiteninhalt in .oo-content, und das trägt eine
 * Lesebreite von 78 Zeichen. Für einen Fachartikel ist das richtig; das
 * Forum wurde davon auf 737 px eingeschnürt — bei 1.680 px Bildschirm.
 */
.oo-forum .oo-content {
	max-width: none;
}

.oo-forum #wpforo,
.oo-forum #wpforo-wrap,
.oo-forum #wpforo #wpforo-wrap .wpforo-content,
.oo-forum #wpforo #wpforo-wrap .wpforo-main {
	max-width: none;
}

.oo-forum #wpforo {
	line-height: var(--oo-line-height);
}

/*
 * wpForos eigenes Menü ist ausgeblendet.
 *
 * Es stand direkt unter der Kopfleiste und zeigte dieselben Bereiche ein
 * zweites Mal — auf Englisch, weil für wpForo kein deutsches Sprachpaket
 * existiert. Zwei Navigationen nebeneinander sind eine zu viel.
 *
 * Seine Punkte stehen jetzt in der Navigationsspalte (siehe
 * optometrie_navigation() in functions.php). Das Suchfeld darin entfällt
 * ebenfalls: Die Suche steht in der Kopfleiste.
 */
/*
 * Zur Schreibweise der Selektoren in dieser Datei:
 *
 * wpForo adressiert seine Elemente mit zwei bis drei Kennungen, etwa
 * „#wpforo #wpforo-wrap #wpforo-menu". Ein Selektor mit nur einer Kennung
 * kommt dagegen nicht an, auch wenn er später geladen wird — beim ersten
 * Versuch liefen sämtliche Anpassungen hier deshalb ins Leere, ohne dass
 * irgendetwas eine Fehlermeldung ausgegeben hätte.
 *
 * Deshalb spiegeln die Selektoren wpForos Struktur und stellen „.oo-forum"
 * voran. Das ist absichtlich kein „!important": Damit ließe sich zwar alles
 * erzwingen, aber die nächste Anpassung hätte keinen Hebel mehr.
 */
.oo-forum #wpforo #wpforo-wrap #wpforo-menu {
	display: none;
}

/*
 * Die Markierfarbe: schwarze Schrift wird weiß.
 *
 * wpForo färbt die Textmarkierung im Forum selbst ein, mit zwei Werten aus
 * seiner Palette: `background` aus dem Hauptton, `color` aus dem Schwarz.
 * Der Hauptton stand bis zum 29.08.2026 auf einem hellen Blau, auf dem
 * schwarze Schrift mit 7,75:1 gut lag. Seit er auf `--oo-accent` steht,
 * wären es 3,08:1 — markierter Text wäre schlechter lesbar als
 * unmarkierter.
 *
 * Über die Palette ist das nicht zu lösen: Die Schriftfarbe hängt dort am
 * Schwarz, und das ist ein Grauton, der überall sonst richtig steht. Also
 * genau diese eine Stelle hier, mit weißer Schrift auf dem Akzent (6,82:1).
 */
.oo-forum #wpforo #wpforo-wrap *::selection {
	color: #fff;
}

.oo-forum #wpforo #wpforo-wrap *::-moz-selection {
	color: #fff;
}

/*
 * Auswahlfelder. wpForo lässt sie unbehandelt — nur `text-indent`,
 * `padding` und `line-height`, sonst die Grundform des Browsers ohne Rahmen
 * in der Palette. Trifft die Sortierung auf „Neueste Beiträge" und die
 * beiden Filter auf „Neuigkeiten" gleichermaßen.
 */
.oo-forum #wpforo #wpforo-wrap select {
	padding: 6px 10px;
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius-small);
	background: var(--oo-surface);
	color: var(--oo-ink);
	font-size: 13px;
}

/* --------------------------------------------------------------- Aufräumen */

/*
 * Was wpForo an Beiwerk mitbringt und hier nicht gebraucht wird.
 *
 * Die Vorgabe ist „so dicht wie möglich an Answer" — dort gab es keine
 * Brotkrumen mit einem Haus-Symbol, keine RSS-Leiste, keine Teilen-Knöpfe und
 * keinen Fußbereich mit Symbolerklärungen. Jede dieser Zeilen kostet Platz und
 * erklärt etwas, wonach niemand gefragt hat.
 *
 * Ausgeblendet und nicht aus dem Markup entfernt: Das ginge nur, indem wpForos
 * Vorlagen kopiert würden — und die veralteten dann bei jedem Update
 * stillschweigend. Der Preis ist etwas Markup, das niemand sieht.
 *
 * Warum hier durchgehend „!important": wpForo setzt diese Elemente selbst mit
 * „display: block !important". Gegen ein !important kommt keine Spezifität an,
 * egal wie lang der Selektor wird — das ist die einzige Stelle im CSS, an der
 * die Kaskade nicht mehr greift. Der erste Versuch ohne !important stand
 * vollständig im Stylesheet und bewirkte nichts.
 */

/* Brotkrumen. Auf der Übersicht steht dort nur ein Haus-Symbol. */
.oo-forum #wpforo #wpforo-wrap .wpforo-subtop {
	display: none !important;
}

/* Seitentitel und RSS-Leiste („Ungelesene Beiträge | Foren | Themen"). */
.oo-forum #wpforo #wpforo-wrap .wpforo-feed,
.oo-forum #wpforo #wpforo-wrap > .wpforo-main > .wpforo-content > h1,
.oo-forum #wpforo #wpforo-wrap .wpforo-content > .wpf-clear + h1 {
	display: none !important;
}

/*
 * Teilen-Knöpfe. Sie führen zu Facebook, X und WhatsApp — Wege nach draußen,
 * die auf einer Forenübersicht nichts zu suchen haben. Auf der Beitragsseite
 * bleiben sie, dort teilt man tatsächlich etwas.
 */
.oo-forum.wpforo-forum-page #wpforo .wpf-sbtn,
.oo-forum #wpforo #wpforo-wrap > .wpf-sbtn {
	display: none !important;
}

/*
 * Der ganze Fußbereich: „Angaben zum Forum", die Zählerzeile, das neueste
 * Mitglied, die Symbolerklärungen und der Hinweis auf die wpForo-Version.
 *
 * Die Zähler dort stimmen ohnehin nicht — sie zeigten „0 Themen, 0 Beiträge",
 * während im Forum 7.374 Themen liegen. wpForo führt eigene Summenwerte, die
 * ein Direktimport nicht berührt.
 */
/*
 * Der Fußbereich trägt eine Kennung, keine Klasse: #wpforo-footer. Der
 * Versuch mit „.wpforo-footer" blieb wirkungslos — die Kinder waren weg, der
 * Kasten stand als 65 px hohe Leere weiter da.
 */
.oo-forum #wpforo #wpforo-wrap #wpforo-footer,
.oo-forum #wpforo #wpforo-wrap .wpf-footer-title,
.oo-forum #wpforo #wpforo-wrap .wpf-footer-buttons,
.oo-forum #wpforo #wpforo-wrap .wpf-footer-box,
.oo-forum #wpforo #wpforo-wrap .wpf-by {
	display: none !important;
}

/*
 * Die Zeile mit dem Kategorienamen und „Thema erstellen" auf der Übersicht.
 *
 * Der Knopf bleibt dort erhalten, wo er hingehört: in der Themenliste eines
 * Forums. Ein Thema entsteht in einem Forum, nicht in der Übersicht darüber —
 * dort musste man ohnehin erst eines auswählen.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-cat-panel {
	display: none !important;
}

/*
 * Ohne ihren Inhalt bleibt von der Kategoriezeile eine 2 px hohe blaue Linie
 * übrig — ihre Unterkante. Sie trennt jetzt nichts mehr.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-category {
	display: none !important;
}

/* ------------------------------------------------------------ Kopfbereich */

/*
 * Der Kopf eines Forums: Name, Beschreibung, RSS, „Thema erstellen".
 *
 * wpForo gibt ihm eine graue Fläche mit einer geschwungenen Form am rechten
 * Rand und einem farbigen Balken links. Das ist eine eigene Handschrift, die
 * neben den übrigen Modulen fremd wirkt — und der Balken kommt als
 * „border-left: 3px solid" ohne Farbwert aus dem Markup, ist also ohnehin
 * unfertig.
 *
 * Hier wird daraus dieselbe Kachel, die alle Bereiche verwenden.
 */
/*
 * Der Kopf steht ohne eigene Kachel: Titel und Knopf brauchen keinen Rahmen
 * um sich, sie stehen ohnehin allein über der Liste. Die Kachel kostete nur
 * Weißraum und eine zweite Kante direkt über der Tabelle.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-head-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	align-items: center;
	justify-content: space-between;
	padding: 0 0 14px;
	margin-bottom: 0;
	border: 0;
	/*
	 * Die geschwungene Form kommt aus „border-radius: 0 0 60% 0" — kein
	 * Pseudoelement, wie zunächst vermutet, sondern eine Ecke, die über die
	 * halbe Fläche gezogen wird. Hier wird daraus dieselbe Kachel, die alle
	 * Bereiche verwenden.
	 */
	border-radius: 0;
	background: transparent;
}

/*
 * Der Balken links steht als „border-left: 3px solid" direkt im Markup —
 * ohne Farbwert, also unfertig; der Browser nimmt dann die Textfarbe und
 * malt einen dunklen Strich.
 *
 * „!important" ist hier sachlich begründet: Gegen einen Inline-Style kommt
 * kein Stylesheet an, egal wie spezifisch. Der saubere Weg wäre ein Filter im
 * Plugin — den bietet wpForo hier nicht an, und im Plugin selbst wird nicht
 * geschnitten. Dieselbe Begründung gilt im Aufräum-Block darüber, wo wpForo
 * selbst mit !important arbeitet.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-head-bar[style] {
	border-left: 0 !important;
}

.oo-forum #wpforo #wpforo-wrap .wpf-head-bar-left {
	flex: 1 1 320px;
	min-width: 0;
}

/*
 * Der Knopfbereich trägt bei wpForo „padding: 30px 1px 0" — 30 px oben. Das
 * schob den Knopf nach unten und blähte den ganzen Kopf von 32 auf 76 px auf;
 * „align-items: center" hatte gegen die Polsterung keine Chance.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-head-bar-right {
	flex: 0 0 auto;
	padding: 0;
	align-items: center;
}

.oo-forum #wpforo #wpforo-wrap #wpforo-title {
	margin: 0;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--oo-ink);
}

.oo-forum #wpforo #wpforo-wrap #wpforo-description {
	margin-top: 6px;
	font-size: 13px;
	line-height: var(--oo-line-height);
	color: var(--oo-ink-soft);
}

/*
 * Der RSS-Knopf im Kopf eines Forums. In der Themenliste stand er unter der
 * Beschreibung; RSS gehört zu dem, was durchgehend entfällt.
 *
 * Der Selektor trifft nur den Knopf, nicht die ganze Aktionszeile — dort
 * stehen auf der Beitragsseite die Schlagwörter und die Seitennavigation.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-head-bar-left .wpf-action-link {
	display: none !important;
}

/*
 * Die Brotkrumen darüber geben den Weg an und sollen ihn nicht überstrahlen.
 * wpForo setzt sie als Pfeilkette mit Flächen — hier bleibt schlichter Text.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-breadcrumb {
	padding: 0 0 14px;
	font-size: 13px;
	background: transparent;
}

/*
 * Die Pfeilkette der Brotkrumen bleibt, wie wpForo sie baut.
 *
 * Ein Versuch, sie zu schlichtem Text zu machen, ist gescheitert: Die
 * Innenabstände der Glieder tragen dort die Pfeilform, und ohne sie wurde
 * der Text abgeschnitten („ptometrie Onl:"). Wer diese Kette umbauen will,
 * muss sie ganz neu bauen — dafür ist sie zu nebensächlich.
 *
 * Angepasst wird nur die Farbe der Verweise.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-breadcrumb a:hover {
	color: var(--oo-ink);
}

/* -------------------------------------------------------------- Themenliste */

/*
 * Das Forum läuft im Layout 2 — der Tabellenform mit Kopfzeile.
 *
 * Gegenüber wpForos Standard (Layout 1) zeigt sie den **Ersteller** des Themas
 * statt des letzten Antwortenden, dazu Ansichten und Beiträge in eigenen
 * Spalten. Das ist derselbe Aufbau, den Optometrie Online unter Apache Answer
 * hatte, und für 7.374 Themen erheblich übersichtlicher: mehr Themen je
 * Bildschirm, ein Blickpfad statt drei.
 *
 * Eingestellt wird das je Forum in der Spalte `layout` — nicht hier.
 */

/*
 * Zwei Spalten bleiben bei uns zwangsläufig leer und werden ausgeblendet:
 * links der Avatar des Erstellers, rechts die Avatare der Beteiligten
 * (Überschrift „Mitglieder").
 *
 * Grund ist eine bewusste Entscheidung: Profilbilder kämen von Gravatar und
 * würden die IP jedes Lesenden an einen fremden Server übertragen. Ohne
 * Gravatar bleiben die Flächen leer — links entstand dadurch ein Loch von
 * gut 60 px vor jedem Titel.
 *
 * Sollen später eigene Profilbilder dazukommen (etwa aus Initialen erzeugt und
 * lokal gehalten), gehören diese Regeln wieder heraus.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-avatar,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-head .head-stat-lastpost {
	display: none;
}

/*
 * Die Zelle selbst braucht wpForos vollen Selektor gespiegelt: Sie wird über
 * „#wpforo #wpforo-wrap .wpfl-2 .wpforo-topic .wpf-sbd.wpf-sbd-avatar" auf
 * display:flex gesetzt — zwei Kennungen und vier Klassen. Ein kürzerer
 * Selektor verliert, auch später geladen.
 *
 * Es muss `.wpforo-topic` sein und nicht `.wpforo-forum`: Letzteres gehört zur
 * Forenliste, hier geht es um die Themenliste. Mit dem falschen Glied traf der
 * Selektor überhaupt nichts — wieder eine Regel, die wirkungslos blieb, ohne
 * dass irgendetwas gemeldet hätte.
 */
.oo-forum #wpforo #wpforo-wrap .wpfl-2 .wpforo-topic .wpf-sbd.wpf-sbd-avatar {
	display: none;
}

/*
 * Die Seitennavigation steht nur noch unter der Liste. Oben stand sie ein
 * zweites Mal — bei 92 Seiten hilfreich gemeint, aber sie schiebt die erste
 * Zeile nach unten, und wer blättern will, ist ohnehin am Ende der Liste.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-navi-topic-top {
	display: none !important;
}

/*
 * Das Symbol vor jedem Titel: 109 px Breite für ein Blatt Papier, das bei
 * jedem Thema dasselbe zeigt. Ob ein Thema beantwortet oder angeheftet ist,
 * steht in den Zahlen daneben.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-icon {
	display: none !important;
}

/*
 * Zahlenspalten: Kopfzeile und Zellen standen nicht untereinander — die
 * Köpfe zentriert bei x=1289, die Zahlen linksbündig bei x=1267. Beide
 * bekommen dieselbe Breite und dieselbe Ausrichtung.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-head .head-stat-views,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-head .head-stat-posts,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic .wpforo-topic-stat-views,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic .wpforo-topic-stat-posts {
	flex: 0 0 90px;
	width: 90px;
	margin: 0;
	padding: 0;
	text-align: center;
}

/*
 * Beide Spalten hängen am rechten Rand, nicht am Titel: Der Titelbereich ist
 * je Zeile unterschiedlich breit, und ohne diese Zeile stand die Kopfzeile
 * 20 px neben ihren Zahlen.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-head .head-stat-views,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic .wpforo-topic-stat-views {
	margin-left: auto;
}

/* Die Kopfzeile der Tabelle: ruhig, aber als Kopf erkennbar. */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-head {
	border-bottom: 2px solid var(--oo-line-strong);
	font-size: 12px;
	font-weight: 600;
	color: var(--oo-ink-quiet);
}

/* Zahlenspalten: gleiche Ziffernbreite, damit sie untereinander stehen. */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-stat-views,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-stat-posts {
	font-variant-numeric: tabular-nums;
	color: var(--oo-ink-soft);
}

/*
 * Textauszug und Schlagwörter — eingehängt über wpforo_topic_info_end,
 * siehe inc/topic-preview.php.
 *
 * Zwei Zeilen und dann Schluss: Der Auszug soll neugierig machen, nicht den
 * Beitrag ersetzen. Ein „line-clamp" von 2 hält die Zeilenhöhe der Liste
 * gleich, auch wenn ein Beitrag mit einem sehr langen Wort beginnt.
 */
/*
 * wpForo stellt den Container, in den eingehängt wird, auf position:absolute —
 * er ist für kleine Marken neben dem Titel gedacht, nicht für Fließtext. Ohne
 * diese Zeile legten sich die Auszüge als graue Blöcke über die Titel.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-badges {
	position: static;
	margin: 0;
	/* wpForo hinterlegt den Container grau — als schmale Marke neben dem
	   Titel gedacht, hinter zwei Zeilen Text ein Kasten. */
	background: transparent;
}

/*
 * Die Marken im Forum brauchen ihre Maße noch einmal: wpForos Regeln für
 * Verweise setzen padding auf 0, und aus der Kachel wird ein blauer Link.
 */
.oo-forum #wpforo #wpforo-wrap .oo-topic-tags .oo-tag {
	padding: 4px 9px;
	background: var(--oo-tag-bg);
	color: var(--oo-tag-ink);
	font-size: 10px;
	text-decoration: none;
}

.oo-forum #wpforo #wpforo-wrap .oo-topic-tags .oo-tag:hover {
	background: var(--oo-line-strong);
	color: var(--oo-ink);
}

.oo-forum #wpforo #wpforo-wrap .oo-topic-excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 8px 0 0;
	max-width: 80ch;
	font-size: 13px;
	line-height: var(--oo-line-height);
	color: var(--oo-ink-soft);
}

.oo-forum #wpforo #wpforo-wrap .oo-topic-tags {
	margin: 10px 0 0;
}

/* Der Themenersteller steht klein unter dem Titel — wie in Answer. */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-start-info {
	margin-top: 4px;
	font-size: 12px;
	color: var(--oo-ink-quiet);
}

/*
 * Die Themenzeile als Einheit halten.
 *
 * wpForo baut jede Zeile als Flex-Reihe: links Symbol und Titel, rechts die
 * Zahlen. Wird der Inhaltsbereich breit, liegen beide so weit auseinander,
 * dass das Auge die Zuordnung verliert. Die Zahlen bekommen deshalb eine
 * eigene, schmale Spalte und einen leiseren Ton — sie sind Beiwerk.
 *
 * Der Titelbereich bekommt bewusst KEINE Höchstbreite: Beim ersten Versuch
 * stand dort 72ch, woraufhin er schrumpfte und wpForos Flex-Verteilung eine
 * Lücke zwischen Symbol und Titel aufriss.
 */
/*
 * Kein gap auf der Zeile: Er wirkt zwischen ALLEN Flex-Kindern, also auch
 * zwischen den beiden Zahlenspalten — die Kopfzeile hat ihn nicht, und
 * dadurch standen „Ansichten" und seine Zahlen 20 px versetzt.
 *
 * Der Abstand sitzt stattdessen am Titelbereich, wo er gebraucht wird.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic {
	gap: 0;
	align-items: flex-start;
	justify-content: flex-start;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-topic-info {
	flex: 1 1 auto;
	min-width: 0;
	padding-right: 20px;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-topic-stat-combined {
	flex: 0 0 auto;
	margin-left: auto;
	min-width: 120px;
	font-size: 12px;
	line-height: 1.6;
	color: var(--oo-ink-quiet);
	text-align: right;
	white-space: nowrap;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-topic-title {
	line-height: 1.45;
	overflow-wrap: break-word;
}

/* Rahmen leiser, Ecken runder — dieselben Werte wie bei den Kacheln. */
.oo-forum #wpforo #wpforo-wrap .wpforo-content,
.oo-forum #wpforo #wpforo-wrap .wpf-forum-row,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-row,
.oo-forum #wpforo #wpforo-wrap .wpforo-post {
	border-color: var(--oo-line);
}

/* ------------------------------------------------------------------ Beiträge */

.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpforo-post-content {
	padding: var(--oo-card-padding);
	line-height: var(--oo-line-height);
	overflow-wrap: break-word;
}

/*
 * 26 Jahre Forum heißt: sehr lange Beiträge, teils mit Tabellen und Zitaten.
 * Zeilenhöhe und Absatzabstand entscheiden hier über die Lesbarkeit mehr als
 * jede Farbe.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content p {
	line-height: var(--oo-line-height);
}

.oo-forum #wpforo #wpforo-wrap .wpforo-post-content p + p {
	margin-top: 1em;
}

/*
 * **Keine Lesebreite mehr.** Hier stand `max-width: 90ch`, was die Zeile bei
 * 104 Zeichen hielt; ohne die Regel sind es 112.
 *
 * Am 01.09.2026 bewusst aufgegeben. Der Begrenzung fiel ein Streifen von
 * 72 px am rechten Rand jeder Kachel zum Opfer — und Weißraum innerhalb einer
 * Kachel liest sich anders als daneben: Er wirkt vergessen, nicht gesetzt.
 *
 * Der Einwand bleibt trotzdem im Raum: Für Fließtext gelten 45 bis 75 Zeichen
 * je Zeile als gut lesbar, 112 liegt deutlich darüber. Wer die Zeile wieder
 * kürzen will, hat zwei Wege — diese Regel zurückholen (dann kehrt der
 * Streifen zurück) oder die Kachel selbst schmaler setzen (dann liegt der
 * Platz neben ihr statt darin). Die Wahl fiel gegen beides und für die volle
 * Breite.
 */

.oo-forum #wpforo #wpforo-wrap .wpforo-post-content img,
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content iframe {
	max-width: 100%;
	height: auto;
}

/* Tabellen aus Altbeiträgen scrollen für sich, statt die Seite zu sprengen. */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
}

/* ------------------------------------------------------------ schmale Geräte */

@media (max-width: 767px) {
	.oo-forum .oo-main {
		padding-inline: 10px;
	}

	/* Auf dem Telefon steht die Zeile untereinander, nicht nebeneinander. */
	.oo-forum #wpforo #wpforo-wrap .wpforo-topic-stat-combined {
		margin-left: 0;
		text-align: left;
	}

	.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpforo-post-content {
		padding: 12px;
	}
}

/* ================================================================== Beitrag */

/*
 * Die Beitragsansicht nach Answers Vorbild.
 *
 * Answer zeigt unter dem Titel eine schmale Zeile — Name, Beiträge, Datum,
 * Aufrufe —, darunter den Text über die volle Breite. Fertig. wpForo baut
 * stattdessen einen grauen Kasten mit vier Zählern, eine RSS-Leiste und links
 * eine 156 px breite Spalte mit Profilangaben, die den Text auf 1.062 px
 * einschnürt.
 *
 * Was hier passiert, ist deshalb kein Ausblenden allein, sondern ein Umbau:
 * aus zwei Spalten wird eine Zeile über dem Text.
 */

/*
 * Der graue Kasten über dem ersten Beitrag: Forumname, „Letzter Beitrag von
 * …", die Zähler für Beiträge, Benutzer, Reaktionen, Ansichten — und der
 * RSS-Knopf darunter.
 *
 * Alles davon steht entweder schon im Titel, in der Themenliste oder
 * interessiert niemanden, der gerade lesen möchte.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-head {
	display: none !important;
}

/* Der Fußblock „Zum Forum springen" mit der Forenauswahl — 348 px hoch. */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-footer {
	display: none !important;
}

/* ------------------------------------------- aus zwei Spalten wird eine Zeile */

/*
 * Eine Kachel je Beitrag — dieselbe Form wie in Themenliste und
 * Forenübersicht.
 *
 * Vorher trennten waagerechte Linien die Beiträge. Bei einem Thema wie
 * „Konsekutiver Strabismus" mit 92 Beiträgen, in denen Zitate und Antworten
 * einander abwechseln, verlor sich dabei, wo ein Beitrag aufhört: Der
 * Zitatbalken links sieht einer Trennlinie ähnlich genug, um zu verwirren.
 * Eine Kachel mit eigenem Rand macht die Grenze eindeutig.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post {
	display: block;
	padding: var(--oo-card-padding);
	background: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius);
}

.oo-forum #wpforo #wpforo-wrap .post-wrap + .post-wrap {
	margin-top: var(--oo-card-gap);
}

/*
 * Der Rahmen, den wpForo um die ganze Beitragsliste legt, tritt zurück —
 * sonst steht ein Kasten um lauter Kästen.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-posts-wrap,
.oo-forum #wpforo #wpforo-wrap #wpforo-posts,
.oo-forum #wpforo #wpforo-wrap .wpforo-section.wpforo-posts {
	background: transparent;
	border: 0;
	padding: 0;
}

/*
 * Die Verfasserspalte entfällt bis auf das Profilbild. Name und
 * Beitragszahl gibt inc/post-meta.php in der Kopfzeile aus, wo auch Datum
 * und Verweis stehen — eine Zeile statt drei. Das Bild bleibt: Es macht in
 * einem langen Verlauf auf einen Blick sichtbar, wer gerade spricht, und
 * kostet dabei keine Zeile.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpf-left {
	float: none;
	width: auto;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

/*
 * Alles außer dem Bild verschwindet aus der Spalte. `.author-data` trägt
 * Name, Anmeldename, Rang, Sterne und Profilsymbole — sie stünden sonst
 * ein zweites Mal da.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpf-left .author-data,
.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpf-left .wpf-clear {
	display: none !important;
}

/*
 * Das Bild wandert in die Kopfzeile, links neben den Namen. Es sitzt in
 * einem anderen Elternbereich als die Zeile, deshalb absolut positioniert
 * statt eingereiht — verschieben ließe es sich nicht.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpf-left .author-avatar {
	position: absolute;
	top: var(--oo-card-padding);
	left: var(--oo-card-padding);
	width: 32px;
	height: 32px;
	margin: 0;
	padding: 0;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-post .author-avatar img,
.oo-forum #wpforo #wpforo-wrap .wpforo-post .author-avatar .avatar {
	width: 32px !important;
	height: 32px !important;
	border-radius: 50%;
	object-fit: cover;
	background: var(--oo-tag-bg);
}

/* Die Kachel wird zum Bezugspunkt, damit das Bild in ihr sitzt. */
.oo-forum #wpforo #wpforo-wrap .wpforo-post {
	position: relative;
}

/*
 * Die Kopfzeile rückt um Bildbreite plus Abstand ein.
 *
 * Der Einzug sitzt an der Zeile selbst und nicht an `.wpf-right`: Dort
 * setzt wpForo ein eigenes Padding, das später im Stylesheet steht und
 * gewinnt — der Name lief dem Avatar in die Quere, ohne dass eine Regel
 * fehlte.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpforo-post-content-top {
	padding-left: 44px !important;
	min-height: 32px;
}

/* wpForo gibt dem Bild einen Innenabstand, der es aus dem Kreis schiebt. */
.oo-forum #wpforo #wpforo-wrap .wpforo-post .author-avatar img {
	padding: 0 !important;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpf-right {
	float: none;
	width: auto;
	min-height: 0;
	/*
	 * margin-left muss ausdrücklich zurück: wpForo hält den Text mit
	 * „margin-left: 158px" neben der Verfasserspalte. Ohne diese Zeile bliebe
	 * der Beitrag um die Breite einer Spalte eingerückt, die es nicht mehr
	 * gibt.
	 */
	margin-left: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

/*
 * Die Kopfzeile: Name · Beiträge · Datum ————————— Verweis.
 * Der Verweis wird nach rechts geschoben, alles andere steht links beieinander.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content-top {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 12px;
	align-items: baseline;
	margin-bottom: 10px;
	font-size: 12px;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-post-content-top .oo-post-author {
	font-size: 14px;
	font-weight: 600;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-post-content-top .oo-post-author a {
	color: var(--oo-link);
}

.oo-forum #wpforo #wpforo-wrap .oo-post-author-count,
.oo-forum #wpforo #wpforo-wrap .oo-post-date {
	color: var(--oo-ink-quiet);
	font-size: 12px;
	white-space: nowrap;
}

/* Der Verweis auf den Beitrag ans rechte Ende derselben Zeile. */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content-top .wpf-post-actions {
	margin-left: auto;
}

/*
 * Was in dieser Zeile nichts zu suchen hat:
 *
 *   „Themenersteller" — dass der erste Beitrag vom Themenersteller stammt,
 *   sagt schon seine Stellung. Bei allen weiteren steht es ohnehin nicht da.
 *
 *   „[#7355]" — das ist die interne Nummer des *Themas*, nicht des Beitrags
 *   (`data-topicid`). Sie hilft niemandem beim Lesen und ist auch nicht das,
 *   was der Verweis daneben kopiert.
 *
 *   Der leere Platzhalter-Kasten, den die Vorlage zwischen beide setzt.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content-top .wpf-post-starter,
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content-top .wpf-topic-id,
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content-top > div:empty {
	display: none !important;
}

/* Der Text bekommt die volle Breite und die Lesebreite aus base.css. */
.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpforo-post-content {
	padding: 0;
	background: transparent;
}

/*
 * Der Beitragstext füllt die Kachel; ihr Innenabstand sitzt am Rahmen, nicht
 * am Text. Sonst stünde er doppelt.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post .wpforo-post-content {
	padding: 0;
}

/* --------------------------------------------------------- Schlagwörter unten */

/*
 * Die Schlagwörter des Themas bleiben — Answer zeigt sie ebenfalls, dort oben
 * rechts neben dem Titel. Hier stehen sie unter dem Beitrag; sie zu
 * verschieben hieße, wpForos Vorlage zu kopieren.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-meta {
	padding: 14px 0 0;
	border-top: 1px solid var(--oo-line);
	background: transparent;
	font-size: 12px;
}

/*
 * wpForo wiederholt das Datum am Fuß jedes Beitrags („Veröffentlicht :
 * 06.06.2007 13:33"). Oben steht es bereits — einmal genügt, und oben ist der
 * Platz, an dem man es sucht.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content-bottom {
	display: none !important;
}

/*
 * Die Schlagwörter des Themas: wpForo gibt ihnen eine blaue Pfeilform mit
 * Punkt. Hier bekommen sie dieselbe ruhige Marke wie überall sonst.
 *
 * Das umgebende Element heißt `<tag>` — ein von wpForo erfundener
 * Elementname (`themes/2026/tags.php`, `wpforo_tags()`), keine Klasse. Die
 * vorige Fassung dieses Blocks zielte auf `.tag` und traf dadurch beim
 * Hide-Versuch nichts: Der Chip selbst stand schon in der richtigen Farbe,
 * weil `.wpf-tags a` (ohne `.tag` davor) jedes `<a>` trifft — aber die
 * Pfeilspitze und der Punkt aus `colors.css` blieben stehen, weil deren
 * Hide-Regel nie ein Element mit `class="tag"` fand (Befund B3,
 * `/community/tags/`).
 */
.oo-forum #wpforo #wpforo-wrap .wpf-tags a {
	padding: 4px 9px;
	margin-right: 8px;
	border-radius: var(--oo-radius-small);
	background: var(--oo-tag-bg);
	color: var(--oo-tag-ink);
	font-size: 11px;
	text-decoration: none;
}

.oo-forum #wpforo #wpforo-wrap .wpf-tags tag::before,
.oo-forum #wpforo #wpforo-wrap .wpf-tags tag::after,
.oo-forum #wpforo #wpforo-wrap .wpf-tags tag a::before,
.oo-forum #wpforo #wpforo-wrap .wpf-tags tag a::after {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpf-tags a:hover {
	background: var(--oo-line-strong);
	color: var(--oo-ink);
}

/* ------------------------------------------------- Titelbereich des Themas */

/*
 * Der Titelkasten war 96 px hoch für eine Zeile Text — Innenabstand von zweimal
 * 18 px plus die Paginierung, die daneben mehr Höhe beansprucht als der Titel.
 * Answer kommt hier mit deutlich weniger aus.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-head-title {
	min-width: 0;
	flex: 1 1 auto;
}

.oo-forum #wpforo #wpforo-wrap .wpf-head-bar .wpf-action-link {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	align-items: center;
	/*
	 * Ohne diese drei Zeilen war der Kasten 86 px hoch für eine Zeile Titel:
	 * Die Aktionszeile trug oben einen hellgrauen Strich und 12 px
	 * Innenabstand und wurde damit höher als der Titel daneben.
	 */
	margin-top: 0;
	padding: 0;
	border-top: 0;
}

/* Der Titel des Themas trägt die Höhe des Kastens, nicht die Seitennavigation. */
/*
 * Titel und Knopf auf einer Linie: wpForo gibt dem Titel 15 px Innenabstand
 * nach unten, wodurch seine Box höher wird als die Schrift — bei
 * „align-items: center" saß er dadurch 15 px über dem Knopf.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-head-bar #wpforo-title {
	padding: 0;
	margin: 0;
	font-size: 19px;
	line-height: 1.35;
}

.oo-forum #wpforo #wpforo-wrap .wpf-head-title {
	display: flex;
	align-items: center;
}

/*
 * Ein einheitlicher Abstand oben. wpForo setzt über den Kopf 30 px, der
 * Inhaltsbereich noch einmal 20 px — zusammen 50 px, bevor überhaupt etwas
 * steht. Ein Wert für alle Seiten.
 */
.oo-forum #wpforo #wpforo-wrap > .wpforo-main,
.oo-forum #wpforo #wpforo-wrap .wpforo-content {
	margin-top: 0;
	padding-top: 0;
}

.oo-forum .oo-main {
	padding-block: 20px 40px;
}

/*
 * wpForos äußerer Rahmen setzt noch einmal 10 px oben — zusammen mit dem
 * Inhaltsbereich und der Polsterung des Kopfes standen vor dem Titel über
 * 60 px Leere.
 */
.oo-forum #wpforo #wpforo-wrap.wpf-default {
	padding-top: 0;
}

/*
 * Hier standen die Schlagwörter am Titel und die Regel, die wpForos eigene
 * Zeile darunter ausblendete — die eine, weil die andere sie ersetzte.
 *
 * Beide sind am 02.09.2026 entfallen. Es gab keine echten Schlagwörter: Der
 * Import hatte jedem Thema den Namen seines Forums als solches mitgegeben, und
 * damit sagte der Chip dasselbe wie die Zeile darunter. Zählertabelle und
 * Themenfelder sind geleert.
 *
 * Die Ausblendung ist nicht mehr unbedingt, sondern an den Inhalt geknüpft.
 * Vergibt künftig jemand ein echtes Schlagwort, erscheint es dort, wo wpForo
 * es von Haus aus ausgibt — bliebe die alte Regel stehen, wäre es nirgends zu
 * sehen, oben nicht und unten nicht. Ohne Schlagwort blieb umgekehrt ein
 * leerer Block von 15 px stehen, gemessen am 02.09.2026.
 *
 * `:not(:has(a))` löst beides: Der Block verschwindet, solange kein Verweis
 * darin steht, und erscheint, sobald einer hinzukommt.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-meta:not(:has(a)) {
	display: none !important;
}


/* ------------------------------------------------------------ Schaltflächen */

/*
 * „Thema erstellen" und verwandte Schaltflächen in der Akzentfarbe.
 *
 * wpForos Blau (#4a9fd8) erreichte gegen weiße Schrift nur 2,90:1 und lag
 * damit unter dem Mindestwert von 4,5:1 — schlecht lesbar, und neben dem
 * Marine der Kopfleiste ein zweiter, fremder Blauton.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-button,
.oo-forum #wpforo #wpforo-wrap a.wpf-button,
.oo-forum #wpforo #wpforo-wrap .wpf-button-outlined {
	border: 1px solid var(--oo-accent);
	border-radius: 8px;
	background: var(--oo-accent);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

.oo-forum #wpforo #wpforo-wrap .wpf-button:hover,
.oo-forum #wpforo #wpforo-wrap a.wpf-button:hover,
.oo-forum #wpforo #wpforo-wrap .wpf-button-outlined:hover {
	border-color: var(--oo-accent-dark);
	background: var(--oo-accent-dark);
	color: #fff;
}

/* Das Symbol im Knopf trägt dieselbe Farbe wie die Schrift. */
.oo-forum #wpforo #wpforo-wrap .wpf-button i,
.oo-forum #wpforo #wpforo-wrap a.wpf-button i {
	color: inherit;
}

/*
 * Der Abo-Knopf „Neue Antworten abonnieren" — Altfund A1 aus Aufgabe 9.
 *
 * Das Markup (`modules/subscriptions/classes/Template.php`):
 *   <span class="wpf-subscribe-topic wpf-button-outlined wpfcl-5">
 * Die Regel oben malt ihn wie jeden `.wpf-button-outlined` in `--oo-accent`
 * mit weißer Schrift — aber `colors.css` bindet denselben Knopf zusätzlich an
 * seine Klasse `wpfcl-5` und setzt dort
 *   .wpfcl-5{ color:#ff812d!important; fill:#ff812d!important; }
 * Ein einzelner Klassenselektor, aber mit `!important`: Gegen ein `!important`
 * verliert jede Spezifität, gleich wie viele Klassen oder IDs ein Selektor
 * ohne `!important` mitbringt. Der Grund malt also `--oo-accent` durch, die
 * Schrift bleibt Orange auf Dunkelrot — 2,74:1, der schlechteste Wert des
 * ganzen Durchgangs (`aufgabe-9-bericht.md`, Befund A1).
 *
 * Deshalb hier ausnahmsweise ein eigenes `!important`, eng auf genau dieses
 * Element gefasst (`.wpf-subscribe-topic.wpfcl-5`, nicht das allgemeinere
 * `.wpfcl-5` allein — das färbt an anderer Stelle etwa den Pflicht-Stern und
 * das Trefferdatum, die beide ihre eigene, unten stehende Lösung ohne
 * `!important` bekommen). Weiß auf `--oo-accent` misst 6,82:1.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-subscribe-topic.wpfcl-5 {
	color: #fff !important;
}

/*
 * Die Seitennavigation bleibt zurückhaltend: Sie ist ein Weg, keine Handlung.
 * In der Akzentfarbe stünde „Weiter" so laut da wie „Thema erstellen".
 *
 * Gemessen am 29.08.2026: Die Regel hier griff bei „Zurück"/„Weiter" nie.
 * `colors.css` setzt
 *   #wpforo #wpforo-wrap .wpf-navi .wpf-navi-wrap .wpf-next-button
 * — zwei IDs und DREI Klassen, gegen die zwei Klassen des Selektors darunter.
 * Solange die Palette dort ein Blau führte, fiel das nicht auf: Der Knopf war
 * einfach blau. Seit sie auf `--oo-accent` steht, wäre er rot wie „Thema
 * erstellen" — genau das, was der Absatz oben ausschließt.
 *
 * Deshalb die eigene, längere Fassung: zwei IDs und vier Klassen. Sie ersetzt
 * keine Entscheidung, sie setzt die bestehende endlich durch.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-navi a,
.oo-forum #wpforo #wpforo-wrap .wpf-navi .wpf-navi-next,
.oo-forum #wpforo #wpforo-wrap .wpf-navi .wpf-navi-wrap .wpf-prev-button,
.oo-forum #wpforo #wpforo-wrap .wpf-navi .wpf-navi-wrap .wpf-next-button {
	background: var(--oo-navy);
	border-color: var(--oo-navy);
	color: #fff;
}


/* ================================================= Themen als eigene Kacheln */

/*
 * Jedes Thema in einer eigenen Kachel — dieselbe Bauform wie im Verzeichnis
 * und später in Jobbörse und Kalender (.oo-card in base.css). Eine Tabelle mit
 * Trennlinien wirkt bei drei Zeilen Inhalt je Thema gedrängt; Kacheln geben
 * jedem Eintrag eine sichtbare Grenze.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic {
	box-sizing: border-box;
	padding: var(--oo-card-padding);
	border: 1px solid var(--oo-line);
	border-radius: var(--oo-radius);
	background: var(--oo-surface);
}

.oo-forum #wpforo #wpforo-wrap .topic-wrap + .topic-wrap .wpforo-topic,
.oo-forum #wpforo #wpforo-wrap .wpforo-section .wpforo-topic {
	margin-top: var(--oo-card-gap);
}

/* Die Trennlinien der Tabelle entfallen — die Kacheln trennen selbst. */
.oo-forum #wpforo #wpforo-wrap .topic-wrap,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-row {
	border: 0 !important;
	background: transparent;
}

/*
 * Kopfzeile und Zahlenspalten entfallen: Die Zahlen stehen jetzt beschriftet
 * am Fuß jeder Kachel (inc/topic-preview.php). Eine Tabellen-Kopfzeile über
 * Kacheln wäre ein Rest aus der Zeit davor.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-head,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic .wpforo-topic-stat-views,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic .wpforo-topic-stat-posts,
.oo-forum #wpforo #wpforo-wrap .wpforo-topic .wpforo-topic-toggle {
	display: none !important;
}

/* Die Zahlen am Fuß der Kachel. */
.oo-forum #wpforo #wpforo-wrap .oo-topic-stats {
	margin: 10px 0 0;
	font-size: 12px;
	color: var(--oo-ink-quiet);
	font-variant-numeric: tabular-nums;
}

/* Der Titelbereich nimmt jetzt die ganze Kachel ein. */
.oo-forum #wpforo #wpforo-wrap .wpforo-topic-info {
	padding-right: 0;
}

/* ==========================================================================
   Die Forenübersicht
   --------------------------------------------------------------------------
   wpForo liefert die Foren als durchgehende Liste mit Trennlinien und drei
   Symbolen je Zeile: eine Sprechblase für das Forum, ein Blatt Papier für
   jedes Thema, dazu ein leeres Symbolfeld, das die Vorlage vorsorglich
   anlegt. Die Symbole tragen keine Auskunft — es ist immer dieselbe
   Sprechblase, immer dasselbe Blatt — kosten aber je Zeile rund 60 px
   Breite und drängen den Titel nach innen.

   Stattdessen dieselbe Form wie in der Themenliste: eine Kachel je Forum.
   Der Titel beginnt links, der Weißraum liegt zwischen den Kacheln statt in
   ihnen.

   **Am 01.09.2026 verdichtet.** Die Seite war 3.920 px hoch — für neun
   Fachgebiete, die links in der Seitenleiste noch einmal stehen. Pro
   Bildschirm sah man anderthalb davon. Gemessen, nicht geschätzt, saß der
   Platz an vier Stellen:

     28 px  vor der ersten Themenzeile: Innenabstand und Außenabstand lagen
            dort übereinander (beide 14 px, siehe unten)
     29 px  im Kopf: `min-height: 70px` aus wpForos Stylesheet hielt ihn auf,
            obwohl der Text 41 px braucht
     21 px  je Themenzeile: Abstand statt Trennlinie
     16 px  ein Zeilenumbruch ohne Funktion (`br.wpf-clear`)

   Dazu zwei Spalten statt einer. Ergebnis: 1.488 px, sechs Fachgebiete auf
   einem Bildschirm.

   **Das Raster gilt auch für die Themenliste.** Der Block direkt darunter
   hängt an `.wpforo-section`, und die trägt beide Bildschirme. Was hier folgt,
   ist deshalb nicht durchweg auf die Übersicht beschränkt — die
   Rasterbegründung steht bei der Regel selbst.
   ========================================================================== */

/*
 * Zwei Spalten — auf der Übersicht **und** in der Themenliste.
 *
 * `.wpforo-section` trägt beide Bildschirme: `.wpfl-1` die Übersicht,
 * `.wpfl-2` die Themenliste. Anfangs war nur die Übersicht gemeint, und die
 * Themenliste wurde am 01.09.2026 unbeabsichtigt mitgenommen. Beim Nachmessen
 * erwies sich das als die bessere Wahl, deshalb steht es jetzt so da:
 *
 *   einspaltig   5.885 px, Auszug 91 Zeichen je Zeile
 *   zweispaltig  3.315 px, Auszug 63 Zeichen je Zeile
 *
 * Für Fließtext gelten 45 bis 75 Zeichen als gut lesbar — 91 liegt darüber,
 * das Auge findet den Zeilenanfang schwerer wieder. Die schmalere Spalte ist
 * hier also nicht bloß kürzer, sondern besser zu lesen. Der Auszug ist der
 * Grund, warum jemand in der Themenliste bleibt statt weiterzuklicken; er
 * war der Maßstab, nicht die Seitenhöhe.
 *
 * Zum Vergleich: Apache Answer setzt seine Fragenkacheln auf 194 px, ein
 * Eintrag hier misst 188.
 *
 * `min-width: 0` ist keine Feinheit, sondern Pflicht: Ohne das behalten die
 * Kacheln die Breite ihres Inhalts und laufen aus dem Raster heraus — beim
 * ersten Versuch standen die Verfassernamen der rechten Spalte außerhalb des
 * Bildes.
 *
 * Die leeren `span.oo-forum-numbers` liegen als Geschwister zwischen den
 * Kacheln (sie liefern die Zahlen für die Seitenleiste) und bekämen im Raster
 * eigene Plätze. Sie werden aus dem Fluss genommen, nicht versteckt — sie
 * werden anderswo ausgelesen.
 */
@media (min-width: 900px) {
	/*
	 * **Nur die beiden Listen, nicht die Beitragsansicht.**
	 *
	 * Übersicht und Themenliste tragen beide `.wpfl-2` und lassen sich über
	 * die Layout-Klasse nicht trennen; der `body` unterscheidet sie:
	 * `wpft-forum` die Übersicht, `wpft-topic` die Themenliste, `wpft-post`
	 * das einzelne Thema.
	 *
	 * Ohne diese Einschränkung geriet am 01.09.2026 auch die Beitragsansicht
	 * ins Raster — ein Gespräch stand in zwei Spalten nebeneinander. Bei einer
	 * Liste ist die Reihenfolge gleichgültig, bei einem Gespräch ist sie der
	 * Inhalt: Wer Frage und Antwort nebeneinander setzt, zerstört die
	 * Chronologie. Dazu wurde der Beitragstext auf 56 Zeichen je Zeile
	 * gequetscht, während er in einer Spalte 108 hat.
	 */
	body.wpft-forum.oo-forum #wpforo #wpforo-wrap .wpforo-section,
	body.wpft-topic.oo-forum #wpforo #wpforo-wrap .wpforo-section {
		display: grid;
		grid-template-columns: 1fr 1fr;
		/*
		 * Der Abstand liegt vollständig im Raster: 10 px zwischen den Spalten,
		 * 24 px zwischen den Zeilen. Vorher trug die Kachel 14 px davon selbst
		 * als unteren Rand — und `:last-of-type` nahm ihn der letzten wieder
		 * weg. Weil `stretch` die Kachel auf Zeilenhöhe *minus Rand* zieht,
		 * war genau die letzte Kachel 14 px höher als ihre Nachbarin: das
		 * ungleiche Paar in der untersten Reihe, gemessen 286 zu 300 px.
		 */
		row-gap: 24px;
		column-gap: 10px;
		/*
		 * `stretch`, nicht `start`: Nebeneinanderstehende Kacheln sind
		 * unterschiedlich hoch, weil Titel unterschiedlich oft umbrechen.
		 * Mit `start` endet jede dort, wo ihr Inhalt aufhört, und die Zeile
		 * bekommt eine ausgefranste Unterkante. Gestreckt schließen beide
		 * bündig ab; der Preis ist etwas Leerraum in der kürzeren, und der
		 * liegt unten am Rand statt zwischen den Zeilen.
		 */
		align-items: stretch;
	}

	.oo-forum #wpforo #wpforo-wrap .wpforo-section > span.oo-forum-numbers,
	.oo-forum #wpforo #wpforo-wrap .wpforo-section > .wpforo-category {
		position: absolute;
	}

	.oo-forum #wpforo #wpforo-wrap .forum-wrap,
	.oo-forum #wpforo #wpforo-wrap .forum-wrap * {
		min-width: 0;
	}

}

/*
 * Die Symbole. `!important`, weil wpForo sie über zwei IDs adressiert und
 * eine Regel gleicher Spezifität hier verlöre — ohne Fehlermeldung, die
 * Seite sähe nur unverändert aus.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-forum-icon,
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-icon {
	display: none !important;
}

/* Der Rahmen der Kategorie tritt zurück; die Kacheln tragen die Gliederung. */
.oo-forum #wpforo #wpforo-wrap .wpfl-2.wpforo-section {
	background: transparent;
	border: 0;
	padding: 0;
}

/* Eine Kachel je Forum. */
.oo-forum #wpforo #wpforo-wrap .forum-wrap {
	background: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius);
	padding: var(--oo-card-padding);
	margin: 0 0 var(--oo-card-gap);
}

.oo-forum #wpforo #wpforo-wrap .forum-wrap:last-of-type {
	margin-bottom: 0;
}

/*
 * Im Raster trägt keine Kachel einen eigenen Abstand — das erledigt `row-gap`.
 *
 * Diese Regel muss *nach* der obigen stehen, nicht bei den übrigen
 * Rastereigenschaften weiter oben: Dort hat sie dieselbe Spezifität wie
 * `.forum-wrap { margin: 0 0 var(--oo-card-gap) }`, steht aber davor und
 * verliert damit still. Genau daran hing das ungleiche Kachelpaar.
 */
@media (min-width: 900px) {
	body.wpft-forum.oo-forum #wpforo #wpforo-wrap .forum-wrap,
	body.wpft-topic.oo-forum #wpforo #wpforo-wrap .forum-wrap {
		margin-bottom: 0;
	}
}

/*
 * Ohne das Symbolfeld sitzt der Titel am linken Rand der Kachel.
 *
 * `min-height: 0` gegen wpForos eigene 70 px: Die stammen aus der Zeit mit
 * Symbolspalte und hielten den Kopf auf, obwohl Titel und Zahlenzeile
 * zusammen 41 px brauchen. Am 01.09.2026 gemessen.
 */
.oo-forum #wpforo #wpforo-wrap .forum-wrap .wpforo-forum {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	border: 0;
	padding: 0;
	min-height: 0;
}

/*
 * Der Aufklapp-Pfeil und der Verweis „alle anzeigen" am Fuß.
 *
 * Beide entfallen, und beide ohne Verlust: „alle anzeigen" führt auf genau
 * dieselbe Adresse wie der Fachgebietsname im Kopf darüber (am 01.09.2026
 * verglichen — zweimal `/community/spectacle-optics/`), und wer eine Liste
 * von drei Themen einklappen will, hat ohnehin nichts gewonnen.
 *
 * Das Einklappen selbst bleibt technisch bestehen; nur der Griff dafür ist
 * fort. Wer ihn zurückholen will, nimmt diese Regel wieder heraus.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-forum-topic-toggle,
.oo-forum #wpforo #wpforo-wrap .forum-wrap li:has(.wpf-vat) {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .forum-wrap .wpforo-forum-info {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0;
}

.oo-forum #wpforo #wpforo-wrap .forum-wrap .wpforo-forum-title {
	margin: 0;
	font-size: 17px;
	line-height: 1.35;
}

/* Die Zahlenzeile unter dem Titel — dieselbe Stimme wie in der Themenliste. */
.oo-forum #wpforo #wpforo-wrap .forum-wrap .wpforo-forum-info > div:not([class]) {
	margin-top: 4px;
	font-size: 12px !important;
	color: var(--oo-ink-quiet) !important;
	font-variant-numeric: tabular-nums;
}

/*
 * Die Themenliste im Forum. wpForo baut die Trennung darüber aus zwei
 * nebeneinanderliegenden Kästen, von denen einer nur eine gestrichelte
 * Oberkante trägt — ein Rest der Symbolspalte. Ohne die Symbole ist er
 * gegenstandslos; an seine Stelle tritt eine durchgehende Linie.
 */
.oo-forum #wpforo #wpforo-wrap [class*="wpforo-last-topics-"] > div:first-child {
	display: none !important;
}

/*
 * Sechs statt vierzehn. Innen- und Außenabstand lagen hier übereinander und
 * ergaben 28 px vor der ersten Themenzeile — die auffälligste einzelne
 * Leerstelle der ganzen Übersicht.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topics-list {
	margin-top: 6px;
	padding-top: 6px;
	border-top: 1px solid var(--oo-line);
}

/*
 * Die Themenliste steht im Fluss, nicht im Float.
 *
 * wpForo gibt ihr `float: right` — ein Rest aus dem Layout mit Symbolspalte.
 * Ihr Elternknoten hat dadurch die Höhe 0, denn ein gefloatetes Kind zählt
 * nicht zur Elternhöhe. Am Schreibtisch fiel das nie auf: Die Kachel ist dort
 * ein Rasterfeld, und ein Rasterfeld bildet von sich aus einen eigenen
 * Formatierungskontext, der den Float einfängt.
 *
 * Unter 900 px gibt es kein Raster — und damit lief die Themenliste aus ihrer
 * Kachel heraus und legte sich über die nächste. Bei 390 px war die
 * Forenübersicht dadurch unlesbar, Text über Text. Am 02.09.2026 gemessen.
 *
 * `float: none` behebt die Ursache. Der Zeilenumbruch, der den Float einmal
 * aufräumte, bleibt damit zu Recht ausgeblendet — er kostete 16 px je Kachel.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topics-list {
	float: none;
}

.oo-forum #wpforo #wpforo-wrap .forum-wrap br.wpf-clear {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-last-topics-list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-last-topics-list > ul > li {
	display: flex;
	align-items: baseline;
	gap: 16px;
	margin: 0;
	padding: 7px 0;
	border: 0;
	list-style: none;
}

/*
 * Der Fuß der Kachel. wpForo setzt unter die Themenliste einen Abstand, der
 * zur alten Trennlinien-Darstellung gehörte; in einer Kachel mit eigenem
 * Innenabstand steht er doppelt.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topics-list {
	margin-bottom: 0;
	padding-bottom: 0;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-last-topics-list > ul > li:last-child {
	padding-bottom: 0;
}

/*
 * Die Themenzeilen: eine Trennlinie statt Abstand.
 *
 * Eine Linie gliedert genauer als Leerraum und kostet einen Pixel statt
 * zwanzig — je Zeile 21 px gespart, bei 24 Zeilen auf der Seite eine halbe
 * Bildschirmhöhe.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topics-list > ul > li {
	padding: 6px 0;
	border-top: 1px solid var(--oo-line);
}

.oo-forum #wpforo #wpforo-wrap .wpforo-last-topics-list > ul > li:first-child {
	padding-top: 0;
	border-top: 0;
}

/*
 * Verfasser und Datum.
 *
 * Feste Breite statt `auto`, linksbündig statt rechts: Rechtsbündig richteten
 * sich Name und Datum an ihrem jeweiligen Ende aus — bei „Max25" und „Richard
 * Sutter" begannen sie an verschiedenen Stellen, und die Spalte flatterte von
 * Zeile zu Zeile. Eine feste Breite mit linkem Anschlag stellt beide in eine
 * Flucht.
 *
 * 140 px, nicht 118: Seit `inc/forum-output.php` die vollen Namen
 * zurückschreibt, sind sie länger als die zwölf Zeichen, auf die wpForo sie
 * schnitt. 126 px Inhaltsbreite fassen rund zwanzig Zeichen einzeilig — der
 * Bestand hat im Mittel 7,8. Die Ausreißer gehen bis 30 („Lichtblick Optik
 * Ihn. Preubsch"); für die wäre eine Spalte von 190 px nötig, und die ginge
 * dem Titel dauerhaft ab, um einen Fall abzudecken, der praktisch nie
 * eintritt. Sie brechen stattdessen um.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-user {
	width: 140px;
	flex: 0 0 140px;
	text-align: left;
	padding-left: 14px;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-user a {
	display: inline-block;
	max-width: 100%;
	/*
	 * Umbruch statt Auslassung. `break-word` bricht erst zwischen den
	 * Wörtern und nur innerhalb eines Wortes, wenn dieses allein zu lang
	 * ist — ein Name wie „Paul-Gerhard Mosch" bleibt damit lesbar.
	 */
	white-space: normal;
	overflow-wrap: break-word;
	vertical-align: bottom;
}

/*
 * Der Leerraum am Fuß eines Beitrags. wpForo setzt dort drei Dinge
 * übereinander, die zusammen rund 75 px kosten, ohne etwas zu zeigen:
 *
 *   1. Ein <br style="clear: both">, das den Text abschließt. Der Inline-Stil
 *      setzt zwar `height: 0`, die Zeilenbox bleibt aber stehen — 18 px.
 *   2. Einen leeren <div> mit geschütztem Leerzeichen neben der Knopfleiste.
 *   3. Eine Einrückung von 45 px, die zur alten Verfasserspalte gehörte.
 *
 * Das clear bleibt wirksam — es wird nur auf null Zeilenhöhe gesetzt, nicht
 * entfernt. Bei umflossenen Bildern zählt es weiterhin.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content {
	/*
	 * Räumt umflossene Bilder selbst auf. Damit ist das <br> am Textende
	 * entbehrlich und kann ganz weichen — auf null Zeilenhöhe zu setzen
	 * genügte nicht, ein <br> behält seine Zeilenbox.
	 */
	display: flow-root;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-post-content > br[style*="clear"] {
	display: none;
}

/*
 * `!important` beim Innenabstand: wpForo adressiert die Knopfleiste über zwei
 * IDs, eine Regel gleicher Spezifität verlöre hier — ohne Fehlermeldung, die
 * Seite sähe nur unverändert aus. Genau das ist beim ersten Versuch passiert.
 */
/*
 * `!important` bei allen dreien, und diesmal belegt: wpForo adressiert die
 * Leiste mit `#wpforo #wpforo-wrap .wpfl-2 .wpforo-post .wpf-right
 * .wpf-post-button-actions` — zwei Kennungen und vier Klassen. Eine Regel
 * mit weniger verliert, ohne dass etwas kracht; am 01.09.2026 blieb die
 * Leiste deshalb rechts stehen, obwohl die Regel geschrieben war.
 *
 * Der Innenabstand von links stammt aus derselben Zeile: 45 px, die einmal
 * die Verfasserspalte freihielten. Die gibt es hier nicht mehr.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-post-button-actions {
	padding: 4px 0 0 !important;
	justify-content: flex-start !important;
	text-align: left !important;
}

/*
 * Antworten und Zitieren: links, mit Fläche und Beschriftung.
 *
 * **Links**, weil die Symbole rechts 874 px vom Textanfang entfernt standen —
 * bei kurzen Beiträgen eine halbe Kachelbreite von dem entfernt, worauf sie
 * sich beziehen. Links stehen sie in einer Flucht mit Avatar, Name und Text,
 * und dort sucht das Auge nach dem Lesen ohnehin die nächste Zeile.
 *
 * **Mit Beschriftung**, weil ein Symbol allein niemandem sagt, was es tut.
 * Der Text kommt aus wpForos eigenem Attribut `wpf-tooltip` und wird von
 * `inc/post-actions.php` sichtbar gemacht; erfunden ist er nicht.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-action-buttons-wrap {
	display: inline-flex;
	gap: 8px;
}

.oo-forum #wpforo #wpforo-wrap .wpf-post-button-actions .wpf-action {
	display: inline-flex !important;
	align-items: center;
	gap: 7px;
	width: auto !important;
	padding: 5px 11px !important;
	border-radius: var(--oo-radius-small);
	background: var(--oo-tag-bg);
	color: var(--oo-ink-soft);
	font-size: 12.5px;
	line-height: 1.3;
}

.oo-forum #wpforo #wpforo-wrap .wpf-post-button-actions .wpf-action:hover {
	background: var(--oo-line-strong);
	color: var(--oo-ink);
}

.oo-forum #wpforo #wpforo-wrap .wpf-post-button-actions .wpf-action:focus-visible {
	outline: 2px solid var(--oo-link);
	outline-offset: 2px;
}

.oo-forum #wpforo #wpforo-wrap .oo-action-label {
	white-space: nowrap;
}

.oo-forum #wpforo #wpforo-wrap .wpf-post-button-actions > div {
	display: none;
}

/*
 * Die Themenzeilen in der Übersicht tragen dieselbe Typografie wie in der
 * Themenliste — Titel, darunter Verfasser und Datum.
 *
 * Was hier fehlt, ist der Textauszug. wpForos Übersichtsvorlage
 * (`themes/2026/forum.php`) kennt keinen Anschluss je Thema; ihn zu ergänzen
 * hieße, die Vorlage zu kopieren, und eine kopierte Vorlage sieht nach einem
 * Update aus wie vorher und verhält sich anders. Am 29.08.2026 geprüft: nur
 * `wpforo_category_loop_start`, `_end`, `_no_forums` und
 * `wpforo_template_forum_head_bar_action_links` — alle auf Kategorieebene.
 *
 * Wie schon bei .wpforo-topic-title/-start-info in base.css braucht der
 * Titel-Selektor die zwei IDs von wpForos eigenem CSS-Reset
 * (`#wpforo #wpforo-wrap a { font-size: 100%; … }`, eine Zeile mit gut 60
 * Elementen aus einer alten Reset-Vorlage). Am 29.08.2026 gemessen: Mit nur
 * einer ID — wie im ersten Entwurf — verlor die Regel gegen diesen Reset,
 * ohne Fehlermeldung. Die Schrift blieb bei 14px stehen, obwohl die Regel
 * direkt auf dem <a> stand und Vererbung eigentlich nie gegen eine direkt
 * zutreffende Deklaration gewinnt — hier war es keine Vererbung, sondern
 * zwei direkt konkurrierende Regeln auf demselben Element.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-title a {
	font-size: 15px;
	line-height: 1.45;
	color: var(--oo-link);
}

.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-title a:hover {
	text-decoration: underline;
}

/*
 * 5 px Gleichstand mit der Themenliste: Deren `.wpforo-topic-info` bringt
 * von wpForo selbst ein `padding-left: 5px` mit — ein Rest der ausgeblendeten
 * Symbolspalte dort. Die Übersicht kennt diesen Gutter nicht, ihr Titel
 * begann deshalb 5 px weiter links als in der Themenliste, gemessen am
 * 29.08.2026 (279 px gegen 284 px bei 1.280 px Breite).
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-title {
	padding-left: 5px;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-user {
	margin-top: 3px;
	font-size: 12px;
	color: var(--oo-ink-quiet);
}

/*
 * Derselbe Fall wie bei .wpforo-topic-start-info: colors.css färbt jeden
 * Verweis im Forum direkt ein (`#wpforo #wpforo-wrap a`, zwei IDs). Eine
 * Regel auf dem Elternelement — die Zeile oben — erreicht das <a> darin
 * nie, weil eine direkt zutreffende Deklaration jeden geerbten Wert
 * schlägt. Der Verfassername stand deshalb blau neben einem gedämpften
 * Datum, obwohl die Zeile als Ganzes gesetzt war.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-user a {
	color: var(--oo-ink-quiet);
}

.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-user a:hover,
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-user a:focus-visible {
	color: var(--oo-link);
	text-decoration: underline;
}

/*
 * Der Avatar in der Übersicht ist 45 px groß und drängt den Titel nach
 * innen. In der Themenliste steht er nicht; hier fällt er ebenfalls weg,
 * damit beide Listen links bündig beginnen.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-avatar {
	display: none;
}

/* ==========================================================================
   Zitate in den Altbeiträgen
   --------------------------------------------------------------------------
   7.266 Beiträge enthalten ein <blockquote>. Die meisten stammen aus dem
   alten Forum und tragen dessen Kopfzeile mit:

       <blockquote><font size="1" face="Arial">Zitat</font>Original erstellt
       von walter55<br />…

   wpForo stellt Zitate als grauen Kasten dar. Bei einem Beitrag, der zur
   Hälfte aus Zitat besteht, wird daraus eine graue Wand — und das kleine
   „Zitat" in Arial 1 ist heute schlicht unleserlich.

   Stattdessen der Balken links, wie ihn Answer benutzte: Das Zitat setzt
   sich ab, ohne den halben Beitrag einzufärben.
   ========================================================================== */

.oo-forum #wpforo #wpforo-wrap .wpforo-post-content blockquote {
	margin: 14px 0;
	padding: 2px 0 2px 16px;
	border: 0;
	border-left: 3px solid var(--oo-line-strong);
	background: transparent;
	color: var(--oo-ink-soft);
}

.oo-forum #wpforo #wpforo-wrap .wpforo-post-content blockquote p:first-child {
	margin-top: 0;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-post-content blockquote p:last-child {
	margin-bottom: 0;
}

/*
 * Die Schriftauszeichnungen von 2003. `<font size="1">` ergibt rund 10 px —
 * damals eine Feinheit, auf heutigen Bildschirmen unleserlich. Die Angaben
 * werden nicht entfernt (das wäre ein Eingriff in den Bestand), sondern
 * überschrieben.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content font {
	font-size: inherit !important;
	font-family: inherit !important;
}

/*
 * Die Quellenangabe des Zitats — „Original erstellt von walter55".
 *
 * Sie steht in einem eigenen <span>, das inc/quote-header.php beim Rendern
 * einsetzt. Der Grund steht dort: Quellenangabe und erster Zitatsatz liegen
 * im selben Absatz, mit CSS allein ließe sich nur beides zusammen ansprechen
 * — und dann stünde auch der erste Satz grau und fett da.
 *
 * Der Name bleibt, obwohl er selten ist: Nur 381 der 7.266 Zitate nennen
 * überhaupt eine Quelle. Gerade deshalb ist er dort etwas wert.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content .oo-quote-source {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--oo-ink-quiet);
}

/*
 * Der Zeilenumbruch, der auf die Quellenangabe folgte, ist jetzt doppelt —
 * das <span> bringt seinen eigenen Absatz mit.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content .oo-quote-source + br {
	display: none;
}

/* <center> aus derselben Zeit — die Mitte war damals Mode. */
.oo-forum #wpforo #wpforo-wrap .wpforo-post-content center {
	text-align: left;
}

/* ==========================================================================
   Das Schreibfeld
   --------------------------------------------------------------------------
   wpForo bringt TinyMCE mit — WordPress' eigenen Editor, erweitert um
   Emoji, Code, Spoiler und Bildausrichtung. An der Technik ist nichts zu
   ändern: Er kann alles, was ein Forum braucht, und lädt nichts von fremden
   Servern.

   Sein Aussehen stammt allerdings aus einer anderen Zeit als der Rest der
   Seite — ein grau umrandeter Kasten, ein gelb hinterlegtes Titelfeld, eine
   Werkzeugleiste mit Rillen. Neben den Beitragskacheln sieht das aus wie
   ein Fremdkörper. Angeglichen wird deshalb nur die Oberfläche.
   ========================================================================== */

/* Das ganze Formular wird eine Kachel wie die Beiträge daneben. */
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor {
	padding: var(--oo-card-padding);
	background: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius);
}

/*
 * Das Titelfeld war blassgelb — in wpForos Vorlage die Kennzeichnung für
 * „Pflichtfeld". Das Sternchen an der Beschriftung sagt dasselbe, ohne die
 * Seite zu sprenkeln.
 */
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor input[type="text"],
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor input[type="search"],
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor textarea {
	background: var(--oo-surface) !important;
	border: 1px solid var(--oo-line-strong) !important;
	border-radius: var(--oo-radius-small) !important;
	padding: 9px 12px !important;
	font-size: 14px;
}

.oo-forum #wpforo #wpforo-wrap form.wpforoeditor input[type="text"]:focus,
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor textarea:focus {
	border-color: var(--oo-link) !important;
	outline: 2px solid rgba(30, 90, 168, 0.12);
	outline-offset: 0;
}

/*
 * Der Rahmen um den Editor: 3 px in Hellgrau werden zu 1 px in derselben
 * Linie, die auch die Kacheln begrenzt.
 */
.oo-forum #wpforo #wpforo-wrap .mce-tinymce,
.oo-forum #wpforo #wpforo-wrap .mce-panel {
	border: 1px solid var(--oo-line-strong) !important;
	border-radius: var(--oo-radius-small) !important;
	box-shadow: none !important;
}

/* Die Werkzeugleiste setzt sich leicht ab, statt aufzutragen. */
.oo-forum #wpforo #wpforo-wrap .mce-toolbar-grp {
	background: var(--oo-surface-quiet) !important;
	border-bottom: 1px solid var(--oo-line) !important;
}

/*
 * wpForos eigenes `themes/2026/style.css` setzt `.mce-btn-group { width:
 * 100% }`. Bei der vollen, ungruppierten Liste (24 Knöpfe in einer
 * einzigen Gruppe) blieb das folgenlos. Sobald `inc/editor.php` die Leiste
 * mit `|` in mehrere Gruppen teilt, zieht sich jede Gruppe einzeln auf die
 * volle Breite, und jede weitere Gruppe rutscht darunter — die Leiste
 * zerfällt in eine Spalte statt einer Zeile. Zwei IDs stehen auf beiden
 * Seiten, `!important` gibt hier den Ausschlag.
 */
.oo-forum #wpforo #wpforo-wrap .mce-toolbar .mce-btn-group {
	width: auto !important;
}

.oo-forum #wpforo #wpforo-wrap .mce-btn button {
	color: var(--oo-ink-soft) !important;
}

.oo-forum #wpforo #wpforo-wrap .mce-btn:hover,
.oo-forum #wpforo #wpforo-wrap .mce-btn.mce-active {
	background: var(--oo-tag-bg) !important;
	border-color: transparent !important;
	border-radius: var(--oo-radius-small) !important;
}

/* Die Beschriftungen über den Feldern. */
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor .wpf-field > label,
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor .wpf-title {
	font-size: 13px;
	font-weight: 600;
	color: var(--oo-ink-soft);
}

/*
 * Der Pflicht-Stern an „Titel" — Altfund A2 aus Aufgabe 9.
 *
 * `classes/Forms.php` schreibt ihn als eigenes Element:
 *   <span class="wpf-field-required-icon" title="…">*</span>
 * `colors.css` färbt ihn ohne `!important`:
 *   #wpforo #wpforo-wrap .wpf-field .wpf-field-required-icon{color:#ff812d;}
 * zwei IDs, zwei Klassen. `#ff812d` auf Weiß misst nur 2,49:1. Spezifität
 * reicht hier aus: der Selektor unten führt dieselben zwei IDs, dazu
 * `.oo-forum` UND `.wpf-field` UND `.wpf-field-required-icon` — drei Klassen
 * gegen wpForos zwei —, kein `!important` nötig.
 *
 * Der Stern ist ohnehin nicht die einzige Kennzeichnung: Das zugehörige Feld
 * trägt `required="required"` (`Forms.php`, Zeile 1115), das Screenreader
 * unabhängig vom Stern ansagen.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-field .wpf-field-required-icon {
	color: var(--oo-accent);
}

/*
 * Die Zeile „Datei anhängen" und die Kästchen darunter treten zurück: Sie
 * sind selten gebraucht und ziehen sonst mehr Aufmerksamkeit auf sich als
 * das Schreibfeld.
 */
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor .wpf-field-type-file,
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor .wpf-field-type-checkbox {
	font-size: 13px;
	color: var(--oo-ink-quiet);
}

/* Die gepunkteten Trennlinien zwischen den Feldreihen entfallen. */
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor .wpf-tr,
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor .wpf-td {
	border: 0 !important;
}

/*
 * TinyMCEs Statusleiste am Fuß des Schreibfelds. Sie zeigt den Namen des
 * Elements, in dem der Zeiger gerade steht — „P" für Absatz. Das ist eine
 * Auskunft für Menschen, die HTML schreiben, nicht für Menschen, die eine
 * Frage stellen wollen.
 */
.oo-forum #wpforo #wpforo-wrap .mce-statusbar {
	display: none !important;
}

/* Die gepunkteten Trennlinien zwischen den Feldreihen, zweiter Anlauf. */
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor .wpf-field,
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor .wpf-field-wrap,
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor .wpf-table,
.oo-forum #wpforo #wpforo-wrap form.wpforoeditor > div {
	border-top: 0 !important;
	border-bottom: 0 !important;
}

/* ==========================================================================
   Die Fehlerseite des Forums
   --------------------------------------------------------------------------
   Sie erscheint bei unbekannten Forenpfaden — `/community/members/` etwa,
   das es nicht gibt. Gemessen am 29.08.2026: eine 86 Pixel hohe „404" in
   Rot, darunter „Diese Seite gibt es nicht." in Orange (#ff812d) mit nur
   2,49:1 Kontrast gegen Weiß — WCAG AA verlangt 4,5:1 für Normaltext, das
   ist der schlechteste Wert der ganzen Seite. Dazu ein Suchfeld in einem
   gestrichelt umrandeten grauen Kasten. Neben den Kacheln des übrigen
   Auftritts sieht das aus wie eine fremde Seite.

   Die Vorlage (`themes/2026/404.php`) bleibt unangetastet; alles hier fasst
   ihre Klassen.

   Zur Selektorschreibweise: `colors.css` (erzeugt aus der Option
   `wpforo_styles_2026`) bindet mit zwei IDs UND setzt drei seiner Regeln mit
   `!important` — `.wpfcl-b` (die Zahl), `.wpfcl-5` (der Untertitel) und
   `.wpfbg-9` (der Kasten ums Suchfeld). Gegen ein `!important` verliert jede
   Spezifität; darum tragen genau diese drei Stellen unten selbst ein
   `!important`, alles andere kommt mit `.oo-forum #wpforo #wpforo-wrap …`
   aus — derselben dreifachen Bindung wie im Rest dieser Datei.

   WordPress' eigene 404 (für Nicht-Forenpfade) ist bereits ruhig und wird
   nicht berührt.
   ========================================================================== */

.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap {
	padding: var(--oo-card-padding);
	background: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius);
}

/*
 * Die Zahl klein und ruhig. Eine 86 Pixel hohe „404" schreit den Menschen an,
 * der sich ohnehin schon verlaufen hat.
 *
 * Die Farbe bleibt unangetastet: Die Zahl trägt wpForos eigene Klasse
 * „wpfcl-b", die `colors.css` mit `color: #9c3a3a !important` belegt — das
 * ist zufällig genau `--oo-accent`. Gegen das `!important` ließe sich zwar
 * mit einem eigenen `!important` auf `--oo-ink-quiet` umfärben, nötig ist es
 * nicht: 6,82:1 gegen Weiß liegt bereits deutlich über den geforderten
 * 4,5:1.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap .wpf-404 {
	width: auto;
	margin: 0;
	font-size: 32px;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
}

/*
 * „Diese Seite gibt es nicht." und der Folgesatz — dieselbe leise Stimme wie
 * überall sonst, statt des orangen Untertitels mit 2,49:1.
 *
 * `.wpfcl-5` bekommt sein Orange über `colors.css` mit `!important`
 * (`.wpfcl-5{ color:#ff812d!important; }`) — ohne eigenes `!important` bliebe
 * der Text orange, egal wie spezifisch der Selektor wird.
 *
 * Die Vorlage setzt auf demselben Absatz zusätzlich ein Inline-Style
 * (`style="text-align:center; font-size:18px;"`). Ein Inline-Style schlägt
 * jede Regel in einem Stylesheet, gleich wie spezifisch — nur nicht deren
 * `!important`. Größe und Ausrichtung tragen darum ebenfalls `!important`,
 * genau wie beim Balken von `.wpf-head-bar[style]` weiter oben in dieser
 * Datei.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap .wpfcl-5,
.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap .wpf-404-desc {
	font-size: 15px !important;
	color: var(--oo-ink-soft) !important;
	text-align: left !important;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap .wpf-404-desc {
	padding-top: 8px;
}

/*
 * Das Suchfeld in derselben Form wie in der Kopfleiste (`.oo-search__field`
 * in layout.css) — statt des gestrichelten grauen Kastens.
 *
 * Der Kasten trägt zusätzlich `wpfbg-9`, das `colors.css` mit
 * `background-color: #f5f5f5 !important` belegt; nur mit eigenem
 * `!important` verschwindet die Fläche wirklich.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap .wpf-search-box {
	width: auto;
	margin: 14px 0 0;
	padding: 0;
	text-align: left;
	background: none !important;
	border: 0;
}

/*
 * Feld und Knopf stehen bei wpForo als zwei `<input>` in einem `<p>`, durch
 * ein Leerzeichen im Markup getrennt — kein Flex-Rahmen. `white-space:nowrap`
 * aus `style.css` hält beide zwar in einer Zeile, aber sobald das Feld
 * `width: 100%` bekommt, füllt es die Zeile allein und der Knopf rutscht
 * darunter. Der Absatz wird deshalb selbst zur Flex-Zeile.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap .wpf-search-box p {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	white-space: normal;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap .wpf-search-field {
	flex: 1 1 auto;
	min-width: 0;
	width: auto;
	max-width: 24rem;
	min-height: 40px;
	margin: 0;
	padding: 8px 12px;
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius-small);
	box-shadow: none;
	font: inherit;
	font-size: 14px;
	color: var(--oo-ink);
}

.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap .wpf-search-field:focus {
	border-color: var(--oo-link);
	outline: 2px solid rgba(30, 90, 168, 0.12);
	outline-offset: 0;
}

/*
 * Der Knopf: `input[type="submit"]` trägt seine Akzentfarbe schon aus
 * `colors.css` (`#wpforo #wpforo-wrap input[type="submit"] { background:
 * #9c3a3a; color: #fff; … }`, ohne `!important`) — hier nur noch Maß und
 * Form wie bei den übrigen Knöpfen im Forum.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap input.wpf-search {
	flex: 0 0 auto;
	min-height: 40px;
	margin: 0;
	padding: 8px 18px;
	border-radius: var(--oo-radius-small);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

/*
 * Die drei leeren Absätze am Ende der Vorlage. Sie stammen aus einer Zeit,
 * in der man Abstand mit `&nbsp;` gemacht hat. `:empty` trifft sie nicht:
 * Jeder trägt ein geschütztes Leerzeichen als Textknoten und zählt damit
 * nicht als leer im Sinn von CSS — gemessen am 29.08.2026, die Regel blieb
 * mit `:empty` wirkungslos.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-404-wrap ~ p {
	display: none;
}

/* ==========================================================================
   Neueste Beiträge
   --------------------------------------------------------------------------
   `/community/recent/`, aus `themes/2026/recent-topics.php` (und ihrer
   Schwester `recent-posts.php`). Die Vorlage ist eine echte `<table>`: ein
   graues Band je Thema (`.wpf-ttr`), darunter eine weiße Zeile mit der
   neuesten Antwort (`.wpf-ttr`/`.wpf-ptr`) — Trennlinien statt Rand und
   Rundung, ein Etikett in Versalien vor dem Forennamen.

   Die Tabelle bleibt als Markup stehen, wird aber zur Anzeige aus dem
   Tabellenfluss genommen (`display: block`/`flex`): `margin`, `padding` und
   `border-radius` greifen auf einer `<tr>` sonst gar nicht — eine Zeile in
   Tabellenlayout ignoriert alle drei, gemessen am 30.08.2026.

   `.wpf-ttr` und `.wpf-ptr` bleiben zwei eigenständige Zeilen; sie zu einer
   Kachel mit gemeinsamer Rundung zu verschmelzen ginge nur über das Markup
   selbst. Die Titelzeile trägt die volle Kachel, die Antwortzeile darunter
   eine leisere, eingerückte zweite Kachel — erkennbar als Fortsetzung, ohne
   die Vorlage zu kopieren.
   ========================================================================== */

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-content table {
	display: block;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-content tbody {
	display: block;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-content .wpf-htr,
.oo-forum #wpforo #wpforo-wrap .wpforo-recent-content .wpf-htr td {
	display: block;
}

/* Der 2px hohe Trenner zwischen zwei Themen ohne Antwort — die Kachel trägt jetzt selbst den Abstand. */
.oo-forum #wpforo #wpforo-wrap .wpforo-recent-content .wpf-tr-sep {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-wrap .wpforo-recent-content .wpf-ttr {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	box-sizing: border-box;
	margin: var(--oo-card-gap) 0 0;
	padding: var(--oo-card-padding);
	background: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius);
}

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-wrap .wpforo-recent-content.wpfr-topics td.wpf-spost-avatar,
.oo-forum #wpforo #wpforo-wrap .wpforo-recent-wrap .wpforo-recent-content.wpfr-topics td.wpf-spost-title {
	display: block;
	width: auto;
	padding: 0;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-wrap .wpforo-recent-content.wpfr-topics td.wpf-spost-avatar {
	flex: 0 0 auto;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-wrap .wpforo-recent-content.wpfr-topics td.wpf-spost-title {
	flex: 1 1 auto;
	min-width: 0;
}

/* Die Antwortzeile: eine zweite, leisere Kachel direkt unter der Titelkachel. */
.oo-forum #wpforo #wpforo-wrap .wpforo-recent-content .wpf-ptr,
.oo-forum #wpforo #wpforo-wrap .wpforo-recent-content .wpf-ptr td {
	display: block;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-wrap .wpforo-recent-content .wpf-ptr {
	box-sizing: border-box;
	margin: 6px 0 0 42px;
	padding: 10px var(--oo-card-padding);
	background: var(--oo-surface-quiet);
	border: 1px solid var(--oo-line);
	border-radius: var(--oo-radius-small);
}

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-content .wpf-ptr .wpf-spost-icon {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-recent-wrap .wpforo-recent-content .wpf-ptr .wpf-stext {
	padding: 0;
}

/*
 * „FORUM" stand in Versalien: wpForos eigene Regel setzt
 * `text-transform: uppercase` auf die Beschriftung vor dem Forennamen. Die
 * Themenliste schreibt ihre Beschriftungen klein; hier zieht das Etikett nach.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-recent-wrap .wpforo-recent-content div.wpf-spost-forum .wpf-spost-forum-label {
	text-transform: none;
}

/*
 * Der Verfassername in der Antwortzeile wird auf fünf Zeichen gekürzt
 * (`wpforo_member_link( $poster, 'by %s', 5 )` in `recent-topics.php`,
 * ebenso 5 in `recent-posts.php`) — „Von Richa…" statt „Von Richard Sutter".
 * Das steckt im erzeugten Text selbst, nicht im CSS, und wpForo bietet dafür
 * keinen Filter an, der die Länge statt nur den Inhalt beeinflusst
 * (`wpforo_text()` filtert vor der Kürzung, nicht die Kürzung selbst).
 * Ohne Vorlagenkopie bleibt das offen — siehe Bericht.
 */

/* ==========================================================================
   Neuigkeiten — die Leermeldung
   --------------------------------------------------------------------------
   `/community/recent-activity/`, aus `themes/2026/activity.php`. Ohne
   Ereignisse zeigt wpForo eine 60px hoch gepolsterte, zentrierte Fläche mit
   einer grauen Uhr und „No activities found" in `#888` auf Weiß (3,54:1 —
   siehe Aufgabe 9, Befund A5). Aufgabe 6 hat dafür bereits einen Baustein:
   `.oo-notice` in base.css. Hierher übertragen, statt neu erfunden.

   Der Text selbst ist seit dem gettext-Filter oben deutsch; dieser Block
   fasst nur noch die Form.
   ========================================================================== */

.oo-forum #wpforo #wpforo-wrap .wpf-timeline-empty {
	padding: 0;
	text-align: left;
	color: inherit;
}

.oo-forum #wpforo #wpforo-wrap .wpf-timeline-empty-icon {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpf-timeline-empty p {
	padding: 10px 14px;
	margin-bottom: var(--oo-card-gap);
	background: var(--oo-surface-quiet);
	border-left: 3px solid var(--oo-line-strong);
	border-radius: var(--oo-radius-small);
	color: inherit;
}

/* ==========================================================================
   Suche
   --------------------------------------------------------------------------
   `/community/?wpfs=…`, aus `themes/2026/search.php`. Treffer standen als
   linien­getrennte Zeilen (`border-bottom` statt Rand und Rundung), jeder mit
   einem bernsteinfarbenen Chip „N Relevanz" (`#fef3c7`/`#92400e`) — ein Ton
   außerhalb der Palette. Die Wortstellung „53 Relevanz" bleibt: Die Zahl
   steht als eigenes `echo` neben `wpforo_phrase( 'relevance' )`, nicht darin
   — dieselbe Falle wie bei „Antworten: 0", nur diesmal ohne sauberen Weg
   heraus, denn hier gibt es keine deutsche Wortform, die vor UND nach einer
   freistehenden Zahl richtig steht. Ohne Vorlagenkopie bleibt das offen.

   Die Leermeldung bekommt dieselbe `.oo-notice`-Form wie „Neuigkeiten" oben.
   ========================================================================== */

.oo-forum #wpforo #wpforo-wrap .wpf-search-result-card {
	margin-bottom: var(--oo-card-gap);
	padding: var(--oo-card-padding);
	background: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius);
}

.oo-forum #wpforo #wpforo-wrap .wpf-search-result-card:last-child {
	margin-bottom: 0;
}

/* Der Relevanz-Chip in der ruhigen Markenfarbe der Schlagwörter, statt in Bernstein. */
.oo-forum #wpforo #wpforo-wrap .wpf-sr-relevance {
	background: var(--oo-tag-bg);
	color: var(--oo-tag-ink);
}

.oo-forum #wpforo #wpforo-wrap .wpf-sr-relevance i {
	color: var(--oo-tag-ink);
}

/*
 * Das Datum am Treffer — Altfund A4 aus Aufgabe 9.
 *
 * Das Markup (`themes/2026/search.php`):
 *   <div class="wpf-sr-meta-item wpf-sr-date"><i></i><span>18.01.2025</span></div>
 * `colors.css` färbt nicht den `span`, sondern den umgebenden Container:
 *   #wpforo #wpforo-wrap .wpf-sr-meta-item{ color:#999999; }
 * `#999999` auf Weiß misst 2,85:1. Der `span` selbst trägt keine eigene
 * Regel und ERBT den Wert nur — eine Vererbung verliert gegen jede direkt
 * zutreffende Deklaration, unabhängig von deren Spezifität. Ein eigener,
 * unspektakulärer Selektor auf den `span` genügt darum, kein `!important`
 * nötig — dasselbe Muster wie beim Datum in `base.css`
 * (`.wpforo-topic-start-info .wpforo-date`).
 */
.oo-forum #wpforo #wpforo-wrap .wpf-sr-date span {
	color: var(--oo-ink-quiet);
}

.oo-forum #wpforo #wpforo-wrap .wpf-sr-empty {
	padding: 0;
	text-align: left;
	background: transparent;
	border: 0;
}

.oo-forum #wpforo #wpforo-wrap .wpf-sr-empty-icon {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpf-sr-empty p {
	padding: 10px 14px;
	margin-bottom: 0;
	background: var(--oo-surface-quiet);
	border-left: 3px solid var(--oo-line-strong);
	border-radius: var(--oo-radius-small);
	color: inherit;
}

/* ==========================================================================
   Schlagwortübersicht
   --------------------------------------------------------------------------
   `/community/tags/`, aus `themes/2026/tags.php`. Das Formular stand ohne
   jede Fläche da: `colors.css` gibt dem Suchformular seinen grauen Kasten nur
   über `.wpforo-search-wrap .wpf-search-bar` — diesen Wrapper trägt nur die
   Suchergebnisseite (`search.php`), die Schlagwortübersicht bindet dasselbe
   `.wpf-search-bar` ohne ihn ein. Hier dieselbe Kachelform wie die
   Themenliste, statt wpForos grauem Ton.
   ========================================================================== */

.oo-forum #wpforo #wpforo-wrap .wpforo-tags-wrap .wpf-search-bar {
	padding: var(--oo-card-padding);
	background: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius);
}

/*
 * Der verirrte Punkt unter den Schlagwörtern.
 *
 * wpForos Autovervollständigung (`assets/js/ajax.js`) legt für das
 * Suchfeld ein leeres `<ul class="wpf_ac_results">` an, positioniert per
 * Inline-Style. Ohne Einträge bleibt vom 1px-Rand ringsum nur ein winziges
 * Quadrat übrig — auf `/community/tags/` sah das wie ein loser Listenpunkt
 * unter den Wimpeln aus. Es steht leer, bis jemand tippt; leer soll es auch
 * unsichtbar bleiben, unabhängig von seiner Position.
 *
 * Kein `#wpforo #wpforo-wrap` davor: Das Element hängt als direktes Kind an
 * `<body>`, nicht im wpForo-Baum — `.oo-forum` genügt und trifft.
 */
.oo-forum .wpf_ac_results:empty {
	display: none;
}

/* ==========================================================================
   Profil
   --------------------------------------------------------------------------
   `/participant/<name>/`, aus `themes/2026/profile.php` und
   `profile-home.php`. Der lauteste Bruch des Auftritts: ein Fotobanner
   (graues Origami, das einzige Foto der ganzen Seite), darunter elf
   Zahlenkacheln in neun Pastelltönen, die es im Theme nicht gibt.

   Es bleibt, was es wirklich gibt: Name, Rang, Dabei seit, drei Zahlen. Die
   Auswahl der Zahlen und ihre Begründung stehen in `inc/profile.php`, die
   deutschen Rangbezeichnungen in `mu-plugins/forum-styles.php`.

   Drei Dinge verschwinden hier per CSS, weil wpForo keinen Schalter dafür
   hat; der Folgen-Knopf verschwindet stattdessen über eine Einstellung,
   siehe dort. `display: none` und nicht `visibility` oder `opacity`: Nur so
   fällt das Element auch aus dem Tab-Fluss und aus dem Zugänglichkeitsbaum.
   ========================================================================== */

/*
 * Aus dem Fotobanner wird die obere Hälfte einer Kachel.
 *
 * `!important` ist hier belegt und nicht bequem: wpForo schreibt das Bild als
 * Inline-Style ans Element (`wpforo_profile_head_attrs()`), und dagegen kommt
 * kein Stylesheet ohne an. Die Einstellung `profiles/default_cover` hilft
 * nicht — ein leerer Wert fällt in `classes/Settings.php` auf das
 * mitgelieferte Bild zurück, und ein selbst hochgeladenes Titelbild eines
 * Mitglieds ginge ohnehin daran vorbei.
 *
 * `position: static` löst das ganze überlagerte Gefüge auf: Panel und Avatar
 * hingen absolut im Banner, 37px darüber hinaus. Ohne Banner braucht es das
 * nicht mehr.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head {
	position: static;
	height: auto;
	padding: var(--oo-card-padding) var(--oo-card-padding) 0;
	background-image: none !important;
	background-color: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-bottom: 0;
	border-radius: var(--oo-radius) var(--oo-radius) 0 0;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-panel {
	position: static;
	width: auto;
	min-height: 0;
	align-items: center;
}

/*
 * Der Verweisblock „Forenübersicht | Neueste Beiträge".
 *
 * Er saß als weiße Schrift oben rechts im Foto und wäre ohne Foto weiß auf
 * weiß. Beide Ziele stehen ohnehin in der Navigationsspalte links — aus
 * demselben Grund ist auch wpForos eigenes Menü ausgeblendet.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head .wpforo-profile-back {
	display: none;
}

/* Das Profilbild: 150px waren die Größe eines Banners, nicht die einer Zeile. */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-panel .wpf-profile-avatar {
	width: auto;
	flex: 0 0 auto;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-panel .wpf-profile-avatar img,
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-panel .wpf-profile-avatar img.avatar {
	width: 64px;
	height: 64px;
	border: 0;
	display: block;
}

/*
 * Der Anwesenheitspunkt am Profilbild.
 *
 * Er säße jetzt an der Stelle, an der er beim 150px-Bild saß, und er sagt
 * ohnehin nichts: Die Anzeige springt nach vier Minuten Ruhe auf
 * „Abwesend", und abwesend sind hier praktisch alle — der Bestand stammt aus
 * zwanzig Jahren Forengeschichte. Ein Punkt, der nie etwas anderes zeigt.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-panel .wpf-profile-avatar .wpf-profile-online {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-panel .wpforo-profile-head-data {
	padding-top: 0;
	padding-left: 14px;
}

/*
 * Der Name stand auf einem halbdurchsichtigen weißen Feld, damit er sich
 * gegen das Foto behauptet. Ohne Foto ist das Feld überflüssig.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-panel .wpforo-profile-head-data .wpf-profile-details {
	padding: 0;
	max-width: none;
	background-color: transparent;
	opacity: 1;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-panel .wpforo-profile-head-data .wpf-profile-details .wpfp-name {
	font-size: 18px;
	color: var(--oo-ink);
}

.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpf-profile-details .wpfp-name .wpf-author-nicename {
	font-size: 13px;
	color: var(--oo-ink-quiet);
	border-left-color: var(--oo-line-strong);
}

/*
 * Rang und „Dabei seit" bilden die untere Hälfte derselben Kachel. Der
 * linke Einzug bringt sie unter den Namen: 18px Kachelrand plus 64px
 * Profilbild plus 14px Abstand.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-bottom {
	margin-top: 0;
	padding: 6px var(--oo-card-padding) var(--oo-card-padding) 96px;
	align-items: baseline;
	background: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-top: 0;
	border-radius: 0 0 var(--oo-radius) var(--oo-radius);
}

/*
 * Der Kasten für die Benutzergruppe steht auf den meisten Profilen leer:
 * Sie wird nur für die Gruppen 1, 2, 4 und 5 ausgegeben, die große Mehrheit
 * steht in Gruppe 3. Leer trug er trotzdem seine 16px Innenabstand und schob
 * den Rang um genau diese 16px aus der Flucht des Namens.
 *
 * `:has(*)` und nicht `:empty`: In dem Kasten steht Leerraum aus der
 * Vorlage, damit trifft `:empty` nie. Steht eine Gruppe darin, ist es ein
 * `<span>` — dann bleibt der Kasten stehen.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-bottom .wpfp-ug:not(:has(*)) {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-bottom .wpfp-reputation {
	line-height: 1.5;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-bottom .wpf-member-title {
	font-size: 13px;
	color: var(--oo-ink-quiet);
}

/*
 * Die Sternchen neben dem Rang.
 *
 * Sie sagen dasselbe wie das Wort daneben, nur als Sinnbild — und in Tönen,
 * die es im Theme nicht gibt (`#d2d2d2`, `#4dca5c`, `#E5D600`). Auf der
 * untersten Stufe, auf der die meisten stehen, ist der halbe Stern in
 * `#d2d2d2` gegen Weiß mit 1,5:1 ohnehin nicht zu sehen.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-bottom .author-rating-full {
	display: none;
}

/*
 * „Dabei seit" stand in `#777` auf Weiß — 4,48:1 und damit um 0,02 unter der
 * Schwelle. Ein Altfund (A6 aus dem Befund vom 30.08.2026).
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-bottom .wpfp-joined {
	font-size: 13px;
	line-height: 1.5;
	color: var(--oo-ink-quiet);
}

/*
 * Die Leiste unter der Kachel.
 *
 * Sie trug oben und unten je eine graue Linie um den Folgen-Knopf herum.
 * Ohne den Knopf steht dort abgemeldet gar nichts mehr und im eigenen Profil
 * nur noch die beiden Werkzeuge rechts — zwei Linien um nichts herum.
 */
.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-user-actions {
	margin-top: 0;
	padding: 0;
	border: 0;
}

.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-user-actions .wpforo-user-tools {
	padding-top: 12px;
}

/* --------------------------------------------------------------------------
   Die Zahlen
   -------------------------------------------------------------------------- */

/*
 * wpForos elf Kacheln weichen den eigenen — aber nur, wenn es die eigenen
 * gibt. Bleibt der Anschluss `wpforo_profile_after_statbox` nach einem
 * Update aus, greift `:has()` nicht und wpForos Kacheln stehen wieder da.
 * Das ist Absicht: Eine Anpassung, die still ins Leere läuft, soll nicht in
 * eine leere Fläche laufen.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-profile-section .wpf-stat-wrap:has(.oo-statbox) > .wpf-statbox:not(.oo-statbox) {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpf-profile-section.wpf-section-stat {
	margin-top: 18px;
}

.oo-forum #wpforo #wpforo-wrap .wpf-profile-section .wpf-stat-wrap {
	margin-top: 0;
	gap: var(--oo-card-gap);
}

/* Dieselbe Kachel wie in der Themenliste: weiß, 1px Rand, 12px Radius. */
.oo-forum #wpforo #wpforo-wrap .wpf-profile-section .wpf-statbox {
	width: auto;
	min-width: 140px;
	margin: 0;
	padding: 12px 16px;
	flex-direction: column;
	align-items: flex-start;
	background: var(--oo-surface);
	border: 1px solid var(--oo-line-strong);
	border-radius: var(--oo-radius);
}

/*
 * Die Sinnbilder in ihren Pastellquadraten entfallen. Ihre Farben stehen als
 * Inline-Style in der Vorlage und ließen sich nur mit `!important`
 * überschreiben — und ein Bleistift neben der Zahl der Beiträge erklärt
 * nichts, was die Beschriftung darunter nicht schon sagt.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-profile-section .wpf-statbox .wpf-statbox-icon {
	display: none;
}

.oo-forum #wpforo #wpforo-wrap .wpf-profile-section .wpf-statbox .wpf-statbox-data {
	padding-left: 0;
}

.oo-forum #wpforo #wpforo-wrap .wpf-profile-section .wpf-statbox .wpf-statbox-value {
	font-size: 20px;
	line-height: 1.2;
	color: var(--oo-ink);
}

.oo-forum #wpforo #wpforo-wrap .wpf-profile-section .wpf-statbox .wpf-statbox-title {
	margin-top: 2px;
	font-size: 12px;
	color: var(--oo-ink-quiet);
}

/*
 * Schmale Schirme. Die Grenze ist 800px und nicht die sonst im Theme übliche
 * 767px: Genau dort stellt wpForo den Kopf von einer Zeile auf eine Spalte
 * um (`themes/2026/style.css`, `@media screen and (max-width:800px)`). Eine
 * eigene, andere Grenze ergäbe dazwischen einen Streifen, in dem beides
 * halb gilt.
 *
 * `align-items` muss hier zurückgestellt werden, weil es in der Spalte nicht
 * mehr senkrecht, sondern waagerecht wirkt — sonst steht das Profilbild
 * mittig über einem linksbündigen Namen.
 *
 * Der Einzug unter dem Namen fällt weg; Rang und Dabei seit stehen am linken
 * Kachelrand.
 */
@media (max-width: 800px) {
	.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-panel {
		align-items: flex-start;
	}

	.oo-forum #wpforo #wpforo-wrap .wpforo-profile .wpforo-profile-head-bottom {
		padding-left: var(--oo-card-padding);
	}
}

/*
 * „Letzter Beitrag", nicht „letzter beitrag".
 *
 * wpForo zwingt die Kleinschreibung im Template selbst herbei, als
 * Inline-Stil: `<span style="text-transform: lowercase;">` in
 * `themes/2026/recent-topics.php`. Im Englischen fällt das nicht auf — „last
 * post" ist ohnehin klein. Im Deutschen trifft es das Substantiv, und die
 * Phrase in der Tabelle steht korrekt als „Letzter Beitrag" da; sichtbar wurde
 * daraus trotzdem „letzter beitrag:".
 *
 * Ein Inline-Stil schlägt jede Regel aus einer Datei, ganz gleich wie
 * spezifisch — nur `!important` kommt dagegen an. Das ist hier kein Verlegen-
 * heitsgriff, sondern der einzige Weg ohne Änderung am Template.
 */
.oo-forum #wpforo #wpforo-wrap .wpf-spost-title span[style*="lowercase"] {
	text-transform: none !important;
}

/* ------------------------------------------------------- schmale Geräte */

/*
 * Wer wann geschrieben hat, steht auch am Handy da.
 *
 * wpForos eigenes Stylesheet blendet die Verfasserzeile unter 900 px aus. Am
 * 02.09.2026 gemessen: 24 Blöcke auf `display: none`, die Kachel zeigte nur
 * noch Titel und Antwortzahl. Gerade diese Zeile hatte hier kurz zuvor Arbeit
 * bekommen — volle Namen statt Schnitt nach zwölf Zeichen, linksbündig in
 * einer Flucht —, und sie ist die einzige Auskunft darüber, ob eine Frage von
 * gestern oder von 2011 stammt.
 *
 * Statt der 140-px-Spalte steht sie schmal unter dem Titel: die Zeile darf
 * umbrechen, der Block nimmt die volle Breite und trägt keinen Einzug mehr.
 */
@media (max-width: 899px) {
	.oo-forum #wpforo #wpforo-wrap .wpforo-last-topics-list > ul > li {
		flex-wrap: wrap;
		/*
		 * Der Zeilenabstand ist nicht der Spaltenabstand. `gap: 16px` gilt
		 * nebeneinander wie untereinander — umgebrochen entstanden dadurch
		 * 18 px zwischen Titel und Verfasserzeile, während zur Trennlinie
		 * darunter nur 6 px blieben. Die Angabe klebte damit optisch am
		 * nächsten Thema statt an ihrem eigenen.
		 *
		 * Der Selektor muss `> ul > li` lauten wie die Regel, gegen die er
		 * antritt. Mit `li` allein fehlte ein Element in der Spezifität, und
		 * die 16 px blieben stehen — ohne Fehlermeldung, der Abstand sah nur
		 * unverändert aus.
		 */
		row-gap: 2px;
	}

	.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-user {
		display: block !important;
		width: auto;
		flex: 1 1 100%;
		padding-left: 0;
		margin-top: 2px;
	}

	/*
	 * Und zwar in einer Zeile, nicht in zweien.
	 *
	 * In der Spalte am Schreibtisch stehen Name und Datum untereinander, dafür
	 * sorgt ein `<br>` im Template. Über die volle Breite gelegt kostete das
	 * 37 px je Themenzeile und die Übersicht wuchs um 1.320 px. Nebeneinander
	 * mit einem Mittelpunkt getrennt sind es 18 px — und es liest sich wie die
	 * Angabe in der Themenliste, die es seit jeher so schreibt.
	 */
	.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-user br {
		display: none;
	}

	.oo-forum #wpforo #wpforo-wrap .wpforo-last-topic-date::before {
		content: " · ";
	}

	/*
	 * Der Platzhalter im Suchfeld weicht. Bei 390 px bleiben dem Feld 92 px,
	 * davon 36 für das Lupensymbol — „Suchen" wurde zu „Sucł" abgeschnitten.
	 * Das Feld trägt ein eigenes Label (`screen-reader-text` im Kopf), der
	 * Platzhalter ist reine Zierde und sagt nichts, was die Lupe nicht sagt.
	 */
	.oo-search__field::placeholder {
		color: transparent;
	}
}
