/* Nový web GPM — správa týmu pro GM a AM (app-gm.js): přehled (zápasy, soupiska, kalkulačka sestavy) a formulář reportu.
   Všechno má předponu gm-; hlavičku týmu (.headc), řádky soupisky (.gr) a místa sestavy (.slots) bere z náhledu, takže pro ně
   platí i pravidla v css-m-pugs.css. Hranice jako jinde: ≤ 1180 tablet na šířku · ≤ 900 tablet na výšku · ≤ 640 telefon. */

/* ═════════ společné kousky ═════════ */
.gm-ban { display: flex; align-items: flex-start; gap: 12px; margin-top: 12px; padding: 12px 16px; border-radius: 11px; border: 1px solid var(--line); background: rgba(255,255,255,.03); color: var(--ink2); font-size: 14px; line-height: 1.45; }
.gm-ban > span { flex: none; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; font: 800 12px/1 var(--fm); }
.gm-ban > div { min-width: 0; flex: 1 1 auto; } .gm-ban b { display: block; color: #fff; font-weight: 700; } .gm-ban p { margin: 2px 0 0; overflow-wrap: anywhere; }
.gm-ban.ok { border-color: rgba(61,220,151,.35); background: rgba(61,220,151,.07); } .gm-ban.ok > span { background: rgba(61,220,151,.2); color: var(--win); }
.gm-ban.bad { border-color: rgba(255,93,108,.5); background: rgba(255,93,108,.08); } .gm-ban.bad > span { background: #ff5d6c; color: #fff; }
.gm-ban.warn { border-color: rgba(242,212,104,.42); background: rgba(242,212,104,.07); } .gm-ban.warn > span { background: rgba(242,212,104,.2); color: var(--gold); }
.gm-ban.info { border-color: rgba(120,160,255,.35); background: rgba(120,160,255,.07); } .gm-ban.info > span { background: rgba(120,160,255,.22); color: #a9c1ff; }
.gm-ban-act { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.gm-none { margin: 0; padding: 14px 0; color: var(--mut); font-size: 14px; }
.gm-hint { margin: 10px 0 0; color: var(--mut); font-size: 12.5px; line-height: 1.45; }
.gm-tag { flex: none; display: inline-flex; align-items: center; height: 19px; padding: 0 6px; border-radius: 5px; border: 1px solid var(--line); background: rgba(255,255,255,.06); color: var(--ink2); font: 700 10px/1 var(--fm); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.gm-tag.acc { border-color: color-mix(in srgb, var(--acc) 55%, transparent); background: color-mix(in srgb, var(--acc) 16%, transparent); color: #fff; }
.gm-tag.gold, .gm-tag.warn { border-color: rgba(242,212,104,.45); background: rgba(242,212,104,.12); color: var(--gold); }
.gm-tag.bad { border-color: rgba(255,93,108,.5); background: rgba(255,93,108,.14); color: #ff8a95; }
/* přepínač z několika možností: odkazy (kalkulačka — stav drží adresa) nebo tlačítka (formulář) */
.gm-seg { flex: none; display: inline-flex; border: 1px solid rgba(255,255,255,.14); border-radius: 9px; background: rgba(255,255,255,.04); overflow: hidden; }
.gm-seg > * { display: flex; align-items: center; justify-content: center; height: 32px; min-width: 44px; margin: 0; padding: 0 11px; border: 0; background: none; color: var(--mut); font: 700 10.5px/1 var(--fd); font-stretch: 112%; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; cursor: pointer;
  -webkit-tap-highlight-color: transparent; transition: background-color .15s, color .15s; }
.gm-seg > * + * { border-left: 1px solid rgba(255,255,255,.1); }
.gm-seg > :hover { background: rgba(255,255,255,.08); color: #fff; }
.gm-seg > .on { background: var(--grad); color: var(--on); }
.gm-seg > :focus-visible { outline: 2px solid var(--acc); outline-offset: -2px; }
.gm-seg > :disabled { cursor: default; } .gm-seg > :disabled:not(.on) { opacity: .45; } .gm-seg > :disabled:hover:not(.on) { background: none; color: var(--mut); }
.gm-seg.io > .on[data-v="OUT"], .gm-seg > .on.off0 { background: rgba(255,255,255,.14); color: #fff; }
.gm-seg.io > .on[data-v="IN"] { background: var(--win); color: #06231a; }
.gm-x { flex: none; width: 30px; height: 30px; display: grid; place-items: center; margin: 0; padding: 0; border: 0; border-radius: 8px; background: none; color: var(--mut); font: 500 20px/1 var(--fm); cursor: pointer; }
.gm-x:hover { background: rgba(255,93,108,.14); color: #ff8a95; } .gm-x0 { flex: none; width: 30px; }
.gm-barrow { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 8px; }
.gm-barnum { color: var(--ink2); font: 600 13px var(--fm); } .gm-barnum b { color: #fff; }
.gm-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 16px; } .gm-tiles.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gm-tiles > div { min-width: 0; padding: 12px 14px; border: 1px solid var(--line2); border-radius: 10px; background: rgba(255,255,255,.025); }
.gm-tiles > div > b { display: flex; align-items: center; gap: 8px; margin-top: 8px; color: #fff; font: 700 17px/1.2 var(--fb); overflow-wrap: anywhere; } .gm-tiles > div > b > i { color: var(--mut); font-style: normal; font-weight: 600; }
.gm-tiles > div > b > .pill { margin-left: auto; }
/* hledání volných hráčů (kalkulačka i náhradník v reportu) */
.gm-fa { margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); }
.gm-falist { display: grid; gap: 4px; margin: 10px 0; }
.gm-falist > a, .gm-falist > button { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; width: 100%; min-height: 40px; margin: 0; padding: 8px 12px; border: 1px solid transparent; border-radius: 9px; background: rgba(255,255,255,.04); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.gm-falist > :hover { border-color: color-mix(in srgb, var(--acc) 55%, transparent); background: rgba(255,255,255,.07); }
.gm-falist b { min-width: 0; color: #fff; font: 600 14.5px/1.2 var(--fb); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .gm-falist small { flex: none; color: var(--mut); font: 500 11.5px var(--fm); }

/* ═════════ přehled ═════════ */
.gm-pick { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 16px; } .gm-pick .kin { width: 300px; }
.gm-matches > h3 { margin-bottom: 4px; }
.gm-mlist { margin-top: 14px; }
.gm-mrow { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "opp state btns" "info info info"; align-items: center; gap: 4px 18px; padding: 12px 14px; border-top: 1px solid var(--line2); border-left: 3px solid transparent; transition: background-color .15s; }
.gm-mrow:first-child { border-top: 0; } .gm-mrow:hover { background: rgba(255,255,255,.025); }
.gm-mrow.due { border-left-color: var(--acc); background: color-mix(in srgb, var(--acc) 5%, transparent); }
.gm-mo { grid-area: opp; display: flex; align-items: center; gap: 12px; min-width: 0; } .gm-mo > div { min-width: 0; }
.gm-mo > div > b { display: block; color: #fff; font: 700 15.5px/1.2 var(--fb); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gm-mo small { display: block; margin-top: 4px; color: var(--mut); font: 500 11.5px/1.3 var(--fm); letter-spacing: .02em; }
.gm-ms { grid-area: state; display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.gm-res { display: inline-flex; align-items: center; gap: 7px; color: #fff; font: 700 13.5px var(--fm); white-space: nowrap; }
.gm-mb { grid-area: btns; display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; min-width: 276px; }
.gm-mi { grid-area: info; display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 12px; padding-left: 48px; color: #6a6d80; font: 500 11px var(--fm); letter-spacing: .04em; }
.gm-mlink { display: none; }
.gm-mi em { flex: 1 1 100%; color: #ffb0b6; font: 500 13px/1.4 var(--fb); font-style: normal; letter-spacing: 0; overflow-wrap: anywhere; }
.gm-mfoot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 16px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line2); color: var(--mut); font-size: 12.5px; line-height: 1.45; } .gm-mfoot > span { flex: 1 1 260px; min-width: 0; }
.gm-tlink { display: inline-flex; align-items: center; min-height: 28px; margin-top: 6px; color: var(--mut); font: 500 11.5px var(--fm); letter-spacing: .06em; text-transform: uppercase; } .gm-tlink:hover { color: #fff; }
.gm-rlist { margin-top: 14px; }
.gm-clbl { margin: 20px 0 8px; }
.gm-crow { display: grid; grid-template-columns: minmax(0, 1fr) auto 34px 68px 30px; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line2); }
.gm-crow:last-child { border-bottom: 0; }
.gm-crow.bench .gm-cn b, .gm-crow.bench .gm-crt { color: var(--mut); }
.gm-cn { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; min-width: 0; } .gm-cn b { color: #fff; font: 600 14.5px/1.2 var(--fb); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.gm-cn small { color: var(--mut); font: 500 11px var(--fm); }
.gm-crt { text-align: right; color: #fff; font: 700 15px var(--fm); } .gm-cvl { text-align: right; color: var(--ink2); font: 500 13px var(--fm); }
.gm-cact { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.gm-calc .gm-ban { margin-top: 14px; } .gm-calc .slots + .gm-barrow { margin-top: 18px; }

/* ═════════ formulář reportu ═════════ */
.gm-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 16px; }
.gm-back { display: inline-flex; align-items: center; min-height: 36px; color: var(--ink2); font: 800 12px/1 var(--fd); font-stretch: 115%; letter-spacing: .12em; text-transform: uppercase; } .gm-back:hover { color: #fff; }
.gm-vs { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 16px; padding: 22px 28px; border-radius: 16px; border: 1px solid var(--line); overflow: hidden;
  background: linear-gradient(100deg, color-mix(in srgb, var(--ca) 26%, transparent), rgba(255,255,255,.03) 40%, rgba(255,255,255,.03) 60%, color-mix(in srgb, var(--cb) 26%, transparent)); }
.gm-vs::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--ca) 50%, var(--cb) 50%); }
.gm-vt { display: flex; align-items: center; gap: 14px; min-width: 0; } .gm-vt.r { flex-direction: row-reverse; text-align: right; } .gm-vt > div { min-width: 0; }
.gm-vt > div > b { display: block; color: #fff; font: 800 22px/1.1 var(--fb); overflow-wrap: anywhere; } .gm-vt .lbl { display: block; margin-top: 6px; }
.gm-vm { text-align: center; } .gm-vm .num { font-size: 46px; white-space: nowrap; } .gm-vm .num i { margin: 0 8px; color: var(--dim); font-style: normal; } .gm-vm .num .hi { color: var(--acc); } .gm-vm .lbl { margin-top: 8px; }
.gm-sent { margin: 10px 2px 0; color: var(--mut); font: 500 12px var(--fm); }
.gm-srv { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin-top: 12px; padding: 10px 14px; border-radius: 11px; border: 1px dashed rgba(255,255,255,.16); color: var(--ink2); font-size: 13.5px; line-height: 1.45; }
.gm-srv > span { flex: 1 1 260px; min-width: 0; } .gm-srv .kit-spin { color: var(--acc); }
.gm-steps { display: none; }
.gm-sec { margin-top: 16px; scroll-margin-top: 88px; } .gm-sec > h3 { margin-bottom: 6px; } .gm-sec > h3 .grad { font-size: 20px; margin-right: 2px; }
.gm-desc { margin: 0 0 14px; color: var(--mut); font-size: 13.5px; line-height: 1.45; }
/* číslo s − / + */
.gm-stp { flex: none; display: inline-flex; align-items: stretch; border: 1px solid rgba(255,255,255,.14); border-radius: 9px; background: rgba(255,255,255,.04); overflow: hidden; }
.gm-pm { width: 32px; height: 34px; margin: 0; padding: 0; border: 0; background: none; color: var(--ink2); font: 600 18px/1 var(--fm); cursor: pointer; touch-action: manipulation; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; -webkit-tap-highlight-color: transparent; transition: background-color .12s, color .12s; }
.gm-pm:hover { background: rgba(255,255,255,.1); color: #fff; } .gm-pm:active { background: color-mix(in srgb, var(--acc) 35%, transparent); color: #fff; }
.gm-pm:focus-visible, .gm-n:focus-visible { outline: 2px solid var(--acc); outline-offset: -2px; }
.gm-n { width: 42px; height: 34px; margin: 0; padding: 0; border: 0; border-left: 1px solid rgba(255,255,255,.1); border-right: 1px solid rgba(255,255,255,.1); border-radius: 0; background: rgba(0,0,0,.18); color: #fff; font: 700 15px/1 var(--fm); text-align: center; outline: none; -webkit-appearance: none; appearance: none; }
.gm-n.zero { color: var(--dim); } .gm-n::placeholder { color: var(--dim); }
.gm-stp.big .gm-pm { width: 40px; height: 44px; font-size: 22px; } .gm-stp.big .gm-n { width: 54px; height: 44px; font-size: 22px; }
.gm-val { display: inline-block; min-width: 34px; color: #fff; font: 700 16px/1 var(--fm); text-align: right; } .gm-val.zero { color: var(--dim); } .gm-val.big { min-width: 40px; font-size: 26px; font-family: var(--fd); font-stretch: 125%; font-weight: 900; }
/* 1 · skóre */
.gm-games { display: grid; grid-template-columns: repeat(auto-fill, minmax(268px, 1fr)); gap: 12px; }
.gm-game { min-width: 0; padding: 12px 14px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); }
.gm-game.dec { border-color: color-mix(in srgb, var(--acc) 55%, transparent); }
.gm-gh { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.gm-gr { color: var(--mut); font: 700 10.5px/1 var(--fd); font-stretch: 112%; letter-spacing: .1em; text-transform: uppercase; } .gm-game.w .gm-gr, .gm-game.l .gm-gr { color: #fff; }
.gm-gs { display: flex; align-items: center; gap: 10px; padding: 5px 0; } .gm-gs > b { flex: 1 1 auto; min-width: 0; color: #fff; font: 700 16px/1 var(--fb); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gm-gsrv { display: block; margin-top: 8px; color: var(--mut); font: 500 11.5px var(--fm); }
.gm-game.next { display: grid; place-items: center; min-height: 96px; border-style: dashed; background: none; color: var(--mut); font-size: 13px; line-height: 1.45; text-align: center; }
/* 2 · sestavy a 3 · čísla hráčů */
.gm-sides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; } .gm-sides > div { min-width: 0; }
.gm-sh { display: flex; align-items: center; gap: 11px; padding: 0 0 10px; border-bottom: 2px solid var(--c, var(--line)); } .gm-sh > b { flex: 1 1 auto; min-width: 0; color: #fff; font: 800 16px/1.2 var(--fb); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gm-lp { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; grid-template-areas: "name role io x"; align-items: center; gap: 8px 10px; min-height: 48px; padding: 7px 0; border-bottom: 1px solid var(--line2); }
.gm-lp:last-child { border-bottom: 0; }
.gm-lpn { grid-area: name; display: flex; align-items: center; flex-wrap: wrap; gap: 3px 8px; min-width: 0; } .gm-lpn small { flex: none; min-width: 26px; color: var(--mut); font: 500 11px var(--fm); }
.gm-lpn b { min-width: 0; max-width: 100%; color: #fff; font: 600 14.5px/1.2 var(--fb); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gm-lp .gm-seg.role { grid-area: role; } .gm-lp .gm-seg.io { grid-area: io; } .gm-lp .gm-x { grid-area: x; }
.gm-lp.out .gm-lpn b { color: var(--mut); font-weight: 500; } .gm-lp.out .gm-seg.role { opacity: .4; }
.gm-lp.gm-fasub { background: rgba(242,212,104,.04); }
.gm-lp.ro { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: none; min-height: 42px; } .gm-lp.ro > * { grid-area: auto; }
.gm-outs { margin: 12px 0 0; color: var(--mut); font-size: 13.5px; line-height: 1.5; } .gm-outs .lbl { display: block; margin-bottom: 3px; }
.gm-addsub { margin-top: 12px; }
.gm-pcs { display: grid; gap: 8px; margin-top: 10px; }
.gm-pc { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 14px; padding: 10px 12px; border: 1px solid var(--line2); border-radius: 11px; background: rgba(255,255,255,.025); }
.gm-pc.gm-pc5 { grid-template-columns: minmax(0, 1fr); } .gm-pc.gm-pc5 .gm-sts { justify-content: flex-start; }      /* role Both: pět čísel se vedle jména nevejde */
.gm-pc.gk { border-color: color-mix(in srgb, var(--acc) 30%, var(--line2)); }
.gm-pch { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; min-width: 0; } .gm-pch b { min-width: 0; max-width: 100%; color: #fff; font: 700 14.5px/1.2 var(--fb); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .gm-pch small { color: var(--mut); font: 500 11px var(--fm); }
.gm-sts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 12px; }
.gm-st { display: grid; justify-items: center; gap: 5px; } .gm-st .lbl { font-size: 9.5px; letter-spacing: .08em; }
/* 4 · kontroly a lišta */
#gm-r-checks .gm-ban:first-child { margin-top: 0; }
.gm-msg { min-height: 20px; margin-top: 12px; font-size: 14px; line-height: 1.45; color: var(--mut); } .gm-msg .bad { color: #ff8a95; font-weight: 600; } .gm-msg .ok { color: var(--win); font-weight: 600; }
.gm-bar { margin-left: 0; margin-right: 0; padding-left: 4px; padding-right: 4px; }
.gm-bar .kf-btns { align-items: center; }
.gm-bsum { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 12px; min-width: 0; } .gm-bsum b { color: #fff; font: 900 17px/1 var(--fd); font-stretch: 120%; letter-spacing: .02em; white-space: nowrap; }
.gm-bsum small, .gm-bstate { margin: 0; padding: 0; border: 0; background: none; color: var(--mut); font: 600 11px/1.2 var(--fm); letter-spacing: .08em; text-transform: uppercase; }
.gm-bstate { min-height: 28px; cursor: pointer; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color .15s; } .gm-bstate:hover { text-decoration-color: currentColor; }
.gm-bstate.ok { color: var(--win); } .gm-bstate.bad { color: #ff8a95; }
.btn.gm-notyet { background: rgba(255,255,255,.1); color: var(--ink2); }
/* souhrn před odesláním a detail kontumace (v okně) */
.gm-sum { color: var(--ink2); font-size: 14px; line-height: 1.45; }
.gm-sumh { display: flex; align-items: center; justify-content: center; gap: 16px; color: #fff; font: 800 16px var(--fd); font-stretch: 118%; letter-spacing: .08em; } .gm-sumh .num { font-size: 38px; }
.gm-sumw { margin: 8px 0 0; text-align: center; } .gm-sumw b { color: #fff; }
.gm-sumg { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 14px; margin-top: 10px; color: var(--mut); font: 500 12px var(--fm); } .gm-sumg b { color: #fff; }
.gm-sumt { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); } .gm-sumt > div { display: flex; align-items: center; gap: 9px; } .gm-sumt > div > b { flex: 1 1 auto; min-width: 0; color: #fff; font: 700 15px var(--fb); }
.gm-sumt p { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 8px 0 6px; } .gm-sumt p span { white-space: nowrap; } .gm-sumt p b { color: #fff; font: 600 12px var(--fm); } .gm-sumt p i { color: var(--acc); font: 700 10.5px var(--fm); font-style: normal; }
.gm-sumt small { color: var(--mut); font-size: 12.5px; }
.gm-sum .gm-ban { margin-top: 14px; } .gm-sumn { margin: 12px 0 0; color: var(--mut); font-size: 13px; }
.gm-sume { margin-top: 14px; padding: 11px 14px; border-radius: 10px; border: 1px solid rgba(255,93,108,.55); background: rgba(255,93,108,.1); color: #ffd7da; font-weight: 600; } .gm-sume[hidden] { display: none; } .gm-sume a { color: #fff; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.gm-claim { color: var(--ink2); font-size: 14.5px; line-height: 1.5; } .gm-claim p { margin: 0; } .gm-claimw b { color: #fff; } .gm-claim .lbl { margin-top: 8px; line-height: 1.5; letter-spacing: .06em; }
.gm-claimr { margin-top: 14px; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--line); background: rgba(255,255,255,.03); } .gm-claimr p { margin-top: 6px; color: #fff; overflow-wrap: anywhere; white-space: pre-line; }
.gm-claims { margin-top: 14px !important; color: #fff; font-weight: 700; } .gm-claims.ok { color: var(--win); } .gm-claims.bad { color: #ff8a95; } .gm-claimy { margin-top: 6px !important; }
.gm-claimc { max-width: 620px; }

@media (min-width: 641px) {
  .gm-rep .gm-ph { display: none; }
}

/* ═════════ tablet na šířku: dotyk ═════════ */
@media (max-width: 1180px) {
  .gm-seg > * { height: 40px; min-width: 48px; }
  .gm-pm { width: 40px; height: 40px; } .gm-n { width: 46px; height: 40px; }
  .gm-x { width: 40px; height: 40px; } .gm-x0 { width: 40px; }
  .gm-mb { min-width: 0; }
  .gm-crow { grid-template-columns: minmax(0, 1fr) auto 30px 62px 40px; gap: 8px; }
  .gm-pick .kin { width: 280px; }
  /* dva sloupce vedle sebe a větší tlačítka: jméno hráče nad čísly, ne vedle nich */
  .gm-pc { grid-template-columns: minmax(0, 1fr); } .gm-sts { justify-content: flex-start; }
}

/* ═════════ tablet na výšku ═════════ */
@media (max-width: 900px) {
  .gm-sides { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .gm-pc { grid-template-columns: minmax(0, 1fr) auto; } .gm-sts { justify-content: flex-end; }      /* jeden sloupec přes celou šířku: jméno vlevo, čísla vpravo */
  .gm-mrow { gap: 4px 12px; }
  .gm-mb .gm-mpage { display: none; } .gm-mb:not(:has(button)) { display: none; }
  .gm-mlink { display: inline-flex; align-items: center; min-height: 32px; margin-left: auto; color: var(--ink2); font: 700 10.5px/1 var(--fd); font-stretch: 112%; letter-spacing: .1em; text-transform: uppercase; }
  .gm-mi { align-items: center; }
  .gm-vt > div > b { font-size: 19px; } .gm-vm .num { font-size: 40px; }
}

/* ═════════ telefon ═════════ */
@media (max-width: 640px) {
  .gm-ban { padding: 11px 13px; font-size: 13.5px; }
  .gm-pick { flex-direction: column; align-items: stretch; gap: 6px; margin-top: 14px; } .gm-pick .kin { width: 100%; }
  .gmp .gm-fa input, .gmp .gm-n { font-size: 16px; }
  /* zápasy: soupeř a stav, pod tím tlačítka přes celou šířku */
  .gm-matches { padding: 14px 12px; }
  .gm-mrow { grid-template-areas: "opp state" "info info" "btns btns"; grid-template-columns: minmax(0, 1fr) auto; padding: 12px 8px; gap: 8px 10px; }
  .gm-mo > div > b { font-size: 15px; white-space: normal; overflow-wrap: anywhere; }
  .gm-ms { flex-direction: column; align-items: flex-end; gap: 6px; }
  .gm-mi { padding-left: 0; } .gm-mb { padding-left: 0; justify-content: flex-start; }
  .gm-mb .btn { flex: 1 1 auto; height: 42px; }
  .gm-tiles { gap: 8px; } .gm-tiles > div { padding: 10px 11px; } .gm-tiles > div > b { font-size: 15px; flex-wrap: wrap; } .gm-tiles .lbl { font-size: 10.5px !important; letter-spacing: .06em; }
  /* kalkulačka: jméno a cena nahoře, přepínač pod nimi přes celou šířku */
  .gm-crow { grid-template-columns: minmax(0, 1fr) auto auto auto; grid-template-areas: "n rt vl x" "seg seg seg seg"; gap: 6px 10px; padding: 10px 0; }
  .gm-crow .gm-cn { grid-area: n; } .gm-crow .gm-crt { grid-area: rt; } .gm-crow .gm-cvl { grid-area: vl; } .gm-crow .gm-x, .gm-crow .gm-x0 { grid-area: x; } .gm-crow .gm-x0 { width: 0; }
  .gm-crow .gm-seg { grid-area: seg; display: flex; } .gm-crow .gm-seg > * { flex: 1 1 0; height: 42px; }
  .gm-cact .btn { flex: 1 1 auto; }
  /* formulář: vždy jen jeden krok, nahoře přepínání kroků, dole lišta Zpět / Další */
  .gm-top { margin-bottom: 12px; } .gm-top .lbl { line-height: 1.5; }
  .gm-vs { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 8px; padding: 16px 12px 14px; border-radius: 13px; }
  .gm-vt, .gm-vt.r { flex-direction: column; text-align: center; gap: 8px; } .gm-vt > div > b { font-size: 14.5px; line-height: 1.15; } .gm-vt .lbl { margin-top: 4px; font-size: 10px !important; }
  .gm-vm .num { font-size: 32px; } .gm-vm .num i { margin: 0 5px; } .gm-vm .lbl { max-width: 96px; margin: 6px auto 0; font-size: 9.5px !important; line-height: 1.35; letter-spacing: .06em; }
  .gm-srv { padding: 10px 12px; font-size: 13px; } .gm-srv .btn { flex: 1 1 100%; height: 42px; }
  .gm-steps { position: sticky; top: 56px; scroll-margin-top: 56px; z-index: 20; display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 6px; margin: 12px -16px 0; padding: 8px 16px; background: rgba(11,11,14,.96); border-bottom: 1px solid var(--line); }
  .gm-steps button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 0; height: 52px; margin: 0; padding: 0 2px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.03); color: var(--mut);
    font: 700 10.5px/1 var(--fd); font-stretch: 110%; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .gm-steps button i { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; font: 800 11px/1 var(--fm); font-style: normal; }
  .gm-steps button.ok i { background: rgba(61,220,151,.22); color: var(--win); } .gm-steps button.bad i { background: #ff5d6c; color: #fff; }
  .gm-steps button.on { border-color: var(--acc); background: color-mix(in srgb, var(--acc) 14%, transparent); color: #fff; }
  .gm-rep[data-step="1"] .gm-sec:not([data-sec="1"]), .gm-rep[data-step="2"] .gm-sec:not([data-sec="2"]), .gm-rep[data-step="3"] .gm-sec:not([data-sec="3"]), .gm-rep[data-step="4"] .gm-sec:not([data-sec="4"]) { display: none; }
  .gm-rep .gm-dt { display: none; }
  .gm-sec { margin-top: 12px; padding: 14px 12px 16px; } .gm-desc { font-size: 13px; margin-bottom: 12px; }
  .gm-games { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .gm-game { padding: 12px; } .gm-gs { padding: 6px 0; } .gm-gs > b { font-size: 17px; }
  .gm-stp.big .gm-pm { width: 52px; height: 50px; font-size: 24px; } .gm-stp.big .gm-n { width: 62px; height: 50px; font-size: 24px; }
  .gm-val.big { font-size: 28px; }
  .gm-game.next { min-height: 64px; padding: 12px; }
  /* sestava: jméno a IN / OUT na jednom řádku, role pod tím — a jen u toho, kdo hrál */
  .gm-lp { grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "name io x" "role role role"; gap: 8px 8px; padding: 9px 0; }
  .gm-lp.ro { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: none; }
  .gm-lp.out .gm-seg.role { display: none; }
  .gm-lp .gm-seg.role { display: flex; } .gm-lp .gm-seg.role > * { flex: 1 1 0; height: 42px; }
  .gm-lp .gm-seg.io > * { height: 44px; min-width: 54px; }
  .gm-lpn b { font-size: 15.5px; white-space: normal; overflow-wrap: anywhere; }
  .gm-addsub { width: 100%; height: 44px; }
  /* čísla hráče: popisek vlevo, velké − číslo + vpravo */
  .gm-pc { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 12px; } .gm-pch b { font-size: 15.5px; }
  .gm-sts { display: grid; gap: 8px; justify-content: stretch; }
  .gm-st { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .gm-st .lbl { font-size: 11.5px !important; letter-spacing: .06em; }
  .gm-pc .gm-pm { width: 50px; height: 46px; font-size: 22px; } .gm-pc .gm-n { width: 60px; height: 46px; font-size: 18px; }
  .gm-bar { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; }
  .gm-bsum { flex: 1 1 100%; justify-content: space-between; } .gm-bsum b { font-size: 15px; }
  .gm-bar .kf-btns { flex-wrap: nowrap; } .gm-bar .kf-btns > span.gm-ph { display: flex; flex: 2 1 0; } .gm-bar .kf-btns > span.gm-ph .btn { flex: 1 1 auto; }
  .gm-bar .kf-btns > .btn.ghost.gm-ph { flex: 1 1 0; } .gm-bar .kf-btns > .btn.gm-ph:not(.ghost) { flex: 2 1 0; }
  .gm-sumh .num { font-size: 32px; }
}
