/* Fotky: správa (nahrávání, štítky, výběr), galerie pro rodiče a prohlížeč fotek. Mobil na prvním místě. */

/* ---------- Správa ---------- */
.sp-fotky [hidden]{display:none!important}
.sp-skryte{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.sp-pocet{font-size:15px;font-weight:600;color:#8e8e93;margin-left:6px}
.sp-mini{margin:0 2px 8px;font-size:13px;color:#636366}
.sp-h2{font-size:20px;font-weight:700;margin:26px 2px 10px}
.sp-h2 small{font-size:14px;color:#8e8e93;font-weight:600;margin-left:4px}

.sp-nahrat{background:#fff;border-radius:18px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.sp-chipcheck-radek{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.sp-chipcheck{position:relative;cursor:pointer}
.sp-chipcheck input{position:absolute;opacity:0;pointer-events:none}
.sp-chipcheck span{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border-radius:999px;background:#f2f2f7;font-size:14px;font-weight:600;color:#3a3a3c;border:2px solid transparent}
.sp-chipcheck input:checked+span{background:#e7efe0;color:#1f4d2e;border-color:#1f4d2e}
.sp-chipcheck input:checked+span::before{content:"✓";margin-right:6px}
.sp-chipcheck input:focus-visible+span{outline:3px solid #f2c23e}
.sp-nahrat__btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;border-radius:14px;background:#1f4d2e;color:#fff;font-size:18px;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none}
.sp-nahrat__btn:active{transform:scale(.99);filter:brightness(1.1)}
.sp-nahrat__btn:focus-within{outline:3px solid #f2c23e;outline-offset:2px}

.sp-fronta{margin-top:14px}
.sp-fronta__stav{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;margin-bottom:6px}
.sp-fronta__bar{height:8px;border-radius:8px;background:#f2f2f7;overflow:hidden}
.sp-fronta__bar i{display:block;height:100%;width:0;background:#34c759;border-radius:8px;transition:width .25s}
.sp-fronta__nahledy{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px;margin-top:10px}
.sp-fronta__n{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#f2f2f7}
.sp-fronta__n img{width:100%;height:100%;object-fit:cover;display:block;opacity:.45;transition:opacity .2s}
.sp-fronta__n.je-hotovo img{opacity:1}
.sp-fronta__n b{position:absolute;inset:auto 0 0 0;height:4px;background:#34c759;width:0;transition:width .15s}
.sp-fronta__n.je-hotovo::after{content:"✓";position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:#34c759;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center}
.sp-fronta__n.je-chyba{outline:2px solid #ff3b30;outline-offset:-2px}
.sp-fronta__n.je-chyba::after{content:"!";position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:#ff3b30;color:#fff;font-size:12px;font-weight:800;display:grid;place-items:center}
.sp-odkaz-btn{border:0;background:none;color:#0a4ab8;font-weight:700;font-size:14px;padding:4px 0;cursor:pointer}

.sp-filtr{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;margin:0 -16px;padding-left:16px;padding-right:16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sp-filtr::-webkit-scrollbar{display:none}
.sp-filtr__chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:6px 14px;border-radius:999px;background:#fff;color:#1c1c1e;text-decoration:none;font-size:14px;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.06);white-space:nowrap}
.sp-filtr__chip small{color:#8e8e93;font-weight:600}
.sp-filtr__chip.je-aktivni{background:#1f4d2e;color:#fff}
.sp-filtr__chip.je-aktivni small{color:rgba(255,255,255,.75)}
.sp-novy-stitek{display:flex;gap:8px;margin:4px 0 0}
.sp-novy-stitek input{flex:1;min-width:0;border:0;border-radius:12px;background:#fff;padding:10px 14px;font-size:16px;min-height:44px;box-shadow:0 1px 2px rgba(0,0,0,.05)}

.sp-galerie-karta{background:#fff;border-radius:18px;padding:14px 16px;margin-top:14px;box-shadow:0 1px 2px rgba(0,0,0,.05);display:grid;gap:12px}
.sp-galerie-karta__hlava{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sp-galerie-karta__hlava strong{display:block;font-size:18px}
.sp-galerie-karta__hlava small{color:#8e8e93;font-size:13px}
.sp-galerie-karta__hlava .tk-btn{background:#f2f2f7}
.sp-odkaz{display:flex;gap:8px}
.sp-odkaz input{flex:1;min-width:0;border:0;border-radius:10px;background:#f2f2f7;padding:10px 12px;font-size:14px;color:#3a3a3c;min-height:44px}
.sp-galerie-karta__akce{display:flex;flex-wrap:wrap;gap:8px}
.sp-galerie-karta__akce .tk-btn{flex:1 1 auto;min-height:44px}

.sp-grid-hlava{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sp-grid-hlava .tk-btn{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06);margin-top:14px}
.sp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;border-radius:14px;overflow:hidden}
@media (min-width:640px){.sp-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;border-radius:0;overflow:visible}.sp-foto{border-radius:10px}}
.sp-foto{position:relative;display:block;aspect-ratio:1;padding:0;border:0;background:#e5e5ea;cursor:pointer;overflow:hidden;-webkit-tap-highlight-color:transparent}
.sp-foto img{width:100%;height:100%;object-fit:cover;display:block}
.sp-foto__bez{position:absolute;left:6px;bottom:6px;width:10px;height:10px;border-radius:50%;background:#ff9500;box-shadow:0 0 0 2px #fff}
.je-vyber .sp-foto::after{content:"";position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:2px solid #fff;background:rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.3)}
.je-vyber .sp-foto.je-vybrana::after{content:"✓";background:#0a84ff;color:#fff;font-weight:800;font-size:14px;display:grid;place-items:center}
.je-vyber .sp-foto.je-vybrana img{transform:scale(.9);border-radius:6px;transition:transform .12s}
.sp-foto.je-nova{animation:sp-nova .6s ease-out}
@keyframes sp-nova{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
.sp-dalsi{text-align:center;margin:18px 0}
.sp-dalsi .tk-btn{background:#fff}

/* Spodní lišta výběru (nad lištou záložek) */
.sp-vyber-lista{position:fixed;left:8px;right:8px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:70;display:flex;align-items:center;gap:6px;padding:8px;border-radius:16px;background:rgba(28,28,30,.94);color:#fff;box-shadow:0 8px 30px rgba(0,0,0,.3);overflow-x:auto}
.sp-vyber-lista b{flex:1 1 auto;font-size:14px;padding:0 4px;white-space:nowrap}
.sp-vyber-lista button{flex:0 0 auto;border:0;border-radius:10px;min-height:42px;padding:6px 11px;background:rgba(255,255,255,.14);color:#fff;font-weight:700;font-size:14px;cursor:pointer}
.sp-vyber-lista button:disabled{opacity:.4}
.sp-vyber-lista .je-cervene{background:#ff3b30}
@media (min-width:900px){.sp-vyber-lista{bottom:20px;left:50%;right:auto;transform:translateX(-50%);max-width:680px}}

/* Spodní panel (volba štítku / potvrzení smazání) */
.sp-sheet-pozadi{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.3)}
.sp-sheet{position:fixed;left:0;right:0;bottom:0;z-index:91;max-height:80vh;overflow-y:auto;background:#f2f2f7;border-radius:20px 20px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));display:grid;gap:10px;box-shadow:0 -10px 40px rgba(0,0,0,.25);animation:sp-sheet .22s ease-out}
@keyframes sp-sheet{from{transform:translateY(100%)}to{transform:none}}
@media (min-width:640px){.sp-sheet{left:50%;right:auto;width:460px;transform:translateX(-50%);bottom:24px;border-radius:20px;animation:none}}
.sp-sheet__titulek{font-size:18px}
.sp-sheet__stitky{display:grid;gap:0;background:#fff;border-radius:14px;overflow:hidden}
.sp-sheet__volba{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #e5e5ea;font-size:16px;cursor:pointer}
.sp-sheet__volba:last-child{border-bottom:0}
.sp-sheet__volba input{width:22px;height:22px;accent-color:#1f4d2e;margin:0}
.sp-sheet__smazat{margin:0;padding:12px 14px;border-radius:14px;background:#ffe5e3;color:#b3000f;font-weight:600}
.sp-sheet .tk-btn{min-height:50px;font-size:16px}
.sp-sheet .sp-sheet__zrusit{background:#fff}
.sp-sheet.je-smazat .sp-sheet__ok{background:#ff3b30}

/* ---------- Galerie pro rodiče ---------- */
body.gal{margin:0;background:#f8f3e3;color:#23402b;font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
.gal-hlava{position:sticky;top:0;z-index:5;display:flex;align-items:center;padding:10px max(16px,env(safe-area-inset-left));background:rgba(248,243,227,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #eadfc2}
.gal-hlava__logo{display:flex;align-items:center;gap:10px;color:#1f4d2e;text-decoration:none;font-weight:800;font-size:18px;letter-spacing:.02em;text-transform:uppercase}
.gal-hlava__logo svg,.gal-hlava__logo img{width:40px;height:auto}
.gal-obsah{max-width:1200px;margin:0 auto;padding:18px 12px 60px}
.gal h1{font-size:clamp(26px,6vw,40px);line-height:1.1;margin:6px 4px 4px;color:#1f4d2e}
.gal-pod{margin:0 4px 16px;color:#5b6b58;font-size:14px}
.gal-prazdno{background:#fffdf6;border-radius:16px;padding:30px 20px;text-align:center;color:#5b6b58}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
@media (min-width:640px){.gal-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.gal-foto{border-radius:12px}}
.gal-foto{display:block;aspect-ratio:1;overflow:hidden;background:#eadfc2}
.gal-foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}
.gal-foto:hover img{transform:scale(1.03)}
.gal-seznam{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.gal-album{display:block;background:#fffdf6;border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;border:1px solid #eadfc2}
.gal-album img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.gal-album span{display:grid;padding:12px 16px}
.gal-album strong{font-size:18px;color:#1f4d2e}
.gal-album small{color:#5b6b58}

/* ---------- Prohlížeč fotek (sdílený) ---------- */
.lb{position:fixed;inset:0;z-index:1000;background:#000;display:flex;align-items:center;justify-content:center;touch-action:none;user-select:none;-webkit-user-select:none}
.lb__obr{max-width:100vw;max-height:100vh;max-height:100dvh;object-fit:contain;transition:transform .2s ease-out;will-change:transform}
.lb__lista{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:max(10px,env(safe-area-inset-top)) 12px 10px;background:linear-gradient(rgba(0,0,0,.6),transparent);color:#fff;font:600 15px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.lb__lista a,.lb__lista button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 14px;border:0;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;font:inherit;text-decoration:none;cursor:pointer}
.lb__akce{display:flex;gap:8px}
.lb__sip{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:26px;cursor:pointer;display:none}
.lb__sip--l{left:14px}.lb__sip--p{right:14px}
@media (hover:hover) and (min-width:700px){.lb__sip{display:block}}
.lb__nacita{position:absolute;width:36px;height:36px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;animation:lb-toc .8s linear infinite}
@keyframes lb-toc{to{transform:rotate(360deg)}}

/* Turnusy (fotky patří k turnusu) */
.sp-turnusy{display:flex;gap:10px;overflow-x:auto;margin:0 -16px 14px;padding:2px 16px 6px;scrollbar-width:none}
.sp-turnusy::-webkit-scrollbar{display:none}
.sp-turnusy__t{flex:0 0 auto;display:grid;gap:1px;min-width:170px;padding:10px 14px;border-radius:14px;background:#fff;color:#1c1c1e;text-decoration:none;box-shadow:0 1px 2px rgba(0,0,0,.06);border:2px solid transparent}
.sp-turnusy__t strong{font-size:15px}
.sp-turnusy__t span{font-size:12.5px;color:#636366}
.sp-turnusy__t small{font-size:12px;color:#8e8e93;font-weight:600}
.sp-turnusy__t.je-aktivni{border-color:#1f4d2e;background:#e7efe0}
.sp-h2 small{display:block;margin:2px 0 0;font-size:12.5px;font-weight:500}
.sp-stitky-akce{display:grid;gap:8px}
.sp-stitky-akce>.sp-odkaz-btn{justify-self:start;text-decoration:none}
.sp-galerie-nova{display:grid;gap:8px}
.sp-galerie-nova strong{font-size:17px}
.sp-galerie-nova small{color:#636366;font-size:13px;line-height:1.4}
.sp-galerie-nova input[type=text]{border:0;border-radius:10px;background:#f2f2f7;padding:10px 12px;font-size:16px;min-height:44px}
.sp-galerie-nova .tk-btn{min-height:48px}
.sp-galerie-nova .tk-btn:disabled{opacity:.45}
.sp-galerie-karta__hlava small:first-child{display:block;color:#0b6b2a;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.sp-galerie-seznam{margin-top:12px;background:#fff;border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.05);overflow:hidden}
.sp-galerie-seznam summary{padding:12px 16px;font-weight:700;cursor:pointer}
.sp-galerie-radek{display:flex;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid #e5e5ea;text-decoration:none;color:inherit}
.sp-galerie-radek img,.sp-galerie-radek i{width:48px;height:48px;border-radius:10px;object-fit:cover;background:#e5e5ea;flex:0 0 48px}
.sp-galerie-radek span{display:grid;min-width:0}
.sp-galerie-radek small{color:#8e8e93;font-size:12.5px}
.sp-stitek-uprava{margin-bottom:10px;padding:10px 12px!important}
.sp-stitek-uprava form{display:flex;gap:8px;align-items:center}
.sp-stitek-uprava form input[type=text]{flex:1;min-width:0}
.sp-stitek-uprava .sp-smazat-inline{margin-top:8px}
.sp-stitek-uprava .sp-smazat-inline form{flex-wrap:wrap}
