.ai-guide {
  --ai-accent: var(--color-gold, #b54d55);
  --ai-accent-dark: var(--color-gold-dark, #8e3941);
  --ai-deep: var(--color-deep, #152137);
  --ai-surface: var(--light-panel, rgba(247, 249, 252, .97));
  position: fixed; left: 22px; top: 118px; z-index: 120;
  font-family: inherit; transition: top .2s ease;
}
body:has(.ground-back:not([hidden])) .ai-guide { top: 184px; }
.ai-guide__launcher { display:flex;align-items:center;justify-content:center;gap:8px;min-width:72px;height:48px;padding:0 16px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:linear-gradient(135deg,var(--ai-accent),var(--ai-accent-dark));color:#fff;box-shadow:0 14px 34px rgba(10,18,30,.3);cursor:pointer }
.ai-guide__launcher span { font-size:21px }
.ai-guide__launcher strong { font-size:13px;letter-spacing:.08em }
.ai-guide__panel { position:fixed;left:22px;bottom:86px;width:min(410px,calc(100vw - 28px));max-height:calc(100dvh - 112px);overflow:hidden;border:1px solid rgba(255,255,255,.42);border-radius:24px;background:var(--ai-surface);color:var(--ai-deep);box-shadow:0 24px 70px rgba(5,15,30,.38);backdrop-filter:blur(20px);transition:bottom .22s ease }
.ai-guide__panel[hidden] { display:none!important }
.ai-guide__panel header { display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:linear-gradient(135deg,var(--ai-accent),var(--ai-accent-dark));color:#fff }
.ai-guide__panel header small { font-size:9px;letter-spacing:.16em;opacity:.78 }
.ai-guide__panel [data-ai-resume] { display:none;margin-top:3px;letter-spacing:.02em;text-transform:none }
.ai-guide__panel h2 { margin:3px 0 0;font-size:20px }
.ai-guide__panel header button { width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:25px;cursor:pointer }
.ai-guide__messages { display:flex;flex-direction:column;gap:10px;max-height:370px;padding:16px;overflow:auto }
.ai-guide__message { max-width:88%;padding:11px 13px;border-radius:15px;font-size:13px;line-height:1.45 }
.ai-guide__message.is-guide { align-self:flex-start;background:#e9edf3 }
.ai-guide__message.is-user { align-self:flex-end;background:var(--ai-accent);color:#fff }
.ai-guide__message.is-formatted p { margin:0 0 8px }
.ai-guide__message.is-formatted p:last-child { margin-bottom:0 }
.ai-guide__message.is-formatted strong { color:var(--ai-accent-dark);font-weight:900 }
.ai-guide__message.is-formatted .ai-guide__source-link { color:var(--ai-accent-dark);font-weight:800;text-decoration:underline;text-underline-offset:2px }
.ai-guide__object-link { display:inline;padding:0;border:0;background:none;color:var(--ai-accent-dark);font:inherit;font-weight:900;text-align:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;cursor:pointer }
.ai-guide__object-link:hover,.ai-guide__object-link:focus-visible { color:color-mix(in srgb,var(--ai-accent-dark),#000 22%);outline:none;text-decoration-thickness:2px }
.ai-guide__message.is-formatted ul { margin:7px 0 2px;padding-left:19px }
.ai-guide__message.is-formatted li { margin:4px 0;padding-left:2px }
.ai-guide__card { display:grid;grid-template-columns:minmax(0,1fr);gap:11px;padding:10px;border:1px solid #dde3eb;border-radius:17px;background:#fff }
.ai-guide__card img { width:100%;height:auto;min-height:0;aspect-ratio:16/9;object-fit:cover;border-radius:14px }
.ai-guide__card h3 { margin:1px 0 5px;font-size:14px }
.ai-guide__card p { display:-webkit-box;margin:0 0 9px;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#5b6677;font-size:11px;line-height:1.4 }
.ai-guide__card nav { display:flex;flex-wrap:wrap;gap:5px }
body:has(.ground-back:not([hidden])) .ai-guide__card [data-ai-tour] { display:none!important }
.ai-guide__geo { display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;color:var(--ai-deep);font-size:11px;font-weight:800 }
.ai-guide__geo span:empty { display:none }
.ai-guide__geo button { margin-left:auto }
.ai-guide__map-shell { position:relative;width:100%;aspect-ratio:16/9;height:auto;margin:3px 0 10px;overflow:hidden;border:1px solid color-mix(in srgb,var(--ai-accent-dark),#fff 55%);border-radius:14px;background:#e8edf3 }
.ai-guide__map { width:100%;height:100% }
.ai-guide__place-marker span,.ai-guide__selected-marker span { display:block;width:100%;height:100%;border:2px solid #fff;border-radius:50%;background:var(--ai-accent-dark);box-shadow:0 2px 8px rgba(0,0,0,.42) }
.ai-guide__selected-marker span { border-width:4px;background:#efc15b;box-shadow:0 0 0 3px var(--ai-accent-dark),0 4px 12px rgba(0,0,0,.45) }
.leaflet-tooltip.ai-guide__map-label { display:none;padding:2px 4px;border:0;border-radius:4px;background:rgba(255,255,255,.9);color:#152137;font:800 9px/1.15 inherit;box-shadow:0 1px 5px rgba(0,0,0,.2) }
.leaflet-tooltip.ai-guide__map-label.is-selected { padding:4px 7px;color:var(--ai-accent-dark);font-size:11px }
.leaflet-tooltip.ai-guide__map-label.is-selected,.shows-ai-map-labels .leaflet-tooltip.ai-guide__map-label { display:block }
.leaflet-tooltip.ai-guide__map-label::before { display:none }
.ai-guide__map .leaflet-control-zoom { overflow:hidden;border:1px solid rgba(21,33,55,.22);border-radius:8px;box-shadow:0 3px 12px rgba(0,0,0,.2) }
.ai-guide__map .leaflet-control-zoom a { width:34px!important;height:34px!important;padding:0!important;border:0!important;border-bottom:1px solid #d8dde5!important;border-radius:0!important;background:#fff!important;color:var(--ai-accent-dark)!important;font:700 22px/34px Arial,sans-serif!important;box-shadow:none!important }
.ai-guide__map .leaflet-control-zoom a:last-child { border-bottom:0!important }
.ai-guide__map .leaflet-top.leaflet-right { top:43px }
.ai-guide__map .leaflet-control-layers { border:1px solid rgba(21,33,55,.22);border-radius:999px;background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.2) }
.ai-guide__map .leaflet-control-layers-toggle { display:flex;width:auto!important;height:30px!important;padding:0 11px!important;align-items:center;background:none!important;color:var(--ai-accent-dark);font-size:0;text-decoration:none }
.ai-guide__map .leaflet-control-layers-toggle::after { content:"Vrstvy";font:800 10px/1 inherit }
html[lang^="en"] .ai-guide__map .leaflet-control-layers-toggle::after { content:"Layers" }
.ai-guide__map-shell>button { position:absolute;top:8px;z-index:800;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#fff;color:var(--ai-deep);font-size:18px;font-weight:900;box-shadow:0 3px 12px rgba(0,0,0,.2);cursor:pointer }
.ai-guide__map-shell [data-ai-map-expand] { right:47px }
.ai-guide__map-shell [data-ai-map-close] { right:8px }
.ai-guide__map-shell.is-expanded { position:fixed;inset:12px;z-index:1500;width:auto;aspect-ratio:auto;height:auto;margin:0;border-radius:20px }
.ai-guide__card button,.ai-guide__card a,.ai-guide__suggestions button,.ai-guide__clarifications button { padding:7px 9px;border:1.5px solid color-mix(in srgb,var(--ai-accent-dark),#fff 34%);border-radius:999px;background:#fff;color:var(--ai-accent-dark);font:inherit;font-size:10px;font-weight:800;text-decoration:none;opacity:1;cursor:pointer;box-shadow:0 2px 7px rgba(15,25,40,.06) }
.ai-guide__card button:hover,.ai-guide__card a:hover,.ai-guide__suggestions button:hover,.ai-guide__clarifications button:hover,.ai-guide__card button:focus-visible,.ai-guide__card a:focus-visible,.ai-guide__suggestions button:focus-visible,.ai-guide__clarifications button:focus-visible { background:var(--ai-accent-dark);border-color:var(--ai-accent-dark);color:#fff;outline:none }
.ai-guide__clarifications { display:flex;flex-wrap:wrap;gap:7px;align-self:flex-start;max-width:94%;padding:2px 0 5px }
.ai-guide__clarifications button { padding:9px 12px;font-size:11px }
.ai-guide__clarifications.is-multiple button[aria-pressed="true"] { background:var(--ai-accent-dark);border-color:var(--ai-accent-dark);color:#fff;box-shadow:0 0 0 2px color-mix(in srgb,var(--ai-accent-dark),transparent 72%) }
.ai-guide__clarifications .ai-guide__choice-confirm { flex-basis:100%;width:max-content;max-width:max-content;background:var(--ai-accent-dark);border-color:var(--ai-accent-dark);color:#fff }
.ai-guide__clarifications .ai-guide__choice-confirm:disabled { opacity:.42;cursor:not-allowed }
.ai-guide__object-offer { display:flex;flex-direction:column;align-items:flex-start;gap:9px;max-width:90%;padding:12px 13px;border:1px solid color-mix(in srgb,var(--ai-accent-dark),#fff 65%);border-radius:15px;background:#fff;color:#5b6677;font-size:12px;line-height:1.4 }
.ai-guide__object-offer button { padding:9px 12px;border:0;border-radius:999px;background:var(--ai-accent-dark);color:#fff;font:inherit;font-size:11px;font-weight:800;cursor:pointer }
.ai-guide__suggestions { display:flex;gap:6px;padding:0 16px 12px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none }
.ai-guide__suggestions[hidden] { display:none!important }
.ai-guide__suggestions::-webkit-scrollbar { display:none;width:0;height:0 }
.ai-guide__suggestions button { flex:0 0 auto }
.ai-guide__form { display:grid;grid-template-columns:1fr auto;gap:7px;padding:12px 14px;border-top:1px solid #e2e6ec;background:#fff }
.ai-guide__form textarea { min-width:0;padding:11px 13px;border:1px solid #ccd4df;border-radius:13px;font:inherit;font-size:13px;line-height:1.35;resize:none }
.ai-guide__form button { padding:0 15px;border:1px solid color-mix(in srgb,var(--ai-accent-dark),#000 8%);border-radius:13px;background:var(--ai-accent-dark);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 5px 14px color-mix(in srgb,var(--ai-accent-dark),transparent 72%);transition:filter .16s ease,transform .16s ease,opacity .16s ease }
.ai-guide__form button:hover,.ai-guide__form button:focus-visible { filter:brightness(.9);outline:3px solid color-mix(in srgb,var(--ai-accent-dark),transparent 72%);outline-offset:2px }
.ai-guide__form button:active { transform:translateY(1px) }
.ai-guide__form button:disabled { border-color:#e3d9d6;background:#eadfdb;color:#9c8f8b;box-shadow:none;cursor:not-allowed;opacity:.68 }
.ai-guide.is-minimized .ai-guide__launcher { display:none }
.ai-guide.is-minimized .ai-guide__panel { width:min(310px,calc(100vw - 28px));max-height:none;cursor:pointer }
.ai-guide.is-minimized .ai-guide__messages,.ai-guide.is-minimized .ai-guide__suggestions,.ai-guide.is-minimized .ai-guide__form { display:none }
.ai-guide.is-minimized .ai-guide__panel header { min-height:62px;padding:10px 14px 10px 18px;border-radius:22px }
.ai-guide.is-minimized .ai-guide__panel h2 { margin:0;font-size:16px }
.ai-guide.is-minimized .ai-guide__panel [data-ai-resume] { display:block;font-size:10px }
.ai-guide.is-minimized .ai-guide__panel header button { width:34px;height:34px;font-size:21px }
body:not(:has(.thematic-routes-panel:not([hidden]))):has(.active-route-return:not([hidden])) .ai-guide.is-minimized .ai-guide__panel { bottom:146px }
@media(max-width:640px) {
  .ai-guide, body:has(.ground-back:not([hidden])) .ai-guide { left:14px;top:auto;bottom:82px;z-index:100 }
  .ai-guide:has(.ai-guide__panel:not([hidden])) { z-index:130 }
  .ai-guide__launcher { min-width:52px;width:52px;height:52px;padding:0 }
  .ai-guide__launcher strong { display:none }
  .ai-guide__panel { position:fixed;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));bottom:max(8px,env(safe-area-inset-bottom));width:auto;height:auto;max-height:none;border-radius:22px;overscroll-behavior:contain }
  .ai-guide__panel header { padding:12px 15px 12px 18px }
  .ai-guide__panel h2 { margin:0;font-size:17px;line-height:1.2 }
  .ai-guide__panel header button { width:34px;height:34px;font-size:21px }
  .ai-guide__messages { min-height:0;max-height:none }
  .ai-guide__card { grid-template-columns:minmax(0,1fr);gap:11px }
  .ai-guide__card img { width:100%;height:auto;min-height:0;aspect-ratio:16/9;object-fit:cover;border-radius:14px }
  .ai-guide__card h3 { font-size:16px }
  .ai-guide__card p { font-size:12px;-webkit-line-clamp:4 }
  .ai-guide__form { grid-template-columns:minmax(0,1fr) 88px;align-items:stretch;gap:8px;padding:10px }
  .ai-guide__form textarea { width:100%;height:72px;padding:11px 14px;font-size:16px;touch-action:manipulation }
  .ai-guide__form button { width:88px;min-height:72px;padding:0 8px;font-size:13px }
  .ai-guide.is-minimized .ai-guide__panel { display:block!important;inset:auto auto 82px 10px!important;width:min(310px,calc(100vw - 20px));height:64px!important;min-height:0!important;max-height:64px!important;overflow:hidden!important }
  body:not(:has(.thematic-routes-panel:not([hidden]))):has(.active-route-return:not([hidden])) .ai-guide.is-minimized .ai-guide__panel { inset:auto auto 142px 10px!important }
  body:has(.ai-guide__panel:not([hidden])) { overflow:hidden }
}
.ai-guide__route-offer {
  display: grid;
  gap: 12px;
  margin: 12px 0;
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--color-gold-dark, #b74332) 38%, transparent);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.82);
}

.ai-guide__route-offer > span {
  color: #667085;
  font-size: 14px;
}

.ai-guide__route-card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid #e1e5ec;
  border-radius: 18px;
  background: #fff;
}

.ai-guide__route-card > img {
  width: 100%;
  height: 100%;
  min-height: 150px;
  object-fit: cover;
}

.ai-guide__route-card > div {
  padding: 14px;
}

.ai-guide__route-card small {
  color: var(--color-gold-dark, #b74332);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
}

.ai-guide__route-card h3,
.ai-guide__route-card p {
  margin: 5px 0;
}

.ai-guide__route-card p {
  display: -webkit-box;
  overflow: hidden;
  color: #667085;
  font-size: 13px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.ai-guide__route-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin: 8px 0;
  color: #495268;
  font-size: 12px;
  font-weight: 750;
}

.ai-guide__route-card button {
  min-height: 36px;
  border: 0;
  border-radius: 999px;
  padding: 8px 14px;
  color: #fff;
  background: var(--color-gold-dark, #b74332);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.ai-guide__itinerary-offer .ai-guide__route-card {
  grid-template-columns: 1fr;
}

.ai-guide__itinerary-stops {
  -webkit-line-clamp: 3 !important;
}

@media (max-width: 520px) {
  .ai-guide__route-card {
    grid-template-columns: 1fr;
  }

  .ai-guide__route-card > img {
    height: 140px;
    min-height: 0;
  }
}


/* English mobile copy is longer: keep suggestions and typed text readable without clipping. */
@media (max-width: 640px) {
  html[lang^="en"] .ai-guide__suggestions {
    gap: 5px;
    padding-inline: 12px;
  }

  html[lang^="en"] .ai-guide__suggestions button {
    padding: 6px 7px;
    font-size: 9px;
    line-height: 1.15;
  }

  html[lang^="en"] .ai-guide__form textarea {
    padding: 9px 11px;
    font-size: 13px;
    line-height: 1.3;
  }
}
