/* ═══════════════════════════════════════════════════════════════════════
   AI ASISTENT DIVINE DELIVERY (ddChat) – okno chatu
   Tokeny --rv-* z revampu (index.html, :root REVAMP), písmo Garet se dědí.
   Počítač: plovoucí okno tvaru telefonu vpravo nad dokem (z-index 10125).
   Telefon, tablet, dotyk: celoobrazovková aplikace nad spodní lištou (10220).
   Okno zůstává světlé i v noci (body.sky-night) – jako košík a lišta.
   ═══════════════════════════════════════════════════════════════════════ */

.ddchat{
  --ddchat-cervena:var(--rv-cervena,#D92818);
  --ddchat-cervena-tmava:var(--rv-cervena-tmava,#B21F12);
  --ddchat-cervena-svetla:var(--rv-cervena-svetla,#FDECEA);
  --ddchat-text:var(--rv-text,#1C1F26);
  --ddchat-text-2:var(--rv-text-2,#5A6070);
  --ddchat-plocha:var(--rv-plocha,#F4F6F9);
  --ddchat-karta:var(--rv-karta,#FFFFFF);
  --ddchat-linka:var(--rv-linka,rgba(28,31,38,.10));
  --ddchat-zelena:var(--rv-zelena,#12855A);
  --ddchat-zelena-svetla:var(--rv-zelena-svetla,#E7F6EF);
  --ddchat-ramecek:#15171C;
  --ddchat-dole:calc(var(--ddb-dock-b,18px) + var(--ddb-dock-h,64px) + 12px + var(--ddchat-appnav,0px));
  position:fixed;
  inset:0;
  z-index:10125;
  pointer-events:none;
  font-family:var(--ff,'Garet','Segoe UI',system-ui,sans-serif);
  color:var(--ddchat-text);
  -webkit-text-size-adjust:100%;
}
.ddchat[hidden]{display:none!important}
.ddchat *,.ddchat *::before,.ddchat *::after{box-sizing:border-box}
.ddchat button,.ddchat textarea{font-family:inherit;letter-spacing:normal}

.ddchat-scrim{
  position:absolute;
  inset:0;
  background:rgba(15,17,24,.22);
  opacity:0;
  pointer-events:auto;
  transition:opacity .22s ease;
}
.ddchat.je-otevreno .ddchat-scrim{opacity:1}

/* ── okno: počítač = telefon vpravo dole ─────────────────────────────── */
.ddchat-okno{
  position:absolute;
  right:max(24px,env(safe-area-inset-right,0px));
  bottom:var(--ddchat-dole);
  width:390px;
  max-width:calc(100vw - 32px);
  height:min(720px,calc(100vh - var(--ddchat-dole) - 24px));
  height:min(720px,calc(100dvh - var(--ddchat-dole) - 24px));
  display:flex;
  flex-direction:column;
  /* Okno samo nikdy neroluje, ani programově (fokus, scrollIntoView):
     posouvá se jen seznam zpráv. hidden je záloha pro starší prohlížeče. */
  overflow:hidden;
  overflow:clip;
  background:var(--ddchat-karta);
  border:7px solid var(--ddchat-ramecek);
  border-radius:32px;
  box-shadow:0 30px 80px rgba(20,24,38,.30),0 8px 24px rgba(20,24,38,.16);
  pointer-events:auto;
  opacity:0;
  transform:translateY(18px) scale(.98);
  transform-origin:100% 100%;
  transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .2s ease;
}
.ddchat.je-otevreno .ddchat-okno{opacity:1;transform:none}
/* Během zavírací animace už okno ani závoj kliky nechytají (košík webu pod nimi). */
.ddchat:not(.je-otevreno) .ddchat-scrim,
.ddchat:not(.je-otevreno) .ddchat-okno{pointer-events:none}
/* Reproduktor nahoře – drobnost, podle které okno čte jako telefon. */
.ddchat-okno::before{
  content:'';
  position:absolute;
  top:6px;
  left:50%;
  width:64px;
  height:5px;
  margin-left:-32px;
  border-radius:99px;
  background:rgba(21,23,28,.85);
  z-index:3;
  pointer-events:none;
}

body.sky-night .ddchat-scrim{background:rgba(4,5,10,.45)}
body.sky-night .ddchat-okno{
  box-shadow:0 0 0 1px rgba(255,255,255,.16),0 30px 90px rgba(0,0,0,.62),0 8px 24px rgba(0,0,0,.4);
}

/* ── hlavička ────────────────────────────────────────────────────────── */
.ddchat-hlava{
  display:flex;
  align-items:center;
  gap:10px;
  padding:18px 10px 12px 14px;
  background:var(--ddchat-karta);
  border-bottom:1px solid var(--ddchat-linka);
  flex:none;
}
.ddchat-logo{
  width:40px;
  height:40px;
  flex:none;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:var(--ddchat-cervena-svetla);
  color:var(--ddchat-cervena);
}
.ddchat-logo .ddchat-ic{width:23px;height:23px}
.ddchat-titul{flex:1;min-width:0}
.ddchat-nadpis{
  margin:0;
  font-size:16px;
  font-weight:800;
  line-height:1.2;
  color:var(--ddchat-text);
}
.ddchat-podtitul{
  margin:2px 0 0;
  font-size:12px;
  font-weight:500;
  line-height:1.3;
  color:var(--ddchat-text-2);
}
.ddchat-ikbtn{
  width:40px;
  height:40px;
  flex:none;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:12px;
  background:transparent;
  color:var(--ddchat-text-2);
  transition:background .15s ease,color .15s ease;
}
.ddchat-ikbtn:hover{background:var(--ddchat-plocha);color:var(--ddchat-text)}
.ddchat-ikbtn[aria-expanded="true"]{background:var(--ddchat-cervena-svetla);color:var(--ddchat-cervena-tmava)}
.ddchat-ikbtn .ddchat-ic{width:22px;height:22px}

.ddchat-ic{
  width:1em;
  height:1em;
  display:inline-block;
  flex:none;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  vertical-align:-.125em;
}

.ddchat button:focus-visible,
.ddchat textarea:focus-visible,
.ddchat-zpravy:focus-visible{
  outline:2px solid var(--ddchat-cervena);
  outline-offset:2px;
}

/* ── hodnocení ───────────────────────────────────────────────────────── */
.ddchat-hodnoceni{
  flex:none;
  padding:12px 14px 14px;
  background:#FAFBFC;
  border-bottom:1px solid var(--ddchat-linka);
}
.ddchat-hodnoceni[hidden]{display:none}
.ddchat-hod-otazka{font-size:14px;font-weight:700;margin:0 0 8px;color:var(--ddchat-text)}
.ddchat-palce{display:flex;gap:8px}
.ddchat-palec{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:8px 10px;
  border:1px solid var(--ddchat-linka);
  border-radius:12px;
  background:#fff;
  color:var(--ddchat-text);
  font-size:14px;
  font-weight:700;
}
.ddchat-palec .ddchat-ic{width:20px;height:20px}
.ddchat-palec:hover{border-color:rgba(217,40,24,.35)}
.ddchat-palec[aria-pressed="true"]{
  border-color:var(--ddchat-cervena);
  background:var(--ddchat-cervena-svetla);
  color:var(--ddchat-cervena-tmava);
}
.ddchat-hod-text{
  display:block;
  width:100%;
  margin:8px 0 0;
  padding:9px 11px;
  border:1px solid var(--ddchat-linka);
  border-radius:12px;
  background:#fff;
  color:var(--ddchat-text);
  font-size:14px;
  line-height:1.4;
  resize:vertical;
  min-height:56px;
  max-height:140px;
}
.ddchat-hod-akce{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ddchat-tl{
  min-height:40px;
  padding:8px 14px;
  border:1px solid var(--ddchat-linka);
  border-radius:12px;
  background:#fff;
  color:var(--ddchat-text);
  font-size:13px;
  font-weight:700;
}
.ddchat-tl:hover{background:var(--ddchat-plocha)}
.ddchat-tl-hlavni{background:var(--ddchat-cervena);border-color:var(--ddchat-cervena);color:#fff}
.ddchat-tl-hlavni:hover{background:var(--ddchat-cervena-tmava)}
.ddchat-tl:disabled{opacity:.5}

/* ── zprávy ──────────────────────────────────────────────────────────── */
.ddchat-zpravy{
  /* position:relative – skryté popisky bublin (.ddchat-sr, absolutní) patří
     sem. Jinak by se počítaly do okna, to by přetékalo a samo se posunulo. */
  position:relative;
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px 12px 10px;
  background:var(--ddchat-karta);
}
.ddchat-bublina{
  max-width:86%;
  padding:10px 13px;
  border-radius:18px;
  font-size:14.5px;
  font-weight:500;
  line-height:1.45;
  white-space:pre-line;
  overflow-wrap:anywhere;
}
.ddchat-bot{
  align-self:flex-start;
  background:var(--ddchat-plocha);
  color:var(--ddchat-text);
  border-bottom-left-radius:6px;
}
.ddchat-ja{
  align-self:flex-end;
  background:var(--ddchat-cervena);
  color:#fff;
  border-bottom-right-radius:6px;
}
.ddchat-sys{
  align-self:center;
  max-width:94%;
  display:flex;
  align-items:flex-start;
  gap:6px;
  padding:6px 10px;
  border-radius:10px;
  background:var(--ddchat-zelena-svetla);
  color:#0B5E3F;
  font-size:12.5px;
  font-weight:600;
  line-height:1.4;
}
.ddchat-sys .ddchat-ic{width:15px;height:15px;margin-top:1px;stroke-width:2.2}
.ddchat-chyba{
  align-self:flex-start;
  display:flex;
  align-items:flex-start;
  gap:8px;
  background:#FDECEA;
  color:#8F1A0F;
  border:1px solid rgba(217,40,24,.25);
  border-bottom-left-radius:6px;
  white-space:normal;
}
.ddchat-chyba .ddchat-ic{width:18px;height:18px;margin-top:1px}

/* indikátor psaní */
.ddchat-pise{display:flex;align-items:center;gap:5px;padding:13px 15px}
.ddchat-tecka{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#9AA0AC;
  animation:ddchatTecka 1.2s infinite ease-in-out;
}
.ddchat-tecka:nth-child(3){animation-delay:.15s}
.ddchat-tecka:nth-child(4){animation-delay:.3s}
@keyframes ddchatTecka{
  0%,60%,100%{transform:translateY(0);opacity:.45}
  30%{transform:translateY(-4px);opacity:1}
}

/* ── rychlé volby ────────────────────────────────────────────────────── */
.ddchat-chips{
  flex:0 0 auto;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  max-height:112px;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:6px 12px 4px;
  background:var(--ddchat-karta);
}
.ddchat-chips:empty{display:none}
.ddchat-chip{
  min-height:36px;
  padding:7px 13px;
  border:1px solid rgba(217,40,24,.38);
  border-radius:999px;
  background:#fff;
  color:var(--ddchat-cervena-tmava);
  font-size:13px;
  font-weight:700;
  line-height:1.2;
  text-align:left;
}
.ddchat-chip:hover{background:var(--ddchat-cervena-svetla)}
.ddchat-chip-akce{background:var(--ddchat-text);border-color:var(--ddchat-text);color:#fff}
.ddchat-chip-akce:hover{background:#000}

/* ── lišta košíku ────────────────────────────────────────────────────── */
.ddchat-kosik{
  flex:none;
  display:flex;
  align-items:center;
  gap:10px;
  margin:6px 12px 0;
  padding:7px 7px 7px 12px;
  border-radius:14px;
  background:var(--ddchat-text);
  color:#fff;
}
.ddchat-kosik[hidden]{display:none}
.ddchat-kosik .ddchat-ic{width:20px;height:20px}
.ddchat-kosik-txt{flex:1;min-width:0;font-size:13px;font-weight:700}
.ddchat-kosik-tl{
  min-height:36px;
  padding:7px 13px;
  border:0;
  border-radius:10px;
  background:var(--ddchat-cervena);
  color:#fff;
  font-size:13px;
  font-weight:800;
}
.ddchat-kosik-tl:hover{background:var(--ddchat-cervena-tmava)}

/* ── vstup ───────────────────────────────────────────────────────────── */
.ddchat-vstup{flex:none;margin:0;padding:8px 12px 2px;background:var(--ddchat-karta)}
.ddchat-pole{
  display:flex;
  align-items:flex-end;
  gap:6px;
  padding:4px 4px 4px 12px;
  border:1px solid var(--ddchat-linka);
  border-radius:18px;
  background:var(--ddchat-plocha);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.ddchat-pole:focus-within{border-color:rgba(217,40,24,.55);box-shadow:0 0 0 3px rgba(217,40,24,.12)}
.ddchat-pole textarea{
  flex:1;
  min-width:0;
  height:40px;
  max-height:132px;
  margin:0;
  padding:9px 0;
  border:0;
  outline:none;
  background:transparent;
  color:var(--ddchat-text);
  font-size:15px;
  font-weight:500;
  line-height:1.45;
  resize:none;
  box-shadow:none;
}
.ddchat-pole textarea:focus-visible{outline:none}
.ddchat-pole textarea::placeholder{color:#737888;opacity:1}
.ddchat-pole textarea:disabled{color:#737888}
.ddchat-odeslat{
  width:40px;
  height:40px;
  flex:none;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:14px;
  background:var(--ddchat-cervena);
  color:#fff;
  transition:background .15s ease;
}
.ddchat-odeslat:hover{background:var(--ddchat-cervena-tmava)}
.ddchat-odeslat:disabled{background:#C9CDD5}
.ddchat-odeslat .ddchat-ic{width:20px;height:20px}
/* Diktování (jen když prohlížeč umí SpeechRecognition): stejný rozměr
   jako odeslat, v klidu tlumené, při nahrávání pulzující červená. */
.ddchat-mikrofon{
  width:40px;
  height:40px;
  flex:none;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:14px;
  background:transparent;
  color:var(--ddchat-text-2);
  transition:background .15s ease,color .15s ease;
}
.ddchat-mikrofon:hover{background:var(--ddchat-cervena-svetla);color:var(--ddchat-cervena-tmava)}
.ddchat-mikrofon:disabled{color:#C9CDD5;background:transparent}
.ddchat-mikrofon .ddchat-ic{width:20px;height:20px}
.ddchat-mikrofon.je-nahravani{
  background:var(--ddchat-cervena);
  color:#fff;
  animation:ddchatMikrofon 1.3s ease-in-out infinite;
}
@keyframes ddchatMikrofon{
  0%,100%{box-shadow:0 0 0 0 rgba(217,40,24,.45)}
  50%{box-shadow:0 0 0 7px rgba(217,40,24,0)}
}
.ddchat-diktat{
  flex:none;
  margin:6px 12px 0;
  padding:6px 10px;
  border-radius:10px;
  background:var(--ddchat-plocha);
  color:var(--ddchat-text-2);
  font-size:12.5px;
  font-weight:600;
  line-height:1.4;
}
.ddchat-diktat[hidden]{display:none}
.ddchat-diktat.je-chyba{background:var(--ddchat-cervena-svetla);color:var(--ddchat-cervena-tmava)}
.ddchat-pata{
  flex:none;
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:5px 14px 11px;
  background:var(--ddchat-karta);
  font-size:11px;
  line-height:1.35;
  color:#666B79;
}
.ddchat-pocet{flex:none;font-variant-numeric:tabular-nums}

.ddchat-sr{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* Firemní aplikace (#ddAppNav): ddchat.js měří výšku její spodní navigace
   do --ddchat-appnav, okno pak končí nad ní (desktop i celá obrazovka). */

/* ── telefon, tablet, dotyk: celoobrazovková aplikace ────────────────── */
@media (max-width:1024px),(pointer:coarse){
  .ddchat{z-index:10220}
  .ddchat-scrim{display:none}
  .ddchat-okno{
    top:0;
    left:0;
    right:0;
    bottom:auto;
    width:100%;
    max-width:none;
    height:calc(100vh - var(--ddchat-appnav,0px));
    height:calc(var(--dd-app-height,100dvh) - var(--ddchat-appnav,0px));
    border:0;
    border-radius:0;
    box-shadow:none;
    padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) 0 env(safe-area-inset-left,0px);
    transform:translateY(24px);
    transform-origin:50% 100%;
  }
  .ddchat-okno::before{display:none}
  .ddchat-hlava{padding:12px 8px 10px 14px}
  /* Nejvýš dva řádky rychlých voleb, zbytek se posouvá uvnitř řady –
     jinak by na malém displeji zabraly polovinu okna. */
  .ddchat-chips{max-height:88px}
  .ddchat-pata{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  .ddchat-bublina{max-width:88%;font-size:15px}
  /* iOS jinak při fokusu pole přibližuje stránku */
  .ddchat-pole textarea,.ddchat-hod-text{font-size:16px!important}
  /* Prst: větší cíl pro mikrofon, pole zůstává široké. */
  .ddchat-mikrofon{width:44px;height:44px}
  body.sky-night .ddchat-okno{box-shadow:none}
}
@media (max-width:1024px) and (min-width:700px) and (pointer:coarse){
  .ddchat-zpravy,.ddchat-chips,.ddchat-kosik,.ddchat-vstup,.ddchat-pata,.ddchat-hodnoceni,.ddchat-diktat{
    width:100%;
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
  }
  .ddchat-kosik,.ddchat-diktat{width:calc(100% - 24px);max-width:736px}
}

@media (prefers-reduced-motion:reduce){
  .ddchat-okno,.ddchat-scrim,.ddchat-pole,.ddchat-ikbtn,.ddchat-odeslat{transition:none!important}
  .ddchat-okno{transform:none!important}
  .ddchat-tecka{animation:none!important;opacity:.7}
  .ddchat-mikrofon{transition:none!important}
  /* Bez pulzu: nahrávání ukazuje plná červená a silnější obrys. */
  .ddchat-mikrofon.je-nahravani{animation:none!important;box-shadow:0 0 0 3px rgba(217,40,24,.35)}
}

/* ── dokončení objednávky v chatu: karty, dokumenty, mapa ─────────────── */
.ddchat-karta{
  align-self:stretch;
  margin:4px 0 8px;
  padding:14px 14px 12px;
  border:1px solid var(--ddchat-linka);
  border-radius:16px;
  background:#fff;
  box-shadow:0 4px 14px rgba(20,24,38,.08);
  font-size:13.5px;
  line-height:1.4;
  color:var(--ddchat-text);
}
.ddchat-karta.je-hotovo{box-shadow:none;background:var(--ddchat-plocha)}
.ddchat-k-nadpis{margin:0 0 8px;font-size:15px;font-weight:800}
.ddchat-k-polozky{border-bottom:1px dashed var(--ddchat-linka);padding-bottom:6px;margin-bottom:6px}
.ddchat-k-radek{display:flex;justify-content:space-between;gap:10px;padding:2px 0}
.ddchat-k-stitek{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.ddchat-k-hodnota{flex:0 0 auto;max-width:62%;text-align:right;font-weight:700;overflow-wrap:anywhere}
.ddchat-k-info .ddchat-k-hodnota{font-weight:600}
.ddchat-k-poplatek{color:var(--ddchat-text-2)}
.ddchat-k-celkem{font-size:15px;font-weight:800;padding:6px 0 8px}
.ddchat-k-celkem .ddchat-k-hodnota{color:var(--ddchat-cervena-tmava)}
.ddchat-k-info{padding:6px 0;border-top:1px solid var(--ddchat-linka);border-bottom:1px solid var(--ddchat-linka)}
.ddchat-k-info .ddchat-k-stitek{color:var(--ddchat-text-2)}
.ddchat-k-pravni{font-size:12px;color:var(--ddchat-text-2);margin-top:8px}
.ddchat-k-pravni p{margin:0 0 6px}
.ddchat-k-souhlas{display:flex;gap:10px;align-items:flex-start;margin:8px 0;font-size:13px;font-weight:600;cursor:pointer}
.ddchat-k-cb{flex:0 0 auto;width:20px;height:20px;margin:1px 0 0;accent-color:var(--ddchat-cervena)}
.ddchat-k-akce{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.ddchat-k-akce .ddchat-tl{flex:1 1 auto}
.ddchat-k-pozn{margin:8px 0 0;font-size:12px;color:var(--ddchat-text-2)}
.ddchat-k-stav{margin:6px 0 0;font-size:13px;font-weight:700;min-height:0}
.ddchat-k-stav:empty{display:none}
.ddchat-k-stav.je-ok{color:var(--ddchat-zelena)}
.ddchat-k-stav.je-chyba{color:var(--ddchat-cervena-tmava)}
.ddchat-odkaz{
  display:inline;
  padding:0;
  border:0;
  background:none;
  color:var(--ddchat-cervena-tmava);
  font:inherit;
  font-weight:700;
  text-decoration:underline;
  cursor:pointer;
}
.ddchat-odkaz:focus-visible,.ddchat-k-cb:focus-visible{outline:2px solid var(--ddchat-cervena);outline-offset:2px}

.ddchat-dokument{
  position:absolute;
  inset:0;
  z-index:5;
  display:flex;
  flex-direction:column;
  background:var(--ddchat-karta);
}
.ddchat-dok-hlava{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px 14px 10px;
  padding-top:max(14px,env(safe-area-inset-top,0px));
  border-bottom:1px solid var(--ddchat-linka);
}
.ddchat-dok-nadpis{margin:0;font-size:16px;font-weight:800}
.ddchat-dok-nadpis:focus{outline:none}
.ddchat-dok-telo{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));
  font-size:13.5px;
  line-height:1.5;
}
.ddchat-dok-telo h4{margin:14px 0 6px;font-size:14px}
.ddchat-dok-telo p{margin:0 0 8px}
.ddchat-dok-telo ul{margin:0 0 8px;padding-left:18px}
.ddchat-dok-telo li{margin:0 0 4px}

.ddchat-mapa{position:relative;height:240px;margin:8px 0;border-radius:12px;overflow:hidden;border:1px solid var(--ddchat-linka)}
.ddchat-mapa-plocha{position:absolute;inset:0}
.ddchat-mapa-plocha.leaflet-container{width:100%;height:100%}
.ddchat-mapa-spendlik{
  position:absolute;
  left:50%;
  top:50%;
  z-index:500;
  width:34px;
  height:34px;
  margin:-34px 0 0 -17px;
  color:var(--ddchat-cervena);
  pointer-events:none;
}
.ddchat-mapa-spendlik .ddchat-ic{width:34px;height:34px;fill:#fff}
@media (max-width:1024px),(pointer:coarse){
  .ddchat-mapa{height:300px}
  .ddchat-k-cb{width:24px;height:24px}
}
