/* ===================== playerlist.php ("plp-" prefix) =====================
   Moved out of playerlist.php's inline <style> block 2026-08-11 (continuing the page-by-page
   cleanup, see css/dyne.css's own header for the project). All static, no PHP-variable
   interpolation, so this is a clean 1:1 move. Originally "Design von freeagents.php uebernommen"
   (own comment) — .plp-pill's color values match .fap-pill's exactly, but they're genuinely
   separate classes by design (see css/freeagents.css's header for why that's not the same kind
   of duplication as rh-pill was), left alone. */

.plp-page { max-width: 1360px; margin: 0 auto; background: #ffffff; }
.plp-content { padding: 16px 20px 26px; box-sizing: border-box; }

/* Saison-Dropdown im Nav-Bereich ($page_local_html, siehe playerlist.php) - Ausrichtung an der
   linken Kante von .plp-content per plpSyncNavLocalPadding() (vor </body>), analog
   standings.php's .stp-navlocal. Nutzt die geteilte ".season-select"-Optik aus css/dyne.css
   (konsolidiert 2026-08-23, identisch zu roster.php/standings.php/etc. statt einer eigenen
   .plp-season-select-Kopie) - bewusst NICHT .plp-select (der helle Formular-Select-Stil aus dem
   Filterpanel unten), der wuerde auf dem dunklen Nav-Hintergrund nicht passen. */
.plp-navlocal { flex: 0 0 auto; box-sizing: border-box; display: flex; align-items: center; }

.plp-filters { background: #f4f6f8; border: 1px solid #dde1e6; border-radius: 6px; padding: 14px 16px; margin-bottom: 14px; display: flex; flex-direction: column; gap: 12px; }
.plp-filter-row1 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.plp-search { flex: 1 1 200px; min-width: 160px; padding: 7px 10px; border-radius: 5px; border: 1px solid #ccd3da; font-size: 12.5px; color: #1b2733; font-family: inherit; }
/* Team-Filter direkt in Zeile 1 neben der Namenssuche (User-Wunsch 2026-09-08: "ohne ausklappen
   sichtbar") - eigene, feste Breite statt .plp-select's normalem width:100%, da es hier ohne den
   umschliessenden Grid-Wrapper aus #plp-shared-filters auskommen muss (sonst wuerde der Select in
   der Flex-Zeile neben der Suche unkontrolliert wachsen). */
.plp-team-filter { flex: 0 0 150px; }
.plp-team-filter .plp-select { width: 100%; }
.plp-adv-toggle { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; background: transparent; border: 1px solid #ccd3da; color: #1b2733; font-size: 12px; font-weight: 600; padding: 6px 12px; border-radius: 16px; cursor: pointer; font-family: inherit; }
.plp-adv-toggle svg { transition: transform .15s ease; }
.plp-adv-toggle.open svg { transform: rotate(180deg); }

.plp-adv-panel { padding-top: 10px; border-top: 1px dashed #ccd3da; margin-top: 2px; }
/* #plp-normal-filters/#plp-ratings-filters (User-Wunsch 2026-09-07) - siehe freeagents.php's
   identischer Kommentar: die urspruengliche Grid-Regel sass direkt auf .plp-adv-panel, jetzt auf
   den inneren Normal-Wrapper verschoben, da die Ratings-Filter ihr eigenes .plp-fgrid-Layout brauchen.
   #plp-shared-filters (nur noch Position, Team wanderte 2026-09-08 in Zeile 1, siehe .plp-team-filter
   oben - unabhaengig von der Ansicht sichtbar, siehe PHP-Kommentar an der Markup-Stelle) teilt sich
   dieselbe Grid-Regel wie #plp-normal-filters. */
#plp-normal-filters, #plp-shared-filters { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 16px; }
#plp-shared-filters { padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px dashed #e2e4e7; }
@media (max-width: 980px) { #plp-normal-filters, #plp-shared-filters { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { #plp-normal-filters, #plp-shared-filters { grid-template-columns: 1fr; } }
/* Position als Checkbox-Set statt Einzelwert-Dropdown (User-Wunsch 2026-09-08: "so wie bei
   playerratings mit 5 Kaestchen") - 1:1 dieselbe Struktur wie freeagents.css's .fap-pos-group,
   nur mit dem hier bereits vorhandenen (kleineren) .plp-chip statt .fap-chip. */
.plp-pos-group { display: flex; gap: 4px; flex-wrap: wrap; }
.plp-field label { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: #66707c; font-weight: 700; margin-bottom: 4px; }
.plp-select { font-family: inherit; font-size: 12px; padding: 6px 8px; border-radius: 5px; border: 1px solid #ccd3da; background: #fff; color: #1b2733; width: 100%; box-sizing: border-box; }
.plp-range { display: flex; align-items: center; gap: 6px; }
.plp-range input { width: 100%; font-family: inherit; font-size: 12px; padding: 6px 8px; border-radius: 5px; border: 1px solid #ccd3da; color: #1b2733; font-variant-numeric: tabular-nums; box-sizing: border-box; }
.plp-range span { color: #66707c; font-size: 11px; }
.plp-adv-actions { display: flex; gap: 8px; padding-top: 10px; margin-top: 10px; border-top: 1px dashed #ccd3da; }
.plp-btn { font-family: inherit; font-size: 12px; font-weight: 600; padding: 7px 14px; border-radius: 5px; cursor: pointer; border: 1px solid #2c3e50; text-decoration: none; display: inline-block; }
.plp-btn.ghost { background: transparent; color: #2c3e50; }
.plp-btn.ghost:hover { background: #eef1f4; }

/* Ratings-Filter (User-Wunsch 2026-09-07): 1:1 dieselbe Struktur wie freeagents.css's Pendant
   (siehe dessen ausfuehrlicher Kommentar). .plp-chip wurde dafuer eingefuehrt und wird seit
   2026-09-08 auch vom Position-Filter (.plp-pos-group oben) mitgenutzt. */
.plp-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 16px; background: #eef1f4; border: 1px solid #ccd3da; color: #1b2733; font-size: 11px; font-weight: 600; cursor: pointer; white-space: nowrap; user-select: none; }
.plp-chip input { margin: 0; }
.plp-chip:has(input:checked) { background: #2c3e50; color: #fff; border-color: #2c3e50; }
.plp-panel-search { margin-bottom: 12px; }
.plp-panel-search input { width: 100%; max-width: 320px; padding: 7px 10px; border: 1px solid #ccd3da; border-radius: 5px; font-size: 12px; font-family: inherit; background: #fff; }
.plp-fgroup { margin-bottom: 14px; }
.plp-fgroup:last-of-type { margin-bottom: 0; }
.plp-fgroup-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #66707c; margin: 0 0 8px; padding-bottom: 5px; border-bottom: 1px dashed #ccd3da; }
.plp-fgrid { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.plp-fgrid .plp-field { display: flex; flex-direction: column; gap: 3px; min-width: 120px; }
.plp-checks { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 767px) { .plp-fgrid { gap: 8px; } }

/* max-height + overflow-y:auto (analog freeagents.php/css/freeagents.css, User-Wunsch
   2026-08-17: Kopfzeile soll beim Runterscrollen sichtbar bleiben) statt eines rein page-
   weiten position:sticky auf <thead th> - CSS-Spec-Grund: sobald overflow-x auf einem Element
   nicht "visible" ist, wird der computed Wert von overflow-y automatisch ebenfalls "auto"
   (CSS Overflow Module, "aligned" overflow-x/-y-Regel), .plp-table-scroll war also durch sein
   eigenes overflow-x:auto schon immer sein eigener Scroll-Container - ein sticky thead darin
   haette sich NIE auf das Scrollen der Gesamtseite bezogen, sondern nur auf das (nie
   stattfindende, da ungebundene Hoehe) interne Scrollen dieser Box, also komplett wirkungslos
   geblieben. explizite max-height macht diesen ohnehin schon bestehenden Scroll-Container
   real nutzbar statt eines Bugs. */
.plp-table-scroll { overflow-x: auto; overflow-y: auto; max-height: calc(100vh - 260px); min-height: 200px; }
table.plp-table { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 1080px; }
.plp-table thead th { position: sticky; top: 0; z-index: 3; background: #2c3e50; color: #fff; font-weight: 700; text-align: center; padding: 8px 6px; white-space: nowrap; box-shadow: 0 2px 3px rgba(0,0,0,0.15); }
.plp-table thead th.left { text-align: left; padding-left: 12px; }
.plp-table thead th.sorted { background: #1a2733; }
.plp-table thead th a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 3px; }
.plp-table tbody td { padding: 6px; text-align: center; border-bottom: 1px solid #e2e4e7; vertical-align: middle; }
.plp-table tbody td.left { text-align: left; padding-left: 12px; }
.plp-table tbody tr:nth-child(odd) { background: #fff; }
.plp-table tbody tr:nth-child(even) { background: #f5f6f8; }
.plp-table tbody tr:hover { background: #eaf1f8; }
/* Tradestatus "Trade Gesucht" (Stufe 4) Zeilenhervorhebung - 1:1 dieselben Farben wie roster.php's
   .rh-tradeblock-row, User-Wunsch 2026-09-12. Bewusst auf <tr> statt <td> gesetzt (anders als
   roster.css's Pendant): .plp-table tbody td traegt hier ohnehin keine eigene Hintergrundfarbe
   (die Zebra-Streifen oben sitzen bereits auf <tr>), .sticky-col liest seine Farbe per
   background:inherit direkt vom <tr> ab (siehe .sticky-col-Regel unten) - ein zusaetzliches
   td-Overwrite waere hier reine Wiederholung. Gleiche Spezifitaet wie die nth-child-Regeln oben
   (0,2,2) - muss deshalb NACH ihnen im Quelltext stehen, um den Gleichstand per Reihenfolge zu
   gewinnen; die :hover-Variante braucht das nicht (3 statt 2 Klassen-Selektoren, gewinnt regulaer). */
.plp-table tbody tr.plp-tradeblock-row { background: #fdf1cf; }
.plp-table tbody tr.plp-tradeblock-row:hover { background: #fbe6a8; }
.plp-table td.sticky-col, .plp-table th.sticky-col { position: sticky; left: 0; z-index: 1; background: inherit; box-shadow: 2px 0 4px rgba(0,0,0,0.06); }
.plp-table thead th.sticky-col { background: #2c3e50; z-index: 4; }
.plp-table thead th.sticky-col.sorted { background: #1a2733; }
.plp-player-cell { display: flex; align-items: center; gap: 8px; }
.plp-playerpic { width: 32px; height: 32px; border-radius: 4px; object-fit: cover; flex-shrink: 0; }
.plp-name-link { color: #2c3e50; font-weight: 600; text-decoration: underline; }
.plp-muted { color: #a9b0b8; }
.plp-empty { text-align: center; padding: 30px; color: #66707c; font-size: 14px; }

/* Tradestatus-Punkt + Legende (User-Wunsch 2026-09-12, "wie bei roster.php") - .plp-legend-dot
   wird sowohl in der Tabellenzelle (plp_tradeblock_dot()) als auch in der Legende darunter
   genutzt, nur die Hintergrundfarbe kommt jeweils inline. Groesse/Form 1:1 wie roster.php's
   roster_tradeblock_dot() (10px Kreis). .plp-legend selbst kopiert roster.css's .rh-legend
   (dortige Klasse ist page-lokal, kein dyne.css-Kandidat - siehe dessen eigener Kommentar). */
.plp-legend-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; vertical-align: middle; }
.plp-legend { font-size: 11px; margin-top: 10px; background-color: #f4f8f5; padding: 8px 12px; border-radius: 4px; text-align: center; }

/* ===================== Ratings-Ansicht (Umschalter, User-Wunsch 2026-09-07) =====================
   Zweite Ansicht neben der normalen Spielerliste: dieselben Zeilen/Filter, aber die 2K-Ratings-
   Spalten (Attributes/Badges/Hot Zones) statt der normalen Spalten, wie auf playerratings.php/
   freeagents.php (siehe dortiger CSS-Kommentar fuer die volle Herleitung, hier 1:1 uebernommen).
   Umschalter selbst ist .plp-seg (css/dyne.css, "richtiger Switch wie z.B. capspace.php" - User-
   Korrektur 2026-09-07, ersetzt die anfaengliche dunkle .plp-navtab-Optik). */
.plp-view-toggle { margin-left: 10px; }
/* Eigene Zeile oberhalb des Inhalts, rechtsbuendig (User-Wunsch 2026-09-12, herausgeloest aus dem
   Nav-Bereich - siehe playerlist.php's Kommentar an der Markup-Stelle). margin-left statt der
   Toggle-eigenen margin-left:10px (die galt nur fuer die Position neben dem Saison-Dropdown). */
.plp-view-toggle-row { display: flex; justify-content: flex-end; margin-bottom: 10px; }
.plp-view-toggle-row .plp-view-toggle { margin-left: 0; }

.plp-group-toggles { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0 0; }
.plp-group-chip { border: 1px solid #ccd3da; background: #fff; color: #66707c; border-radius: 9px; padding: 6px 12px; font-size: 11.5px; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; letter-spacing: .02em; cursor: pointer; user-select: none; }
.plp-group-chip.active { background: #2c3e50; border-color: #2c3e50; color: #fff; }
.plp-group-chip .n { opacity: .7; font-weight: 500; margin-left: 3px; }

/* Spielervergleich (User-Wunsch 2026-09-07) - siehe freeagents.css's identischer Kommentar,
   identische Werte. */
.plp-compare-toggle { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #0f7a72; background: #fff; color: #0f7a72; border-radius: 16px; padding: 6px 12px 6px 10px; font-size: 11.5px; font-weight: 700; font-family: inherit; cursor: pointer; }
.plp-compare-toggle.active { background: #0f7a72; color: #fff; }
.plp-compare-toggle:hover { filter: brightness(0.97); }

.plp-table th.plp-chk-col, .plp-table td.plp-chk-col { display: none; width: 34px; padding: 6px 4px; text-align: center; position: sticky; left: 0; z-index: 1; }
#plp-results.plp-compare-mode .plp-table th.plp-chk-col, #plp-results.plp-compare-mode .plp-table td.plp-chk-col { display: table-cell; }
.plp-table thead th.plp-chk-col { background: #2c3e50; z-index: 4; }
.plp-rowchk { width: 15px; height: 15px; accent-color: #0f7a72; cursor: pointer; }
#plp-results.plp-compare-mode .plp-table th.sticky-col,
#plp-results.plp-compare-mode .plp-table td.sticky-col { left: 34px; }
#plp-results.plp-compare-mode .plp-table th.plp-ovr-col,
#plp-results.plp-compare-mode .plp-table td.plp-ovr-col { left: calc(34px + var(--plp-player-w, 190px)); }
.plp-table tbody tr.is-checked { background: #e3f5f3; }

.plp-player-meta { display: flex; flex-direction: column; line-height: 1.25; overflow: hidden; }
/* Spielername darf NIE umbrechen (User-Wunsch 2026-09-08, siehe freeagents.css's identischer
   Kommentar fuer die volle Begruendung: ohne dieses white-space:nowrap laesst die automatische
   Tabellen-Breitenberechnung die Namensspalte als "am ehesten kompressibel" schrumpfen, sobald die
   Summe aller Spaltenbreiten den verfuegbaren Platz uebersteigt). Gilt fuer .plp-name-link (beide
   Ansichten) sowie den unverlinkten <span>-Fallback (Uebersicht: direktes Kind von .plp-player-cell,
   Ratings: direktes Kind von .plp-player-meta). */
.plp-name-link, .plp-player-cell > span, .plp-player-meta > span { white-space: nowrap; }
.plp-player-sub { display: flex; align-items: center; gap: 5px; margin-top: 1px; }
.plp-pos-tag { font-size: 10px; color: #66707c; font-weight: 600; }

/* OVR als zweite fixierte Spalte in der Ratings-Ansicht - identisches Prinzip wie freeagents.php/
   playerratings.php: --plp-player-w kommt per JS aus der tatsaechlich gerenderten Spieler-
   Spaltenbreite, 190px nur als Fallback bis das erste Mal gemessen wurde. */
.plp-table th.plp-ovr-col, .plp-table td.plp-ovr-col { position: sticky; left: var(--plp-player-w, 190px); z-index: 1; background: inherit; box-shadow: 2px 0 4px rgba(0,0,0,0.06); font-variant-numeric: tabular-nums; }
.plp-table thead th.plp-ovr-col { background: #2c3e50; z-index: 4; }

/* .plp-pill (base + all variants): merged into css/dyne.css with .fap-pill (byte-identical,
   "shared, merged 2026-08-22"), see that file for the full ruleset and comment. */

.plp-full-text { display: inline; }
.plp-mobile-text { display: none; }
@media (max-width: 479px) {
	.plp-full-text { display: none; }
	.plp-mobile-text { display: inline; }
}

/* ===================== Mobile Kartenlayout (Design von freeagents.php uebernommen) =====================
   Horizontales Scrollen einer 15-spaltigen Tabelle ist auf schmalen Screens unbrauchbar -
   unterhalb 720px wird die Tabelle stattdessen zu gestapelten, einklappbaren Karten
   umgebaut: kollabiert zeigt jede Karte nur Bild+Name+OVR in einer Zeile, ein Klick auf die
   Karte (ausserhalb von Links) blendet die restlichen Felder ein (.plp-expanded-Klasse,
   siehe JS ganz unten). Sortier-Buttons in der (jetzt versteckten) Kopfzeile werden durch
   das Sortieren-Dropdown in der Filterleiste ersetzt (siehe .plp-sort-select weiter oben). */
.plp-sort-select { display: none; width: auto; flex: 0 0 auto; }
@media (max-width: 720px) {
	.plp-sort-select { display: inline-flex; }
	/* Sticky-Header/gebundene Hoehe (Desktop-Basisregel oben) ist fuers Mobile-Kartenlayout
	   irrelevant (thead ohnehin ausgeblendet) und wuerde sonst eine ungewollte zweite,
	   interne Scrollbox um die Karten legen statt normal mit der Seite zu scrollen. Nur fuer die
	   "Normal"-Ansicht (.plp-cards) - die Ratings-Ansicht (User-Wunsch 2026-09-08: "will nicht den
	   Kartenstil sondern einen Tabellenstil haben") bekommt auf Mobile keine .plp-cards-Klasse und
	   faellt dadurch komplett auf die normalen Desktop-Tabellenregeln oben zurueck (horizontal
	   scrollbare echte Tabelle mit fixierten Spieler-/OVR-Spalten statt Karten). */
	.plp-table-scroll:has(.plp-cards) { overflow-x: visible; overflow-y: visible; max-height: none; }
	table.plp-table.plp-cards, table.plp-table.plp-cards tbody, table.plp-table.plp-cards tr { display: block; width: 100%; min-width: 0; }
	.plp-table.plp-cards thead { display: none; }
	.plp-table.plp-cards tbody tr {
		display: flex !important; flex-wrap: wrap; align-items: center; gap: 5px 7px;
		background: #fff !important; border: 1px solid #e2e4e7; border-radius: 8px;
		padding: 10px 46px 10px 12px; margin-bottom: 8px; cursor: pointer; position: relative;
	}
	.plp-table.plp-cards tbody tr:hover { background: #fff !important; }
	.plp-table.plp-cards td {
		display: none; align-items: center; padding: 0 !important; border: none !important;
		text-align: left !important; position: static !important; box-shadow: none; background: transparent;
		font-size: 12.5px; vertical-align: middle;
	}
	/* Kollabiert IMMER sichtbar: Spieler-Zelle + OVR, sonst nichts (identisches Prinzip wie
	   freeagents.php). OVR + Auf-/Zuklapp-Pfeil sind absolut oben rechts positioniert. */
	.plp-table.plp-cards td.sticky-col { display: inline-flex; min-width: 0; flex: 1 1 100%; }
	.plp-table.plp-cards td.sticky-col .plp-playerpic { width: 40px; height: 40px; flex: 0 0 auto; }
	.plp-table.plp-cards td.sticky-col .plp-player-cell { gap: 10px; min-width: 0; flex: 1 1 0%; }
	.plp-table.plp-cards td.sticky-col .plp-name-link, .plp-table.plp-cards td.sticky-col span { font-size: 12.5px !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1 1 0%; display: inline-block; }
	.plp-table.plp-cards td[data-label="OVR"] {
		display: inline-flex !important; align-items: center; justify-content: center;
		position: absolute !important; top: 10px; right: 26px; height: 40px;
		font-size: 12.5px !important; font-weight: 700; color: #2c3e50;
	}
	.plp-table.plp-cards td[data-label="OVR"]::before { content: none !important; }
	.plp-table.plp-cards tbody tr::after { content: "\25BE"; position: absolute; top: 13px; right: 10px; font-size: 13px; color: #a9b0b8; }
	.plp-table.plp-cards tbody tr.plp-expanded::after { content: "\25B4"; }
	.plp-table.plp-cards tbody tr.plp-expanded td { display: inline-flex; }
	.plp-table.plp-cards td[data-label]::before { content: attr(data-label) ": "; font-size: 9.5px; text-transform: uppercase; letter-spacing: .03em; color: #a9b0b8; font-weight: 700; margin-right: 3px; }

	/* Feste Zeilenaufteilung der ausgeklappten Felder: Zeile 1 Pos/Gehalt/Dauer/Team/J.i.T.,
	   Zeile 2 Alter/Größe/Gewicht, Zeile 3 (nur wenn vorhanden) Birds/Optionen/Trade. "order"
	   bestimmt die visuelle Reihenfolge, die unsichtbaren .plp-row-break-Zellen erzwingen per
	   flex-basis:100% einen Zeilenumbruch an fester Stelle. */
	.plp-table.plp-cards td[data-label="Pos"] { order: 1; }
	.plp-table.plp-cards td[data-label="Gehalt"] { order: 2; }
	.plp-table.plp-cards td[data-label="Dauer"] { order: 3; }
	.plp-table.plp-cards td[data-label="Team"] { order: 4; }
	.plp-table.plp-cards td[data-label="J.i.T."] { order: 5; }
	.plp-table.plp-cards td.plp-row-break[data-break="a"] { order: 6; }
	.plp-table.plp-cards td[data-label="Alter"] { order: 7; }
	.plp-table.plp-cards td[data-label="Größe"] { order: 8; }
	.plp-table.plp-cards td[data-label="Gewicht"] { order: 9; }
	.plp-table.plp-cards td.plp-row-break[data-break="b"] { order: 10; }
	.plp-table.plp-cards td[data-label="Pos"], .plp-table.plp-cards td[data-label="Gehalt"], .plp-table.plp-cards td[data-label="Dauer"],
	.plp-table.plp-cards td[data-label="Team"], .plp-table.plp-cards td[data-label="J.i.T."],
	.plp-table.plp-cards td[data-label="Alter"], .plp-table.plp-cards td[data-label="Größe"], .plp-table.plp-cards td[data-label="Gewicht"] {
		font-size: 11px !important;
	}
	.plp-table.plp-cards td[data-label="Pos"]::before, .plp-table.plp-cards td[data-label="Gehalt"]::before, .plp-table.plp-cards td[data-label="Dauer"]::before,
	.plp-table.plp-cards td[data-label="Team"]::before, .plp-table.plp-cards td[data-label="J.i.T."]::before,
	.plp-table.plp-cards td[data-label="Alter"]::before, .plp-table.plp-cards td[data-label="Größe"]::before, .plp-table.plp-cards td[data-label="Gewicht"]::before {
		font-size: 8.5px; margin-right: 2px;
	}
	.plp-table.plp-cards td[data-label="Birds"] { order: 11; }
	.plp-table.plp-cards td[data-label="Optionen"] { order: 12; }
	.plp-table.plp-cards td[data-label="Trade"] { order: 13; }

	.plp-table.plp-cards td.plp-row-break { display: none; }
	.plp-table.plp-cards tbody tr.plp-expanded td.plp-row-break {
		display: block !important; flex-basis: 100%; width: 0; height: 0;
		padding: 0 !important; margin: 0; border: none !important;
	}

	.plp-table.plp-cards td[data-label="Birds"]::before,
	.plp-table.plp-cards td[data-label="Optionen"]::before,
	.plp-table.plp-cards td[data-label="Trade"]::before { content: none !important; }
	.plp-table.plp-cards tbody tr.plp-expanded td[data-label="Birds"]:has(.plp-muted),
	.plp-table.plp-cards tbody tr.plp-expanded td[data-label="Optionen"]:has(.plp-muted),
	.plp-table.plp-cards tbody tr.plp-expanded td[data-label="Trade"]:has(.plp-muted) { display: none !important; }

	/* ID und Value entfallen auf Mobile komplett (Nebendaten, wie "Value" bei freeagents.php). */
	.plp-table.plp-cards td[data-label="ID"], .plp-table.plp-cards td[data-label="Value"] { display: none !important; }
}
