/* Dental Brothers Booking – frontend.
 * Farby: prioritne brand farby Dental Brothers (--dbb-primary #2841A2,
 * --dbb-cyan #00C9CF, --dbb-pink #E4768D, text #343434). Rozdelenie rolí
 * nižšie (napr. cyan pre výber/interakciu, primary pre hlavné CTA a
 * zvýraznené bloky, pink pre odznak "Najčastejšia voľba") je zvolené podľa
 * UX kontrastu a čitateľnosti – dá sa kedykoľvek preladiť na jednom mieste
 * (premenné). Sémantické farby (červená = chyba, zelená/oranžová/červená
 * bodka = obsadenosť pobočky) zostávajú mimo brand paletu zámerne, aby si
 * zachovali všeobecne zrozumiteľný význam.
 *
 * Layout: CELÝ formulár (hlavička aj telo) je JEDEN biely "box" so
 * zaoblenými rohmi a jemným tieňom – nie cez celú šírku obrazovky. Okolo
 * neho presvitá farba stránky/motívu.
 */
#dbb-booking-form-root {
  --dbb-primary: #2841A2;
  --dbb-primary-dark: #1E317A;
  --dbb-cyan: #00C9CF;
  --dbb-cyan-dark: #00A1A6;
  --dbb-cyan-light: #E3FAFB;
  --dbb-cyan-border: #9FE9EC;
  --dbb-pink: #E4768D;
  --dbb-pink-dark: #C26478;
  --dbb-status-green: #16a34a;
  --dbb-status-amber: #d97706;
  --dbb-status-red: #dc2626;
  --dbb-bg: #eef1f6;
  --dbb-border: #e5e9f0;
  --dbb-text: #343434;
  --dbb-text-muted: #74777d;
  --dbb-content-max: 1220px;
  font-family: 'Argentum Sans', sans-serif;
  color: var(--dbb-text);
  box-sizing: border-box;
  max-width: var(--dbb-content-max);
  margin: 0 auto;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 8px 30px rgba(20, 30, 60, .08);
  /* Zámerne BEZ overflow:hidden – vnútri je aj rozbaľovací zoznam krajín pri
     telefóne (position:absolute), ktorý by sa inak pri okraji karty
     odrezal. Zaoblené rohy fungujú aj bez toho, keďže vnútorný obsah má
     všade dostatočný vnútorný odstup (padding) od okraja. */
}
#dbb-booking-form-root *, #dbb-booking-form-root *::before, #dbb-booking-form-root *::after { box-sizing: border-box; }

/* ---- Hlavička: LEN pásik "Krok X zo 4 — Label" + progress bar (titulok
   "Objednaj sa online" a odznak "Zabezpečená rezervácia" boli odstránené na
   želanie – viď renderHeader() v JS, ktorá pre krok 5 vôbec header nevráti). ---- */
.dbb-app-header { padding-top: 26px; }
.dbb-header-inner, .dbb-body-inner { padding: 0 30px; }

.dbb-step-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.dbb-step-current-label { font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--dbb-primary); }
.dbb-progress-bar { display: flex; gap: 6px; margin: 8px 0 4px; }
.dbb-progress-seg { flex: 1; height: 5px; border-radius: 3px; background: #e2e6ee; }
.dbb-progress-seg-done { background: var(--dbb-primary); }
.dbb-progress-seg-current { background: var(--dbb-cyan); }

.dbb-app-body { padding: 22px 0 30px; }

/* ---- Dvojstĺpcový layout: hlavná časť + bočný panel – oba na tom istom
   bielom podklade (žiadne vnorené "karty v karte"). ---- */
.dbb-layout { display: grid; grid-template-columns: 1fr 300px; gap: 22px; align-items: start; }
@media (max-width: 820px) {
  .dbb-layout { grid-template-columns: 1fr; }
  .dbb-sidebar { position: static; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--dbb-border); }
}
.dbb-main-card { min-width: 0; }
.dbb-main-card h3 { margin-top: 0; margin-bottom: 6px; }
.dbb-step-context { font-size: 13.5px; color: var(--dbb-text-muted); margin: 0 0 20px; }
.dbb-section-label { font-size: 11.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--dbb-text-muted); margin: 22px 0 10px; }
.dbb-section-label:first-of-type { margin-top: 4px; }

/* ---- Bočný panel "Vaša rezervácia" ----
   Dve samostatné "krabičky": (1) podfarbená karta s výberom + cenou,
   (2) pod ňou biely orámovaný box s dôveryhodnostným zoznamom + kontaktom. */
.dbb-sidebar { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 16px; }
.dbb-sidebar-card { background: var(--dbb-bg); border-radius: 14px; padding: 18px 20px; }
.dbb-sidebar-title { font-size: 11px; font-weight: 800; letter-spacing: .06em; color: var(--dbb-text-muted); text-transform: uppercase; margin-bottom: 10px; }
.dbb-sidebar-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; padding: 9px 0; border-bottom: 1px solid var(--dbb-border); }
.dbb-sidebar-row:last-of-type { border-bottom: none; }
.dbb-sidebar-row-label { font-size: 10.5px; color: var(--dbb-text-muted); text-transform: uppercase; letter-spacing: .03em; }
.dbb-sidebar-row-value { font-size: 13.5px; font-weight: 700; color: var(--dbb-text); margin-top: 2px; }
.dbb-sidebar-row-empty { color: #b6bcc9; font-weight: 600; }
.dbb-sidebar-change { font-size: 12px; font-weight: 700; color: var(--dbb-cyan-dark); cursor: pointer; background: none; border: none; padding: 0; flex-shrink: 0; }
.dbb-sidebar-change:hover { text-decoration: underline; }
.dbb-sidebar-price { display: flex; justify-content: space-between; align-items: baseline; margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--dbb-border); font-size: 13px; color: var(--dbb-text-muted); }
.dbb-sidebar-price-amount { font-size: 21px; font-weight: 800; color: var(--dbb-primary); }
.dbb-sidebar-price-insurance { font-size: 12px; color: var(--dbb-cyan-dark); font-weight: 700; text-align: right; margin-top: 2px; }
.dbb-sidebar-price-hint { font-size: 11.5px; color: var(--dbb-text-muted); text-align: right; margin-top: 2px; }
.dbb-sidebar-next-visit-note { font-size: 11px; color: var(--dbb-text-muted); text-align: right; margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--dbb-border); }
.dbb-sidebar-trust { background: #fff; border: 1.5px solid var(--dbb-border); border-radius: 14px; padding: 16px 20px; }
.dbb-sidebar-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.dbb-sidebar-checklist li { position: relative; padding-left: 20px; font-size: 12.5px; color: var(--dbb-text-muted); line-height: 1.4; }
.dbb-sidebar-checklist li::before { content: '✓'; position: absolute; left: 0; top: 0; color: var(--dbb-cyan-dark); font-weight: 800; font-size: 12px; }
.dbb-sidebar-help { font-size: 12.5px; color: var(--dbb-text-muted); margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--dbb-border); line-height: 1.5; }
.dbb-sidebar-help a { color: var(--dbb-primary); font-weight: 700; text-decoration: none; }
.dbb-sidebar-help a:hover { text-decoration: underline; }

/* Samostatný box POD sidebarom s logami zazmluvnených poisťovní – rovnaký
   "biely orámovaný box" štýl ako .dbb-sidebar-trust vyššie. */
.dbb-sidebar-insurance { background: #fff; border: 1.5px solid var(--dbb-border); border-radius: 14px; padding: 16px 20px; }
.dbb-sidebar-insurance-label { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--dbb-text-muted); margin-bottom: 12px; }
.dbb-sidebar-insurance-logos { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.dbb-sidebar-insurance-logos img { height: 28px; max-width: 110px; object-fit: contain; }
.dbb-sidebar-insurance-note { font-size: 12px; color: var(--dbb-text-muted); line-height: 1.4; margin: 14px 0 10px; padding-top: 14px; border-top: 1px solid var(--dbb-border); }
.dbb-sidebar-insurance-logos-secondary { margin-top: 0; }

.dbb-back { background: none; border: none; color: var(--dbb-primary); cursor: pointer; font-weight: 700; padding: 0; font-size: 13px; }
.dbb-back-center { display: block; margin: 14px auto 0; text-align: center; }

/* ---- Krok "Pobočka": karty pobočiek ---- */
.dbb-branch-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 4px; }
@media (max-width: 700px) {
  .dbb-branch-grid { grid-template-columns: 1fr; }
}
@media (min-width: 701px) and (max-width: 960px) {
  .dbb-branch-grid { grid-template-columns: repeat(2, 1fr); }
}
.dbb-branch-card { border: 2px solid var(--dbb-border); border-radius: 12px; overflow: hidden; cursor: pointer; background: #fff; transition: border-color .12s ease; }
.dbb-branch-card:hover { border-color: #c7cfdd; }
.dbb-branch-card.dbb-selected { border-color: var(--dbb-cyan); }
.dbb-branch-photo {
  height: 96px; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 8px;
  background-image: repeating-linear-gradient(45deg, #e8ecf3, #e8ecf3 8px, #dde2ec 8px, #dde2ec 16px);
  color: #9aa2b1; font-size: 11px;
}
/* Reálna fotka prevádzky (pole "Fotka" v administrácii pobočiek) – nahrádza
   pruhovaný placeholder, ktorý sa zobrazí len kým fotka nie je nastavená. */
.dbb-branch-photo-img { background-size: cover; background-position: center; background-repeat: no-repeat; }
.dbb-branch-info { padding: 14px; }
.dbb-branch-address { font-size: 12.5px; color: var(--dbb-text-muted); margin-top: 3px; }
.dbb-branch-nearest-note { font-size: 11px; color: var(--dbb-text-muted); margin-top: 12px; }
.dbb-branch-nearest { display: flex; align-items: center; gap: 7px; margin-top: 4px; font-size: 12px; font-weight: 700; color: var(--dbb-text); }
.dbb-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.dbb-dot-low { background: var(--dbb-status-green); }
.dbb-dot-medium { background: var(--dbb-status-amber); }
.dbb-dot-high { background: var(--dbb-status-red); }

.dbb-step-cta { width: 100%; margin-top: 22px; }

/* ---- Krok "Služba": kategórie (1) a varianty vybranej kategórie (2) ---- */
.dbb-next-visit-note { font-size: 13.5px; font-weight: 700; color: var(--dbb-text); margin: 14px 0 0; }
.dbb-category-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 700px) {
  .dbb-category-grid { grid-template-columns: 1fr; }
}
@media (min-width: 701px) and (max-width: 960px) {
  .dbb-category-grid { grid-template-columns: repeat(2, 1fr); }
}
.dbb-category-card {
  border: 2px solid var(--dbb-border); border-radius: 12px; padding: 18px; background: #fff; cursor: pointer;
  transition: border-color .12s ease, background .12s ease;
}
.dbb-category-card:hover { border-color: #c7cfdd; }
.dbb-category-card.dbb-selected { border-color: var(--dbb-cyan); background: var(--dbb-cyan-light); }
.dbb-category-card-name { font-weight: 700; font-size: 15.5px; color: var(--dbb-text); }
.dbb-category-card-desc { font-size: 12.5px; color: var(--dbb-text-muted); line-height: 1.5; margin: 6px 0 0; }
.dbb-category-card-variants { margin-top: 10px; border-top: 1px solid var(--dbb-border); }
.dbb-category-card-variant-row { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; padding: 8px 0; border-bottom: 1px solid var(--dbb-border); }
.dbb-category-card-variant-row:last-child { border-bottom: none; padding-bottom: 0; }
.dbb-category-card-variant-name { font-size: 13px; font-weight: 600; color: var(--dbb-text); }
.dbb-category-card-variant-right { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; flex-shrink: 0; }
.dbb-category-card-variant-note { font-size: 11px; color: var(--dbb-text-muted); text-align: right; }
.dbb-category-card-variant-price { font-size: 13.5px; font-weight: 800; color: var(--dbb-primary); white-space: nowrap; }

.dbb-variant-section:empty { margin: 0; }
.dbb-variant-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.dbb-variant-card {
  border: 2px solid var(--dbb-variant-color, var(--dbb-border)); border-radius: 12px; padding: 20px;
  background: var(--dbb-variant-bg, #fff); cursor: pointer;
  transition: border-color .12s ease, background .12s ease;
}
.dbb-variant-card:hover { border-color: #c7cfdd; }
.dbb-variant-card.dbb-selected { border-color: var(--dbb-cyan); background: var(--dbb-cyan-light); }
.dbb-variant-card-header { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.dbb-variant-name { font-weight: 800; font-size: 16px; color: var(--dbb-text); }
.dbb-variant-duration { font-size: 12px; color: var(--dbb-text-muted); font-weight: 600; }
.dbb-variant-popular { margin-left: auto; background: var(--dbb-pink); color: #fff; font-size: 10.5px; font-weight: 800; padding: 3px 9px; border-radius: 20px; letter-spacing: .02em; }
.dbb-variant-price { margin-top: 10px; font-size: 22px; font-weight: 800; color: var(--dbb-primary); }
.dbb-variant-price-note { font-size: 12.5px; font-weight: 600; color: var(--dbb-cyan-dark); margin-left: 4px; }
.dbb-variant-desc { font-size: 13px; color: var(--dbb-text-muted); line-height: 1.5; margin: 12px 0 0; }
.dbb-variant-features { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.dbb-variant-features li { position: relative; padding-left: 18px; font-size: 13px; color: var(--dbb-text); }
.dbb-variant-features li::before { content: '·'; position: absolute; left: 0; top: -3px; color: var(--dbb-cyan-dark); font-weight: 800; font-size: 20px; }

/* "Skryté informácie" – odkaz "Zobraziť viac"/"Skryť" pod kartou variantu,
   podrobnejší zoznam je defaultne schovaný (display:none, prepína ho JS). */
.dbb-variant-more { margin-top: 12px; }
.dbb-variant-more-btn {
  background: none; border: none; padding: 0; cursor: pointer; font-size: 12.5px; font-weight: 700;
  color: var(--dbb-cyan-dark); display: inline-flex; align-items: center; gap: 4px;
}
.dbb-variant-more-btn:hover { text-decoration: underline; }
.dbb-variant-hidden-info { list-style: none; margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid var(--dbb-border); display: flex; flex-direction: column; gap: 6px; }
.dbb-variant-hidden-info li { position: relative; padding-left: 18px; font-size: 12.5px; color: var(--dbb-text-muted); line-height: 1.4; }
.dbb-variant-hidden-info li::before { content: '·'; position: absolute; left: 0; top: -3px; color: var(--dbb-text-muted); font-weight: 800; font-size: 20px; }

.dbb-insurance-note { font-size: 12.5px; color: var(--dbb-text-muted); margin: 18px 0 0; }

/* ---- Krok "Služby": box "Doplnkové služby" (objednávajú sa mimo tohto formulára) ---- */
.dbb-addon-services { background: var(--dbb-bg); border-radius: 14px; padding: 20px 22px; margin: 24px 0 0; }
.dbb-addon-services-label { font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--dbb-text-muted); margin-bottom: 8px; }
.dbb-addon-services-desc { font-size: 13.5px; color: var(--dbb-text-muted); margin: 0 0 14px; line-height: 1.45; }
.dbb-addon-services-list { border-top: 1px solid var(--dbb-border); }
.dbb-addon-service-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--dbb-border); }
.dbb-addon-service-name { font-size: 14px; font-weight: 700; color: var(--dbb-primary-dark); }
.dbb-addon-service-right { display: flex; align-items: baseline; gap: 10px; flex-shrink: 0; }
.dbb-addon-service-note { font-size: 12px; color: var(--dbb-text-muted); text-align: right; }
.dbb-addon-service-price { font-size: 14px; font-weight: 800; color: var(--dbb-text); white-space: nowrap; }
.dbb-addon-services-footer { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin-top: 14px; }
.dbb-addon-services-footer.dbb-single { justify-content: flex-end; }
.dbb-addon-services-toggle { font-size: 13px; font-weight: 700; color: var(--dbb-primary); text-decoration: underline; background: none; border: none; padding: 0; cursor: pointer; }
.dbb-addon-services-link { font-size: 13.5px; font-weight: 800; color: var(--dbb-status-green); text-decoration: none; }
.dbb-addon-services-link:hover { text-decoration: underline; }

/* ---- Krok "Termín": box "Najbližší voľný termín" ---- */
.dbb-nearest-card {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  background: var(--dbb-cyan-light); border: 1.5px solid var(--dbb-cyan-border); border-radius: 12px;
  padding: 14px 18px; margin-bottom: 20px;
}
.dbb-nearest-label { font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--dbb-cyan-dark); }
.dbb-nearest-value { font-size: 16px; font-weight: 800; color: var(--dbb-primary); margin-top: 2px; }
.dbb-nearest-pick { background: none; border: none; color: var(--dbb-cyan-dark); font-weight: 800; font-size: 13.5px; cursor: pointer; padding: 0; }
.dbb-nearest-pick:hover { text-decoration: underline; }

.dbb-week-controls { display: flex; justify-content: space-between; align-items: center; margin: 4px 0 14px; gap: 12px; flex-wrap: wrap; }
.dbb-week-title { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--dbb-text-muted); }
.dbb-week-range { font-size: 15px; font-weight: 800; color: var(--dbb-text); }
.dbb-week-nav-buttons { display: flex; gap: 10px; }
/* Výraznejšie, plne vyplnené kolieska (predtým jemný obrys splývajúci s
   pozadím) – šípka je SVG a cez flex je vždy presne v strede kruhu, bez
   ohľadu na font (viď chevronSvg() v JS). */
.dbb-week-nav {
  display: flex; align-items: center; justify-content: center; padding: 0;
  background: var(--dbb-cyan-light); border: 1.5px solid var(--dbb-cyan-border); border-radius: 50%;
  width: 38px; height: 38px; cursor: pointer; color: var(--dbb-primary);
  transition: background .12s ease, border-color .12s ease, transform .08s ease;
}
.dbb-week-nav svg { display: block; }
.dbb-week-nav:hover:not(:disabled) { background: var(--dbb-primary); border-color: var(--dbb-primary); color: #fff; }
.dbb-week-nav:active:not(:disabled) { transform: scale(.94); }
.dbb-week-nav:disabled { background: #f2f4f8; border-color: var(--dbb-border); color: #c3c8d4; opacity: 1; cursor: default; }
/* Krátka nápoveda POD celým riadkom .dbb-week-controls (nie súčasť flexu so
   šípkami) – vlastný riadok na celú šírku, text zarovnaný vpravo pod šípky. */
.dbb-week-nav-hint { font-size: 11px; color: var(--dbb-text-muted); text-align: right; margin: -8px 0 14px; }

/* Tlačidlo "Skryť/Zobraziť obsadené termíny" – predvolene sú vidno VŠETKY
   časy vrátane obsadených (preškrtnuté), toto ich vie na želanie schovať. */
.dbb-hide-booked-btn {
  display: block; margin: 0 0 16px; background: #fff; border: 1px solid var(--dbb-primary); color: var(--dbb-primary);
  border-radius: 20px; padding: 7px 16px; cursor: pointer; font-weight: 700; font-size: 12.5px;
}
.dbb-hide-booked-btn:hover { background: var(--dbb-bg); }

.dbb-pill-grid-wrap { position: relative; overflow-x: auto; margin-bottom: 12px; -webkit-overflow-scrolling: touch; padding: 2px; }
.dbb-pill-grid-wrap.dbb-grid-loading { opacity: .4; pointer-events: none; transition: opacity .15s ease; }
.dbb-pill-grid-wrap.dbb-can-scroll-right::after {
  content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 26px; pointer-events: none; z-index: 3;
  background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,.95));
}
/* Stĺpce sa roztiahnu na celú šírku sekcie (flex:1 každý) – na širšej
   obrazovke tak vyplnia celý dostupný priestor namiesto úzkeho pásu s
   voľným miestom vpravo. Pod min-width sa už nezmestia vedľa seba a
   .dbb-pill-grid-wrap (overflow-x:auto) ich necháva vodorovne posúvať –
   presne to sa deje na mobile. */
.dbb-pill-columns { display: flex; gap: 10px; width: 100%; }
/* Každý deň je vlastný "box" (rámik) – dnešný deň je zvýraznený jemným
   cyanovým podfarbením rámika. */
.dbb-pill-col {
  flex: 1 1 0; min-width: 92px; border: 1.5px solid var(--dbb-border); border-radius: 12px;
  padding: 12px 8px; background: #fff;
}
.dbb-pill-col-today { border-color: var(--dbb-cyan-border); background: var(--dbb-cyan-light); }
.dbb-pill-col-head { text-align: center; padding-bottom: 10px; margin-bottom: 10px; border-bottom: 2px solid var(--dbb-border); }
.dbb-pill-col-today .dbb-pill-col-head { border-bottom-color: var(--dbb-cyan-border); }
.dbb-pill-col-day { font-size: 12px; font-weight: 700; color: var(--dbb-text-muted); }
.dbb-pill-col-today .dbb-pill-col-day { color: var(--dbb-cyan-dark); }
.dbb-pill-col-num { font-size: 14px; font-weight: 800; color: var(--dbb-text); margin-top: 1px; }
.dbb-pill-col-empty { font-size: 11.5px; color: #b6bcc9; text-align: center; padding-top: 4px; }
.dbb-pill-list { display: flex; flex-direction: column; gap: 8px; }
.dbb-pill-slot {
  width: 100%; border: 1.5px solid var(--dbb-cyan-border); background: var(--dbb-cyan-light); color: var(--dbb-cyan-dark);
  border-radius: 8px; padding: 8px 4px; cursor: pointer; font-size: 13px; font-weight: 700;
}
.dbb-pill-slot:hover { background: var(--dbb-cyan); color: #fff; border-color: var(--dbb-cyan); }
.dbb-pill-slot.dbb-selected { background: var(--dbb-primary); border-color: var(--dbb-primary); color: #fff; }
/* Obsadené/uplynuté termíny – zobrazené, ale preškrtnuté a neklikateľné (viď "Skryť obsadené termíny"). */
.dbb-pill-slot.dbb-pill-slot-booked,
.dbb-pill-slot.dbb-pill-slot-booked:hover {
  background: #f5f6f9; border-color: var(--dbb-border); color: #c3c8d4; text-decoration: line-through;
  cursor: default; font-weight: 600;
}

/* Nápis "Posuňte prstom pre ďalšie dni" + jemná šípka NAD mriežkou – zobrazí
   sa len, keď je mriežka naozaj širšia než obrazovka a používateľ ešte
   neposunul (zmizne po prvom scrolli, viď updateScrollHints() v JS). Šípka
   sa hýbe zámerne pomaly a na krátku vzdialenosť, aby pôsobila jemne. */
.dbb-grid-scroll-hint {
  display: none; align-items: center; justify-content: center; gap: 6px; font-size: 12px; font-weight: 700;
  color: var(--dbb-cyan-dark); margin: 0 0 10px; opacity: .85;
}
.dbb-grid-scroll-hint.dbb-visible { display: flex; }
.dbb-grid-scroll-hint-arrow { display: inline-block; animation: dbb-swipe-nudge 2.4s ease-in-out infinite; }
@keyframes dbb-swipe-nudge {
  0%, 100% { transform: translateX(0); opacity: .6; }
  50% { transform: translateX(4px); opacity: 1; }
}
.dbb-slot-summary { font-size: 13px; color: var(--dbb-text-muted); margin: 0; }
.dbb-slot-summary strong { color: var(--dbb-text); }

/* ---- Kontaktný formulár (krok "Kontakt") ---- */
.dbb-field { margin-bottom: 16px; display: flex; flex-direction: column; }
.dbb-field label { font-size: 12.5px; font-weight: 800; margin-bottom: 6px; color: var(--dbb-text); }
.dbb-field-optional { font-weight: 600; color: var(--dbb-text-muted); }
.dbb-field input, .dbb-field select, .dbb-field textarea {
  padding: 11px 12px; border: 1.5px solid var(--dbb-border); border-radius: 8px; font-size: 14.5px; font-family: inherit;
  background: #fff; color: var(--dbb-text); transition: border-color .12s ease;
}
.dbb-field input:hover, .dbb-field select:hover, .dbb-field textarea:hover { border-color: #c7cfdd; }
.dbb-field input:focus, .dbb-field select:focus, .dbb-field textarea:focus { outline: none; border-color: var(--dbb-cyan); box-shadow: 0 0 0 3px rgba(0,201,207,.15); }
.dbb-field-row { display: flex; gap: 16px; }
.dbb-field-row .dbb-field { flex: 1; min-width: 0; }
.dbb-field-row-3 .dbb-field { flex-basis: 0; }
/* Na užších mobilných obrazovkách sa viacstĺpcové riadky zložia pod seba. */
@media (max-width: 700px) {
  .dbb-field-row, .dbb-field-row-3 { flex-direction: column; gap: 0; }
}
.dbb-field input[type=date] {
  -webkit-appearance: none; appearance: none; min-height: 44px; line-height: 1.3;
}
.dbb-phone-input { position: relative; display: flex; align-items: stretch; border: 1.5px solid var(--dbb-border); border-radius: 8px; transition: border-color .12s ease; }
.dbb-phone-input:focus-within { border-color: var(--dbb-cyan); box-shadow: 0 0 0 3px rgba(0,201,207,.15); }
.dbb-phone-input input { border: none; border-radius: 0 6.5px 6.5px 0; flex: 1; min-width: 0; box-shadow: none !important; }
/* ---- Predvoľba telefónu: rozbaľovacie tlačidlo s vlajkou + vyhľadateľný
   zoznam krajín (viď buildPhoneField() v JS). ---- */
.dbb-phone-prefix-btn {
  display: flex; align-items: center; gap: 6px; background: #f7f9fc; color: var(--dbb-text);
  font-weight: 700; padding: 0 10px; font-size: 14.5px; border: none; border-right: 1.5px solid var(--dbb-border);
  cursor: pointer; border-radius: 6.5px 0 0 6.5px; flex-shrink: 0;
}
.dbb-phone-prefix-btn:hover { background: #eef1f6; }
.dbb-phone-flag { font-size: 16px; line-height: 1; }
.dbb-phone-caret { font-size: 9px; color: var(--dbb-text-muted); margin-left: 2px; }
.dbb-phone-country-panel {
  position: absolute; top: calc(100% + 6px); left: 0; width: min(320px, 90vw); max-height: 320px;
  background: #fff; border: 1px solid var(--dbb-border); border-radius: 10px; box-shadow: 0 8px 24px rgba(20,30,60,.16);
  z-index: 30; display: flex; flex-direction: column; overflow: hidden;
}
.dbb-phone-country-search {
  margin: 8px; padding: 9px 10px; border: 1.5px solid var(--dbb-border); border-radius: 7px; font-size: 13.5px; font-family: inherit;
}
.dbb-phone-country-search:focus { outline: none; border-color: var(--dbb-cyan); }
.dbb-phone-country-list { overflow-y: auto; padding: 0 4px 6px; }
.dbb-phone-country-row { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 7px; cursor: pointer; font-size: 13.5px; }
.dbb-phone-country-row:hover { background: var(--dbb-bg); }
.dbb-phone-country-row-selected { background: var(--dbb-cyan-light); }
.dbb-phone-country-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dbb-phone-country-dial { color: var(--dbb-text-muted); font-weight: 700; font-size: 12.5px; }
.dbb-phone-country-empty { padding: 14px; text-align: center; color: var(--dbb-text-muted); font-size: 13px; }


.dbb-checkbox { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 4px; font-size: 13.5px; color: var(--dbb-text-muted); cursor: pointer; }
.dbb-checkbox input[type=checkbox] {
  flex-shrink: 0; width: 18px; height: 18px; margin-top: 1px; accent-color: var(--dbb-cyan); cursor: pointer;
  border: 1.5px solid var(--dbb-border); border-radius: 4px;
}
/* Tri samostatné súhlasy (VOP / GDPR / novinky) namiesto jedného spoločného
   checkboxu – zoskupené s menšou medzerou medzi sebou, s väčším odstupom od
   poľa nad nimi a od tlačidla "Rezervovať" pod nimi. */
.dbb-consent-group { margin: 4px 0 14px; display: flex; flex-direction: column; gap: 8px; }
.dbb-consent-checkbox { margin: 0; }
.dbb-consent-checkbox a { color: var(--dbb-primary); font-weight: 700; text-decoration: underline; }
.dbb-newsletter-checkbox { margin: 0; color: var(--dbb-text-muted); }

/* Vlastný vzhľad natívnych <select> – bez OS štýlu, so šípkou zosúladenou s dizajnom (poisťovňa v karte pacienta/registrácii). */
.dbb-field select {
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%232841A2' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat; background-position: right 12px center; padding-right: 34px;
}

.dbb-submit { background: var(--dbb-primary); color: #fff; border: none; border-radius: 8px; padding: 13px 24px; font-size: 15px; font-weight: 700; cursor: pointer; margin-top: 10px; display: inline-block; text-decoration: none; text-align: center; }
.dbb-submit:hover:not(:disabled) { background: var(--dbb-primary-dark); }
.dbb-submit:disabled { background: #dde2ef; color: #98a0b3; cursor: default; }
.dbb-btn-outline { background: #fff; color: var(--dbb-primary); border: 1px solid var(--dbb-primary); border-radius: 8px; padding: 12px 24px; font-size: 15px; font-weight: 700; cursor: pointer; margin-top: 10px; display: inline-block; text-decoration: none; text-align: center; }
.dbb-btn-outline:hover { background: var(--dbb-bg); }

.dbb-error { background: #fde8e8; color: #a41616; padding: 10px 14px; border-radius: 7px; margin: 10px 0; }
.dbb-success { background: var(--dbb-cyan-light); color: var(--dbb-cyan-dark); padding: 10px 14px; border-radius: 7px; margin: 10px 0; }

/* ---- Potvrdenie (krok 5, mimo "Krok X zo 4") ---- */
.dbb-confirmation-card { text-align: center; max-width: 640px; margin: 0 auto; }
.dbb-confirmation-check {
  width: 56px; height: 56px; border-radius: 50%; background: var(--dbb-cyan-light); color: var(--dbb-cyan-dark);
  font-size: 28px; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; font-weight: 800;
}
.dbb-confirmation-sub { color: var(--dbb-text-muted); margin-bottom: 22px; }
.dbb-confirmation-highlight { background: var(--dbb-primary); color: #fff; border-radius: 10px; padding: 16px 20px; text-align: left; margin-bottom: 14px; }
.dbb-confirmation-highlight-label { font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; opacity: .75; }
.dbb-confirmation-highlight-time { font-size: 19px; font-weight: 800; margin-top: 3px; }
.dbb-confirmation-rows { text-align: left; margin-bottom: 20px; }
.dbb-confirmation-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--dbb-border); }
.dbb-confirmation-row:last-child { border-bottom: none; }
.dbb-confirmation-row-label { font-size: 13px; color: var(--dbb-text-muted); flex-shrink: 0; }
.dbb-confirmation-row-value { font-size: 13.5px; font-weight: 700; color: var(--dbb-text); text-align: right; }
.dbb-confirmation-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 8px; }

/* ---- Karta pacienta ("Moje údaje" + "Moje rezervácie") ----
   Rovnaký "jeden biely box" ako rezervačný formulár (viď PatientCardApp v
   JS – používa dbb-app/dbb-app-body/dbb-body-inner), sekcie oddelené jemnou
   deliacou čiarou, aby to pôsobilo ako súčasť tej istej aplikácie. */
.dbb-patient-section { padding: 24px 0; border-bottom: 1px solid var(--dbb-border); }
.dbb-patient-section:first-child { padding-top: 4px; }
.dbb-patient-section:last-child { border-bottom: none; padding-bottom: 4px; }
.dbb-patient-section h3 { margin: 0 0 18px; font-size: 19px; font-weight: 800; color: var(--dbb-primary); }
.dbb-newsletter-checkbox { margin: 2px 0 18px; }

.dbb-history-row {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  border: 1.5px solid var(--dbb-border); border-radius: 12px; padding: 14px 16px; margin-bottom: 10px;
}
.dbb-history-row:last-child { margin-bottom: 0; }
.dbb-history-row strong { font-size: 14.5px; color: var(--dbb-text); }
.dbb-history-meta { font-size: 12.5px; color: var(--dbb-text-muted); margin-top: 3px; }
.dbb-history-right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.dbb-history-status { font-size: 11px; font-weight: 800; padding: 4px 11px; border-radius: 20px; white-space: nowrap; }
.dbb-history-status-confirmed { background: var(--dbb-cyan-light); color: var(--dbb-cyan-dark); }
.dbb-history-status-pending { background: #fff4e0; color: #a86400; }
.dbb-history-status-cancelled { background: #f2f4f8; color: #9aa2b1; }
.dbb-history-status-completed { background: var(--dbb-bg); color: var(--dbb-text-muted); }
.dbb-history-status-no_show { background: #fde8e8; color: #a41616; }
.dbb-history-status-imported { background: var(--dbb-bg); color: var(--dbb-text-muted); }
.dbb-cancel { background: #fff; border: 1px solid #a41616; color: #a41616; border-radius: 7px; padding: 6px 12px; cursor: pointer; font-weight: 700; font-size: 12.5px; }
.dbb-cancel:hover { background: #fde8e8; }

/* ---------------------------------------------------------------------
   Vlastné úpravy (poskytnuté priamo v kóde) – rozšírenie layoutu, farebné
   orámovanie kategórií podľa CSS triedy (viď slugify() v JS) a drobné
   doladenia veľkostí/odsadenia.
   --------------------------------------------------------------------- */
#dbb-booking-form-root {
	max-width: 1300px !important;
}
.dbb-branch-photo {
height: 150px !important;
}
.dbb-variant-section {
	margin-top: 30px;
	margin-bottom: 0px;
}
.dbb-submit {
	margin-top: 20px !important;
}
.dbb-app h3 {
	font-weight: 700;
	color: #2841A2;
}
.dbb-layout {
gap: 70px !important;
}
.dbb-branch-nearest {
font-size: 11px !important;
}
.dbb-sidebar-insurance-logos img {
max-width: 90px !important;
}
.dbb-pill-slot {
padding: 5px 4px !important;
}
.dbb-week-nav-hint {
font-weight: 700;
}
.dovera {
margin-top: -13px;
}
.dbb-category-card-all-inclusive-balik {
	border: 3px solid #E4768D !important;
}
.dbb-category-card-all-inclusive-balik.dbb-selected {
background: rgba(228, 119, 142, 0.1) !important;
}
.dbb-category-card-bielenie-zubov {
	border: 3px solid #00C9CF  !important;
}
.dbb-category-card-bielenie-zubov.dbb-selected {
background: rgba(0, 201, 207, 0.1) !important;
}
.dbb-category-card-dentalna-hygiena {
	border: 3px solid #2841A2 !important;
}
.dbb-category-card-dentalna-hygiena.dbb-selected {
background: rgba(40, 65, 162, 0.1) !important;
}
/* Varianty Dentálnej hygieny majú vlastné farby (na rozdiel od karty kategórie
   vyššie sa tu podfarbenie zobrazuje VŽDY, nie len po výbere) – cez tie isté
   custom properties, ktoré .dbb-variant-card už používa (viď vyššie), takže
   .dbb-variant-card.dbb-selected (cyan, vyššia špecifickosť) naďalej správne
   prebije farbu pri kliknutí. */
.dbb-variant-card-dentalna-hygiena-premium {
	--dbb-variant-color: #E4768D;
	--dbb-variant-bg: rgba(228, 119, 142, 0.1);
}
.dbb-variant-card-dentalna-hygiena-basic {
	--dbb-variant-color: #2841A2;
	--dbb-variant-bg: rgba(40, 65, 162, 0.08);
}
@media only screen and (max-width: 767px) {
.dovera, .union {
width: 43%;
}

.dbb-week-nav-hint {
text-align: center !important;
}
}
