/* Nový web GPM — úvod a liga (app-league.js). Základ vzhledu je v gpm.css, base-pages.css a app.css;
   tady jsou jen věci těchto stránek. Posun při najetí se dělá přes translate / scale, protože transform
   drží nájezdová animace. */

.mu { color: var(--mut); }
.stack { display: grid; gap: 12px; }
.fbar { flex-wrap: wrap; gap: 10px 14px; }
.head0 > .sec { margin-bottom: 0; }
.sec > .lbl { padding-bottom: 6px; }

/* ── úvod: dva velké panely (Allstars Cup je pryč) ── */
.hero.duo { grid-template-columns: minmax(0, 1fr) 628px; gap: 44px; }
.hero-t span { display: block; }
.facts .num.mu { color: var(--dim); }
.panels.duo { grid-template-columns: 1fr 1fr; gap: 16px; height: 644px; }
.panels.duo .pn { padding: 34px 20px 30px; transition: translate .45s var(--e), box-shadow .45s, filter .3s; }
.panels.duo .pn::before, .panels.duo .pn .ln { width: 156px; }
.panels.duo .pn .logo { height: 214px; margin-top: 76px; transition: scale .5s var(--e); }
.panels.duo .pn .f { margin-top: 52px; gap: 16px; font-size: 12.5px; max-width: 100%; }
.panels.duo .pn .f span, .panels.duo .pn .f b { display: block; max-width: 268px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.panels.duo .pn .f .lead1 { text-transform: none; letter-spacing: .08em; color: #fff; }
.panels.duo .pn .cta { display: inline-flex; align-items: center; gap: 12px; font-size: 13.5px; }
.panels.duo .pn .cta i { font-style: normal; transition: translate .35s var(--e); }
.panels.duo .pn:hover { translate: 0 -10px; filter: brightness(1.14); box-shadow: 0 36px 70px -36px var(--pl); }
.panels.duo .pn:hover .logo { scale: 1.07; }
.panels.duo .pn:hover .cta i { translate: 8px 0; }
.hpug td { padding-top: 11px; padding-bottom: 11px; }
.hpug .who .nm { max-width: 250px; }

/* ── přehled ligy ── */
.lhero { display: grid; grid-template-columns: minmax(0, 1fr) 470px; gap: 40px; align-items: center; padding: 14px 0 6px; }
.lcnt { display: grid; grid-template-columns: repeat(3, 1fr); padding: 14px 16px; }
.lcnt a { display: block; padding: 14px; border-radius: 10px; transition: background-color .2s, translate .25s var(--e); }
.lcnt a:hover { background: rgba(255,255,255,.05); translate: 0 -2px; }
.lcnt .lbl { margin-top: 12px; color: var(--acc); }
.ltop .who .nm { max-width: 330px; }
.ltop td.hi { font-size: 14px; }
.nextf { grid-column: 1 / -1; display: flex; align-items: center; gap: 28px; padding: 20px 24px; border-style: dashed; }
.nextf .nfl { flex: none; }
.nextf .nft { margin: 10px 0 7px; color: #fff; font: 900 20px/1 var(--fd); font-stretch: 122%; letter-spacing: .04em; text-transform: uppercase; }
.nextf .nfv { flex: 1; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 22px; }
.nextf .nfv i { color: var(--dim); font: 900 20px/1 var(--fd); font-stretch: 125%; font-style: normal; text-transform: uppercase; }
.nfs { display: flex; align-items: center; gap: 14px; min-width: 0; justify-content: flex-end; }
.nfs.r { flex-direction: row-reverse; }
.nfs b { min-width: 0; color: #fff; font: 700 18px/1.1 var(--fb); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nextf .more, .champ .more { flex: none; color: var(--acc); font: 800 12px var(--fd); font-stretch: 115%; letter-spacing: .14em; transition: letter-spacing .25s var(--e); }
.nextf:hover .more, .champ:hover .more { letter-spacing: .2em; }
.champ { position: relative; display: flex; align-items: center; gap: 22px; padding: 22px 26px; overflow: hidden;
  background: linear-gradient(100deg, color-mix(in srgb, var(--c) 30%, transparent), rgba(255,255,255,.03) 60%); }
.champ::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--gold); }
.champ > div { flex: 1; min-width: 0; }
.champ .lbl { color: var(--gold); }
.champ .cn { margin-top: 8px; color: #fff; font: 800 30px/1.05 var(--fb); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── tabulka ── */
.tmc { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.stand .who .nm { max-width: 190px; }
.stand.full .who .nm { max-width: 420px; }
.stand h3 .more { margin-left: auto; color: var(--acc); font: 800 11px/1 var(--fd); font-stretch: 115%; letter-spacing: .14em; transition: letter-spacing .25s var(--e); }
.stand h3 .more:hover { letter-spacing: .2em; }
.pill.dis { height: 18px; padding: 0 7px; border-style: dashed; background: none; color: var(--mut); font-size: 9.5px; }
.t tr.gone .who .nm, .t tr.gone td { color: var(--mut); }
.t tr.zr td.rk { padding-left: 14px; width: 40px; }
.t tr.zr-po td.rk, .t tr.zr-up td.rk { box-shadow: inset 3px 0 0 var(--win); }
.t tr.zr-pro td.rk { box-shadow: inset 3px 0 0 var(--acc); }
.t tr.zr-rs td.rk { box-shadow: inset 3px 0 0 var(--gold); }
.t tr.zr-rel td.rk { box-shadow: inset 3px 0 0 var(--loss); }
.zbar { display: inline-block; width: 3px; height: 16px; border-radius: 2px; background: linear-gradient(180deg, var(--win) 50%, var(--loss) 50%); vertical-align: middle; }

/* ── týmy ── */
.tc.gone { opacity: .62; }
.tc .pill.dis { margin-top: 8px; }
.tc .row { align-items: flex-start; }
.tc .row > .tl { margin-top: -2px; }

/* ── statistiky: stupně vítězů (vlastní třídy — .pd z návrhu se na webu tluče s jiným prvkem) ── */
.pod3 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) minmax(0, 1fr); gap: 22px; align-items: end; padding: 34px 60px 0; overflow: hidden; }
.podc { text-align: center; min-width: 0; }
.podc .ring { display: inline-block; padding: 5px; border-radius: 50%; line-height: 0; background: rgba(255,255,255,.1); transition: scale .35s var(--e), box-shadow .3s; }
.podc.p1 .ring { background: var(--grad); }
.podc .ring .av { display: grid; box-shadow: 0 0 0 4px #15151b; transform: none; }
.podc .ring:hover { scale: 1.06; box-shadow: 0 14px 40px -12px color-mix(in srgb, var(--acc) 75%, transparent); }
.podc .pnm { display: block; margin-top: 14px; color: #fff; font: 800 22px/1.15 var(--fb); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .15s; }
.podc.p1 .pnm { font-size: 27px; }
.podc .pnm:hover { color: var(--acc); }
.podc .ptm { display: flex; justify-content: center; margin-top: 9px; min-width: 0; }
.podc .ptm .who { gap: 8px; max-width: 100%; }
.podc .ptm .who .nm { color: var(--ink2); font: 500 12px/1.2 var(--fm); letter-spacing: .03em; }
.podc .psub { margin-top: 9px; color: var(--mut); font: 500 11px/1 var(--fm); letter-spacing: .06em; }
.pped { position: relative; margin-top: 20px; padding-top: 18px; border-radius: 14px 14px 0 0; border: 1px solid var(--line); border-bottom: 0; overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.01)); }
.podc.p1 .pped { background: linear-gradient(180deg, color-mix(in srgb, var(--acc) 30%, transparent), rgba(255,255,255,.02)); border-color: color-mix(in srgb, var(--acc) 45%, transparent); }
.pped .num { font-size: 36px; }
.podc.p1 .pped .num { font-size: 52px; }
.pped .lbl { margin-top: 8px; }
.pped .plc { position: absolute; right: 14px; bottom: -14px; color: rgba(255,255,255,.07); font: 900 86px/1 var(--fd); font-stretch: 125%; pointer-events: none; }
.podc.none .pped { border-style: dashed; }
.stt .who .nm { max-width: 168px; }
.stt td.barc { width: 190px; min-width: 120px; }
.stt td.barc .pb u { transition: width .5s var(--e); }
.stt .t td, .stt .t th { padding-left: 8px; padding-right: 8px; }

/* ── play-off ── */
.br.lg { grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); }
.br.lg .col { min-width: 0; }
.ser { min-width: 0; }
a.ser { display: block; transition: translate .28s var(--e), border-color .25s, background-color .25s, box-shadow .3s; }
a.ser:hover { translate: 0 -3px; border-color: color-mix(in srgb, var(--acc) 55%, transparent); background: rgba(255,255,255,.055); box-shadow: 0 16px 40px -22px color-mix(in srgb, var(--acc) 70%, transparent); }
a.ser:hover .tl, a.rw:hover .tl { transform: scale(1.12); }
.ser .rw .snm { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ser a.rw { transition: color .15s; }
.ser a.rw:hover { color: var(--acc); }
.ser.up { border-color: color-mix(in srgb, var(--acc) 50%, transparent); }
.ser.gf { border-color: rgba(242,212,104,.45); background: linear-gradient(180deg, rgba(242,212,104,.07), var(--card)); }
.ser .lbl > span:first-child { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 10px; }
.sst { flex: none; display: inline-flex; align-items: center; gap: 6px; }
.sst.w { color: var(--win); } .sst.g { color: var(--gold); } .sst.u { color: #ff8a95; } .sst.l { color: var(--loss); }
body.league .sst.u { color: color-mix(in srgb, var(--acc) 62%, #fff); }

/* ── přestupy ── */
.cnt.on { border-color: color-mix(in srgb, var(--acc) 55%, transparent); background: color-mix(in srgb, var(--acc) 8%, transparent); }
.trh { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.trh h3 { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 14px; margin: 0; font: 900 13px/1 var(--fd); font-stretch: 122%; letter-spacing: .12em; text-transform: uppercase; }
.trh h3 .n { min-width: 0; color: var(--mut); font: 500 11.5px var(--fm); letter-spacing: .04em; text-transform: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fin { flex: none; width: 270px; height: 36px; padding: 0 16px; border-radius: 99px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); color: #fff; font: 500 13.5px var(--fb); outline: none;
  transition: width .3s var(--e), border-color .2s, background-color .2s; }
.fin::placeholder { color: #7d8092; }
.fin:focus { width: 320px; border-color: var(--acc); background: rgba(255,255,255,.07); }
.trc .who .nm { max-width: 260px; }
.trc td.arr { width: 40px; color: var(--mut); }

/* vysvětlivky: štítky uvnitř drží velikost, jakou mají v tabulce */
.lgl .lgd .pill { gap: 6px; font-size: 10.5px; }
.lgl .lgd .pill.dis { font-size: 9.5px; }
.trc td.arr { font-size: 16px; }
.ltop .who small, .trc .who small { max-width: 330px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.trc .who small { max-width: 260px; }
/* jméno hráče z G.who je řádkový prvek — aby se dlouhé jméno zkrátilo třemi tečkami, musí být blokové */
.ltop .who .nm, .stt .who .nm, .trc .who .nm, .hpug .who .nm, .stand .who .nm { display: block; }

/* filtry statistik: jedna karta, řádky s popiskem vlevo, pod ní mezera před obsahem */
.fcard { display: grid; gap: 12px; padding: 16px 20px; margin-bottom: 22px; }
.frow { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 12px; }
.frow > .lbl { flex: none; width: 76px; }
.frow > .chips + .lbl { width: auto; margin-left: 22px; }
.frow .chips { flex-wrap: wrap; }

/* rozměry, které dřív byly psané přímo ve stránce (style="…") — jako třídy je může přepsat css-m-league.css */
.home2 { padding-top: 44px; }
.brc { padding: 30px 34px; }
.fbar .rchips { margin-left: auto; }

/* ── uzavřené sezóny: oddíl „Past seasons“ na přehledu ligy (jen když nějaký archiv existuje) ── */
.pastc .cn { font-size: 24px; }
.pastc::before { background: color-mix(in srgb, var(--gold) 70%, transparent); }
/* odkaz do archivu na úvodu, pod čísly (jen když nějaký archiv existuje) */
.pasth { display: inline-flex; align-items: center; margin-top: 30px; color: var(--acc); font: 800 12px/1 var(--fd); font-stretch: 115%; letter-spacing: .14em; text-transform: uppercase; transition: letter-spacing .25s var(--e); }
.pasth:hover { letter-spacing: .2em; }

/* Teams od Season 3 (Frost) — jako plakát S3: nadpis na střed, divize s linkami do stran, velká loga bez karet */
.tphero { margin-top: 10px; text-align: center; }
.tphero .hd { font-size: 88px; }
.tphero .tpk { display: inline-block; margin-top: 16px; font: 900 22px/1 var(--fd); font-stretch: 125%; letter-spacing: .34em; padding-left: .34em; text-transform: uppercase; }
.tphero > .lbl { margin-top: 18px; }
.tph { display: flex; align-items: center; gap: 14px; margin-top: 70px; }
.tph > i { flex: 1; height: 1px; background: var(--line); }
.tph img { height: 40px; }
.tph b { display: block; font: 900 24px/1 var(--fd); font-stretch: 125%; text-transform: uppercase; }
.tph .lbl { display: block; margin-top: 7px; }
.tpg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 18px; margin-top: 38px; }
.tpc { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 22px 10px 18px; border-radius: 14px; text-align: center; transition: background .25s, translate .35s var(--e); }
.tpc:hover { background: var(--card); translate: 0 -3px; }
.tpl { position: relative; display: grid; place-items: center; height: 120px; }
.tpl .crown { position: absolute; left: 50%; top: -30px; width: 56px; translate: -50% 0; z-index: 1; filter: drop-shadow(0 3px 6px rgba(0,0,0,.45)); }
.tpc .nm { max-width: 100%; margin-top: 16px; color: var(--ink); font: 700 18px/1.22 var(--fb); overflow-wrap: anywhere; }
.tpc .lbl { margin-top: 9px; }
.tpc .tps { margin-top: 10px; color: var(--ink2); font: 500 12px/1 var(--fm); letter-spacing: .06em; }
.tpc .tps i { font-style: normal; color: var(--acc); }
.tpc.tpch .nm, .tpc.tpch .lbl { color: var(--gold); }
.tpc .pill.dis { margin-top: 10px; }
.tpc.gone { opacity: .5; }

/* Tabulka od Season 3 (Frost) — týmy jako pásy, zóny dělí čára s popiskem (app-league.js standStrips) */
.stand3 { margin-top: 30px; display: grid; gap: 8px; }
.srow { position: relative; display: grid; grid-template-columns: 46px 52px minmax(0, 1fr) 50px 76px 84px 62px 104px 80px; align-items: center; column-gap: 14px;
  min-height: 70px; padding: 8px 22px 8px 0; background: var(--card); border: 1px solid var(--line); border-radius: 12px; transition: background .25s, translate .3s var(--e); }
.srow::before { content: ""; position: absolute; left: -1px; top: 14px; bottom: 14px; width: 3px; border-radius: 0 3px 3px 0; background: transparent; }
.srow.z-po::before, .srow.z-up::before { background: var(--win); } .srow.z-pro::before { background: var(--acc); }
.srow.z-rs::before { background: var(--gold); } .srow.z-rel::before { background: var(--loss); }
a.srow:hover { background: rgba(255,255,255,.06); translate: 3px 0; }
.srow.shd { min-height: 0; padding-top: 0; padding-bottom: 4px; background: none; border: 0; }
.srow > .sv, .srow.shd > .lbl:not(:nth-child(3)) { text-align: center; }
.srow .rk { text-align: right; font: 900 26px/1 var(--fd); font-stretch: 125%; color: var(--ink); }
.srow .tl { justify-self: center; }
.srow .sn { min-width: 0; }
.srow .sn > b { display: flex; align-items: center; gap: 8px; min-width: 0; color: var(--ink); font: 700 17px/1.2 var(--fb); overflow-wrap: anywhere; }
.srow .sn > .lbl { display: block; margin-top: 6px; }
.srow .sn .pill { margin-top: 6px; }
.srow .crown.sm { width: 22px; flex: none; }
.srow .sv { color: var(--ink2); font: 500 14px/1 var(--fm); }
.srow .sv b { color: var(--ink); font-weight: 600; }
.srow .sv.pos { color: var(--win); } .srow .sv.neg { color: var(--loss); }
.srow .spts { text-align: right; font: 900 30px/1 var(--fd); font-stretch: 125%; }
.srow.gone { opacity: .5; }
.fdots { display: inline-flex; gap: 6px; vertical-align: middle; }
.fdots i { width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid var(--dim); }
.fdots i.w { background: var(--acc); border-color: var(--acc); }
.scut { display: flex; align-items: center; gap: 12px; margin: 12px 0 2px; color: var(--mut); font: 600 10.5px/1 var(--fm); letter-spacing: .16em; text-transform: uppercase; }
.scut i { flex: 1; height: 1px; background: var(--line); }
.scut.z-po span, .scut.z-up span { color: var(--win); } .scut.z-pro span { color: var(--acc); }
.scut.z-rs span { color: var(--gold); } .scut.z-rel span { color: var(--loss); }
.scut.z-po i, .scut.z-up i { background: color-mix(in srgb, var(--win) 30%, transparent); } .scut.z-pro i { background: color-mix(in srgb, var(--acc) 30%, transparent); }
.scut.z-rs i { background: color-mix(in srgb, var(--gold) 30%, transparent); } .scut.z-rel i { background: color-mix(in srgb, var(--loss) 30%, transparent); }
/* přehled ligy od Season 3 před prvním zápasem: den prvních zápasů s odpočtem */
.lsoon { display: flex; align-items: baseline; gap: 14px; margin-top: 22px; }
.lsoon b { font: 900 24px/1 var(--fd); font-stretch: 125%; text-transform: uppercase; }
