/* Project Legend V0.46.42 — X1: Statistikzeilen im Karriere-Simulationsbildschirm

   Gemeldet: „Die Statistikfelder sind teilweise hinter dem Layer bzw. noch
   immer nicht sichtbar." Im Bildbeleg stehen unter der funktionierenden Zeile
   („75 Min. · 0 Tore · 0 Vorlagen · 6.4 Bewertung") sieben graue Balken ohne
   jede Aufschrift, die nach rechts unter die Seitenleiste zu laufen scheinen.

   Gemessen: Es liegt nichts darüber. Die Zeile ist abgeschnitten.

     .pl387-shell  height:calc(100dvh - 20px)
                   max-height:calc(100dvh - 20px)
                   overflow:hidden
                   grid-template-rows: auto auto auto minmax(210px,1fr) auto …

   Eine Rasterzeile mit `auto` schrumpft in einem übervollen Raster unter ihre
   Inhaltshöhe, und weil die Shell `overflow:hidden` trägt, wird der Überschuss
   nicht scrollbar, sondern verschwindet. Bei 1100 × 900 gemessen: die Zeile ist
   66 px hoch und vollständig lesbar. Bei breitem, flachem Fenster fällt sie auf
   etwa zwölf Pixel — sichtbar bleiben nur die Oberkanten der Kacheln, und das
   sind genau die grauen Balken. Die Überschrift mit dem Spielernamen (21 px)
   verschwindet dabei ganz, was im Bildbeleg ebenfalls zu sehen ist.

   Im gemessenen Raster stand bereits eine Zeile auf `0px`.

   Zwei Eingriffe: Die Zeilen mit kurzem, feststehendem Inhalt dürfen nicht
   mehr unter ihre Inhaltshöhe schrumpfen, und was dann doch nicht passt, wird
   scrollbar statt beschnitten. `main` bleibt ausgenommen — das ist die Zeile,
   die sich beugen soll, und ihre Seitenleiste scrollt schon selbst. */

#plV0387CareerLive .pl387-shell{overflow-y:auto;overflow-x:hidden}

#plV0387CareerLive .pl387-shell>header,
#plV0387CareerLive .pl387-shell>.pl387-progress,
#plV0387CareerLive .pl387-shell>.pl387-summary,
#plV0387CareerLive .pl387-shell>.pl387-calendar,
#plV0387CareerLive .pl387-shell>.pl387-feed,
#plV0387CareerLive .pl387-shell>footer{min-height:min-content}

/* Die Zusammenfassung selbst: nicht mehr beschneiden, und wenn die Kacheln in
   eine zweite Reihe umbrechen, darf die Zeile mitwachsen. */
#plV0387CareerLive .pl387-summary{overflow:visible;row-gap:10px;align-items:start}
#plV0387CareerLive .pl387-summary h4{min-height:min-content}

#plV0387CareerLive .pl387-development,
#plV0387CareerLive .pl387-summary-stats{min-height:min-content}

/* Jede einzelne Kachel behält ihre Höhe. Die Aufschrift bricht nicht mehr um,
   sonst wird aus einer knappen Zeile eine doppelt hohe. */
#plV0387CareerLive .pl387-development span,
#plV0387CareerLive .pl387-summary-stats span{min-height:min-content;white-space:nowrap;overflow:visible}

/* Dieselbe Absicherung für die Zeile, die schon funktioniert - sie sitzt in
   `main` und wäre bei noch flacherem Fenster als nächste betroffen. */
#plV0387CareerLive .pl387-player{min-height:min-content}
#plV0387CareerLive .pl387-player-stats{min-height:min-content}
#plV0387CareerLive .pl387-player-stats b{white-space:nowrap}

/* Der eigentliche Eingriff sitzt an der Zeilendefinition des Rasters.

   `min-height` am Element allein genügt nicht: Die Rasterzeile schrumpft
   trotzdem, und das Element läuft dann über seine Zeile hinaus statt sie zu
   dehnen. Gemessen bei 1520 × 990: Zeile 40 px, Inhalt 60 px, also 20 px
   abgeschnitten - genau der Bildbeleg. `min-content` als Zeilenmaß kann
   dagegen nicht unter die Inhaltshöhe fallen.

   Dazu ein zweiter Fund. Die Regel für flache Fenster in
   `v0387-career-live-sim.css:9` vergibt nur ACHT Zeilenmaße:

     grid-template-rows: auto auto auto minmax(210px,1fr) auto auto auto auto

   Die Elemente sind aber auf `grid-row: 1` bis `9` verteilt
   (`v03813-player-experience.css:27-35`). Dadurch landet die dehnbare Zeile
   `minmax(210px,1fr)` auf der vierten Zeile - der Fortschrittsleiste - statt
   auf `main` in Zeile 5. Die Fortschrittsleiste ist 26 px hoch und bekommt den
   ganzen freien Platz zugewiesen, während sich alles ab `main` den Rest teilen
   muss. Hier unten stehen neun Maße, und das dehnbare sitzt an der richtigen
   Stelle. */

#plV0387CareerLive .pl387-shell{
  grid-template-rows:min-content min-content min-content min-content minmax(200px,1fr) min-content min-content min-content min-content;
}

@media (max-height:900px) and (min-width:851px){
  #plV0387CareerLive .pl387-shell{
    grid-template-rows:min-content min-content min-content min-content minmax(180px,1fr) min-content min-content min-content min-content;
    height:auto;max-height:none;min-height:calc(100dvh - 20px);overflow-y:auto;
  }
  /* Was dann noch nicht passt, wird scrollbar - vorher stand hier
     `overflow:hidden`, und der Überschuss war einfach weg. */
  #plV0387CareerLive .pl387-backdrop{overflow:auto}
  /* Kalender und Verlauf durften auf 72 px gedeckelt werden; das bleibt, denn
     sie scrollen selbst. */
  #plV0387CareerLive .pl387-calendar,
  #plV0387CareerLive .pl387-feed{min-height:min-content}
}

/* V0.47.1/V0.47.3 - Lebendes Spielfeld: v0491 schreibt die Positionen jedes
   BILD (requestAnimationFrame) - CSS-Übergänge würden dem nur hinterherfedern
   und die minütliche Neuaufbau-Position der Tafel sichtbar anfahren. Darum:
   KEIN Übergang auf Markern und Ball, der Fluss kommt aus dem Skript. */
#pl391Live .pl391-marker{transition:none}
#pl391Live .pl491-ball{
  position:absolute;width:11px;height:11px;margin:-5px 0 0 -5px;
  border-radius:50%;background:#f6f8fb;
  box-shadow:0 0 0 2px rgba(10,14,20,.55),0 2px 6px rgba(0,0,0,.5);
  z-index:5;pointer-events:none;
}
/* Das ältere Aktionsmodul v0440 zeichnet bei Spieleraktionen einen EIGENEN
   Ballpunkt - auf der lebenden Tafel gäbe das zwei Bälle. Unser Punkt ist
   der Spielball; der alte bleibt für Ansichten ohne v0491 erhalten. */
#pl391Live .pl391-pitch .pl44-ball{display:none}
#pl391Live .pl391-pitch.pl491-standard .pl491-ball{
  box-shadow:0 0 0 3px rgba(232,196,106,.9),0 2px 6px rgba(0,0,0,.5);
}

/* V0.48.1 - AM BALL: goldener Kringel um den Spieler, der den Ball führt.
   Als eigener Ring (box-shadow) statt Rahmen, damit die Marker ihre Größe
   behalten und nichts im Layout springt. Der Puls ist langsam und leise -
   er soll das Auge führen, nicht blinken. */
#pl391Live .pl391-marker.pl491-am-ball{
  box-shadow:
    0 0 0 2px rgba(12,16,22,.85),
    0 0 0 4.5px rgba(232,196,106,.95),
    0 0 12px 3px rgba(232,196,106,.45);
  z-index:4;
}
@media (prefers-reduced-motion:no-preference){
  #pl391Live .pl391-marker.pl491-am-ball{animation:pl491AmBall 1.6s ease-in-out infinite}
  @keyframes pl491AmBall{
    0%,100%{box-shadow:0 0 0 2px rgba(12,16,22,.85),0 0 0 4.5px rgba(232,196,106,.95),0 0 12px 3px rgba(232,196,106,.40)}
    50%    {box-shadow:0 0 0 2px rgba(12,16,22,.85),0 0 0 5.5px rgba(244,214,140,1),   0 0 18px 5px rgba(232,196,106,.60)}
  }
}

/* V0.48.2 - KABINENGANG. Zur Halbzeit gehen die Figuren zur Grundlinie und
   verschwinden dort. Ausgeblendet statt hinausgeschoben: Das Spielfeld
   schneidet nichts ab, weiter draußen ragten die Marker ins Layout. Der
   Übergang ist absichtlich träge - man soll sie gehen sehen, nicht
   verschwinden. Der Ball geht mit; es läuft kein Spiel. */
#pl391Live .pl391-pitch.pl491-kabine .pl391-marker,
#pl391Live .pl391-pitch.pl491-kabine .pl491-ball{
  opacity:0;
  transition:opacity .85s ease .35s;
}
#pl391Live .pl391-pitch .pl391-marker,
#pl391Live .pl391-pitch .pl491-ball{
  transition:opacity .5s ease;
}
@media (prefers-reduced-motion:reduce){
  #pl391Live .pl391-pitch.pl491-kabine .pl391-marker,
  #pl391Live .pl391-pitch.pl491-kabine .pl491-ball{transition:none}
}

/* V0.54.1 (Naht 08.09.2026) - KADERLISTE IM REITER "SPIELER".

   Gemeldet: die Kaderliste links ist fast unsichtbar. Gemessen im Browser bei
   1200-1450 px Fensterbreite: #pl497Kader 310 x 26 px an 12,162 - das ist
   Rahmen plus Innenabstand, sonst nichts. Das Gitter .pl391-live-grid meldete
   grid-template-rows "0px 634px": eine erste Zeile ohne Hoehe.

   Die Ursache ist die Kaskade, nicht die Regel. v0497-spielereignisse.css
   setzte seit V0.49.7 beides richtig - Kaderliste in Spalte 1, Spielfeld in
   Spalte 2 -, liegt aber seit S2-1 (V0.52.1) in @layer legacy.
   ui-v0391/live-match.css ist UNGESCHICHTET und schlaegt damit jede
   geschichtete Regel, unabhaengig von Spezifitaet und Ladereihenfolge. Also
   galt dort weiter [data-pl391-region="pitch"]{grid-column:1/3}: das Spielfeld
   belegt die Spalten 1 UND 2, die Kaderliste findet in Zeile 1 keinen Platz
   mehr neben ihm, das Spielfeld weicht in eine zweite, implizite Zeile aus,
   und die erste Zeile (minmax(0,1fr)) bekommt keinen freien Platz mehr: 0 px.

   Darum stehen die beiden Platzierungen hier. Dieses Blatt ist ungeschichtet
   und laedt in index.html nach live-match.css; die Kennung #pl391Live hebt die
   Spezifitaet zusaetzlich ueber die Altregel. Ergebnis: die Kaderliste steht
   genau dort, wo im Reiter "Spiel" die Ereignisliste steht - erste Spalte,
   volle Hoehe, eine einzige Rasterzeile.

   In den Reitern "Spiel" und "Statistik" bleibt die Kaderliste unsichtbar; das
   entscheidet unveraendert die Grundregel #pl497Kader{display:none} in
   v0497-spielereignisse.css, gegen die hier nichts steht. */
#pl391Live[data-tab="player"] #pl497Kader{display:block;grid-column:1;grid-row:1}
#pl391Live[data-tab="player"] .pl391-live-grid>[data-pl391-region="pitch"]{grid-column:2/3}
