/* ==========================================================================
   S11.cz - PLAYER.CSS
   Styly pro detailní kartu hráče a kariérní historii
   ========================================================================== */


/* ==========================================================================
   KARTA HRÁČE

   Rozvržení (.ss-layout, .comp-page), hlavička (.ss-comp-header), panely
   (.ss-panel), pás karet (.ss-tabs) i řádek zápasu (.ss-match) nese
   score-service.css — karta hráče je používá stejně jako soutěž a klub. Tady je jen to, co má hráč navíc.

   Bloky nad tímhle komentářem (.player-header, .player-main-stats,
   .career-level-group) zůstávají: sdílí je karta klubu a trenéra.
   ========================================================================== */

/* --- HLAVIČKA HRÁČE ---
   Kostra hlavičky soutěže a klubu (.ss-comp-header); fotka v kruhu místo
   znaku, pod jménem logo a plný název klubu. */
.player-header-photo .person-avatar { width: 72px; height: 72px; }
.player-header-photo .status-symbol { width: 72px; height: 72px; }
.player-header-club { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 0.95rem; font-weight: 700; color: var(--text-main); }
.player-header-club:hover { color: var(--accent); }
.player-header-status { display: block; margin-top: 6px; font-size: 0.85rem; color: var(--text-muted); }

/* --- PŘEHLED: ÚDAJE O HRÁČI ---
   Mřížka jako na fotmobu: hodnota tučně nahoře, popisek pod ní, linka
   pod každým údajem. */
.player-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; margin: 0; }
.player-info-item { display: flex; flex-direction: column-reverse; gap: 3px; padding: 12px 0; border-bottom: 1px solid var(--bg-head); }
.player-info-item dt { font-size: 0.74rem; font-weight: 600; color: var(--text-muted); }
.player-info-item dd { margin: 0; font-size: 0.95rem; font-weight: 800; }
.player-info-country { display: inline-flex; align-items: center; gap: 6px; }

/* --- PŘEHLED: ČÍSLA SEZÓNY ---
   Panel na soutěž: název s ročníkem, pod ním mřížka čtyři na dva — číslo
   nahoře, popisek pod ním, na střed. */
.player-season-title { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--bg-head); font-size: 0.95rem; font-weight: 800; }
.player-season-title .ss-comp-logo { width: 22px; height: 22px; color: var(--text-muted); }
.player-season-title a:hover { color: var(--accent); }
.player-season-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 12px; margin: 0; text-align: center; }
.player-season-grid > div { display: flex; flex-direction: column-reverse; gap: 4px; }
.player-season-grid dt { font-size: 0.74rem; font-weight: 600; color: var(--text-muted); }
.player-season-grid dd { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 0; font-size: 1.05rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.player-season-grid .ss-rating { padding: 2px 8px; border-radius: 6px; font-size: 0.9rem; }
.player-season-card { width: 9px; height: 13px; border-radius: 2px; }
.player-season-card.is-yellow { background: var(--yc); }
.player-season-card.is-red { background: var(--rc); }
.player-season-switch { margin-bottom: 14px; }
.ss-switch-item[data-ps-tab] { border: 0; cursor: pointer; font-family: inherit; }

/* --- PŘEHLED: TABULKA ZÁPASŮ ---
   Podle fotmobího „Match stats": vlevo soutěž, den, soupeř a výsledek
   hned za ním, vpravo úzké číselné sloupce s ikonami v hlavičce. Celý
   řádek vede na zápas (.player-matches-cover přes něj). Na telefonu na
   výšku se tentýž řádek přeskládá do karty (níž). */
.player-matches-title { margin-bottom: 6px; }
.player-matches-row {
    position: relative;
    display: grid;
    grid-template-columns: 24px 88px 20px minmax(0, 200px) minmax(96px, 1fr) repeat(6, 40px);
    align-items: center;
    gap: 8px;
    padding: 8px;
    border-radius: 8px;
    font-size: 0.82rem;
}
.player-matches-head { grid-template-columns: minmax(0, 1fr) repeat(6, 40px); padding: 6px 8px 10px; border-bottom: 1px solid var(--bg-head); margin-bottom: 6px; color: var(--text-muted); }
.player-matches-list { margin: 0; padding: 0; list-style: none; }
.player-matches-list .player-matches-row:hover { background: var(--surface-2); }
.player-matches-cover { position: absolute; inset: 0; border-radius: 8px; }
/* Ostatní obsah řádku nad krycím odkazem jen vizuálně — kliká se skrz. */
.player-matches-list .player-matches-row > :not(.player-matches-cover) { pointer-events: none; }
.player-matches-filter { justify-self: start; }
.player-matches-filter .ss-dropdown-toggle { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; color: var(--text-main); }
.player-matches-filter .ss-comp-logo,
.player-matches-comp .ss-comp-logo { width: 18px; height: 18px; color: var(--text-muted); }
.player-matches-comp, .player-matches-logo { display: inline-flex; }
.player-matches-date { color: var(--text-muted); white-space: nowrap; }
.player-matches-opp { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.player-matches-res { display: flex; align-items: center; gap: 8px; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.player-matches-c { display: flex; justify-content: center; align-items: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.player-matches-c .ss-rating { padding: 2px 6px; border-radius: 5px; font-size: 0.78rem; }
.player-matches-card { width: 9px; height: 13px; border-radius: 2px; }
.player-matches-card.is-yellow { background: var(--yc); }
.player-matches-card.is-red { background: var(--rc); }
/* Jen v kartě na telefonu: název soutěže, míče za góly a pruh týmu. */
.player-matches-compname, .player-matches-events, .player-matches-team { display: none; }
.player-matches-pager { display: flex; justify-content: space-between; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--bg-head); }
.player-matches-page { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; color: var(--text-main); text-decoration: none; }
.player-matches-page:hover { color: var(--accent); }
.player-matches-page.is-disabled { color: var(--text-muted); opacity: 0.5; }
.player-matches.is-swapping { opacity: 0.55; transition: opacity 0.12s ease; }

@media (max-width: 860px) and (orientation: portrait) {
    /* Užší na výšku (tablet): bez týmu hráče a karet. Telefon na šířku má
       všechny sloupce jako počítač. */
    .player-matches-row { grid-template-columns: 20px 72px 20px minmax(0, 180px) minmax(80px, 1fr) repeat(3, 36px); }
    .player-matches-head { grid-template-columns: minmax(0, 1fr) repeat(3, 36px); }
    .player-matches-c.is-team, .player-matches-c.is-yc, .player-matches-c.is-rc { display: none; }
}
@media (max-width: 640px) {
    /* Telefon na výšku — karta jako na fotmobu: nahoře den a soutěž, pod
       tím logo a soupeř, pod jménem výsledek, vpravo míče za góly, minuty
       a hodnocení; zápasy pod pruhem týmu hráče. */
    .player-matches-head { grid-template-columns: minmax(0, 1fr); border-bottom: 0; margin-bottom: 0; }
    .player-matches-head .player-matches-c { display: none; }
    .player-matches-team {
        display: flex;
        align-items: center;
        gap: 10px;
        margin: 10px 0 4px;
        padding: 10px 12px;
        border-radius: 10px;
        background: var(--bg-head);
        font-size: 0.95rem;
        font-weight: 800;
    }
    .player-matches-row {
        /* Pevné šířky pravých sloupců: události, minuty a hodnocení stojí
           ve všech řádcích pod sebou, ať má řádek gólů kolik chce. */
        grid-template-columns: 36px minmax(0, 1fr) 74px 34px 42px;
        grid-template-areas:
            "date date comp comp comp"
            "logo opp  events min rating"
            "logo res  events min rating";
        gap: 4px 8px;
        padding: 14px 4px;
        border-radius: 0;
        border-bottom: 1px solid var(--bg-head);
    }
    .player-matches-list .player-matches-row:hover { background: none; }
    .player-matches-comp, .player-matches-c.is-team, .player-matches-c.is-goals,
    .player-matches-c.is-yc, .player-matches-c.is-rc { display: none; }
    .player-matches-date { grid-area: date; margin-bottom: 6px; }
    .player-matches-compname {
        display: block;
        grid-area: comp;
        justify-self: end;
        min-width: 0;
        margin-bottom: 6px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: var(--text-muted);
    }
    .player-matches-logo { grid-area: logo; }
    .player-matches-logo .club-logo { width: 32px; height: 32px; }
    .player-matches-opp { grid-area: opp; font-size: 0.9rem; }
    .player-matches-res { grid-area: res; }
    /* Události: kroužky přes sebe jako na fotmobu (míče, žlutá, červená). */
    .player-matches-events { display: flex; grid-area: events; justify-content: flex-end; align-items: center; font-weight: 700; }
    .player-matches-ev {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 26px;
        height: 26px;
        margin-left: -9px;
        border: 1.5px solid var(--text-muted);
        border-radius: 50%;
        background: var(--bg-card);
    }
    .player-matches-ev:first-child { margin-left: 0; }
    /* Míč: bílý s tmavými plochami (jako na fotmobu). */
    .player-matches-ev.is-ball { background: #f2f4f7; color: #16191e; }
    .player-matches-ev svg { width: 19px; height: 19px; }
    .player-matches-ev .player-matches-card { width: 9px; height: 12px; }
    .player-matches-ev-n { margin-left: 3px; font-size: 0.78rem; }
    .player-matches-c.is-min { grid-area: min; justify-content: flex-end; font-size: 0.95rem; }
    .player-matches-c.is-min::after { content: "\2019"; }
    .player-matches-c.is-rating { grid-area: rating; justify-content: flex-end; }
    .player-matches-c.is-rating .ss-rating { padding: 4px 8px; font-size: 0.85rem; }
}

/* --- HERNÍ PROFIL (pětiúhelník) ---
   Podle fotmobího „Player traits": SVG pětiúhelník uprostřed mřížky,
   popisky u vrcholů — nahoře a po dvou vlevo a vpravo. Boční horní vrcholy
   leží ve 40 % výšky SVG, dolní v 94 %: řádky vedle SVG v poměru 79 : 21
   mají středy ve 40 a 90 %. */
.player-traits-title { margin: 0; font-size: 1rem; font-weight: 800; }
.player-traits-sub { position: relative; display: flex; align-items: center; gap: 8px; margin: 2px 0 0; padding-bottom: 14px; border-bottom: 1px solid var(--bg-head); font-size: 0.78rem; color: var(--text-muted); }
/* Otazník stojí na konci podnadpisu — bublina se ukotví k celému řádku
   (od levého okraje panelu), jinak by na telefonu vyjela z obrazovky. */
.player-traits-sub .player-traits-help { position: static; }
.player-traits-sub .player-traits-help .player-perf-help-box { left: 0; right: auto; top: calc(100% - 6px); }
.player-traits-chart {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, 210px) minmax(0, 1fr);
    grid-template-rows: auto 79fr 21fr;
    grid-template-areas:
        ".         top    ."
        "left-up   svg    right-up"
        "left-down svg    right-down";
    align-items: center;
    column-gap: 14px;
    max-width: 620px;
    margin: 14px auto 4px;
}
.player-traits-svg { grid-area: svg; width: 100%; height: auto; overflow: visible; }
.player-traits-ring { fill: none; stroke: var(--border); stroke-width: 1; stroke-dasharray: 3 3; }
.player-traits-ring.is-outer { stroke-dasharray: none; stroke-width: 1.5; }
.player-traits-axis { stroke: var(--border); stroke-width: 1; }
.player-traits-shape { fill: var(--accent); fill-opacity: 0.4; stroke: var(--accent); stroke-width: 1.5; stroke-linejoin: round; }
.player-traits-label { font-size: 0.8rem; color: var(--text-muted); white-space: nowrap; }
.player-traits-label strong { color: var(--text-main); font-weight: 800; }
.player-traits-label.is-top { grid-area: top; justify-self: center; margin-bottom: 6px; }
.player-traits-label.is-left-up { grid-area: left-up; justify-self: end; }
.player-traits-label.is-left-down { grid-area: left-down; justify-self: end; }
.player-traits-label.is-right-up { grid-area: right-up; justify-self: start; }
.player-traits-label.is-right-down { grid-area: right-down; justify-self: start; }
@media (max-width: 640px) {
    .player-traits-chart { grid-template-columns: minmax(0, 1fr) minmax(110px, 140px) minmax(0, 1fr); column-gap: 6px; }
    .player-traits-label { font-size: 0.7rem; white-space: normal; }
    .player-traits-label.is-left-up, .player-traits-label.is-left-down { text-align: right; }
}

/* --- VÝKON V SOUTĚŽI ---
   Podle fotmobího „Season performance": výběr soutěže, minuty a přepínač
   Celkem / Na 90 minut, pak oddíly s řádky — popisek, hodnota, svislá
   linka a pruh percentilu v barvách kariérních milníků. Pohled na 90 minut
   přepíná třída .is-per90 na panelu. */
.player-perf-top { margin: -4px 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--bg-head); }
.player-perf-pick .ss-dropdown-toggle { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; color: var(--text-main); }
.player-perf-pick .ss-comp-logo { width: 18px; height: 18px; color: var(--text-muted); }
.player-perf-season { padding-right: 10px; border-right: 1px solid var(--border); }
.player-perf-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 14px; border-bottom: 1px solid var(--bg-head); }
.player-perf-title { margin: 0; font-size: 1rem; font-weight: 800; }
.player-perf-sub { margin: 2px 0 0; font-size: 0.78rem; color: var(--text-muted); }
.player-perf-mode .ss-switch-item { border: 0; cursor: pointer; font-family: inherit; }
.player-perf-group { padding-top: 16px; }
.player-perf-group-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.player-perf-group-head h3 { margin: 0; font-size: 0.9rem; font-weight: 800; }
.player-perf-help { position: relative; }
.player-perf-help > summary { display: inline-flex; align-items: center; gap: 6px; list-style: none; cursor: pointer; font-size: 0.82rem; color: var(--text-muted); }
.player-perf-help > summary::-webkit-details-marker { display: none; }
.player-perf-help-q { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: var(--text-muted); color: var(--bg-card); font-size: 0.68rem; font-weight: 800; }
.player-perf-help-box {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 5;
    width: min(340px, 80vw);
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg-head);
    box-shadow: var(--shadow-pop);
    font-size: 0.78rem;
    line-height: 1.5;
}
.player-perf-help-box strong { display: block; margin-bottom: 6px; font-size: 0.9rem; }
.player-perf-help-box p { margin: 0 0 8px; color: var(--text-muted); }
.player-perf-help-box p:last-child { margin-bottom: 0; }
.player-perf-list { margin: 0; }
.player-perf-row { display: grid; grid-template-columns: minmax(0, 1fr) 80px minmax(120px, 2fr); align-items: center; gap: 14px; padding: 6px 8px; border-radius: 6px; font-size: 0.85rem; }
.player-perf-row:hover { background: var(--surface-2); }
.player-perf-row dt { font-weight: 600; }
.player-perf-value { margin: 0; text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; }
.player-perf-rank { margin: 0; padding-left: 14px; border-left: 1px solid var(--border); }
/* Pruh v barvách pásem hodnocení hráčů (.ss-rating.is-top … is-poor):
   dráha --bg-surface, výplň podle pásma z PlayerPerformanceService::band.
   Prostřední pásmo má u štítku barvu --bg-head; na tmavé dráze by
   zaniklo, proto pruh bere tlumenou barvu textu. */
.player-perf-bar { position: relative; display: block; height: 9px; border-radius: 999px; background: var(--bg-surface); }
.player-perf-bar > span { display: block; width: var(--pct); height: 100%; border-radius: 999px; background: var(--text-muted); }
.player-perf-bar.is-top > span  { background: var(--accent); }
.player-perf-bar.is-good > span { background: var(--win-bright); }
.player-perf-bar.is-ok > span   { background: var(--text-muted); }
.player-perf-bar.is-low > span  { background: var(--yc-dim); }
.player-perf-bar.is-poor > span { background: var(--loss); }
/* Bublina s procentem nad koncem pruhu při najetí na řádek (jako fotmob). */
.player-perf-bar[data-tip]::after,
.player-perf-bar[data-tip]::before {
    position: absolute;
    left: var(--pct);
    z-index: 2;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.12s ease;
}
.player-perf-bar[data-tip]::after {
    content: attr(data-tip);
    bottom: calc(100% + 9px);
    transform: translateX(-50%);
    padding: 4px 8px;
    border-radius: 6px;
    background: var(--bg-head);
    box-shadow: var(--shadow-pop);
    color: var(--text-main);
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}
.player-perf-bar[data-tip]::before {
    content: "";
    bottom: calc(100% + 3px);
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-bottom: 0;
    border-top-color: var(--bg-head);
}
.player-perf-row:hover .player-perf-bar[data-tip]::after,
.player-perf-row:hover .player-perf-bar[data-tip]::before { opacity: 1; }
.player-perf .is-per90 { display: none; }
.player-perf.is-per90 .is-total { display: none; }
.player-perf.is-per90 .is-per90 { display: revert; }
.player-perf.is-per90 .player-perf-bar.is-per90 { display: block; }

@media (max-width: 640px) {
    .player-perf-row { grid-template-columns: minmax(0, 1fr) 56px 90px; gap: 10px; padding: 6px 2px; font-size: 0.8rem; }
    .player-perf-rank { padding-left: 10px; }
}

@media (max-width: 640px) {
    .player-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
    .player-season-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .player-header-photo .person-avatar,
    .player-header-photo .status-symbol { width: 56px; height: 56px; }
}

/* --- ZÁPASY HRÁČE ---
   Řádek je sdílený _ss_match_row.php; rozvržení řádku i sloupec navíc
   ($ssRowExtra) nese pages/score-service.css. */

/* Čtyři pevné přihrádky vedle sebe — minuty, góly, žluté, červené. Pevné
   proto, aby čísla stála pod sebou ve sloupci a seznam se dal číst svisle;
   při proměnlivé šířce by každý řádek začínal jinde. */
.careermatch-stats {
    display: inline-grid;
    grid-template-columns: 34px 30px 26px 26px;
    align-items: center;
    gap: 7px;
    font-size: 0.68rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}
.careermatch-stat {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 3px;
}
.careermatch-goals { color: var(--accent); font-weight: 700; }
.careermatch-ball { font-size: 0.66rem; line-height: 1; }

/* Jednotka za číslem („Z" u zápasů, „′" u minut). Drobnější a slabší než
   číslo samo: říká, co se počítá, ale číst se má to číslo. */
.careermatch-unit { font-size: 0.85em; opacity: 0.6; margin-left: 1px; }

/* Karty se tu musí obarvit samy. Tvar .yc-icon/.rc-icon bydlí
   v components/lineup.css a ten se na kartě hráče nenačítá (viz $pageStyles
   v player.php) — do téhle chvíle tu proto byly obdélníčky bez pozadí, tedy
   neviditelné, a žlutá karta u zápasu nebyla vidět vůbec. Táhnout sem kvůli
   dvěma osmipixelovým čtverečkům celý soupiskový soubor nemá cenu.
   Barvy jsou tytéž jako kariérní součty na kartě Sezóny (.profile-total.is-*). */
.careermatch-yc .yc-icon,
.careermatch-rc .rc-icon {
    width: 8px;
    height: 11px;
    flex: none;
    border-radius: 2px;
}
.careermatch-yc .yc-icon { background: var(--yc); }
.careermatch-rc .rc-icon { background: var(--rc); }

/* Nula se ukazuje taky — bez ní by nešlo poznat, jestli hráč kartu nedostal,
   nebo se u toho zápasu karty nevedou. Zeslabená proto, aby oko padlo na to,
   co se opravdu stalo, a řádek bez ničeho nekřičel stejně jako řádek s gólem. */
.careermatch-stat.is-zero {
    opacity: 0.3;
    font-weight: 400;
    color: var(--text-muted);
}

/* Nominace bez startu. Kurzíva a slabší barva ji odliší od čísel vedle —
   v seznamu jde o jediný řádek se slovem místo číslic, takže stačí málo.
   Text se roztáhne přes všechny čtyři přihrádky, takže si sloupec drží
   tutéž šířku jako u zápasu s čísly a nikam neposkakuje. */
.careermatch-stats-bench { font-style: italic; opacity: 0.75; }
.careermatch-bench { grid-column: 1 / -1; white-space: nowrap; }

@media (max-width: 520px) {
    /* Řádek zápasu se na mobilu zužuje (viz .ss-match v score-service.css),
       čísla se zúží s ním. Přihrádky zůstávají čtyři, jen těsnější — kdyby
       některá vypadla, přestanou čísla stát ve sloupci. */
    .careermatch-stats { grid-template-columns: 28px 24px 20px 20px; gap: 4px; font-size: 0.62rem; }
    .careermatch-yc .yc-icon,
    .careermatch-rc .rc-icon { width: 7px; height: 10px; }
}

/* Hlavička skupiny zápasů: ročník, soutěž a tým, za který v ní hráč hrál.
   Dědí .ss-round-head (velikost, barva, linka), přidává jen rozvržení. */
.careermatch-group-head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 10px;
}
.careermatch-group-season { flex: none; }
.careermatch-group-comp {
    color: var(--text-main);
    text-decoration: none;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
}
.careermatch-group-comp:hover { color: var(--accent); }
.careermatch-group-team {
    margin-left: auto;
    color: var(--text-muted);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 500;
}

/* --- SEZÓNY (podle fotmobího „Career") ---
   Nadpis, karty Klub / Ročník / Soutěž s podtržením, skupiny s hlavičkou (popisek
   a symboly nad sloupci), řádky: logo, dvě patra textu, čísla ve sloupcích.
   Řádek je <summary> s šipkou, pod ním soutěže ročníku (Ročník), období
   klubu (Klub), nebo ročníky klubu na úrovni (Soutěž). */
.player-career-title { margin: 0 0 4px; font-size: 1rem; font-weight: 800; }
.player-career-tabs {
    display: flex;
    gap: 28px;
    margin: 0 calc(-1 * var(--panel-pad, 0px));
    padding: 0 var(--panel-pad, 0px);
    border-bottom: 1px solid var(--border);
}
.player-career-tab {
    padding: 12px 2px 10px;
    border-bottom: 3px solid transparent;
    color: var(--text-muted);
    font-weight: 700;
    text-decoration: none;
}
.player-career-tab:hover { color: var(--text-main); }
.player-career-tab.is-active { color: var(--text-main); border-bottom-color: var(--accent); }
.player-career.is-swapping { opacity: 0.6; }

.player-career-block {
    margin: 0 calc(-1 * var(--panel-pad, 0px));
    padding: 4px var(--panel-pad, 0px) 6px;
}
.player-career-block + .player-career-block { border-top: 1px solid var(--border); }
/* Mřížka: tým, (šipka,) čísla. Hlavička i řádky v téže mřížce, symbol tak
   stojí přesně nad svým sloupcem. */
.player-career-head,
.player-career-row {
    display: grid;
    align-items: center;
    column-gap: 10px;
}
.player-career-head.is-souteze,
.player-career-row.is-souteze,
.player-career-head.is-kluby,
.player-career-row.is-kluby,
.player-career-head.is-rocniky,
.player-career-row.is-rocniky { grid-template-columns: minmax(0, 1fr) 14px 36px 36px 50px 28px 28px 48px; }
.player-career-head { padding: 14px 0 6px; }
.player-career-group { color: var(--text-muted); font-weight: 600; }
.player-career-icon { display: inline-flex; justify-content: center; color: var(--text-muted); }
.player-career-icon svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.player-career-icon svg .is-fill { fill: currentColor; stroke: none; }
.player-career-icon svg .is-yc { fill: var(--yc); stroke: none; }
.player-career-icon svg .is-rc { fill: var(--rc); stroke: none; }
.player-career-row { padding: 9px 0; font-size: 0.85rem; }
.player-career-team {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    color: var(--text-main);
    text-decoration: none;
}
.player-career-team .club-logo { flex: none; }
.player-career-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.player-career-name {
    color: var(--text-main);
    font-weight: 600;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
a.player-career-team:hover .player-career-name,
a.player-career-name:hover { color: var(--accent); }
.player-career-sub { font-size: 0.78rem; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.player-career-sub a { color: inherit; text-decoration: none; }
.player-career-sub a:hover { color: var(--accent); }
.player-career-num { text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
/* Nula zůstává na svém místě, zeslabená — sloupce se tak čtou svisle. */
.player-career-num.is-zero { color: var(--text-muted); font-weight: 400; opacity: 0.5; }
.player-career-row.is-sum { border-top: 1px solid var(--border); }
.player-career-row.is-sum .player-career-group { font-size: 0.78rem; }
.player-career-num .ss-rating { display: inline-block; min-width: 38px; padding: 2px 5px; border-radius: 5px; font-size: 0.75rem; cursor: default; }

/* Rozbalení ročníku: celý řádek je <summary>, šipka se otočí. */
.player-career-season > summary { list-style: none; cursor: pointer; border-radius: 6px; }
.player-career-season > summary::-webkit-details-marker { display: none; }
.player-career-season > summary:hover { background: var(--surface-2); }
.player-career-caret {
    justify-self: center;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid var(--text-muted);
    transition: transform 0.15s;
}
.player-career-season[open] .player-career-caret { transform: rotate(180deg); }
.player-career-caret.is-blank { visibility: hidden; }
.player-career-row.is-comp { padding: 8px 0; border-bottom: 1px solid var(--bg-head); font-size: 0.82rem; }
.player-career-row.is-comp:last-child { border-bottom: 0; }
.player-career-complogo { display: inline-flex; justify-content: center; width: 28px; flex: none; color: var(--text-muted); }
.player-career-complogo .ss-comp-logo { width: 18px; height: 18px; }

.player-career-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin: 0 calc(-1 * var(--panel-pad, 0px)) calc(-1 * var(--panel-pad, 0px));
    padding: 12px var(--panel-pad, 0px);
    border-top: 1px solid var(--border);
    font-size: 0.75rem;
    color: var(--text-muted);
}
.player-career-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.player-career-legend .player-career-icon svg { width: 14px; height: 14px; }

@media (max-width: 520px) {
    .player-career-head.is-souteze,
    .player-career-row.is-souteze,
    .player-career-head.is-kluby,
    .player-career-row.is-kluby,
    .player-career-head.is-rocniky,
    .player-career-row.is-rocniky { grid-template-columns: minmax(0, 1fr) 8px 22px 20px 34px 14px 14px 36px; column-gap: 4px; }
    .player-career-icon svg { width: 14px; height: 14px; }
    .player-career-team .club-logo { width: 26px; height: 26px; }
    .player-career-complogo { width: 26px; }
    .player-career-team { gap: 8px; }
    .player-career-row { font-size: 0.78rem; }
    .player-career-sub { font-size: 0.72rem; }
    /* Název soutěže se v úzkém sloupci zalomí, aby z něj nezbyl začátek. */
    .player-career-row.is-comp .player-career-name { white-space: normal; line-height: 1.25; }
    .player-career-num .ss-rating { min-width: 0; padding: 2px 3px; font-size: 0.68rem; }
}

/* --- PŘESTUPY A ANGAŽMÁ ---
   Svislá osa kariéry odshora dolů, od nejnovějšího angažmá. Čára vlevo
   spojuje jednotlivá období, aby bylo vidět, že jde o jeden příběh. */
.transfer-list {
    list-style: none;
    margin: 0;
    padding: 0 0 0 20px;
    position: relative;
}
.transfer-list::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: var(--border);
}

.transfer-item {
    position: relative;
    padding: 0 0 14px 0;
}
.transfer-item:last-child { padding-bottom: 0; }
.transfer-item::before {
    content: "";
    position: absolute;
    left: -19px;
    top: 9px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--bg-card);
    border: 2px solid var(--border);
}
.transfer-item.is-current::before { border-color: var(--accent); box-shadow: 0 0 10px var(--accent-glow); }

.transfer-club { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.transfer-club-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--text-main);
    min-width: 0;
}
.transfer-club-name { font-weight: 700; font-size: 0.85rem; }
.transfer-club-link:hover .transfer-club-name { color: var(--accent); }

/* Hostování je z angažmá vykrojené, ne samostatná zastávka v kariéře:
   kmenový oddíl hráči po celou dobu zůstává a obě období se na ose
   překrývají. Odsazení a prázdná tečka to říkají dřív, než se čtenář dostane
   ke štítku. */
.transfer-item.is-loan { padding-left: 14px; }
.transfer-item.is-loan::before {
    left: -5px;
    width: 8px;
    height: 8px;
    top: 10px;
    background: var(--border);
    border: none;
}
.transfer-item.is-loan .transfer-club-name { font-weight: 600; }

.transfer-tag {
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--text-muted);
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 1px 5px;
    white-space: nowrap;
}

.transfer-when { margin-top: 3px; font-size: 0.7rem; color: var(--text-muted); }

.transfer-parent { margin-top: 3px; font-size: 0.68rem; }
.transfer-parent a { color: inherit; text-decoration: none; }
.transfer-parent a:hover { color: var(--accent); }

.transfer-numbers {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin-top: 5px;
    font-size: 0.72rem;
    color: var(--text-muted);
}
.transfer-number strong { color: var(--text-main); font-variant-numeric: tabular-nums; }
.transfer-number.is-accent strong { color: var(--accent); }

.transfer-teams { margin-top: 4px; font-size: 0.66rem; }

/* Přechod z předchozího angažmá. Stojí pod novějším obdobím a šipkou míří
   nahoru k němu — čte se to stejným směrem, jakým kariéra postupovala. */
.transfer-move {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-top: 8px;
    font-size: 0.68rem;
    color: var(--text-muted);
}
.transfer-move-arrow { color: var(--accent); font-weight: 800; }

/* --- SÍŇ SLÁVY ---
   Karta má tři úrovně nadpisů a musí jít poznat, která je která:

     h3  Síň slávy                      nadpis panelu (.ss-col-title)
     h4  Trofeje / Kariérní milníky     dvě poloviny karty (.hof-cat-title)
     h5  Týmové, Zápasy, Góly…          členění uvnitř poloviny

   Půlku karty proto odděluje výrazná linka a světlý text, podnadpisy uvnitř
   jsou drobné a akcentové — bez linky, aby s ní nesoupeřily. */
.hof-cat + .hof-cat {
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}
.hof-cat-title {
    margin: 0 0 12px;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: -0.2px;
    color: var(--text-main);
}

/* Trofeje: co hráč dokázal s týmem a co sám za sebe. */
.trophy-group + .trophy-group { margin-top: 14px; }
.trophy-group-title {
    margin: 0 0 4px;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--accent);
}

.trophy-list { list-style: none; margin: 0; padding: 0; }

.trophy-item {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-top: 1px solid var(--border);
}
.trophy-item:first-child { border-top: none; }

.trophy-icon { font-size: 0.95rem; text-align: center; line-height: 1; }
.trophy-main { min-width: 0; }
.trophy-label { display: block; font-weight: 700; font-size: 0.78rem; }

.trophy-flag {
    margin-left: 6px;
    font-size: 0.54rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    color: var(--text-muted);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 1px 7px;
    vertical-align: middle;
}

.trophy-where {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 2px;
    font-size: 0.68rem;
    color: var(--text-muted);
    min-width: 0;
}
.trophy-comp, .trophy-club { color: var(--text-muted); text-decoration: none; }
.trophy-club { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.trophy-club-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trophy-comp:hover, .trophy-club:hover .trophy-club-name { color: var(--accent); }
.trophy-sep { opacity: 0.5; }

.trophy-side { text-align: right; flex: none; }
.trophy-season {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.trophy-value { display: block; margin-top: 2px; font-size: 0.62rem; color: var(--accent); font-weight: 700; }

/* --- KARIÉRNÍ MILNÍKY (vodorovný graf) ---
   Řádek je stejná trojice jako pruhy „Kdy padají góly" v detailu zápasu
   (.match-aside-timing-row): popisek, pruh, hodnota. Pruh je delší a nese navíc
   značky met, proto vlastní třídy. */
.milestone-cat + .milestone-cat { margin-top: 18px; }

.milestone-cat-title {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 6px;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--accent);
}
.milestone-cat-step {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--text-muted);
}

.milestone-rows { display: flex; flex-direction: column; gap: 7px; }

.milestone-row {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr) 58px;
    align-items: center;
    gap: 10px;
}

/* Popisek řádku. U klubu je to jen logo, u kariéry a pater text — sloupec je
   proto úzký a obsah se v něm zarovnává vlevo, aby loga i texty stály pod
   sebou na jedné svislici. */
.milestone-label {
    display: flex;
    align-items: center;
    min-width: 0;
    font-size: 0.68rem;
    color: var(--text-muted);
}
.milestone-label-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.milestone-label-logo { display: inline-flex; }
/* Dráha pruhu drží celou šířku měřítka, značky met se do ní usazují
   absolutně podle procent. */
.milestone-track {
    position: relative;
    display: block;
    height: 9px;
    background: var(--bg-surface);
    border-radius: 999px;
}
.milestone-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--accent);
    opacity: 0.55;
}

/* Odstín podle nejvyšší dosažené mety — is-l0 až is-l6 (šest met na stupnici
   plus rozsah, kde ještě žádná nepadla). Sedm stupňů krytí místo sedmi
   natvrdo napsaných barev: dráha pod pruhem je tmavá, takže vyšší krytí
   samo dává světlejší odstín, a hue zůstává jediná — v --accent. Kdyby se
   akcent někdy změnil, stupnice se změní s ním.

   Stupnice začíná na 0,4, ne na nule: nejtmavší pruh musí být proti dráze
   pořád vidět. Při 0,26 vycházel kontrast 1,96 : 1, tedy míň než má dnešní
   jednotný pruh — a hlavní informace je délka pruhu, ne jeho odstín, takže
   ta se kvůli odstínění nesmí ztratit. Od 0,4 výš je to 3 : 1 a lepší. */
.milestone-fill.is-l0 { opacity: 0.40; }
.milestone-fill.is-l1 { opacity: 0.50; }
.milestone-fill.is-l2 { opacity: 0.60; }
.milestone-fill.is-l3 { opacity: 0.70; }
.milestone-fill.is-l4 { opacity: 0.80; }
.milestone-fill.is-l5 { opacity: 0.90; }
.milestone-fill.is-l6 { opacity: 1; }

/* Stupnice má pevný konec, dá se ho tedy přesáhnout. Pruh se v tom případě
   uřízne rovně na pravé hraně, aby bylo poznat, že pokračuje za ni. */
.milestone-track.is-over .milestone-fill {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

/* Značka mety: tenká svislá čárka napříč pruhem. Dosažená je tmavá, aby se
   proti vyplněné části pruhu odrazila; nedosažená splývá s dráhou. */
.milestone-mark {
    position: absolute;
    top: -2px;
    bottom: -2px;
    width: 2px;
    margin-left: -1px;
    border-radius: 1px;
    background: var(--border);
}
.milestone-mark.is-done { background: var(--bg-main); }

.milestone-value {
    font-size: 0.7rem;
    font-weight: 700;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 820px) {
    .milestone-row { grid-template-columns: 62px minmax(0, 1fr) 50px; gap: 7px; }
    .milestone-label { font-size: 0.64rem; }
    .milestone-value { font-size: 0.66rem; }
}

/* --- RESPONZIVITA KARTY HRÁČE ---
   Sloupce stránky i hlavičku řeší score-service.css. */
@media (max-width: 820px) {
    /* Hráčova čísla se pod zápas přesunou na vlastní řádek — vedle týmů
       by v téhle šířce ukrojila místo názvům. */
    .ss-match.has-extra { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
    .ss-match.has-extra > .ss-match-extra {
        grid-column: 2 / -1;
        justify-self: start;
    }

    .trophy-item { grid-template-columns: 20px minmax(0, 1fr) auto; gap: 8px; }
}


/* Trofeje: linka přes celou šířku panelu, jako u zápasů. */
.trophy-item {
    margin-left: calc(-1 * var(--panel-pad, 0px));
    margin-right: calc(-1 * var(--panel-pad, 0px));
    padding-left: var(--panel-pad, 0px);
    padding-right: var(--panel-pad, 0px);
}
