/* Klientská zóna – doplňuje ../css/style.css */
:root{--akcent:#b0646a;--akcent-svetly:#f6ecec}
.hlavicka-klient{padding-bottom:32px}
main{padding-bottom:60px}
.stred{text-align:center}
.klient-uzky{max-width:440px}
.klient-uzky h1{margin-bottom:20px}
code,.kod{font-family:Consolas,Menlo,monospace;font-size:13px;background:#f4f4f4;padding:2px 5px}
.kod{display:block;padding:12px;white-space:pre-wrap;word-break:break-all}

/* Přihlášení */
.prihlaseni{display:block}
.prihlaseni label{margin-top:8px}
.prihlaseni input{margin-bottom:20px}
.prihlaseni button,.tlacitko{font:400 15px var(--sans);letter-spacing:.05em;background:var(--text);color:#fff;border:0;padding:12px 30px;cursor:pointer}
.prihlaseni button{width:100%}
.tlacitko:hover,.prihlaseni button:hover{background:#000}
.tlacitko-svetle{display:inline-flex;align-items:center;gap:8px;font:400 14px var(--sans);background:#fff;color:var(--text);border:1px solid #cfcfcf;padding:9px 18px;cursor:pointer;text-decoration:none}
.tlacitko-svetle:hover{border-color:var(--text)}
.tlacitko-svetle.male{padding:5px 12px;font-size:13px}
.tlacitko-nebezpecne{font:400 14px var(--sans);background:#fff;color:#a12b2b;border:1px solid #e3b3b3;padding:9px 18px;cursor:pointer}
.hlaseni{padding:12px 16px;font-size:15px;margin:0 0 16px}
.hlaseni.ok{background:#eef6ee}
.hlaseni.chyba{background:#fbeeee}

/* Galerie klienta */
.klient-uvod{max-width:720px;margin:-12px auto 28px;padding:0 20px;text-align:center;color:#555;font-size:16px}
.srdce-ukazka{color:var(--akcent);font-size:1.15em}
.lista{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;justify-content:space-between;
  background:rgba(255,255,255,.96);border-bottom:1px solid var(--linka);padding:10px 20px;margin-bottom:var(--mezera)}
.filtry{display:flex;gap:4px;flex-wrap:wrap}
.filtr{font:400 14px var(--sans);background:none;border:0;border-bottom:2px solid transparent;padding:6px 10px;cursor:pointer;color:var(--tlumeny)}
.filtr span{font-size:12px;color:#999;margin-left:2px}
.filtr.aktivni{color:var(--text);border-bottom-color:var(--text)}
.pocitadlo{font-size:15px;margin-left:auto}
.pocitadlo.splneno{color:#2e7d32}
.pocitadlo.nad-limit{color:var(--akcent)}
.jen-cteni .lista .pocitadlo{margin-left:auto}
.prazdne{text-align:center;color:var(--tlumeny);padding:40px}

.klient-galerie .galerie{padding:0 var(--mezera)}
.dlazdice{position:relative;background:#f0f0f0}
.dlazdice .otevrit{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.dlazdice img{width:100%;height:auto}
.ovladani{position:absolute;right:6px;bottom:6px;display:flex;align-items:center;gap:4px}
.ma-poznamka{display:none;width:30px;height:30px;padding:6px;border-radius:50%;background:rgba(255,255,255,.9)}
.ma-poznamka svg{width:100%;height:100%;fill:var(--text)}
.s-poznamkou .ma-poznamka{display:block}
.srdce{width:40px;height:40px;padding:8px;border:0;border-radius:50%;background:rgba(255,255,255,.9);cursor:pointer;transition:transform .15s}
.srdce:hover{transform:scale(1.08)}
.srdce:disabled{cursor:default;transform:none}
.srdce svg{width:100%;height:100%;fill:none;stroke:var(--text);stroke-width:1.6}
.vybrano .srdce svg{fill:var(--akcent);stroke:var(--akcent)}
.vybrano .otevrit::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 3px var(--akcent);pointer-events:none}
.jen-cteni .dlazdice:not(.vybrano) .srdce{display:none}
/* „Nechci“: křížek vlevo dole, fotka se překryje tmavým závojem */
.krizek{position:absolute;left:6px;bottom:6px;z-index:2;width:40px;height:40px;padding:10px;border:0;border-radius:50%;background:rgba(255,255,255,.9);cursor:pointer;transition:transform .15s,background-color .2s}
.krizek:hover{transform:scale(1.08)}
.krizek:disabled{cursor:default;transform:none}
.krizek svg{width:100%;height:100%;fill:none;stroke:var(--text);stroke-width:2;stroke-linecap:round}
.dlazdice::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(20,20,20,.82);opacity:0;transition:opacity .35s;pointer-events:none}
.dlazdice.nechci::before{opacity:1}
.dlazdice.nechci .krizek{background:var(--text)}
.dlazdice.nechci .krizek svg{stroke:#fff}
.ovladani{z-index:2}
.jen-cteni .dlazdice:not(.nechci) .krizek{display:none}
.lb-volby{display:flex;gap:8px}
.lb-volby .lb-srdce{flex:1}
.lb-nechci{justify-content:center;padding:12px 14px}
.lb-nechci svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.lb-nechci.aktivni{background:var(--text);border-color:var(--text);color:#fff}

/* Detail fotky */
.lb{position:fixed;inset:0;z-index:100;background:#fff;display:none}
.lb.otevreno{display:flex}
.lb-foto{flex:1;display:flex;align-items:center;justify-content:center;padding:20px;min-width:0;background:#f7f7f7}
.lb-foto{position:relative}
.lb-foto img{max-width:100%;max-height:calc(100vh - 40px);object-fit:contain;cursor:zoom-out}
/* Listování: plocha 15 % šířky stránky u levého a pravého okraje fotky, šipky cca 3,3 % od kraje */
.lb-zona{position:absolute;top:0;bottom:0;width:15vw;display:flex;align-items:center;padding:0 3.33vw;background:none;border:0;cursor:pointer;font:300 44px/1 var(--sans);color:var(--text);opacity:.35;transition:opacity .3s;z-index:1}
.lb-zona::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .3s;pointer-events:none}
.lb-zona-vlevo::before{background:linear-gradient(to right,rgba(0,0,0,.2),rgba(0,0,0,0))}
.lb-zona-vpravo::before{background:linear-gradient(to left,rgba(0,0,0,.2),rgba(0,0,0,0))}
.lb-zona:hover{opacity:1}
.lb-zona:hover::before{opacity:1}
.lb-zona-vlevo{left:0;justify-content:flex-start}
.lb-zona-vpravo{right:0;justify-content:flex-end}
.lb-panel{width:320px;flex:none;padding:20px 24px;display:flex;flex-direction:column;gap:14px;border-left:1px solid var(--linka);overflow:auto}
.lb-hlava{display:flex;justify-content:space-between;align-items:center;color:var(--tlumeny);font-size:14px}
.lb-x{background:none;border:0;font:300 36px/1 var(--sans);cursor:pointer;padding:0 4px;color:var(--text)}
.lb-srdce{justify-content:center;padding:12px}
.lb-srdce svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.lb-srdce.vybrano{background:var(--akcent-svetly);border-color:var(--akcent);color:var(--akcent)}
.lb-srdce.vybrano svg{fill:var(--akcent)}
.lb-panel textarea{min-height:120px}
.lb-stav{font-size:13px;color:var(--tlumeny);min-height:1.2em;margin-top:-8px}
.lb-nav{display:flex;gap:8px;margin-top:auto}
.lb-nav button{flex:1;justify-content:center;font-size:18px}

/* Dialog odeslání */
.dialog{border:0;padding:28px 32px;max-width:480px;width:calc(100% - 32px);box-shadow:0 10px 40px rgba(0,0,0,.18)}
.dialog::backdrop{background:rgba(0,0,0,.35)}
.dialog h2{font-family:var(--serif);font-style:italic;font-weight:500;font-size:28px;margin:0 0 12px}
.dialog form{display:block}
.dialog-pozn{font-size:14px;color:var(--tlumeny)}
.dialog-tlacitka{display:flex;justify-content:flex-end;gap:10px}
.dialog-tlacitka button[type=submit],.dialog-tlacitka .tlacitko{grid-column:auto;justify-self:auto}

.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,40px);opacity:0;background:var(--text);color:#fff;padding:10px 18px;font-size:14px;z-index:200;transition:.25s}
.toast.vidit{opacity:1;transform:translate(-50%,0)}

/* ---------- Administrace ---------- */
.admin-obsah{max-width:1200px}
.admin-obsah h1{text-align:left;margin-bottom:20px}
.admin-hlava{display:flex;justify-content:space-between;align-items:center}
.admin-hlava h1{margin:0}
.drobecky{margin:0 0 6px;font-size:14px}
.drobecky a{color:var(--tlumeny)}
.admin-blok{border:1px solid var(--linka);padding:20px 24px;margin:20px 0}
.admin-blok h2{margin:0 0 14px;font-size:24px}
.admin-blok textarea{margin:6px 0 10px}
.napoveda{font-size:14px;color:var(--tlumeny);margin:0 0 6px}
.souhrn{display:grid;gap:10px}
.souhrn .popis{display:inline-block;min-width:150px;color:var(--tlumeny);font-size:14px}
.souhrn a{word-break:break-all}
form.inline{display:inline;margin-left:10px}
.zprava-klientovi{width:100%;margin:8px 0}
.admin-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px 24px}
.admin-form .cela{grid-column:1/-1}
.admin-form button{justify-self:start}
.smazat-galerii{margin-top:20px;padding-top:16px;border-top:1px solid var(--linka);display:block}

.nahravani{display:block;border:2px dashed #cfcfcf;padding:28px;text-align:center;cursor:pointer;color:var(--tlumeny);font-size:15px}
.nahravani.nad{border-color:var(--text);background:#fafafa}
.nahravani input{position:absolute;opacity:0;width:1px;height:1px}
.prubeh{margin:14px 0}
.prubeh-pruh{height:6px;background:#eee}
.prubeh-pruh span{display:block;height:100%;width:0;background:var(--text);transition:width .2s}
.prubeh p{font-size:14px;margin:6px 0 0}

.admin-mrizka{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:18px}
.admin-foto{margin:0;border:1px solid var(--linka);background:#fff}
.admin-foto.vybrano{border:2px solid var(--akcent)}
.admin-foto img{width:100%;aspect-ratio:1;object-fit:cover}
.admin-foto figcaption{padding:6px 8px;font-size:12px;line-height:1.4;display:flex;flex-direction:column;gap:3px}
.admin-foto .nazev{word-break:break-all}
.admin-foto.vybrano .nazev{color:var(--akcent);font-weight:500}
.admin-foto .poznamka{background:#fff8e1;padding:3px 5px}
.admin-foto .smazat{align-self:flex-start;background:none;border:0;padding:0;font:inherit;color:#a12b2b;cursor:pointer;text-decoration:underline}
.tabulka-obal{overflow-x:auto}
.tabulka{width:100%;border-collapse:collapse;font-size:15px}
.tabulka th,.tabulka td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--linka)}
.tabulka th{font-weight:400;color:var(--tlumeny);font-size:13px}

@media (max-width:700px){
  .lb{flex-direction:column;height:100dvh}
  /* fotka se vejde jen do prostoru nad panelem (i na výšku) – nepřekrývá tlačítka */
  .lb-foto{padding:0;flex:1 1 0;min-height:0;overflow:hidden}
  .lb-foto img{position:absolute;top:8px;left:8px;width:calc(100% - 16px);height:calc(100% - 16px);max-width:none;max-height:none;object-fit:contain}
  .lb-panel{flex:none}
  .lb-panel{width:auto;border-left:0;border-top:1px solid var(--linka);padding:12px 16px;gap:10px}
  .lb-panel textarea{min-height:44px;height:64px}
  .lb-nav{display:none} /* na mobilu se listuje posunutím prstu nebo klepnutím na okraj fotky – víc místa pro fotku */
  .lista{padding:8px 12px}
  .pocitadlo{width:100%;order:3;margin:0;font-size:14px}
  .souhrn .popis{display:block}
}

/* ---------- Úvodní stránka galerie (fotka + heslo) ---------- */
.skryte{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.obalka{background:#222}
.obal{position:fixed;inset:0;max-width:none;padding:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#3a3a3a}
.obal-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:obal-prilet 2.4s ease-out both;pointer-events:none}
.obal::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,.55) 100%)}
@keyframes obal-prilet{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}
.obal-obsah{position:relative;z-index:1;text-align:center;color:#fff;padding:24px;width:100%;max-width:560px;animation:obal-text 1.2s .4s ease-out both}
@keyframes obal-text{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.obal-znacka{font-family:var(--serif);font-size:18px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px;opacity:.9}
.obal-znacka span{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.6em;padding-left:.6em;margin-top:4px}
.obal h1{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(38px,7vw,72px);line-height:1.1;margin:0 0 36px;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.obal-form{display:flex;gap:0;max-width:400px;margin:0 auto;border-bottom:1px solid rgba(255,255,255,.8)}
.obal-form input{flex:1;background:transparent;border:0;color:#fff;font-size:16px;padding:12px 4px;letter-spacing:.04em}
.obal-form input::placeholder{color:rgba(255,255,255,.75)}
.obal-form input:focus{outline:none}
.obal-form button{background:transparent;border:0;color:#fff;font:400 14px var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:12px 6px 12px 16px;cursor:pointer}
.obal-form:focus-within{border-bottom-color:#fff}
.obal-form button:hover{opacity:.75;background:transparent}
.obal-chyba{margin:18px 0 0;font-size:15px;color:#ffd9d9}
.obal-admin{margin:28px 0 0;font-size:13px}
.obal-admin a{color:rgba(255,255,255,.85)}
@media (prefers-reduced-motion:reduce){.obal-foto,.obal-obsah{animation:none}}

/* Ochrana fotek: žádné označení, přetažení ani nabídka „Uložit“ po podržení prstu; fotky se nevytisknou */
.dlazdice,.lb-foto{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
@media print{.dlazdice,.lb,.obal-foto,.galerie{display:none!important}}

/* Administrace: úvodní fotka */
.admin-foto{position:relative}
.obal-stitek{display:none;position:absolute;top:8px;left:8px;z-index:1;background:var(--text);color:#fff;font-size:13px;font-weight:500;letter-spacing:.03em;padding:5px 10px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.admin-foto.je-obal .obal-stitek{display:block}
.admin-foto.je-obal{outline:4px solid var(--text);outline-offset:-1px}
.akce-foto{display:flex;gap:10px;flex-wrap:wrap}
.nastavit-obal{background:none;border:0;padding:0;font:inherit;color:var(--text);cursor:pointer;text-decoration:underline}
.je-obal .nastavit-obal{display:none}
/* Administrace: fotky, které klient nechce (✕) */
.znacka-nechci{display:inline-block;width:18px;height:18px;line-height:18px;text-align:center;background:var(--text);color:#fff;border-radius:50%;font-size:11px;font-weight:500}
.admin-foto.nechci img{opacity:.45}
/* Náhled zvolené úvodní fotky nad mřížkou */
.obal-volba{display:flex;gap:18px;align-items:center;background:#f6f6f6;padding:14px;margin:0 0 18px}
.obal-volba img{width:120px;height:90px;object-fit:cover;outline:3px solid var(--text);flex:none}
.obal-volba .popis{display:block;font-size:13px;color:var(--tlumeny)}
.obal-volba strong{display:block;font-weight:500;font-size:17px;margin:2px 0 4px;word-break:break-all}
.obal-volba .napoveda{margin:0}
.obal-volba.zmeneno{animation:obal-zmena 1.2s ease-out}
@keyframes obal-zmena{from{background:#e3f1e3}to{background:#f6f6f6}}
