.availability-map-entry { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 14px; border-radius: 14px; background: #f7f1fc; border: 1px solid #e5d8ef; }
.availability-map-entry__copy { min-width: 0; }
.availability-map-entry__copy strong { display: block; color: #3f2a50; font-family: Poppins, sans-serif; font-size: .92rem; }
.availability-map-entry__copy small { display: block; color: #715e7e; margin-top: 2px; line-height: 1.35; }
.availability-map-entry__button { flex: 0 0 auto; min-height: 46px; padding: 0 16px; border: 0; border-radius: 12px; color: #fff; background: linear-gradient(135deg,#6a11cb,#ff66b2); font: 700 .88rem Poppins,sans-serif; cursor: pointer; box-shadow: 0 7px 17px rgba(106,17,203,.16); }

.gm-widget-lock { overflow: hidden !important; }
.gm-widget-overlay { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; padding: 18px; background: rgba(18,23,34,.62); backdrop-filter: blur(6px); }
.gm-widget-dialog { width: min(1380px, 100%); max-height: min(920px, calc(100vh - 30px)); overflow: hidden; display: grid; grid-template-rows: auto auto minmax(0,1fr); border-radius: 22px; background: #fff; box-shadow: 0 30px 90px rgba(0,0,0,.28); }
.gm-widget-head { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 16px; border-bottom: 1px solid #e7e9ed; }
.gm-widget-head strong { color: #252e3c; font: 700 1.15rem Poppins,sans-serif; }
.gm-widget-head small { display: block; color: #6e7888; margin-top: 2px; }
.gm-widget-close { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #dde1e7; background: #f8f9fb; color: #334155; font-size: 1.5rem; cursor: pointer; }
.gm-widget-toolbar { padding: 12px 15px; display: grid; grid-template-columns: minmax(260px,1fr) auto; gap: 12px; border-bottom: 1px solid #e7e9ed; background: #fbfcfd; }
.gm-widget-search { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.gm-widget-search input { min-height: 50px; border: 1px solid #cfd5dd; border-radius: 12px; padding: 0 14px; font: 600 1rem Open Sans,sans-serif; outline: none; }
.gm-widget-search input:focus { border-color: #6a11cb; box-shadow: 0 0 0 4px rgba(106,17,203,.08); }
.gm-widget-search button, .gm-widget-locate { min-height: 50px; border: 0; border-radius: 12px; padding: 0 15px; font: 700 .88rem Poppins,sans-serif; cursor: pointer; }
.gm-widget-search button { background: #6a11cb; color: #fff; }
.gm-widget-locate { color: #4a5566; background: #eef1f5; }
.gm-widget-suggestions { display:none; position:absolute; left:0; right:64px; top:56px; z-index:2000; max-height:280px; overflow:auto; border:1px solid #dfe3e8; border-radius:12px; background:#fff; box-shadow:0 12px 28px rgba(15,23,42,.16); }
.gm-widget-suggestions.is-open { display:block; }
.gm-widget-suggestion { width:100%; padding:11px 13px; border:0; border-bottom:1px solid #eef0f3; background:#fff; text-align:left; cursor:pointer; font:inherit; }
.gm-widget-suggestion:hover { background:#faf7fd; }
.gm-widget-suggestion strong { display:block; }
.gm-widget-suggestion small { display:block; color:#7c8594; margin-top:2px; }
.gm-widget-body { min-height:0; display:grid; grid-template-columns:minmax(0,2fr) minmax(330px,.78fr); }
.gm-widget-map { min-height:610px; background:#edf1f4; }
.gm-widget-panel { min-height:0; overflow:auto; padding:14px; background:#f7f8fb; border-left:1px solid #e3e6eb; }
.gm-widget-choice { padding:13px; border-radius:14px; background:#fff; border:1px solid #e1e5eb; }
.gm-widget-choice > strong { display:block; color:#283143; font:700 .98rem Poppins,sans-serif; }
.gm-widget-choice-buttons { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:9px; }
.gm-widget-choice-btn { min-height:54px; border:1px solid #d6dbe2; border-radius:11px; background:#fff; color:#455064; font-weight:700; cursor:pointer; }
.gm-widget-choice-btn.is-selected { border-color:#6a11cb; color:#5a119f; background:#f5edfb; box-shadow:0 0 0 3px rgba(106,17,203,.07); }
.gm-widget-empty { padding:32px 12px; text-align:center; color:#677385; line-height:1.55; }
.gm-widget-detail { display:grid; gap:10px; margin-top:10px; }
.gm-widget-zone { padding:13px; border-radius:13px; background:#fff; border:1px solid #e1e5eb; }
.gm-widget-zone h3 { margin:4px 0 3px; color:#253043; font:700 1.15rem Poppins,sans-serif; }
.gm-widget-zone small { color:#7a8493; }
.gm-widget-list { padding:12px; border-radius:13px; background:#fff; border:1px solid #e1e5eb; }
.gm-widget-list h4 { margin:0 0 8px; color:#384355; font:700 .9rem Poppins,sans-serif; }
.gm-widget-item { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; border-top:1px solid #eef0f3; font-size:.84rem; }
.gm-widget-item:first-of-type { border-top:0; }
.gm-widget-item strong { color:#5b1b97; }
.gm-widget-item b { color:#495363; white-space:nowrap; font-size:.78rem; }
.gm-widget-next { margin-top:10px; min-height:56px; width:100%; border:0; border-radius:13px; padding:0 13px; color:#fff; background:linear-gradient(135deg,#6a11cb,#ff66b2); font:700 .9rem Poppins,sans-serif; cursor:pointer; }
.gm-widget-next:disabled { background:#b8bec8; cursor:not-allowed; }
.gm-widget-status { margin-top:9px; padding:10px 11px; border-radius:11px; background:#eef5ff; color:#2d5d82; font-size:.82rem; line-height:1.45; }

@media (max-width: 900px) {
  .availability-map-entry { align-items:stretch; flex-direction:column; }
  .availability-map-entry__button { width:100%; min-height:50px; }
  .gm-widget-overlay { padding:0; }
  .gm-widget-dialog { width:100%; height:100dvh; max-height:none; border-radius:0; grid-template-rows:auto auto minmax(0,1fr); }
  .gm-widget-toolbar { grid-template-columns:1fr; }
  .gm-widget-locate { width:100%; }
  .gm-widget-body { grid-template-columns:1fr; grid-template-rows:minmax(350px,50vh) auto; overflow:auto; }
  .gm-widget-map { min-height:350px; height:50vh; }
  .gm-widget-panel { overflow:visible; border-left:0; border-top:1px solid #e3e6eb; }
}
@media (max-width: 560px) {
  .gm-widget-head { min-height:60px; padding:10px 12px; }
  .gm-widget-head strong { font-size:1rem; }
  .gm-widget-head small { font-size:.74rem; }
  .gm-widget-toolbar { padding:9px; gap:8px; }
  .gm-widget-search { grid-template-columns:1fr; }
  .gm-widget-search input { font-size:16px; }
  .gm-widget-search button { min-height:46px; }
  .gm-widget-suggestions { right:0; top:104px; }
  .gm-widget-choice-buttons { grid-template-columns:1fr 1fr; }
  .gm-widget-choice-btn { min-height:58px; }
}

/* v3.1: modal musí byť použiteľný aj na mobile v landscape. */
.gm-widget-dialog { overscroll-behavior: contain; }
@media (max-width: 900px) {
  .gm-widget-dialog { overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .gm-widget-body { overflow:visible; }
}
@media (max-width: 1100px) and (orientation: landscape) and (max-height: 650px) {
  .gm-widget-overlay { align-items:stretch; overflow:hidden; padding:0; }
  .gm-widget-dialog { display:block; width:100%; height:100dvh; max-height:100dvh; overflow-y:auto; border-radius:0; }
  .gm-widget-head { position:sticky; top:0; z-index:60; min-height:50px; padding:6px 10px; background:#fff; }
  .gm-widget-head strong { font-size:.96rem; }
  .gm-widget-head small { display:none; }
  .gm-widget-close { width:38px; height:38px; font-size:1.25rem; }
  .gm-widget-toolbar { grid-template-columns:minmax(0,1fr) auto; gap:7px; padding:7px 10px; }
  .gm-widget-search { grid-template-columns:minmax(0,1fr) auto; gap:6px; }
  .gm-widget-search input,.gm-widget-search button,.gm-widget-locate { min-height:42px; }
  .gm-widget-search input { font-size:16px; }
  .gm-widget-locate { width:auto; white-space:nowrap; padding-inline:12px; }
  .gm-widget-suggestions { top:48px; right:0; max-height:180px; }
  .gm-widget-body { display:block; overflow:visible; }
  .gm-widget-map { height:50dvh; min-height:240px; }
  .gm-widget-panel { overflow:visible; padding:10px; border-left:0; border-top:1px solid #e3e6eb; }
  .gm-widget-choice { padding:10px; }
  .gm-widget-choice-buttons { margin-top:7px; }
  .gm-widget-choice-btn { min-height:48px; }
  .gm-widget-empty { padding:18px 10px; }
}
