/* Nový web GPM — tablet a telefon: PUGs (app-pugs.js), rating (app-rating.js), pravidla, účet, správa týmu a admin
   (app-more.js). Navazuje na css-mobile.css (společný základ: hlavička, rozbalovací nabídka, šířka stránky, obecné mřížky);
   tady je jen doladění těchto stránek. Hranice jsou stejné jako v základu:
   ≤ 1340 plynulá šířka · ≤ 1180 tablet na šířku · ≤ 900 tablet na výšku · ≤ 640 telefon.
   Všechno je pod třídou stránky (.pu, .rtg, .rul, .mep, .gmp, .adm), aby se pravidla nepletla ostatním skupinám. */

/* ═════════ společné ═════════ */
/* Filtr ve stránce má stejnou třídu jako hledání v hlavičce (.search). Základ ho na tabletu skládá do ikony s neviditelným
   textem a na telefonu při psaní vytrhne nahoru přes hlavičku — filtr má zůstat obyčejným polem tam, kde je. */
@media (max-width: 900px) {
  #view input.search.flt { padding-left: 14px; color: #fff; background: rgba(255,255,255,.04); }
  #view input.search.flt::placeholder { color: #7d8092; }
  #view input.search.flt:focus { background: rgba(255,255,255,.07); }
}
@media (max-width: 640px) {
  #view input.search.flt, #view input.search.flt:focus { position: static; width: 100% !important; height: 42px; font-size: 16px; }
  #view select.search.flt { width: 100% !important; height: 42px; font-size: 16px; }      /* 16 px: iPhone jinak při ťuknutí přiblíží celou stránku */
  /* stránkování: počet nahoře, tlačítka pod ním uprostřed a dost velká na palec */
  .pu .pager, .rtg .pager, .amain .pager { justify-content: center !important; gap: 10px 14px; text-align: center; }
  .pu .pager .lbl, .rtg .pager .lbl, .amain .pager .lbl { flex: 1 1 100%; font-size: 11px; }
  .pu .pager .chip, .rtg .pager .chip, .amain .pager .chip { height: 40px; padding: 0 14px; }
  /* nejmenší písmo: popisky, štítky a záhlaví tabulek aspoň 11 px */
  .pu .lbl, .rtg .lbl, .rul .lbl, .mep .lbl, .gmp .lbl, .adm .lbl { font-size: 11px; }
  .pu .pill, .rtg .pill, .mep .pill, .gmp .pill, .adm .pill { font-size: 11px; letter-spacing: .07em; }
  .pu .t th, .rtg .t th, .gmp .t th, .adm .t th { font-size: 11px; letter-spacing: .08em; }
  .pu .youtag, .rtg .youtag { font-size: 11px; letter-spacing: .08em; }
  .adm .fld label { font-size: 11px; letter-spacing: .1em; }
  .pu .lgd > div > span, .rtg .lgd > div > span, .rul .lgd > div > span, .gmp .lgd > div > span { align-items: flex-start; line-height: 1.35; }
  .pu .lgd > div > span > i, .rtg .lgd > div > span > i, .rul .lgd > div > span > i, .gmp .lgd > div > span > i { flex: none; line-height: 1.5; }
}
/* Hlavička (patří do základu css-mobile.css — tady jen dočasná záplata, dokud se nepřesune tam): přihlášenému staffu se
   mezi 641 a 767 px nevejde odkaz ADMIN a jméno vedle nabídky a stránka pak ujíždí do strany (měřeno: 86 px při 680 px).
   V tom pásmu proto zůstane jen profilovka jako na telefonu; do 900 px se dlouhé jméno ořízne, aby nevytlačilo hlavičku. */
@media (min-width: 641px) and (max-width: 900px) {
  .mechip { max-width: 138px; overflow: hidden; }
}
@media (min-width: 641px) and (max-width: 767px) {
  .mechip { font-size: 0; gap: 0; padding: 0 4px; }
}
@media (min-width: 641px) and (max-width: 720px) {
  .admlink { display: none; }      /* jako na telefonu: admin je dostupný ze stránky účtu */
}
/* záhlaví sloupců, podle kterých se řadí: na dotyku dost velké na prst */
@media (max-width: 1180px) {
  .pu .t th.srt { padding-top: 0; padding-bottom: 0; }
  .pu .t th.srt a { display: block; padding: 13px 0; }
}

/* ═════════ PUGs: žebříček ═════════ */
@media (max-width: 1180px) {
  .pu .lb { grid-template-columns: 56px minmax(0, 1fr) 216px minmax(140px, 23vw) 132px; }
  .pu-hero { gap: 24px; }
}
@media (max-width: 900px) {
  .pu-h1 { font-size: clamp(30px, 5vw, 46px); }
  .pu .lb { grid-template-columns: 44px minmax(0, 1fr) 180px 112px 98px; padding-right: 18px; }
  .pu .lb .pu-who { padding-right: 12px; }
  .pu .lb .nm { font-size: 16.5px; }
  .pu .lb .rec { font-size: 12.5px; }
  .pu .lb .mmr { font-size: 27px; }
  .pu-bar > .row { flex-wrap: wrap; }
}
/* úzký tablet a telefon na šířku: bilance bez oddělovačů a úspěšnost jen číslem, ať jménu zbude místo */
@media (min-width: 641px) and (max-width: 767px) {
  .pu .lb { grid-template-columns: 42px minmax(0, 1fr) 150px 44px 92px; }
  .pu .lb .rec .sep { display: none; }
  .pu .lb .rec b { margin-left: 9px; }
  .pu .lb .rec b:first-child { margin-left: 0; }
  .pu .lb .wr u { display: none; }
  .pu .lb .mmr { font-size: 25px; }
}
@media (max-width: 640px) {
  /* úvod: nadpis na dva řádky, tlačítko přes celou šířku pod textem */
  .pu-hero { flex-direction: column; align-items: stretch; gap: 16px; }
  .pu-h1 { margin-top: 14px; font-size: clamp(22px, 7.3vw, 31px); }
  .pu-hero .lead { margin-top: 10px !important; font-size: 14.5px !important; line-height: 1.5; }
  .pu-hero > .btn { justify-content: center; }
  .pu-live { gap: 8px; margin-top: 18px; }
  .pu-live > .lbl { flex: 1 1 100%; font-size: 11px; }
  .pu-lg { flex: 1 1 100%; gap: 12px; height: 46px; padding: 0 14px; }
  .pu-lg .lbl { margin-left: auto; font-size: 11px; letter-spacing: .08em; }

  /* přepínače: popisek nad svou skupinou štítků */
  .pu-bar { gap: 12px; }
  .pu-bar > .chips { flex: 1 1 100%; gap: 6px; }
  .pu .chips > .lbl { display: block; flex: 0 0 100%; margin: 0 0 1px !important; align-self: flex-start !important; font-size: 11px; letter-spacing: .12em; }
  .pu .chips > .lbl ~ .lbl { margin-top: 7px !important; }
  .pu .chip { padding: 0 12px; }
  .pu .chip.where { max-width: 100%; }
  /* „Where am I?“ a počet na jednom řádku, pole pro hledání přes celou šířku pod nimi */
  .pu-bar > .row { flex: 1 1 100%; gap: 10px !important; }
  .pu-bar > .row > .pu-cnt { margin-left: auto; font-size: 11px; letter-spacing: .08em; }
  .pu-bar > .row > .pu-find { order: 3; flex: 1 1 100%; }
  .pu .pu-find { width: 100%; height: 42px; padding: 0 16px; font-size: 16px; }

  /* řádek žebříčku jako karta: pořadí, profilovka, jméno (a série); pod jménem bilance a úspěšnost; MMR velké vpravo */
  .pu .lb { grid-template-columns: 30px minmax(0, 1fr) auto; grid-template-areas: "rk who mmr" "rk meta mmr"; align-content: center; row-gap: 5px;
    height: auto; min-height: 64px; margin-bottom: 8px; padding: 10px 14px 10px 5px; }
  .pu .lb .rk { grid-area: rk; font-size: 15px; }
  .pu .lb .rk.r3 { font-size: 12px; letter-spacing: -.02em; }
  .pu .lb .pu-who { grid-area: who; gap: 7px; padding: 0 0 0 46px; }
  .pu .lb .av { position: absolute; left: 37px; top: 50%; margin-top: -18px; --s: 36px !important; }
  .pu .lb .nm { font-size: 15px; font-stretch: 104%; line-height: 1.25; }
  .pu .lb .pu-who .pill { height: 20px; padding: 0 6px; gap: 4px; font-size: 11px; letter-spacing: .04em; }
  .pu .lb .pu-who .youtag { height: 18px; padding: 0 6px; font-size: 11px; letter-spacing: .06em; }
  .pu .lb-meta { grid-area: meta; display: flex; align-items: center; gap: 10px; min-width: 0; padding-left: 46px; }
  .pu .lb .rec { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: var(--mut); font-size: 11.5px; }
  .pu .lb .rec .sep { display: none; }
  .pu .lb .rec b { margin-left: 8px; color: var(--ink2); font-weight: 600; }
  .pu .lb .rec b:first-child { margin-left: 0; }
  /* úspěšnost jen číslem v barvě (zelená / červená): proužek by se vedle bilance nevešel */
  .pu .lb .wr { flex: none; font-size: 11.5px; font-weight: 700; }
  .pu .lb .wr u { display: none; }
  .pu .lb .mmr { grid-area: mmr; padding-left: 8px; font-size: 24px; }
  .pu .lb.t1::before, .pu .lb.t2::before, .pu .lb.t3::before { top: 10px; bottom: 10px; }
}
@media (max-width: 374px) {
  .pu .lb { grid-template-columns: 28px minmax(0, 1fr) auto; padding-right: 12px; }
  .pu .lb .av { left: 35px; margin-top: -17px; --s: 34px !important; }
  .pu .lb .pu-who, .pu .lb-meta { padding-left: 43px; }
  .pu .lb .mmr { padding-left: 6px; font-size: 22px; }
  .pu .lb .rec, .pu .lb .wr { font-size: 11px; }
}

/* ═════════ PUGs: statistiky ze hry ═════════ */
@media (max-width: 1180px) {
  /* široká tabulka se posouvá uvnitř karty; pořadí a jméno hráče při tom drží vlevo, čísla jedou pod nimi */
  .pu-tc { background: #14151b; }
  .pu-tc .t tr > :first-child:not([colspan]) { position: sticky; left: 0; z-index: 2; box-sizing: border-box; width: 40px; min-width: 40px; max-width: 40px; padding-right: 0; }
  .pu-tc .t tr > :nth-child(2) { position: sticky; left: 40px; z-index: 2; }
  .pu-tc .t tr > :first-child:not([colspan]), .pu-tc .t tr > :nth-child(2) { background: #14151b; }
  .pu-tc .t tr.me > :first-child, .pu-tc .t tr.me > :nth-child(2) { background: linear-gradient(color-mix(in srgb, var(--acc) 13%, transparent), color-mix(in srgb, var(--acc) 13%, transparent)), #14151b; }
  .pu-tc .t td.l .who { max-width: 210px; }
}
@media (max-width: 900px) {
  .pu-tc .t td.l .who { max-width: 180px; }
  /* přepínače pod nadpisem přes celou šířku (vedle nadpisu by se nevešly a zůstaly by viset vpravo) */
  .pu[data-pu="stats"] .sec > .row { flex: 1 1 100%; margin-left: 0 !important; justify-content: flex-start !important; }
}
@media (max-width: 640px) {
  /* pořadí na telefonu: nadpis, popis, přepínače (každá skupina s popiskem nad sebou), „Where am I?“, tabulka */
  .pu[data-pu="stats"] { display: flex; flex-direction: column; }
  .pu[data-pu="stats"] > .sec { display: contents; }
  .pu[data-pu="stats"] > .sec > div:first-child { order: 1; }
  .pu[data-pu="stats"] > .lead { order: 2; margin: 10px 0 16px !important; font-size: 14px !important; line-height: 1.5; }
  .pu[data-pu="stats"] > .sec > .row { order: 3; margin-bottom: 13px; }
  .pu[data-pu="stats"] > .pu-bar { order: 4; }
  .pu[data-pu="stats"] > .pu-tc { order: 5; }
  .pu[data-pu="stats"] > .lgd { order: 6; }
  .pu[data-pu="stats"] .sec > .row > .chips { flex: 1 1 100%; gap: 6px; }

  .pu-tc { padding: 14px 0 8px; }
  .pu-tc > h3 { margin: 0 14px 10px; }
  .pu-tc > h3 .n { font-size: 11.5px; line-height: 1.4; }
  .pu-tc .t th { font-size: 11px; letter-spacing: .08em; }
  .pu-tc .t th, .pu-tc .t td { padding-left: 7px; padding-right: 7px; }
  .pu-tc .t th.srt a { min-width: 22px; }
  .pu-tc .t tr > :first-child:not([colspan]) { padding-left: 14px; }
  .pu-tc .t tr > :nth-child(2) { padding-left: 2px; padding-right: 10px; box-shadow: 8px 0 10px -8px rgba(0,0,0,.7); }
  .pu-tc .t tr > :last-child { padding-right: 14px; }
  .pu-tc .t td[colspan] { white-space: normal; line-height: 1.45; padding: 14px; }
  .pu-tc .who { gap: 8px; }
  .pu-tc .t td.l .who { max-width: none; }
  .pu-tc .who .nm { max-width: 31vw; font-size: 14px; }
  .pu-tc .t td.hi { font-size: 14px; }
  .pu-tc .pager { margin: 12px 14px 8px; padding-top: 14px; }
}

/* ═════════ PUGs: historie zápasů ═════════ */
@media (max-width: 900px) {
  /* karta zápasu: modrý a červený tým pořád vedle sebe (základ by je složil pod sebe a stránka by byla dvakrát delší) */
  .pu-hist { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .pu-m { padding: 16px; }
  .pu-m > .row { flex-wrap: wrap; gap: 12px 14px; margin-bottom: 14px !important; }
  .pu-m > .row > .row { flex: 1 1 100%; gap: 8px !important; }
  .pu-m > .row > .row .btn { flex: 1 1 0; justify-content: center; padding: 0 8px; }
  .pu-m .g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .pu-m .pt { padding: 12px 11px 13px; }
  .pu-m .pt > .row { flex-wrap: wrap; gap: 6px 8px; margin-bottom: 8px !important; }
  .pu-pl { margin-top: 0; }
  .pu-pl .who { gap: 8px; min-height: 36px; }      /* jméno je odkaz na hráče: řádek dost vysoký na prst */
  a.pu-id { padding: 9px 0; margin: -9px 0; }
  .pu-pl .who .nm { font-size: 13.5px; }
  .pu[data-pu="hist"] .sec > .row { flex: 1 1 100%; flex-wrap: wrap; margin-left: 0 !important; justify-content: space-between !important; }
}
@media (max-width: 640px) {
  .pu-hist { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .pu-m { padding: 14px 12px 12px; }
  .pu-id { font-size: 18px; }
  .pu-m .lbl { font-size: 11px; letter-spacing: .08em; }
  .pu-m .pill { font-size: 11px; letter-spacing: .04em; padding: 0 7px; }
  .pu-m .g2 { gap: 8px; }
  .pu-m .pt { padding: 11px 10px 12px; }
  /* nadpis, pod ním počet a pole pro hledání přes celou šířku */
  .pu[data-pu="hist"] .sec > .row { gap: 10px !important; }
  .pu[data-pu="hist"] .sec > .row > .pu-cnt { flex: 1 1 100%; white-space: normal; font-size: 11px; letter-spacing: .08em; line-height: 1.4; }
}

/* ═════════ PUGs: týdenní přehled ═════════ */
@media (max-width: 1180px) {
  .pu-wh { grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: 28px; }
  .pu-wh .cnt { padding: 18px 16px; }
  .pu-wh .cnt .num { font-size: 32px; }
  /* tři karty týdne: „Climber“ přes celou šířku, pod ním dvě vedle sebe (tři vedle sebe by se sem nevešly bez zkracování jmen) */
  .pu-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .pu-top > .potm { grid-column: 1 / -1; }
  /* žebříčky týdne: řádek na dva řádky — jméno má celou šířku, zápasy a bilance jsou pod ním */
  .pu[data-pu="week"] .g3 .wr2 { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; grid-template-areas: "rk who val" "rk sub val"; column-gap: 10px; row-gap: 0; align-items: center; }
  .pu[data-pu="week"] .g3 .wr2 .rk { grid-area: rk; }
  .pu[data-pu="week"] .g3 .wr2 .who { grid-area: who; display: flex; }
  .pu[data-pu="week"] .g3 .wr2 .who .av { --s: 28px !important; }
  .pu[data-pu="week"] .g3 .wr2 .lbl { grid-area: sub; margin-top: -3px; padding-left: 38px; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pu[data-pu="week"] .g3 .wr2 b { grid-area: val; min-width: 0; }
  /* jména jsou odkazy na hráče: na dotyku vysoká aspoň 36 px (řádek si o to ubere z odsazení) */
  .pu[data-pu="week"] .wr2 { padding-top: 6px; padding-bottom: 6px; }
  .pu[data-pu="week"] .wr2 .who { min-height: 36px; }
  .pu[data-pu="week"] .g3 .wr2 .lbl { margin-top: -7px; }
  .pu-bn { padding: 7px 0; margin: -7px 0; }
}
@media (max-width: 900px) {
  .pu-wh { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .pu-wh .g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pu-wh .cnt { padding: 20px 22px; }
  .pu-wh .cnt .num { font-size: 38px; }
  /* tři seznamy: dva vedle sebe, třetí přes celou šířku */
  .pu[data-pu="week"] > .g3 > .card:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .pu-ups { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .pu-up { padding: 14px 13px; }
  .pu-up > .row { flex-wrap: wrap; gap: 8px; }
  .pu-upt { font-size: 14px; line-height: 1.4; }
}
@media (max-width: 640px) {
  .pu-wh { gap: 18px; padding: 0; }
  .pu-wh .kick { font-size: 11px; letter-spacing: .16em; line-height: 1.4; }
  .pu-wh .hd { margin-top: 12px !important; }
  .pu-wh .lead { margin-top: 12px !important; font-size: 14.5px; line-height: 1.5; }
  .pu-wh .chips { margin-top: 16px !important; gap: 6px; }
  .pu-wh .g3 { gap: 8px !important; }
  .pu-wh .cnt { padding: 13px 8px 12px; border-radius: 10px; text-align: center; }
  .pu-wh .cnt .num { font-size: 22px; }
  .pu-wh .cnt .lbl { margin-top: 7px; font-size: 11px; letter-spacing: .02em; }
  .pu-top { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .pu-top > .card > .lbl { font-size: 11px; letter-spacing: .1em; }
  /* profilovka, jméno a velké číslo zůstávají na jednom řádku */
  .pu-top > .card > .row { flex-wrap: nowrap; gap: 13px !important; }
  .pu-top > .card > .row > div:not(.num) { flex: 1 1 0; }
  .pu-top .potm .pu-big .av { --s: 56px !important; }
  .pu-top .potm > .row > .num { font-size: 32px !important; }
  .pu-bn { font-size: 20px; }
  .pu-top .pu-1l { white-space: normal; font-size: 11px; letter-spacing: .08em; line-height: 1.45; }
  .pu-top .sg { margin-top: 18px !important; padding-top: 16px !important; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 10px; }
  .pu-top .sg .lbl { font-size: 11px; letter-spacing: .06em; }
  .pu-top .sg .v { font-size: 18px; }
  .pu[data-pu="week"] > .g3 > .card:last-child:nth-child(odd) { grid-column: auto; }
  .pu-ups { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .pu-up { padding: 13px 14px; }
  .pu-up .lbl { font-size: 11px; letter-spacing: .06em; }
  .pu-foot { flex-wrap: wrap; gap: 8px 14px; padding: 16px; }
  .pu-foot b { white-space: normal; }
  .pu-foot .lbl { flex: 1 1 100%; font-size: 11px; letter-spacing: .06em; line-height: 1.45; }
  .pu-foot .btn { flex: 1 1 100%; margin: 6px 0 0 !important; justify-content: center; }
}

/* ═════════ PUGs: bany ═════════ */
@media (max-width: 1180px) {
  .pu-bans .t td.pu-rs { max-width: 24vw; }
  .pu[data-pu="bans"] > .g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }      /* čtyři počty v jedné řadě jako na počítači */
  .pu[data-pu="bans"] .cnt { padding: 18px 16px; }
  .pu[data-pu="bans"] .cnt .num { font-size: 34px; }
  .pu-sub { white-space: normal; line-height: 1.35; }
  .pu-top1 { font-size: 16px; line-height: 34px; }
  .pu-bans .t td.l .who { max-width: 200px; }
}
@media (max-width: 900px) {
  /* tabulka by se nevešla: bany jako karty — hráč a stav, pod tím celý důvod, dole druh, délka a datum.
     Stejně vypadá i seznam banů v adminu (.abn). */
  .pu[data-pu="bans"] > .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pu-ch { flex-wrap: wrap; }
  .pu-bans .pu-scroll { overflow: visible; }
  :is(.pu-bans, .abn) table.t { overflow: visible; }
  :is(.pu-bans, .abn) table.t > tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: auto; min-width: 0; }
  :is(.pu-bans, .abn) .t tr:first-child { display: none; }
  :is(.pu-bans, .abn) .t tr { display: flex; flex-wrap: wrap; align-items: center; align-content: flex-start; gap: 9px 10px; padding: 12px 13px 12px; border: 1px solid var(--line2); border-radius: 12px; background: rgba(255,255,255,.025); }
  :is(.pu-bans, .abn) .t td { display: block; min-width: 0; padding: 0; border: 0; text-align: left; }
  :is(.pu-bans, .abn) .t tr:hover td { background: none; }
  :is(.pu-bans, .abn) .t td:nth-child(1) { order: 1; flex: 1 1 0; }
  :is(.pu-bans, .abn) .t td:nth-child(6) { order: 2; flex: none; }
  :is(.pu-bans, .abn) .t td:nth-child(2) { order: 3; flex: 0 0 100%; max-width: none; overflow: visible; white-space: normal; overflow-wrap: anywhere; font-size: 14px; line-height: 1.4; }
  :is(.pu-bans, .abn) .t td:nth-child(3) { order: 4; }
  :is(.pu-bans, .abn) .t td:nth-child(4) { order: 5; font-size: 12.5px; }
  :is(.pu-bans, .abn) .t td:nth-child(5) { order: 6; margin-left: auto; font-size: 11.5px; white-space: nowrap; }
  :is(.pu-bans, .abn) .t td[colspan] { flex: 1 1 100%; white-space: normal; }
  :is(.pu-bans, .abn) .t tr:has(td[colspan]) { grid-column: 1 / -1; }
  :is(.pu-bans, .abn) .t td.l .who { display: flex; max-width: 100%; }
  :is(.pu-bans, .abn) table.t td.l .who .nm { max-width: 100%; }
  :is(.pu-bans, .abn) .pager { margin-top: 14px; }
}
@media (max-width: 640px) {
  .pu[data-pu="bans"] .cnt { padding: 14px 14px 13px; }
  .pu[data-pu="bans"] .cnt .lbl { margin-top: 9px; font-size: 11px; letter-spacing: .08em; }
  .pu-sub { margin-top: 7px; white-space: normal; line-height: 1.35; }
  .pu-top1 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; min-height: 30px; font-size: 14px; line-height: 1.15; white-space: normal; }
  .pu-bans { padding: 14px 12px; }
  .pu-ch { gap: 6px 12px; margin: 0 2px 12px; }
  .pu-ch .n { margin-left: 0; flex: 1 1 100%; white-space: normal; font-size: 11.5px; }
  .pu-ch .pu-find { margin-top: 4px; }
  :is(.pu-bans, .abn) table.t > tbody { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}

/* ═════════ Pravidla ═════════ */
@media (max-width: 1180px) {
  .rul .rules { grid-template-columns: 236px minmax(0, 1fr); gap: 24px; }
  .rul .toc { padding: 14px 12px; }
  .rul .toc a { padding-left: 10px; }
  .rul .rc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  /* obsah už není sloupec vlevo: je z něj řada přilepená pod hlavičkou, která se posouvá prstem do strany */
  /* .rules přestává být mřížka: přilepený prvek smí cestovat jen po svém poli mřížky, a to by tu bylo vysoké jako řada sama
     (Safari a Firefox to dodržují — řada by s textem odjela). V obyčejném bloku se drží po celé délce pravidel. */
  .rul .rules { display: block; }
  .rul .toc { position: sticky; top: 64px; z-index: 30; display: flex; align-items: center; gap: 6px; max-height: none; margin: 0 -20px 20px; padding: 8px 20px;
    overflow-x: auto; overflow-y: hidden; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: #101014; box-shadow: 0 10px 18px -12px rgba(0,0,0,.8);
    scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .rul .toc::-webkit-scrollbar { display: none; }
  .rul .toc .tp { flex: none; margin: 0 2px 0 12px; padding-left: 9px; }
  .rul .toc .tp:first-child { margin-left: 0; }
  .rul .toc .tp b { font-size: 11px; line-height: 1.2; white-space: nowrap; }
  .rul .toc .tp span { display: block; font-size: 12.5px; line-height: 1.25; white-space: nowrap; }
  .rul .toc a { flex: none; align-items: center; gap: 7px; height: 38px; padding: 0 13px; border-radius: 99px; border: 1px solid var(--line); background: rgba(255,255,255,.03); font-size: 13px; white-space: nowrap; }
  .rul .toc a i { width: auto; padding: 0; }
  .rul .toc a.on { border-color: transparent; background: var(--grad); color: var(--on); font-weight: 700; }
  .rul .toc a.on i { color: inherit; opacity: .65; }
  .rul .rs { scroll-margin-top: 136px; }      /* hlavička 64 + řada s obsahem 55 + odstup */
  .rul .rules.sp2 { margin-top: 24px !important; }
  .rul .rc { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .rul .lead { font-size: 14.5px; line-height: 1.55; }
  .rul .toc { top: 56px; margin: 0 -16px 18px; padding: 7px 16px; }
  .rul .rs { scroll-margin-top: 124px; }
  .rul .rp { margin-bottom: 30px; }
  .rul .rp > .hd { margin-top: 8px; font-size: clamp(20px, 6.2vw, 25px) !important; line-height: 1.05; }
  .rul .rp > .lead { margin: 8px 0 14px !important; font-size: 14px !important; }
  .rul .rp > .lbl { font-size: 11px; }
  .rul .rs { padding: 15px 15px 16px; margin-bottom: 10px; }
  .rul .rs > h3 { flex-wrap: nowrap; align-items: baseline; margin-bottom: 10px; font-size: 12.5px; line-height: 1.3; }
  .rul .rs p, .rul .rs ul { font-size: 14.5px; line-height: 1.55; }
  .rul .rs ul { padding-left: 18px; }
  .rul .rs li + li { margin-top: 3px; }
  .rul .rs h4 { font-size: 14.5px; line-height: 1.3; }
  .rul .pen { flex-direction: column; gap: 5px; padding: 10px 12px; font-size: 12.5px; line-height: 1.5; }
  .rul .pen .lbl { font-size: 11px; }
  .rul .rc { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .rul .rc div { padding: 11px 12px; }
  .rul .rc b { font-size: 14px; }
  /* tabulky v pravidlech: text se láme, nic se neposouvá do strany */
  .rul table.t.rt { max-width: none; overflow: visible; }
  .rul table.t.rt > tbody { min-width: 0; }
  .rul .t.rt th { font-size: 11px; letter-spacing: .06em; white-space: normal; line-height: 1.3; }
  .rul .t.rt td { white-space: normal; line-height: 1.4; font-size: 13.5px; }
  .rul .t.rt th, .rul .t.rt td { padding: 9px 8px 9px 0; }
}

/* ═════════ Účet ═════════ */
@media (max-width: 1180px) {
  .mep .g2 > .card:only-child { grid-column: 1 / -1; }      /* jediná karta v řadě: přes celou šířku */
}
@media (max-width: 900px) {
  .mep .headc > div:not(.row) { flex: 1 1 0; min-width: 0; }
  .mep .headc h1 { overflow-wrap: anywhere; }
  .mep .g3 > .card:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .mep .g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mep .card .row { flex-wrap: wrap; }
  .mep .mepug { gap: 16px 20px !important; }
  .mep .mepug > .sg { flex: 1 1 200px !important; }
}
@media (max-width: 640px) {
  .mep .headc > .av { --s: 64px !important; }
  .mep .headc h1 { margin-top: 4px; font-size: 24px; line-height: 1.1; }
  .mep .headc .pill { font-size: 11px; letter-spacing: .06em; }
  .mep .headc > .row { margin-left: 0 !important; flex: 1 1 100%; gap: 10px; }
  .mep .headc > .row .btn { flex: 1 1 0; justify-content: center; }
  .mep .g2 { grid-template-columns: minmax(0, 1fr); }
  .mep .g3 > .card:last-child:nth-child(odd) { grid-column: auto; }
  .mep .card > .lead, .mep .card > p.lead { font-size: 14px !important; line-height: 1.5; }
  .mep .card .pill { font-size: 11px; letter-spacing: .06em; }
  .mep .card .sg { grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 10px 8px; }
  .mep .card .sg .lbl { font-size: 11px; letter-spacing: .06em; }
  .mep .card .btn.sm { height: 42px; }
  .mep .card > .btn.sm, .mep .card > .row > .btn.sm { flex: 1 1 auto; justify-content: center; }
  .mep .card > .btn.sm { display: flex; }
  .mep .note { align-items: flex-start; padding: 12px 14px; }
  .mep .mepug > .num { font-size: 38px !important; }
}

/* ═════════ Správa týmu ═════════ */
@media (max-width: 1180px) {
  /* kalkulačka sestavy: pět míst jako řádky (v úzké kartě by se pět sloupců nevešlo) */
  .gmp .slots { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .gmp .slot { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; grid-template-areas: "av nm val" "av role val"; column-gap: 12px; row-gap: 3px; align-items: center; padding: 8px 14px 8px 10px; }
  .gmp .slot > .row { display: contents; }
  .gmp .slot .av { grid-area: av; }
  .gmp .slot .snm { grid-area: nm; align-self: end; margin: 0; font-size: 14.5px; }
  .gmp .slot > .row:first-child > .lbl { grid-area: role; align-self: start; }
  .gmp .slot > .row:last-child > .num { grid-area: val; grid-row: 1 / 2; justify-self: end; align-self: end; font-size: 18px !important; }
  .gmp .slot > .row:last-child > .lbl { grid-area: val; grid-row: 2 / 3; justify-self: end; align-self: start; }
  .gmp .slot.empty { min-height: 52px; }
  .gmp .slot.empty > .lbl { grid-area: role; align-self: start; }
  .gmp .slot.empty > .snm { grid-area: nm; }
  .gmp .slot.empty::before { content: ""; grid-area: av; width: 34px; height: 34px; border-radius: 50%; border: 1px dashed rgba(255,255,255,.2); }
  .gmp .gr .who { flex: 1 1 0; }
  .gmp .gr .who .nm { display: block; }
  .gmp .headc h1 { font-size: 32px; }
  .gmm .t th, .gmm .t td { padding-left: 7px; padding-right: 7px; }
  .gmm .t .btn.sm { padding: 0 12px; }
}
@media (max-width: 900px) {
  .gmp .headc > div:not(.big) { flex: 1 1 0; min-width: 0; }
  /* zápasy týmu jako karty: soupeř a výsledek, pod tím kolo a stav, dole číslo zápasu a tlačítka */
  .gmm table.t { overflow: visible; }
  .gmm table.t > tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: auto; min-width: 0; }
  .gmm .t tr:first-child { display: none; }
  .gmm .t tr { display: flex; flex-wrap: wrap; align-items: center; align-content: flex-start; gap: 8px 12px; padding: 12px 13px; border: 1px solid var(--line2); border-radius: 12px; background: rgba(255,255,255,.025); }
  .gmm .t td { display: block; min-width: 0; padding: 0; border: 0; text-align: left; }
  .gmm .t tr:hover td { background: none; }
  /* 1. řádek: soupeř a výsledek · 2. řádek: kolo s datem a stav · 3. řádek: číslo zápasu a tlačítka (šířky určují, kde se řádek zalomí) */
  .gmm .t td:nth-child(2) { order: 1; flex: 1 1 60%; }
  .gmm .t td:nth-child(2) .who { display: flex; }
  .gmm .t td:nth-child(2) .who .nm { font-size: 15px; }
  .gmm .t td:nth-child(4) { order: 2; flex: none; font-size: 14px; }
  .gmm .t td:nth-child(3) { order: 3; flex: 1 1 55%; font-size: 12px; white-space: normal; line-height: 1.35; }
  .gmm .t td:nth-child(5) { order: 4; flex: none; }
  .gmm .t td:nth-child(1) { order: 5; flex: 1 1 30%; overflow: hidden; text-overflow: ellipsis; font-size: 11.5px; }
  .gmm .t td:nth-child(6) { order: 6; flex: none; }
  .gmm .t td:nth-child(6) .row { flex-wrap: nowrap; }
  /* zápas, který se teprve hraje, má dvě tlačítka: dostanou vlastní řádek přes celou šířku */
  .gmm .t tr:has(td:nth-child(6) .btn + .btn) td:nth-child(6) { flex: 1 1 100%; }
  .gmm .t tr:has(td:nth-child(6) .btn + .btn) td:nth-child(6) .btn { flex: 1 1 0; justify-content: center; }
  .gmm .t td[colspan] { order: 0; flex: 1 1 100%; white-space: normal; }
  .gmm .t tr:has(td[colspan]) { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .gmp .headc > .tl { --s: 64px !important; }
  .gmp .headc h1 { font-size: 24px; line-height: 1.1; overflow-wrap: anywhere; }
  .gmp .headc .big { flex-wrap: nowrap; justify-content: space-between; gap: 12px; padding-top: 14px; border-top: 1px solid var(--line2); }
  .gmp .headc .big > div { padding: 0; }
  .gmp .headc .big .num { font-size: 21px; }
  .gmp .headc .big .lbl { margin-top: 7px; font-size: 11px; letter-spacing: .06em; }
  .gmp .gmpick { justify-content: flex-start !important; gap: 8px; }
  .gmp .gmpick .lbl { flex: 1 1 100%; font-size: 11px; }
  .gmp .note { align-items: flex-start; padding: 12px 14px; font-size: 13.5px; line-height: 1.45; }
  .gmp .card > h3 .n { font-size: 11.5px; line-height: 1.4; }
  .gmp .card > .row { gap: 4px 12px; }
  .gmp .card > .row > .lbl { font-size: 11px; letter-spacing: .08em; }
  /* soupiska: jméno má místo, rating je velké číslo vpravo a cena pod ním */
  .gmp .gr { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto auto; grid-template-areas: "ps who dual rt" "ps who dual vl"; column-gap: 10px; row-gap: 2px; align-items: center; padding: 9px 0; }
  .gmp .gr .ps { grid-area: ps; }
  .gmp .gr .who { grid-area: who; display: flex; min-height: 36px; }
  .gmp .gr .who small { font-size: 11px; }
  .gmp .gr .pill { grid-area: dual; margin: 0 !important; height: 20px; padding: 0 6px; font-size: 11px; letter-spacing: .04em; }
  .gmp .gr > .lbl { display: none; }      /* „OVR“ u každého řádku: vysvětlivky pod stránkou říkají totéž */
  .gmp .gr .rt { grid-area: rt; width: auto; align-self: end; font-size: 17px; line-height: 1; }
  .gmp .gr .vl { grid-area: vl; width: auto; align-self: start; font-size: 11.5px; line-height: 1.2; }
  .gmp .chips { gap: 6px; }
  .gmp .chip { padding: 0 11px; }
  .gmp .card > .row > .btn.sm { flex: 1 1 auto; justify-content: center; }
  .gmm { padding: 14px 12px; }
  .gmm > h3 { margin: 0 2px 12px; }
  .gmm table.t > tbody { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .gmm .pill { font-size: 11px; letter-spacing: .06em; }
  .gmm .t td:nth-child(6) .btn.sm { padding: 0 11px; }
}

/* ═════════ Admin ═════════ */
@media (max-width: 1180px) {
  /* tablet na šířku: sloupec s nabídkou zůstává, jen užší */
  .adm { grid-template-columns: 200px minmax(0, 1fr); }
  .aside { padding: 18px 10px 16px; }
  .amain { padding: 22px 24px 50px; }
  .veil { inset: 0 0 0 200px; }
  .modal { left: calc(200px + (100% - 200px) / 2 - 250px); }
  .asplit.am { grid-template-columns: minmax(0, 300px) minmax(0, 1fr) !important; gap: 16px !important; }
  /* zápas v detailu: loga nahoře, názvy pod nimi, skóre uprostřed — dlouhé názvy se vejdou */
  .adm .dvs { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-areas: "la sc lb" "na sc nb"; gap: 8px 14px !important; justify-items: center; text-align: center; }
  .adm .dvs > .tl:first-child { grid-area: la; }
  .adm .dvs > .tl:last-child { grid-area: lb; }
  .adm .dvs > b:nth-child(2) { grid-area: na; }
  .adm .dvs > b:nth-child(4) { grid-area: nb; }
  .adm .dvs > b { min-width: 0; max-width: 100%; font-size: 17px !important; line-height: 1.2 !important; overflow-wrap: anywhere; }
  .adm .dvs > .num { grid-area: sc; align-self: center; white-space: nowrap; }
  /* hráči: detail nad tabulkou, pole ve čtyřech sloupcích; tabulka pak má celou šířku */
  .asplit.ap { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
  .asplit.ap > .drawer, .asplit.ap > .emptyc { order: -1; }
  .asplit.ap > .drawer { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .asplit.ap > .drawer > .g2 { display: contents; }
  .asplit.ap > .drawer > .row { grid-column: 1 / -1; }
  .asplit.ap > .drawer > .fld { grid-column: span 2; }
  .asplit.ap > .drawer > .sp { margin-top: 0 !important; }
  .asplit.ap > .drawer > .row.sp { margin-top: 4px !important; }
  .amain .t td.l .who .nm { max-width: 200px; }
  .amain > div:has(> .ares) { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }      /* přehled: výsledky a přestupy pod sebou, ať se vejdou celé názvy */
  .asplit .pager { flex-wrap: wrap; justify-content: center !important; gap: 10px 14px; text-align: center; }
  .asplit .pager .lbl { flex: 1 1 100%; }
  .amain .g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }      /* čtyři počty v jedné řadě jako na počítači */
  .amain .g4 .cnt { padding: 18px 18px; }
  .amain .g4 .cnt .num { font-size: 34px; }
}
@media (max-width: 900px) {
  /* tablet na výšku a telefon: nabídka je lišta nahoře — značka a návrat na web, pod nimi položky posouvané do strany */
  .adm, body.adminapp .adm { display: block; min-height: 0; }
  .aside { position: sticky; top: 0; z-index: 60; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "br foot" "menu menu"; align-items: center; gap: 0;
    height: auto; padding: 0; overflow: visible; border-right: 0; border-bottom: 1px solid var(--line); box-shadow: 0 10px 18px -12px rgba(0,0,0,.8); }
  .aside .br { grid-area: br; padding: 9px 0 7px 18px; }
  .aside .br img { height: 28px; }
  .aside .foot { grid-area: foot; justify-self: end; margin: 0; padding: 0 16px 0 0; border: 0; }
  .aside .foot > .row { display: none; }      /* jméno přihlášeného: na liště není místo */
  .aside .foot > a { height: 36px; padding: 0 13px; border-radius: 99px; border: 1px solid var(--line); font-size: 12.5px; white-space: nowrap; }
  .amenu { grid-area: menu; position: relative; display: flex; align-items: center; gap: 4px; padding: 0 14px 8px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .amenu::-webkit-scrollbar { display: none; }
  .amenu h5 { display: none; }
  .amenu a { flex: none; height: 38px; padding: 0 13px; border-radius: 99px; white-space: nowrap; }
  .amenu a.on { box-shadow: inset 0 0 0 1px rgba(242,212,104,.5); }
  .amenu a .ct { margin-left: 2px; }
  .amain { padding: 18px 20px 46px; }
  .atop { flex-wrap: wrap; gap: 10px 14px; margin-bottom: 16px; }
  .atop .row { flex-wrap: wrap; gap: 8px; }
  .veil { inset: 0; z-index: 80; }
  .modal { z-index: 81; left: 50%; margin-left: -250px; top: 90px; max-height: calc(100vh - 110px); max-height: calc(100dvh - 110px); overflow-y: auto; overscroll-behavior: contain; }
  /* seznam a detail pod sebou: detail je nahoře, seznam pod ním */
  .asplit > .drawer, .asplit > .emptyc { order: -1; }
  .adm .drawer .g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .adm .g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }      /* nastavení: tři divize vedle sebe */
  .adm .g3 > .card { padding: 16px 14px !important; }
  .adm .g3 .g2, .adm .card .g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .amain .wr2 > span:not(.pill):not(.lbl) { flex: 1 1 0; line-height: 1.4; }
}
@media (max-width: 640px) {
  body.adminapp { padding-bottom: 0; }
  .aside .br { padding-left: 14px; }
  .aside .br b { display: none; }
  .aside .foot { padding-right: 12px; }
  .amenu { padding: 0 10px 8px; }
  .amain { padding: 16px 16px 40px; }
  .atop h1 { font-size: 22px; }
  .atop > span.row { margin-left: 0 !important; flex: 1 1 100%; }
  .atop > span.row .btn { flex: 1 1 auto; justify-content: center; }
  .amain .note { align-items: flex-start; padding: 12px 14px; font-size: 13.5px; line-height: 1.45; }
  .amain > .row { gap: 12px; }
  .amain > .row > .chips { flex: 1 1 100%; gap: 6px; }
  .amain .chip { padding: 0 12px; }
  .amain .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .amain .g4 .cnt { padding: 14px 14px 13px; }
  .amain .g4 .cnt .num { font-size: 28px; }
  .amain .cnt .lbl { margin-top: 9px; letter-spacing: .08em; }
  .amain .card > h3 .n { font-size: 11.5px; line-height: 1.4; }
  .amain .t th { font-size: 11px; letter-spacing: .06em; }
  .amain .t td.l .who .nm { max-width: 34vw; }
  .amain .pill { font-size: 11px; letter-spacing: .06em; }
  .amain .lbl { font-size: 11px; letter-spacing: .08em; }
  .amain .wr2 > .btn { margin-left: auto !important; }
  /* okno „Clear ban history“: na šířku obrazovky, vyšší obsah se posouvá uvnitř */
  .modal { left: 12px; right: 12px; top: 12px; width: auto; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); margin-left: 0; padding: 18px 16px; overflow-y: auto; overscroll-behavior: contain; }
  .modal .opt { padding: 11px 12px; }
  .modal .row .btn { flex: 1 1 auto; justify-content: center; }
  /* detail: pole ve dvou sloupcích */
  .asplit > .drawer, .asplit.ap > .drawer { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .asplit > .drawer > .g2, .asplit > .drawer > .g3 { display: contents; }
  .asplit > .drawer > :not(.g2):not(.g3), .asplit.ap > .drawer > .fld { grid-column: 1 / -1; }
  .asplit > .drawer > .sp { margin-top: 0 !important; }
  .asplit > .drawer > .dvs { margin: 6px 0 8px !important; }
  .adm .drawer .fld label { font-size: 11px; letter-spacing: .08em; }
  .adm .drawer .row .btn { flex: 1 1 auto; justify-content: center; }
  .adm .g3 { grid-template-columns: minmax(0, 1fr); }
  .mrow { padding: 11px 12px; min-height: 60px; }
  .adm .card > .g2:not(.sp) { grid-template-columns: minmax(0, 1fr); }      /* odkazy (Discord, Twitch): celé adresy pod sebou */
  .adm .inp { text-overflow: ellipsis; }
  /* upozornění: štítek a tlačítko nahoře, text pod nimi přes celou šířku */
  .amain .wr2:has(> .pill:first-child) { flex-wrap: wrap; row-gap: 8px; padding: 12px 0; }
  .amain .wr2 > .pill:first-child + span { order: 3; flex: 1 1 100%; line-height: 1.45; }
  /* poslední výsledky: bez sloupce s kolem, názvy týmů se zkrátí — tabulka se vejde bez posouvání */
  .ares .t tr > :nth-child(4) { display: none; }
  .ares .t th, .ares .t td { padding-left: 6px; padding-right: 6px; }
  .amain .ares .t td.l .who .nm { max-width: calc((100vw - 118px) / 2 - 48px); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; font-size: 13.5px; line-height: 1.2; }
  /* přestupy jako karty: hráč a druh pohybu, pod tím odkud → kam */
  .atr { padding: 14px 12px; }
  .atr > h3 { margin: 0 2px 12px; }
  .atr table.t { overflow: visible; }
  .atr table.t > tbody { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; width: auto; min-width: 0; }
  .atr .t tr:first-child { display: none; }
  .atr .t tr { display: grid; grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr); grid-template-areas: "player player type" "from arr to"; gap: 11px 6px; align-items: center;
    padding: 12px 13px; border: 1px solid var(--line2); border-radius: 12px; background: rgba(255,255,255,.025); }
  .atr .t td { display: block; min-width: 0; padding: 0; border: 0; text-align: left; }
  .atr .t tr:hover td { background: none; }
  .atr .t td:nth-child(1) { grid-area: player; }
  .atr .t td:nth-child(2) { grid-area: from; }
  .atr .t td:nth-child(3) { grid-area: arr; text-align: center; font-size: 14px; }
  .atr .t td:nth-child(4) { grid-area: to; }
  .atr .t td:nth-child(5) { grid-area: type; justify-self: end; }
  .atr .t td[colspan] { grid-area: 1 / 1 / 2 / -1; white-space: normal; }
  .atr .who { display: flex; }
  .amain .atr .t td.l .who .nm { max-width: 100%; }
  .atr .t td:nth-child(2) .who .nm, .atr .t td:nth-child(4) .who .nm { font-size: 13px; white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .abn { padding: 14px 12px; }
  .abn > h3 { margin: 0 2px 12px; }
}

/* ═════════ dotyk: nic nezůstane „najeté“ po ťuknutí ═════════ */
@media (hover: none) {
  a.lb:hover .nm { color: #fff; }
  a.lb:hover .av { box-shadow: 0 0 0 1.5px rgba(255,255,255,.14); transform: none; }
  a.lb:hover .mmr { transform: none; }
  a.lb:hover .rk { color: var(--mut); } a.lb.t1:hover .rk, a.lb.t2:hover .rk, a.lb.t3:hover .rk { color: var(--edge); }
  a.lb:hover { box-shadow: none; border-color: var(--line); background: var(--card); }
  a.lb.me:hover { border-color: var(--acc); background: color-mix(in srgb, var(--acc) 10%, transparent); }
  .pu-m:hover { border-color: var(--line); background: var(--card); box-shadow: none; }
  a.pu-id:hover { color: inherit; letter-spacing: normal; }
  .pu-up:hover { transform: none; border-color: var(--line2); background: rgba(255,255,255,.025); } .pu-up:hover .num { color: inherit; }
  .pu-bn:hover { color: #fff; }
  .slot:hover { transform: none; border-color: var(--line); }
  .steps[style*="column"] div:hover { transform: none; border-color: var(--line); }
  .gr:hover { background: none; }
  .rtg-card:not(.dirty):not(.err):not(.busy):hover { border-color: var(--line); }
  .rtg-card:hover { background: var(--card); }
  .rtg-more:hover { letter-spacing: .12em; }
  .rtg-vr:hover { background: rgba(255,255,255,.025); }
  /* místo najetí krátká odezva na stisk */
  a.lb:active, .pu-up:active { background: rgba(255,255,255,.07); }
}
