/* Recepka: admin a veřejná rezervace. Paleta a písma z landing page. */
:root{
  --bg:#F2F4F3; --surface:#FFFFFF; --ink:#13201C; --muted:#5B6A64; --line:#DCE3DF;
  --answer:#29A055; --answer-ink:#FFFFFF; --answer-soft:#E3F3E9; --blush:#F6DCD5; --blush-ink:#7A3B2E;
  --chyba:#B42318; --chyba-soft:#FDE7E5;
  --f-display:"Bricolage Grotesque","Arial Narrow",system-ui,sans-serif;
  --f-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
/* Tmavý režim jen na přání (přepínač v administraci, cookie recepka_motiv → <html data-theme="dark">), výchozí je světlý. */
:root[data-theme="dark"]{
  --bg:#0E1513; --surface:#17211E; --ink:#E9EFEC; --muted:#9AABA4; --line:#26332F;
  --answer:#36C26B; --answer-ink:#06130D; --answer-soft:#12301D; --blush:#3A2621; --blush-ink:#F2C3B6;
  --chyba:#FF8A80; --chyba-soft:#3A1F1C; color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--f-body);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--f-display);letter-spacing:-.02em;line-height:1.1;margin:0 0 .5em}
h1{font-size:clamp(28px,6vw,40px)} h2{font-size:24px} h3{font-size:19px}
a{color:inherit}
:focus-visible{outline:3px solid var(--answer);outline-offset:2px;border-radius:6px}
.tlumene{color:var(--muted)} .male{font-size:14px}
.obsah{max-width:960px;margin:0 auto;padding-block:20px 80px}
.uzky{max-width:440px;margin:0 auto;padding-block:48px}

/* lišta */
.lista{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:14px;border-bottom:1px solid var(--line)}
.znacka{display:flex;align-items:center;gap:10px;font:800 20px var(--f-display);text-decoration:none;letter-spacing:-.02em}
.tecka{width:22px;height:22px;border-radius:50%;background:var(--answer);flex:none}
/* Logo (r_logo): celé logo podle režimu (tmavá verze má světlý nápis), v úzké liště jen bubliny. */
.logo-znak{display:flex;height:30px;flex:none}
.logo-znak img{display:none;height:100%;width:auto}
.logo-znak .logo-svetle{display:block}
:root[data-theme="dark"] .logo-znak .logo-svetle{display:none}
:root[data-theme="dark"] .logo-znak .logo-tmave{display:block}
@media (max-width:640px){
  :root .lista .logo-znak .logo-cele{display:none}
  :root .lista .logo-znak .logo-bubliny{display:block}
}
.lista{position:relative}
.menu-tl{font-size:22px;padding:4px 12px;border-radius:10px;border:1.5px solid var(--line);background:none;color:inherit;cursor:pointer}
.hlavni{display:none;position:absolute;right:0;top:100%;margin-top:6px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:8px;flex-direction:column;min-width:210px;z-index:20;box-shadow:0 20px 40px -20px rgba(0,0,0,.3)}
.hlavni.otevreno{display:flex}
.hlavni a,.hlavni .odkaz{padding:10px 12px;border-radius:10px;text-decoration:none;font-weight:500;text-align:left;font-size:15px}
.hlavni a[aria-current]{background:var(--answer-soft)}
@media (min-width:900px){
  .menu-tl{display:none}
  .hlavni{display:flex;position:static;flex-direction:row;flex-wrap:wrap;border:0;padding:0;margin:0;box-shadow:none;background:none;min-width:0}
}

/* prvky */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 20px;font:600 16px var(--f-body);cursor:pointer;text-decoration:none;background:var(--answer);color:var(--answer-ink)}
.btn.sedy{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn.cerveny{background:var(--chyba-soft);color:var(--chyba)}
.btn.male{padding:8px 14px;font-size:14px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.odkaz{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
/* Chip: malé kulaté tlačítko pro vedlejší akce a navigaci. Místo holých odkazů (rozhodnutí 22. 10. 2026). */
.chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:5px 13px;border-radius:999px;border:1.5px solid var(--line);
  background:var(--surface);color:var(--ink);font:600 14px/1.2 var(--f-body);text-decoration:none;cursor:pointer;white-space:nowrap;vertical-align:middle;-webkit-tap-highlight-color:transparent}
label.chip{flex-direction:row;margin:0}   /* chip jako <label> (výběr souboru): bez sloupce a okraje formulářového popisku */
.chip:hover{border-color:var(--answer)}
.chip:active{transform:scale(.97)}
.chip svg{width:16px;height:16px;flex:none}
.chip[aria-current]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.chip.cervena{color:var(--chyba);background:var(--chyba-soft);border-color:color-mix(in srgb,var(--chyba) 30%,transparent)}
.chipy{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chipy > .vpravo{margin-left:auto}   /* nebezpečná akce (zrušit, odebrat) vpravo, dál od ostatních */
/* Uložit (r_ulozit): všude stejné velké tlačítko s fajfkou. Na mobilu přes celou šířku, na počítači široké. Vedlejší akce vedle něj jako chip. */
.ulozit-radek{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:18px}
.btn.ulozit{min-height:54px;min-width:240px;padding:14px 30px;font-size:17px;font-weight:600;border-radius:999px;box-shadow:0 10px 24px -14px color-mix(in srgb,var(--answer) 80%,transparent)}
.btn.ulozit svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.btn.ulozit:hover{filter:brightness(1.05)}
.btn.ulozit:active{transform:scale(.98)}
@media (max-width:640px){.ulozit-radek .btn.ulozit{width:100%}}
/* Tlačítko zpět: všude stejné, kulaté se šipkou (r_zpet). */
.zpet{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink);
  text-decoration:none;flex:none;margin:0 0 14px;-webkit-tap-highlight-color:transparent}
.zpet:hover{background:color-mix(in srgb,var(--ink) 12%,transparent)}
.zpet svg{width:20px;height:20px}
@media (min-width:980px){.jen-mobil{display:none!important}}
/* Řádek nadpisu: šipka zpět vlevo vedle nadpisu (ne nad ním). */
.nadpis-radek{display:flex;align-items:center;gap:12px;margin:0 0 14px;min-width:0}
.nadpis-radek .zpet{margin:0}
.nadpis-radek h1,.nadpis-radek h2{margin:0;min-width:0;overflow-wrap:anywhere}
.nadpis-radek > div{display:flex;flex-direction:column;gap:8px;min-width:0}
.hlava-stranky .nadpis-radek{margin:0}
.karta{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px 20px;margin-bottom:14px}
.mrizka{display:grid;gap:14px} @media (min-width:700px){.mrizka.dve{grid-template-columns:1fr 1fr}}
label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;margin-bottom:12px}
/* 16 px písmo zůstává: menší by iOS při kliknutí přiblížil. Štíhlejší je jen výška a okraje. */
input,select,textarea{font:16px var(--f-body);padding:9px 12px;border-radius:11px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
textarea{min-height:84px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--answer)}
/* Pole stejně vysoká a nikdy širší než sloupec. Datum a čas mají v iOS vlastní šířku, výšku a zarovnání na střed. */
input,select{min-width:0;max-width:100%}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select{height:44px}
/* Telefon s předvolbou (telefon.js): jedno pole s rámečkem a zaoblením obalu, uvnitř +420 a číslo bez vlastních rámečků */
.tel-pole{display:flex;align-items:stretch;width:100%;min-width:0;height:44px;border:1.5px solid var(--line);border-radius:11px;background:var(--bg);overflow:hidden}
.tel-pole:focus-within{border-color:var(--answer)}
.tel-pole:has(.pole-chyba,[aria-invalid=true]){border-color:var(--alarm,#C0392B)}
.tel-pole > select,.tel-pole > input{height:auto!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:none!important;margin:0!important}
.tel-pole .tel-predvolba{flex:none;width:auto;padding:0 2px 0 12px;font-weight:600;color:var(--ink);cursor:pointer}
.tel-pole input{flex:1;min-width:0;padding-left:10px;border-left:1.5px solid var(--line)!important}
input[type=date],input[type=time],input[type=datetime-local]{-webkit-appearance:none;appearance:none;display:block;text-align:left;line-height:1.2}
input::-webkit-date-and-time-value{text-align:left;margin:0}
input::-webkit-datetime-edit{padding:0}
label,.mrizka > *{min-width:0}
/* Pracovní doba na mobilu: den nahoře, pod ním dva úseky jako dvojice polí s popiskem. */
@media (max-width:640px){
  .doba-tab thead{display:none}
  .doba-tab,.doba-tab tbody{display:block;width:100%}
  .doba-tab tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;padding:12px 0;border-bottom:1px solid var(--line)}
  .doba-tab tr:last-child{border-bottom:0}
  .doba-tab td{display:block;border:0;padding:0;min-width:0}
  .doba-tab td:first-child{grid-column:1/-1;font-weight:600}
  .doba-tab td[data-popisek]::before{content:attr(data-popisek);display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
}
label.zaskrt{flex-direction:row;align-items:flex-start;gap:10px;font-weight:500}
label.zaskrt input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--answer)}
.radek{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.radek>*{flex:1 1 auto}
.flash{padding:12px 16px;border-radius:14px;background:var(--answer-soft);margin:0 0 16px}
.flash.chyba{background:var(--chyba-soft);color:var(--chyba)}
.stitek{display:inline-block;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--answer-soft)}
.stitek.zrusena{background:var(--chyba-soft);color:var(--chyba)} .stitek.nedorazila{background:var(--blush);color:var(--blush-ink)}
table{width:100%;border-collapse:collapse;font-size:15px}
th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding:8px 6px;border-bottom:1px solid var(--line)}
td{padding:10px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.tabulka{overflow-x:auto}
.seznam{list-style:none;padding:0;margin:0}
.seznam li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.seznam li:last-child{border-bottom:0}
pre.kod{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px;overflow-x:auto;font-size:13px;white-space:pre-wrap;word-break:break-all}

/* kalendář */
.dny-tab{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px}
.dny-tab a{flex:none;text-decoration:none;padding:8px 12px;border-radius:12px;border:1.5px solid var(--line);font-size:14px;text-align:center;min-width:64px}
.dny-tab a[aria-current]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.dny-tab b{display:block;font:700 18px var(--f-display)}
.rez{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none}
.rez .cas{font:700 18px var(--f-display);font-variant-numeric:tabular-nums}
.rez.zrusena{opacity:.5}

/* veřejná rezervace */
.verejna .obsah{max-width:640px}
.kroky{display:flex;gap:6px;margin:0 0 18px;font-size:13px;color:var(--muted)}
.kroky span{flex:1;height:4px;border-radius:4px;background:var(--line)} .kroky span.ok{background:var(--answer)}
.sluzba{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:18px;padding:14px 16px;margin-bottom:10px;cursor:pointer;font:inherit;color:inherit}
.sluzba:hover,.sluzba[aria-pressed=true]{border-color:var(--answer)}
.sluzba.s-fotkou{justify-content:flex-start;align-items:center;gap:14px}
.fotka-cloveka{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
/* Popis člověka může být delší (až 500 znaků): ve výběru jen tři řádky. */
.clovek-volba small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sluzba b{display:block;font-size:17px} .sluzba small{color:var(--muted)} .sluzba .cena{font:700 17px var(--f-display);white-space:nowrap}
.datumy{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;scroll-snap-type:x proximity}
.datum{flex:none;scroll-snap-align:start;border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:8px 10px;min-width:62px;text-align:center;cursor:pointer;font:inherit;color:inherit}
.datum b{display:block;font:700 20px var(--f-display)} .datum small{font-size:12px;color:var(--muted)}
.datum[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)} .datum[aria-pressed=true] small{color:inherit}
.datum[disabled]{opacity:.35;cursor:default}
.casy{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin:10px 0 18px}
.casy button{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:11px 0;font:600 16px var(--f-body);cursor:pointer;color:inherit;font-variant-numeric:tabular-nums}
.casy button[aria-pressed=true]{background:var(--answer);color:var(--answer-ink);border-color:var(--answer)}
.souhrn{background:var(--answer-soft);border-radius:18px;padding:14px 16px;margin-bottom:16px}
.patka{font-size:13px;color:var(--muted);text-align:center;padding:24px 0}
body.embed{padding-top:8px} body.embed .patka{padding:12px 0}
[hidden]{display:none!important}

/* chat */
body.chat-stranka{padding:0;background:var(--bg)}
.chat{display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:640px;margin:0 auto;background:var(--bg)}
.chat-hlava{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface)}
.chat-hlava b{display:block;font:700 17px var(--f-display)} .chat-hlava small{color:var(--muted);font-size:13px}
.chat-hlava div{flex:1;min-width:0}
.chat-rez{font-size:14px;font-weight:600;text-decoration:none;border:1.5px solid var(--line);border-radius:999px;padding:6px 12px}
.chat-zpravy{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px;-webkit-overflow-scrolling:touch}
.bublina{max-width:86%;padding:10px 14px;border-radius:18px;font-size:15px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}
.bublina.ai{background:#13201C;color:#F2F4F3;align-self:flex-start;border-bottom-left-radius:6px}
.bublina.firma{background:var(--blush);color:var(--blush-ink);align-self:flex-start;border-bottom-left-radius:6px}
.bublina.firma .kdo{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;opacity:.8;margin-bottom:2px}
.bublina.ja{background:var(--surface);border:1px solid var(--line);align-self:flex-end;border-bottom-right-radius:6px}
.bublina.system{background:var(--answer-soft);align-self:stretch;max-width:none;font-size:14px;border-radius:14px}
:root[data-theme="dark"] .bublina.ai{background:#E9EFEC;color:#0E1513}
.pise{display:flex;gap:4px;padding:14px} .pise i{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5;animation:pise 1s infinite}
.pise i:nth-child(2){animation-delay:.15s}.pise i:nth-child(3){animation-delay:.3s}
@keyframes pise{0%,100%{opacity:.25}50%{opacity:.9}}
.chat-form{background:var(--surface);border:1.5px solid var(--answer);border-radius:18px;padding:14px;align-self:stretch;display:flex;flex-direction:column}
.chat-form label{margin-bottom:8px} .chat-form .btn{margin-top:4px}
.chat-vstup{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface);align-items:flex-end}
.chat-vstup textarea{min-height:44px;max-height:140px;resize:none;border-radius:22px;padding:11px 16px}
.chat-vstup .btn{width:46px;height:46px;padding:0;flex:none;font-size:18px}
.chat-pozn{font-size:11.5px;color:var(--muted);text-align:center;margin:0;padding:4px 12px 10px;background:var(--surface)}
.chat-odkaz{position:fixed;right:16px;bottom:16px;z-index:10;box-shadow:0 12px 30px -12px rgba(19,32,28,.5)}

.chat-admin{display:flex;flex-direction:column;gap:8px;max-height:65vh;overflow-y:auto}
.chat-admin .bublina .kdo{display:block;font-size:11px;opacity:.75;margin-bottom:2px}

body.embed .chat-hlava{padding-right:64px}

/* Přihlášení a hesla (r_prihlaseni_hlava): lišta přes celou šířku, karta uprostřed, větší pole na počítači i mobilu. */
body.prihlaseni-telo{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.prihlaseni-lista{width:100%;max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}
.prihlaseni{flex:1;width:100%;max-width:460px;margin:0 auto;padding:min(9vh,90px) 0 64px}
.prihlaseni h1{font-size:clamp(30px,4vw,40px);margin:0 0 6px}
.prihlaseni .nadpis-radek{margin-bottom:6px}
.prihlaseni .nadpis-radek h1{margin:0}
.prihlaseni .pod{color:var(--muted);margin:0 0 22px;font-size:16.5px}
.prihlaseni .karta{padding:26px;border-radius:24px;margin:0}
.prihlaseni label{font-size:14.5px;margin-bottom:14px}
.prihlaseni input:not([type=checkbox]):not([type=hidden]){height:52px!important;font-size:17px;border-radius:14px;padding:0 16px;background:var(--surface)}
.prihlaseni .ulozit-radek{margin-top:6px}
.prihlaseni .btn.ulozit{width:100%;min-width:0}
.prihlaseni-dole{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:18px}
@media (max-width:560px){.prihlaseni{padding-top:28px}.prihlaseni .karta{padding:20px}}

/* Přihlášení přes Google (app/google.php) */
.btn.google-tl{width:100%;min-height:52px;justify-content:center;gap:12px;background:#fff;color:#1F1F1F;border:1.5px solid #DADCE0;font-weight:600}
.btn.google-tl:hover{background:#F8FAF9}
.ucet-nebo{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:13px;font-weight:600}
.ucet-nebo::before,.ucet-nebo::after{content:"";flex:1;height:1px;background:var(--line)}
.google-ucet{display:grid;gap:2px;margin:0 0 14px;padding:12px 16px;border-radius:14px;background:var(--bg);border:1px solid var(--line)}
.google-ucet span{font-size:13px;color:var(--muted)}
.google-souhlas{margin:8px 2px 0;font-size:12.5px;line-height:1.4;color:var(--muted);text-align:center}

/* Potvrzovací okno (potvrzeni.js) místo systémového confirm() */
dialog.potvrzeni{border:0;border-radius:22px;padding:22px 22px 18px;width:min(420px,calc(100vw - 32px));background:var(--surface);color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.35)}
dialog.potvrzeni::backdrop{background:rgba(8,18,13,.45)}
dialog.potvrzeni[open]{animation:potvrzeni-in .16s ease-out}
@keyframes potvrzeni-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.potvrzeni-otazka{font:700 19px/1.3 var(--f-display);letter-spacing:-.01em;margin:0 0 6px}
.potvrzeni-detail{margin:0;color:var(--muted);font-size:15px;line-height:1.45}
.potvrzeni-tl{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}
.potvrzeni .btn.cervene{background:var(--chyba);color:#fff}
@media (max-width:600px){dialog.potvrzeni{margin:auto auto max(12px,env(safe-area-inset-bottom,0px))}.potvrzeni-tl .btn{flex:1}}
.past{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}   /* past na roboty ve formulářích */
