/* Rezervace pro klienty (docs/rezervace-navrh.md, část 1). Jen PT Sans, korálová #fe6367, bez verzálek. */
:root {
  --k: #fe6367;
  --k-tmava: #c94b4e;
  --k-hover: #a63c3f;
  --k-svetla: #fff4f4;
  --k-ramecek: #fde6e3;
  --text: #2b2b2b;
  --nadpis: #1f1f1f;
  --druhy: #454545;
  --tlumene: #6b7280;
  --linka: #e8ebf0;
  --ramecek: #dbdada;
  --raisova: #3aa6c4;
  --bulharska: #fe6367;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.rz { margin: 0; background: #fafafa; color: var(--text); font: 16px/1.5 "PT Sans", -apple-system, "Segoe UI", sans-serif; }
body.rz.vlozeno { background: transparent; }
.rz a { color: var(--k-tmava); }
.rz a:hover { color: var(--k-hover); }
.rz :focus-visible { outline: 3px solid rgba(254, 99, 103, .5); outline-offset: 2px; }
.rz-obal { max-width: 1200px; margin: 0 auto; padding: 24px clamp(12px, 3vw, 24px) 40px; }
.rz-novinka { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 18px; padding: 10px 12px 10px 14px; border: 1px solid var(--k-ramecek); border-radius: 10px; background: #fff7f6; font-size: 14px; color: var(--druhy); }
.rz-novinka[hidden] { display: none; }
.rz-novinka p { margin: 0; flex: 1; }
.rz-novinka b { color: var(--nadpis); }
.rz-novinka-ikona { width: 18px; height: 18px; flex: none; margin-top: 1px; fill: none; stroke: var(--k); stroke-width: 1.5; stroke-linejoin: round; }
.rz-novinka-zavrit { flex: none; width: 28px; height: 28px; margin: -4px -4px 0 0; border: 0; border-radius: 6px; background: transparent; color: var(--tlumene); font-size: 20px; line-height: 1; cursor: pointer; }
.rz-novinka-zavrit:hover { background: var(--k-svetla); color: var(--text); }
.rz-potvrzeni-hlavni .rz-novinka { margin: 14px 0 0; }
.rz-zkouska { margin: 0; padding: 8px 16px; background: #fff8e6; border-bottom: 1px solid #f3dfa6; color: #4a3500; font-size: 14px; text-align: center; }
.skryte, .rz-skryte-pole { position: absolute !important; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.rz-karta { background: #fff; border-radius: 15px; box-shadow: 9px 7px 36px 11px rgba(203, 197, 197, .24); padding: 28px clamp(16px, 4vw, 48px); }
.rz-h2 { margin: 0 0 18px; font-size: 26px; font-weight: 700; color: var(--nadpis); line-height: 1.25; }
.rz-upozorneni { margin: 0 0 16px; padding: 12px 16px; border: 1px solid #f3dfa6; border-radius: 10px; background: #fff8e6; color: #4a3500; }
.rz-pod { margin: 6px 0 0; font-size: 14px; color: var(--tlumene); }
.rz-prazdne { color: var(--druhy); }

/* Kroky pod sebou */
.rz-krok { border-top: 1px solid var(--linka); padding: 20px 0; }
.rz-krok:first-of-type { border-top: 0; }
.rz-krok-hlava { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.rz-krok-hlava h3 { margin: 0; font-size: 20px; font-weight: 700; color: var(--nadpis); }
.rz-odznak { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--ramecek); background: #fff; color: var(--tlumene); font-weight: 700; flex: none; }
.rz-odznak svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.rz-krok.aktivni .rz-odznak { background: var(--k); border-color: var(--k); color: #fff; }
.rz-krok.hotovy .rz-odznak { background: var(--k-svetla); border-color: var(--k-ramecek); color: var(--k-tmava); }
.rz-krok.ceka h3, .rz-krok.ceka .rz-souhrn { color: var(--tlumene); }
.rz-souhrn { color: var(--druhy); font-size: 15px; }
.rz-zmenit { font-size: 15px; text-decoration: underline; }
.rz-krok-obsah { padding: 18px 0 0 46px; }

/* Výběrové dlaždice */
.rz-skupina { border: 0; margin: 0 0 26px; padding: 0; min-width: 0; }
.rz-skupina > legend { padding: 0; margin-bottom: 10px; font-size: 17px; font-weight: 700; color: var(--nadpis); }
.rz-dlazdice, .rz-sluzba, .rz-kdokoli, .rz-terapeutka, .rz-cas { border: 1px solid var(--ramecek); border-radius: 12px; background: #fff; color: var(--text); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.rz a.rz-dlazdice, .rz a.rz-sluzba, .rz a.rz-kdokoli, .rz a.rz-terapeutka, .rz a.rz-cas { color: var(--text); }
.rz a.rz-dlazdice:hover, .rz a.rz-sluzba:hover, .rz a.rz-kdokoli:hover, .rz a.rz-terapeutka:hover, .rz a.rz-cas:hover { border-color: var(--k); color: var(--text); }
.zvolena { border-color: var(--k) !important; box-shadow: 0 0 0 1px var(--k); background: var(--k-svetla) !important; }
.rz-ordinace { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.rz-dlazdice { display: flex; flex-direction: column; gap: 2px; min-height: 92px; padding: 12px 16px; }
.rz-dl-nazev { display: flex; align-items: center; gap: 8px; font-size: 17px; font-weight: 700; }
.rz-dl-pod { font-size: 14px; color: var(--tlumene); }
.rz-dl-nejblizsi { margin-top: auto; font-size: 13px; color: var(--druhy); }
.rz-tecka { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #a3abb8; flex: none; }
.rz-tecka.raisova { background: var(--raisova); }
.rz-tecka.bulharska { background: var(--bulharska); }

.rz-podskupina { margin: 14px 0 8px; font-size: 15px; font-weight: 700; color: var(--druhy); }
.rz-podskupina:first-of-type { margin-top: 0; }
.rz-sluzby { display: flex; flex-direction: column; gap: 8px; }
.rz-sluzba { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 52px; padding: 10px 16px; }
.rz-sl-nazev { font-weight: 700; display: flex; flex-direction: column; }
.rz-sl-cena { color: var(--druhy); white-space: nowrap; font-size: 15px; }
.rz-sluzba.nejde { color: #8a8f98; background: #fafafa; border-color: var(--linka); }
.rz-sl-jen { font-weight: 400; font-size: 13px; }
.rz-sl-popis { margin: -2px 0 2px; padding: 10px 16px; border-radius: 10px; background: #f6f7f9; font-size: 14px; color: var(--tlumene); }

.rz-kdokoli { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 68px; padding: 10px 16px; background: #fafafa; border-color: var(--linka); }
.rz-fotky { display: flex; padding-left: 10px; }
.rz-fotky .fotka { margin-left: -10px; border: 2px solid #fff; }
.rz-kdokoli-text { display: flex; flex-direction: column; }
.rz-kdokoli-text b { font-size: 17px; }
.rz-kdokoli-text span, .rz-kdokoli-kdy { font-size: 14px; color: var(--tlumene); }
.rz-nebo { margin: 16px 0 10px; font-size: 15px; }
.rz-terapeutky { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); grid-auto-rows: 1fr; gap: 10px; }
.rz-terapeutka { position: relative; display: flex; align-items: center; gap: 14px; padding: 12px 16px; }
.rz-te-text { display: flex; flex-direction: column; min-width: 0; }
.rz-te-titul { font-size: 13px; color: var(--tlumene); }
.rz-te-text b { font-size: 17px; }
.rz-te-kdy { font-size: 14px; color: var(--tlumene); }
.rz-te-kde { position: absolute; top: 10px; right: 12px; display: flex; gap: 4px; }
.rz-te-kde .rz-tecka { width: 7px; height: 7px; }
.fotka { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; object-fit: cover; color: #fff; font-weight: 700; flex: none; background: #e8ebf0; }

.rz-tlacitko { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border: 1px solid var(--k); border-radius: 8px; background: var(--k); color: #fff !important; font: 700 17px/1.2 "PT Sans", sans-serif; text-decoration: none; cursor: pointer; }
.rz-tlacitko:hover { background: #f0555a; border-color: #f0555a; }
.rz-tlacitko.hlavni { box-shadow: 0 8px 20px rgba(254, 99, 103, .28); }
.rz-tlacitko.obrys { background: #fff; color: var(--k-tmava) !important; }
.rz-tlacitko.obrys:hover { background: var(--k-svetla); }
.rz-tlacitko.obrys-sedy { background: #fff; color: var(--text) !important; border-color: var(--ramecek); }
.rz-tlacitko.obrys-sedy:hover { border-color: var(--k); background: #fff; }
.rz-tlacitko.neaktivni { background: #c9c9c9; border-color: #c9c9c9; box-shadow: none; cursor: default; }

/* Krok 2 */
.rz-nejblizsi { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-bottom: 18px; padding: 14px 18px; border: 1px solid var(--k-ramecek); border-radius: 12px; background: #fff7f6; }
.rz-halo { width: 10px; height: 10px; border-radius: 50%; background: var(--k); box-shadow: 0 0 0 5px rgba(254, 99, 103, .18); flex: none; }
.rz-nejblizsi-text { flex: 1 1 260px; display: flex; flex-direction: column; gap: 2px; }
.rz-nejblizsi-kdy b { font-size: 19px; }
.rz-za { display: inline-block; margin-left: 6px; padding: 0 8px; border-radius: 999px; background: #ffeeee; color: var(--k-tmava); font-size: 13px; }
.rz-nejblizsi-kdo { font-size: 15px; color: var(--druhy); }
.rz-stitek { display: inline-block; padding: 1px 9px; border-radius: 999px; background: #a3abb8; color: #fff; font-size: 13px; font-weight: 700; }
.rz-stitek.raisova { background: var(--raisova); }
.rz-stitek.bulharska { background: var(--bulharska); }
.rz-termin { display: grid; grid-template-columns: minmax(0, 440px) minmax(0, 1fr); gap: 24px; align-items: start; margin-bottom: 18px; }
.rz-kalendar { padding: 14px; border: 1px solid var(--linka); border-radius: 16px; }
.rz-kal-hlava { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-size: 17px; }
.rz-sipka { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; color: var(--text) !important; font-size: 22px; text-decoration: none; }
.rz-sipka:hover { background: var(--k-svetla); }
.rz-sipka.neaktivni { color: #c9c9c9 !important; }
.rz-kal-dny, .rz-kal-mrizka { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.rz-kal-dny span { text-align: center; font-size: 13px; color: var(--tlumene); }
.rz-den { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 46px; border-radius: 10px; color: #9aa0a6; border: 1px solid transparent; font-variant-numeric: tabular-nums; text-decoration: none; }
.rz-den.volno { background: var(--k-svetla); color: var(--text) !important; font-weight: 700; }
.rz-den.volno i { width: 5px; height: 5px; margin-top: 2px; border-radius: 50%; background: var(--k); }
.rz-den.volno:hover { border-color: var(--k); }
.rz-den.dnes { border-color: #2b2b2b; }
.rz-den.vybrany { background: var(--k); color: #fff !important; }
.rz-den.vybrany i { background: #fff; }
.rz-kal-legenda { display: flex; gap: 16px; margin: 10px 0 0; font-size: 13px; color: var(--tlumene); }
.rz-kal-legenda i { display: inline-block; margin-right: 6px; vertical-align: middle; }
.rz-kal-legenda i.tecka { width: 6px; height: 6px; border-radius: 50%; background: var(--k); }
.rz-kal-legenda i.ramecek { width: 14px; height: 14px; border: 1px solid #2b2b2b; border-radius: 4px; }
.rz-casy h4 { margin: 4px 0 10px; font-size: 17px; }
.rz-cast-dne { margin: 12px 0 6px; font-size: 14px; color: var(--tlumene); }
.rz-casy-mrizka { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.rz-cas { display: flex; flex-direction: column; justify-content: center; min-height: 64px; padding: 8px 12px; border-radius: 8px; }
.rz-cas b { font-size: 18px; }
.rz-cas span { font-size: 13px; color: var(--tlumene); }
.rz-cas.vybrany { background: var(--k) !important; border-color: var(--k); color: #fff !important; }
.rz-cas.vybrany span { color: #fff; }

/* Krok 3 */
.rz-formular { max-width: 760px; }
.rz-pole-radek { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 16px; }
.rz-pole { display: flex; flex-direction: column; margin-bottom: 14px; }
.rz-pole label { margin-bottom: 4px; font-weight: 700; }
.rz-nepovinne { font-weight: 400; color: var(--tlumene); }
.rz-pole input, .rz-pole textarea { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #ecdede; border-radius: 8px; font: 16px/1.4 "PT Sans", sans-serif; color: var(--text); background: #fff; }
.rz-pole textarea { min-height: 84px; resize: vertical; }
.rz-pole input[aria-invalid=true] { border-color: #c0392b; }
.rz-pomoc { margin-top: 4px; font-size: 14px; color: var(--tlumene); }
.rz-chyba { margin-top: 4px; font-size: 14px; color: #b42318; font-weight: 700; }
.rz-souhrn-panel { display: flex; flex-direction: column; gap: 2px; margin: 6px 0 16px; padding: 14px 16px; border-radius: 12px; background: #f6f7f9; }
.rz-souhrn-panel small { font-size: 14px; color: var(--tlumene); }
.rz-souhlas { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 8px; }
.rz-souhlas input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: var(--k); }
.rz-odeslat { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 16px; }

/* Potvrzení */
.rz-potvrzeni { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.rz-hotovo { display: flex; align-items: center; gap: 14px; }
.rz-hotovo h1 { margin: 0; font-size: 32px; color: var(--nadpis); }
.rz-hotovo-kruh { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--k-svetla); color: var(--k-tmava); flex: none; }
.rz-hotovo-kruh svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.rz-velky { font-size: 17px; }
.rz-detail { display: flex; flex-wrap: wrap; gap: 18px 28px; margin: 18px 0; padding: 18px 20px; border: 1px solid var(--linka); border-radius: 16px; background: #fafafa; }
.rz-detail > div { display: flex; flex-direction: column; gap: 2px; min-width: 180px; flex: 1 1 180px; }
.rz-popisek { font-size: 13px; color: var(--tlumene); }
.rz-kdy { font-size: 22px; line-height: 1.25; }
.rz-detail .rz-stitek { align-self: flex-start; }
.rz-te { display: flex; align-items: center; gap: 8px; }
.rz-akce { display: flex; flex-wrap: wrap; gap: 10px; }
.rz-pod-linka { margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--linka); }
.rz-panel { margin-bottom: 14px; padding: 16px 18px; border: 1px solid var(--linka); border-radius: 14px; background: #fff; }
.rz-panel.ruzovy { background: var(--k-svetla); border-color: var(--k-ramecek); }
.rz-panel h2 { margin: 0 0 8px; font-size: 17px; }
.rz-panel ol, .rz-panel ul { margin: 0; padding-left: 20px; }
.rz-panel li { margin-bottom: 4px; }

/* Správa rezervace (návrh 2.12, 2.13) */
.rz-h1 { margin: 4px 0 18px; font-size: 34px; font-weight: 700; color: var(--nadpis); line-height: 1.2; }
.rz-sprava { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.rz-sprava-hlavni { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.rz-uspech { padding: 16px 20px; border: 1px solid #cfe8d6; border-radius: 14px; background: #f0f8f2; color: #1a5c2c; }
.rz-uspech h2 { margin: 0 0 4px; font-size: 20px; }
.rz-uspech p { margin: 0 0 12px; }
.rz-radek-stav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; }
.rz-stav { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; }
.rz-stav.platna { background: #e7f5ec; color: #1a7f37; }
.rz-stav.zruseno { background: #eceef2; color: #454545; }
.rz-sprava-kdy { margin: 10px 0 6px; font-size: 26px; font-weight: 700; color: var(--nadpis); line-height: 1.25; }
.rz-sprava-kdy.zrusene { color: var(--tlumene); text-decoration: line-through; }
.rz-sprava-kde, .rz-sprava-co { margin: 4px 0; color: var(--druhy); }
.rz-zeleny { margin: 16px 0; padding: 12px 16px; border: 1px solid #cfe8d6; border-radius: 12px; background: #f0f8f2; color: #1a5c2c; }
.rz-zluty { margin: 16px 0; padding: 14px 16px; border: 1px solid #f3dfa6; border-radius: 12px; background: #fff8e6; color: #4a3500; }
.rz-zluty b { color: #6b4a00; font-size: 17px; }
.rz-zluty p { margin: 6px 0 0; }
.rz-panel-sedy { margin-top: 16px; padding: 16px 18px; border: 1px solid var(--linka); border-radius: 14px; background: #fafafa; }
.rz-panel-sedy h2 { margin: 0 0 6px; font-size: 20px; }
.rz-pole select { min-height: 48px; padding: 8px 12px; border: 1px solid #ecdede; border-radius: 8px; font: 16px "PT Sans", sans-serif; background: #fff; max-width: 360px; }
.rz-textove { align-self: center; font-weight: 700; }
.rz-tlacitko.neaktivni-svetle { background: #f5f5f5; border-color: #e8ebf0; color: var(--tlumene) !important; cursor: default; }
.rz-akce { align-items: center; }
.rz-presun h2 { margin: 0 0 4px; font-size: 22px; }
.rz-filtry { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 14px 0; }
.rz-filtry nav { display: flex; flex-wrap: wrap; gap: 6px; }
.rz-filtr { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--ramecek); border-radius: 999px; color: var(--text) !important; text-decoration: none; }
.rz-filtr.zvoleny { background: #2b2b2b; border-color: #2b2b2b; color: #fff !important; }
.rz-presun-den { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 10px; padding: 12px 0; border-top: 1px solid var(--linka); }
.rz-presun-casy { display: flex; flex-wrap: wrap; gap: 8px; }
.rz-presun-cas { position: relative; display: flex; flex-direction: column; justify-content: center; width: 172px; min-height: 72px; padding: 8px 12px; border: 1px solid var(--ramecek); border-radius: 10px; cursor: pointer; }
.rz-presun-cas.raisova { border-color: #b8dde9; }
.rz-presun-cas.bulharska { border-color: #f5c8c0; }
.rz-presun-cas input { position: absolute; opacity: 0; pointer-events: none; }
.rz-presun-cas b { font-size: 17px; }
.rz-presun-cas span { font-size: 13px; color: var(--tlumene); }
.rz-presun-cas:has(input:checked) { background: var(--k); border-color: var(--k); color: #fff; }
.rz-presun-cas:has(input:checked) span { color: #fff; }
.rz-presun-cas:has(input:focus-visible) { outline: 3px solid rgba(254, 99, 103, .5); outline-offset: 2px; }

@media (max-width: 760px) {
  .rz-obal { padding: 12px 10px 90px; }
  .rz-karta { padding: 18px 14px; border-radius: 12px; }
  .rz-h2 { font-size: 21px; }
  .rz-krok-obsah { padding-left: 0; }
  .rz-ordinace { grid-template-columns: minmax(0, 1fr); }
  .rz-dlazdice { min-height: 0; }
  .rz-terapeutky { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  .rz-terapeutka .fotka { width: 48px !important; height: 48px !important; }
  .rz-kdokoli { grid-template-columns: auto minmax(0, 1fr); }
  .rz-kdokoli-kdy { grid-column: 2; }
  .rz-termin { grid-template-columns: minmax(0, 1fr); }
  .rz-den { height: 38px; }
  .rz-casy-mrizka { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rz-sluzba { flex-direction: column; align-items: flex-start; gap: 2px; }
  /* Hlavní tlačítko kroku přilepené dole přes celou šířku */
  .rz-krok-obsah > .rz-tlacitko, .rz-odeslat { position: sticky; bottom: 0; z-index: 2; }
  .rz-krok-obsah > .rz-tlacitko { width: 100%; box-shadow: 0 -8px 16px rgba(255, 255, 255, .9); }
  .rz-odeslat { margin: 16px -14px 0; padding: 10px 14px; background: #fff; border-top: 1px solid var(--linka); }
  .rz-odeslat .rz-tlacitko { width: 100%; }
  .rz-potvrzeni { grid-template-columns: minmax(0, 1fr); }
  .rz-hotovo h1 { font-size: 24px; }
  .rz-akce .rz-tlacitko { width: 100%; }
  .rz-h1 { font-size: 26px; }
  .rz-sprava { grid-template-columns: minmax(0, 1fr); }
  .rz-presun-den { grid-template-columns: minmax(0, 1fr); }
  .rz-presun-cas { width: calc(50% - 4px); }
}
