/* SESTAVY PODLE POZIC (app/modules/sestavy.php, plátno „Sestavy podle pozic“, varianta B — na hřišti).
   Hřiště kreslí app/views/sestava_hriste.php: obal .ses-hriste.ses-<druh>, čáry .ses-l, místa .ses-misto (x, y v % — útok doprava;
   .svisle = na výšku pro mobil, útok nahoru). Barvy decentně podle plátna: kluziště světle modrošedé, fotbal světle zelený. */
/* --ses-pomer = šířka : výška hřiště naležato (kluziště, florbal 2 : 1; fotbal, volejbal, basket 3 : 2); kolečka podle šířky hřiště */
.ses-hriste{--ses-pomer:2;position:relative;width:100%;aspect-ratio:var(--ses-pomer)/1;overflow:hidden;box-sizing:border-box;--ses-kolo:46px;container-type:inline-size}
.ses-fotbal,.ses-volejbal,.ses-basketbal{--ses-pomer:1.5}
.ses-hriste.svisle{aspect-ratio:1/var(--ses-pomer);max-width:420px;margin:0 auto}
/* čáry ve vlastní vrstvě: na výšku se jen otočí (vrstva má rozměry hřiště naležato) */
.ses-cary{position:absolute;inset:0;display:block}
.ses-hriste.svisle .ses-cary{inset:auto;left:50%;top:50%;width:calc(var(--ses-pomer) * 100%);height:calc(100% / var(--ses-pomer));transform:translate(-50%,-50%) rotate(-90deg)}
.ses-l{position:absolute;display:block;box-sizing:border-box}
.ses-misto{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;z-index:1}
.ses-kolo{width:var(--ses-kolo);height:var(--ses-kolo);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;line-height:1;box-shadow:0 0 0 3px #fff,0 4px 10px rgba(25,20,17,.15)}
.ses-stitek{padding:1px 8px;border-radius:20px;background:#fff;color:#191411;font-size:11px;font-weight:800;white-space:nowrap;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.ses-hriste.mini{--ses-kolo:20px}
.ses-hriste.mini .ses-kolo{font-size:8px;box-shadow:0 0 0 2px #fff}

/* kluziště (hokej, hokejbal, in-line) */
.ses-kluziste{border-radius:22%/44%;border:3px solid #B9C9D6;background:#F7FAFC}
.ses-kluziste .l-branka1,.ses-kluziste .l-branka2{top:0;bottom:0;width:2px;background:#E2A094}
.ses-kluziste .l-branka1{left:6%}.ses-kluziste .l-branka2{right:6%}
.ses-kluziste .l-modra1,.ses-kluziste .l-modra2{top:0;bottom:0;width:1.1%;background:#9DB5CF}
.ses-kluziste .l-modra1{left:33%}.ses-kluziste .l-modra2{left:66%}
.ses-kluziste .l-stred{top:0;bottom:0;left:50%;width:.8%;transform:translateX(-50%);background:#E2A094}
.ses-kluziste .l-kruh{left:50%;top:50%;width:24%;aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid #9DB5CF;border-radius:50%}
.ses-kluziste .l-brankoviste{left:6%;top:50%;width:5%;height:20%;transform:translateY(-50%);border-radius:0 999px 999px 0;background:#E3EEF8;border:2px solid #E2A094;border-left:0}

/* florbal */
.ses-florbal{border-radius:7%/14%;border:3px solid #A9B5C0;background:#F4F6F8}
.ses-florbal .l-stred{top:0;bottom:0;left:50%;width:2px;transform:translateX(-50%);background:#A9B5C0}
.ses-florbal .l-kruh{left:50%;top:50%;width:6%;aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid #A9B5C0;border-radius:50%}
.ses-florbal .l-brankoviste,.ses-florbal .l-brankoviste2{top:36%;height:28%;width:9%;border:2px solid #A9B5C0}
.ses-florbal .l-brankoviste{left:3%;border-left:0}.ses-florbal .l-brankoviste2{right:3%;border-right:0}

/* fotbal */
.ses-fotbal{border-radius:12px;background:#E5F2DC;border:3px solid #fff;outline:1px solid #CFE5C8}
.ses-fotbal .l-stred{top:0;bottom:0;left:50%;width:3px;transform:translateX(-50%);background:#fff}
.ses-fotbal .l-kruh{left:50%;top:50%;width:18%;aspect-ratio:1;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%}
.ses-fotbal .l-vapno1,.ses-fotbal .l-vapno2{top:22%;height:56%;width:15%;border:3px solid #fff}
.ses-fotbal .l-vapno1{left:0;border-left:0}.ses-fotbal .l-vapno2{right:0;border-right:0}
.ses-fotbal .l-male1,.ses-fotbal .l-male2{top:37%;height:26%;width:5.5%;border:3px solid #fff}
.ses-fotbal .l-male1{left:0;border-left:0}.ses-fotbal .l-male2{right:0;border-right:0}

/* volejbal: vlastní polovina kurtu, síť vpravo */
.ses-volejbal{border-radius:6px;background:#F6E7D3;border:3px solid #fff;outline:1px solid #E1C9A8}
.ses-volejbal .l-sit{top:0;bottom:0;right:0;width:1.6%;background:#191411}
.ses-volejbal .l-utok{top:0;bottom:0;left:66%;width:3px;background:#fff}

/* basketbal: koš vpravo */
.ses-basketbal{border-radius:8px;background:#F3E2C7;border:3px solid #fff;outline:1px solid #E1C9A8}
.ses-basketbal .l-vymezene{right:0;top:32%;width:19%;height:36%;background:rgba(192,48,26,.1);border:2px solid #fff;border-right:0}
.ses-basketbal .l-trojka{right:-22%;top:6%;width:60%;height:88%;border:2px solid #fff;border-radius:50%}
.ses-basketbal .l-kos{right:3%;top:50%;width:3.2%;aspect-ratio:1;transform:translateY(-50%);border:2px solid #C0301A;border-radius:50%}

.ses-kluziste.svisle{border-radius:44%/22%}

/* superadmin: pozice a šablony */
.ses-poz-radek{display:grid;grid-template-columns:minmax(0,2fr) 80px minmax(0,1.2fr) 80px auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.ses-poz-radek input,.ses-poz-radek select{width:100%;min-height:40px;padding:6px 10px;border:1.5px solid var(--line);border-radius:10px;font:inherit;background:#fff;box-sizing:border-box}
.ses-poz-radek .kod{display:block;font-size:.76rem;color:var(--text-2)}
.ses-poz-tl{display:flex;gap:6px;white-space:nowrap}
.ses-poz-hlava{display:grid;grid-template-columns:minmax(0,2fr) 80px minmax(0,1.2fr) 80px auto;gap:8px;font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);padding-bottom:4px}
.ses-sablony{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.ses-sablona{border:1.5px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px;background:#fff}
.ses-sablona.vychozi{border-color:var(--text)}
.ses-sablona h3{margin:0;font-size:1rem}
.ses-sablona .ses-tl{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.ses-styl-h{margin:16px 0 8px;font-size:.8rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text-2)}
.ses-mista{width:100%;border-collapse:collapse}
.ses-mista th{text-align:left;font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);padding:4px 6px}
.ses-mista td{padding:4px 6px;border-top:1px solid var(--line)}
.ses-mista input,.ses-mista select{width:100%;min-height:38px;padding:5px 8px;border:1.5px solid var(--line);border-radius:8px;font:inherit;background:#fff;box-sizing:border-box}
.ses-mista .cislo{width:72px}
.ses-nahled{max-width:560px}
@media (max-width:760px){
  .ses-poz-radek,.ses-poz-hlava{grid-template-columns:1fr 70px}
  .ses-poz-hlava span:nth-child(n+3){display:none}
}

/* ---- editor sestavy na webu klubu (club/sestava_editor.php + assets/js/sestavy.js) */
.ses-editor{display:flex;flex-direction:column;gap:14px}
.ses-lista{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 18px}
.ses-stav{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;background:#F1EADF;color:var(--muted);font-size:.84rem;font-weight:700}
.ses-stav::before{content:"";width:8px;height:8px;border-radius:50%;background:#7A6E62}
.ses-stav.zverejneno{background:#E6F4DC;color:#1C6B1F}
.ses-stav.zverejneno::before{background:#237A25}
.ses-ulozeno{font-size:.84rem;color:var(--muted);min-width:70px}
.ses-ulozeno.chyba{color:var(--ne);font-weight:700}
.ses-sablona-f{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ses-sablona-f label{font-size:.84rem;font-weight:800;color:var(--muted)}
.ses-sablona-f select{min-height:42px;padding:0 10px;border:1.5px solid var(--line);border-radius:10px;background:#fff;font:inherit;font-size:.92rem;font-weight:600;color:var(--text)}
.ses-lista-tl{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ses-lista-tl form{display:inline-flex}
.ses-pocet{margin-left:auto;font-size:.86rem;font-weight:700;color:var(--muted)}
.ses-napoveda{margin:-4px 2px 0;font-size:.86rem}
.ses-plocha{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.ses-lide{flex:1 1 270px;max-width:100%;padding:16px}
.ses-lide h2{margin:0;font-size:1.1rem}
.ses-lide > p{margin:2px 0 10px;font-size:.86rem}
.ses-filtr{display:flex;gap:6px;margin-bottom:10px}
.ses-filtr button{min-height:36px;padding:0 12px;border-radius:20px;border:1.5px solid var(--line);background:#fff;color:var(--text);font:inherit;font-size:.84rem;font-weight:700;cursor:pointer}
.ses-filtr button.on{background:var(--text);border-color:var(--text);color:#fff}
.ses-seznam{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ses-clovek{width:100%;display:flex;align-items:center;gap:8px;min-height:48px;padding:6px 8px;border-radius:12px;border:1px solid var(--line);background:#fff;font:inherit;text-align:left;color:var(--text);cursor:grab}
.ses-clovek .c-kdo-c{width:26px;height:26px;font-size:12px}
.ses-clovek.vybrany{border:2px solid #237A25;background:#F1F8EE}
.ses-clovek.tazeny{opacity:.5}
.ses-seznam li.zarazeny .ses-clovek{background:#FBF7F0}
.ses-clovek-jm{flex:1;min-width:0;font-size:.92rem;font-weight:700;line-height:1.25}
.ses-clovek-jm small,.ses-kde{display:block;font-size:.76rem;font-weight:600;color:var(--muted)}
.ses-poz-stitek{flex:0 0 auto;padding:1px 8px;border-radius:20px;background:#EFE6D8;color:var(--muted);font-size:.7rem;font-weight:800}
.ses-poz-stitek.host{background:#EFE6D8;color:var(--muted)}
.ses-nahr li{display:flex;align-items:center;gap:8px;padding:4px 2px;opacity:.85}
.ses-nahr .c-kdo-c{width:26px;height:26px;font-size:12px}
.ses-mala{font-size:.8rem;margin:6px 0 0}
.ses-hlavni{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:12px}
.ses-taby{display:flex;flex-wrap:wrap;gap:6px}
.ses-taby button{min-height:42px;padding:0 14px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--text);font:inherit;font-size:.9rem;font-weight:800;cursor:pointer}
.ses-taby button[aria-selected="true"]{background:var(--text);border-color:var(--text);color:#fff}
.ses-taby button span{font-weight:600;opacity:.85}
.ses-slot{border:0;background:none;padding:0;font:inherit;cursor:pointer;color:inherit}
.ses-slot .ses-kolo{--ses-kolo:clamp(30px,7.5cqw,58px);font-size:clamp(10px,2cqw,15px)}
.ses-slot.volne .ses-kolo{background:#fff;color:#7A6E62;border:3px dashed #B5A792;box-shadow:none;font-size:22px;font-weight:600}
.ses-slot.volne .ses-stitek{color:var(--muted);font-weight:700}
/* uvolněné místo (část 4: zařazený se odhlásil) — červené „!“ čárkovaně, ať ho trenér nepřehlédne */
.ses-slot.uvolnene .ses-kolo{background:#FDECEA;color:#B3261E;border:3px dashed #D9534F;box-shadow:none;font-size:22px;font-weight:800}
.ses-slot.uvolnene .ses-stitek{color:#B3261E;font-weight:800}
.ses-taby button span.ses-tab-uv{color:#B3261E;opacity:1;font-weight:800}
.ses-taby button[aria-selected="true"] span.ses-tab-uv{color:#FFB4AB}
.ses-oznamit-n{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-left:4px;padding:0 6px;border-radius:11px;background:rgba(255,255,255,.3);font-size:.78rem}
/* Uvolněná místa nad hřištěm: kdo se odhlásil, návrh, Doplnit / Vybrat jiného / Nechat prázdné */
.ses-uvolnena{padding:14px 18px;border-color:#F3B7B0;background:#FFF8F6}
.ses-uvolnena h2{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:1.05rem}
.ses-uv-n{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:#B3261E;color:#fff;font-size:.8rem}
.ses-uv-radek{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 0;border-top:1px solid #F6D3CE}
.ses-uv-radek:first-of-type{border-top:0;padding-top:4px}
.ses-uv-ik{flex:0 0 auto;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#FDECEA;color:#B3261E;border:2px dashed #D9534F;font-weight:800}
.ses-uv-text{flex:1 1 220px;min-width:0;font-size:.92rem;line-height:1.45}
.ses-uv-navrh b{color:#1C6B1F}
.ses-uv-tl{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ses-uv-tl form{display:inline-flex}
.ses-slot.cil .ses-kolo,.ses-slot.cil-vyberu .ses-kolo{border:3px dashed #237A25;background:#E6F4DC;color:#1C6B1F}
.ses-slot.tazeny{opacity:.45}
.ses-slot:focus-visible .ses-kolo{outline:3px solid var(--brand-text);outline-offset:3px}
.ses-brankar-znacka{opacity:.7}
.ses-brankar-znacka .ses-kolo{--ses-kolo:44px}
.ses-brankari{display:flex;flex-wrap:wrap;gap:28px;padding:18px;border:1px solid #F0DC8A;border-radius:16px;background:#FFFBE6}
.ses-slot-b{position:static;transform:none}
.ses-prehled{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:8px}
.ses-prehled button{display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 10px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font:inherit;color:var(--text);cursor:pointer}
.ses-prehled button b{font-size:.86rem}
.ses-prehled button span{font-size:.78rem;color:var(--muted);line-height:1.35}
.ses-lavicka{padding:12px 16px}
.ses-lavicka h3{margin:0 0 4px;font-size:1rem}
.ses-lavicka p{margin:0}
.ses-hriste.svisle .ses-slot .ses-kolo{--ses-kolo:clamp(30px,12cqw,50px)}
.ses-slot .ses-stitek{font-size:clamp(9px,1.9cqw,11px)}
/* výběr hráče na místo (klepnutí) — okno jako jinde na webu: rozmazané pozadí */
.ses-vyber{width:min(460px,calc(100vw - 24px));max-height:min(80vh,640px);overflow:auto;border:0;border-radius:20px;padding:16px 18px 20px;box-shadow:0 24px 60px rgba(25,20,17,.3)}
.ses-vyber::backdrop{background:rgba(25,15,0,.45);backdrop-filter:blur(6px)}
.ses-vyber-hlava{display:flex;align-items:flex-start;gap:10px}
.ses-vyber-hlava h3{margin:0;font-size:1.15rem}
.ses-vyber-x{margin-left:auto;width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted)}
.ses-vyber h4{margin:12px 0 6px;font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ses-vyber-clovek{width:100%;display:flex;align-items:center;gap:10px;min-height:50px;margin-bottom:6px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:#fff;font:inherit;text-align:left;color:var(--text);cursor:pointer}
.ses-vyber-clovek b{flex:1}
.ses-vyber-clovek small{color:var(--muted)}
.ses-vyber-clovek .c-kdo-c{width:28px;height:28px;font-size:12px}
.ses-vyber-jini{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.ses-vyber-jini summary{cursor:pointer;font-weight:700;font-size:.9rem;min-height:36px;display:flex;align-items:center}
.ses-vyrad{margin-top:12px;width:100%}

/* ---- sestava v detailu akce (club/sestava_blok.php) */
.ses-blok-hlava{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.ses-blok-hlava h2{margin:0}
.ses-blok-hlava .ses-blok-tl{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.ses-moje{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:10px 14px;border-radius:12px;background:#FFF3C4;font-size:.95rem}
.ses-blok-doplnit{margin:12px 0 0;padding:10px 14px;border:1px solid #F3B7B0;border-radius:12px;background:#FFF8F6;color:#8A1C11;font-size:.92rem}
.ses-blok-doplnit a{font-weight:800}
.ses-blok-brankari{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;padding:10px 14px;border:1px solid #F0DC8A;border-radius:12px;background:#FFFBE6;font-size:.92rem}
.ses-blok-brankari b{color:#6B5600}
.ses-blok-brankari .vy{font-weight:800}
.ses-blok-skupiny{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px;margin-top:14px}
.ses-blok-skupina{border:1px solid var(--line);border-radius:14px;padding:10px 12px 12px;background:#fff}
.ses-blok-skupina.moje{border:2px solid var(--text)}
.ses-blok-skupina h3{margin:0 0 8px;font-size:.98rem;display:flex;gap:8px;align-items:center}
.ses-blok-skupina h3 small{padding:1px 8px;border-radius:20px;background:var(--text);color:#fff;font-size:.7rem;font-weight:800}
.ses-blok-skupina .ses-hriste{--ses-kolo:clamp(24px,8cqw,36px)}
.ses-blok-skupina .ses-kolo{font-size:11px}
.ses-blok-skupina .ses-stitek{font-size:10.5px;padding:0 6px}
.ses-misto.volne .ses-kolo{border:2px dashed #B5A792;box-shadow:none}
.ses-misto.vy .ses-kolo{box-shadow:0 0 0 3px #fff,0 0 0 5px #191411}
.ses-blok-lavicka{margin:12px 0 0;font-size:.92rem}
/* upoutávka bez bandapremium (club/sestava_upoutavka.php) */
.ses-up-obsah{display:flex;flex-wrap:wrap;gap:22px;align-items:center}
.ses-up-obsah .ses-hriste{flex:0 0 300px;max-width:100%;--ses-kolo:36px}
.ses-up-obsah > div{flex:1 1 280px}
.ses-up-obsah h2{margin:0 0 10px;font-size:1.2rem}
.ses-up-obsah ul{margin:0;padding-left:20px;line-height:1.7}
.ses-up-vyzva{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:18px 0 6px;padding:14px 16px;border-radius:14px;background:#F1F8EE;border:1px solid #CFE5C8}
.ses-up-vyzva > span{flex:1 1 260px}
.ses-up-vyzva.trener{background:#FBF7F0;border-color:#EFE4D3}
.ses-up-vyzva form{display:inline-flex}
/* ukázka v editoru (část 6, klub bez bandapremium): nic se neukládá */
.ses-ukazka-pruh{margin:0;padding:10px 14px;border-radius:12px;background:#FFF3C4;border:1px solid #F0DC8A;color:#3D342D;font-size:.92rem}
.ses-stav.ukazka{background:#FFF3C4;color:#6B5600}
.ses-stav.ukazka::before{background:#E0A400}
