/* LAB — Google мапа за сместување (D4, 17.09.2026), googlemap.js. Loaded by mapsplit.js together with the module, never by nginx.
   Mobile-first: phone (<=760 px wide and taller than 500 px) = the dialog on the whole screen, the map on top and a bottom sheet
   in normal flow under it (the sheet never covers the Google logo / attribution); wider or landscape = 340 px column + map.
   Every rule is scoped to .sv-lab-map-box / .svgm-* / .sv-lab-map-dialog.is-google; mapsplit.css is not overridden outside Google mode.
   Targets >= 44 px; filled buttons use --brand-accent-dark (#c25700, white 4.5:1). */
.sv-lab-map-box .sv-lab-map-workspace[hidden]{display:none!important}
.sv-lab-map-box .svgm-workspace{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0;overflow:hidden}
.sv-lab-map-box .svgm-canvas{position:relative;order:1;flex:1 1 auto;min-height:120px;min-width:0;background:#e2e8f0}
.sv-lab-map-box .svgm-map{position:absolute;inset:0}
.sv-lab-map-box .svgm-loading{margin:0;padding:16px;font-size:14px;line-height:1.4;color:#475569}

/* pins: visual 32 px, hit area 44 px (the button), anchored with the bottom of the pill on the point */
.sv-lab-map-box .svgm-pins{position:absolute;left:0;top:0;width:0;height:0}
.sv-lab-map-box .svgm-pin{position:absolute;left:0;top:0;transform:translate(-50%,calc(-100% + 6px));display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:44px;min-height:44px;height:44px;margin:0;padding:6px 0;border:0;border-radius:0;background:none;color:#10213d;cursor:pointer;font-family:var(--svgm-font,inherit);font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.sv-lab-map-box .svgm-pin>span{display:flex;align-items:center;height:32px;box-sizing:border-box;padding:0 10px;border-radius:16px;background:#fff;color:#10213d;border:2px solid #ff7900;box-shadow:0 2px 6px #0f172a4d}
.sv-lab-map-box .svgm-pin.is-cluster>span{background:#10213d;color:#fff;border-color:#fff}
/* a cluster of up to 3 hotels shows their prices, divided (googlemap.js SEP_W = 1 px + 2 × 6 px margin + air) */
.sv-lab-map-box .svgm-pin .svgm-price{font:inherit;font-weight:700}
.sv-lab-map-box .svgm-pin .svgm-sep{display:inline-block;flex:0 0 1px;width:1px;height:16px;margin:0 6px;background:currentColor;opacity:.45}
.sv-lab-map-box .svgm-pin.is-far>span{border-style:dashed}
.sv-lab-map-box .svgm-pin.is-temp>span{border:2px dashed #1a1a2e;background:#f1f5f9;color:#1a1a2e}
.sv-lab-map-box .svgm-pin.is-selected{z-index:3}
.sv-lab-map-box .svgm-pin.is-selected>span{background:var(--brand-accent-dark,#c25700);border-color:#fff;color:#fff;box-shadow:0 4px 14px #0006}
.sv-lab-map-box .svgm-pin:hover{z-index:4}
.sv-lab-map-box .svgm-pin:hover>span{box-shadow:0 0 0 3px #ff790059,0 2px 8px #0f172a66}
.sv-lab-map-box .svgm-pin:focus{outline:none}
.sv-lab-map-box .svgm-pin:focus-visible>span{outline:3px solid #2563eb;outline-offset:2px}

/* side: phone = bottom sheet in flow (peek · list · card · route) */
.sv-lab-map-box .svgm-side{order:2;position:relative;flex:0 0 auto;display:flex;flex-direction:column;min-height:0;min-width:0;background:#fff;color:#10213d;border-top:1px solid #dbe2ea;border-radius:14px 14px 0 0;box-shadow:0 -6px 18px #0f172a1f;font-size:14px;line-height:1.4}
.sv-lab-map-box .svgm-side[data-view=list]{max-height:58vh;max-height:58dvh}
.sv-lab-map-box .svgm-side[data-view=card]{max-height:52vh;max-height:52dvh}
.sv-lab-map-box .svgm-side[data-view=route]{height:76vh;height:76dvh}
.sv-lab-map-box .svgm-view{display:none;min-height:0;min-width:0}
.sv-lab-map-box .svgm-side[data-view=list] .svgm-list-view,.sv-lab-map-box .svgm-side[data-view=card] .svgm-card-view,.sv-lab-map-box .svgm-side[data-view=route] .svgm-route-view{display:flex;flex-direction:column;flex:1 1 auto}
.sv-lab-map-box .svgm-side[data-view=card] .svgm-bar,.sv-lab-map-box .svgm-side[data-view=route] .svgm-bar{display:none}
.sv-lab-map-box .svgm-bar{display:flex;align-items:center;gap:8px;min-height:60px;box-sizing:border-box;padding:8px 12px}
.sv-lab-map-box .svgm-summary{flex:1 1 auto;min-width:0;margin:0;font-size:14px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.sv-lab-map-box .svgm-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:44px;min-height:44px;padding:8px 14px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#10213d;font-size:14px;font-weight:700;line-height:1.25;text-align:center;text-decoration:none;cursor:pointer}
.sv-lab-map-box .svgm-btn:hover{background:#f1f5f9}
.sv-lab-map-box .svgm-btn.is-primary{background:var(--brand-accent-dark,#c25700);border-color:var(--brand-accent-dark,#c25700);color:#fff}
.sv-lab-map-box .svgm-btn.is-primary:hover{background:#a84b00;border-color:#a84b00}
.sv-lab-map-box .svgm-btn:disabled,.sv-lab-map-box .svgm-btn[aria-disabled=true]{background:#f1f5f9;color:#64748b;cursor:default}
.sv-lab-map-box .svgm-side :focus-visible{outline:3px solid #2563eb;outline-offset:2px}
.sv-lab-map-box .svgm-list-toggle,.sv-lab-map-box .svgm-fit-all{flex:0 0 auto}

/* list */
.sv-lab-map-box .svgm-list-only{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px 6px;font-size:13px;font-weight:600;color:#475569}
.sv-lab-map-box .svgm-list-only[hidden]{display:none}
.sv-lab-map-box .svgm-list{list-style:none;margin:0;padding:0 8px 10px;overflow:auto;flex:1 1 auto;min-height:0;overscroll-behavior:contain}
.sv-lab-map-box .svgm-row{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;box-sizing:border-box;margin:0;padding:6px;border:1px solid transparent;border-radius:10px;background:none;color:#10213d;text-align:left;font-size:14px;line-height:1.35;cursor:pointer}
.sv-lab-map-box .svgm-row:hover{background:#f1f5f9}
.sv-lab-map-box .svgm-row[aria-current=true]{background:#fff7ed;border-color:#fed7aa}
/* a cluster tap that cannot zoom further marks the rows of its hotels for a moment */
.sv-lab-map-box .svgm-row.is-hit{background:#fff7ed;border-color:#ff7900;transition:background-color .2s,border-color .2s}
.sv-lab-map-box .svgm-thumb{flex:0 0 56px;width:56px;height:42px;border-radius:8px;object-fit:cover;background:#e2e8f0;display:block}
.sv-lab-map-box .svgm-row-text{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}
.sv-lab-map-box .svgm-row-text strong{font-size:14px;overflow-wrap:anywhere}
.sv-lab-map-box .svgm-row-text span{font-size:13px;color:#475569;font-weight:600}
.sv-lab-map-box .svgm-empty{padding:10px 6px;font-size:13px;color:#475569}

/* card */
.sv-lab-map-box .svgm-head{display:flex;align-items:center;gap:8px;padding:8px 8px 6px 12px;flex:0 0 auto}
.sv-lab-map-box .svgm-head h3{flex:1 1 auto;min-width:0;margin:0;font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.sv-lab-map-box .svgm-head h3:focus{outline:none}
.sv-lab-map-box .svgm-close{flex:0 0 44px;padding:0;font-size:24px;font-weight:400;border-color:transparent;background:#f1f5f9}
.sv-lab-map-box .svgm-back{flex:0 0 auto;padding:8px 10px}
.sv-lab-map-box .svgm-card-body{display:flex;gap:10px;align-items:flex-start;overflow:auto;flex:1 1 auto;min-height:0;padding:0 12px 8px;overscroll-behavior:contain}
.sv-lab-map-box .svgm-photo{flex:0 0 88px;width:88px;height:66px;border-radius:10px;overflow:hidden;background:#e2e8f0;display:flex;align-items:center;justify-content:center;color:#334155;font-size:11px;line-height:1.3;text-align:center}
.sv-lab-map-box .svgm-photo img{display:block;width:100%;height:100%;object-fit:cover}
.sv-lab-map-box .svgm-photo.is-broken{padding:4px;box-sizing:border-box}
.sv-lab-map-box .svgm-card-main{flex:1 1 auto;min-width:0}
.sv-lab-map-box .svgm-flag{margin:0 0 6px;padding:6px 8px;border-radius:8px;background:#f1f5f9;color:#1a1a2e;font-size:13px;line-height:1.4}
.sv-lab-map-box .svgm-flag.is-warn{background:#fff7ed;color:#7c2d12;border:1px solid #fed7aa}
.sv-lab-map-box .svgm-offers{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.sv-lab-map-box .svgm-offer{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 8px;width:100%;min-height:44px;box-sizing:border-box;margin:0;padding:5px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#10213d;text-align:left;font-size:14px;line-height:1.3;cursor:pointer}
.sv-lab-map-box .svgm-offer:hover{background:#f8fafc;border-color:#cbd5e1}
.sv-lab-map-box .svgm-offer b{font-weight:800;white-space:nowrap}
.sv-lab-map-box .svgm-offer span{color:#475569;font-size:13px;overflow-wrap:anywhere}
.sv-lab-map-box .svgm-offer small{grid-column:1/-1;color:#64748b;font-size:12px;overflow-wrap:anywhere}
.sv-lab-map-box .svgm-actions{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px 12px;border-top:1px solid #eef2f6;flex:0 0 auto}
.sv-lab-map-box .svgm-actions .svgm-btn{flex:1 1 auto}

/* offer status in the card: the same three words as the result cards (svrail svRailOfferState) */
.sv-lab-map-box .svgm-status{display:block;font-size:12px;font-weight:700}
.sv-lab-map-box .svgm-status.is-avl{color:#15803d}
.sv-lab-map-box .svgm-status.is-rq{color:#a65100}
.sv-lab-map-box .svgm-status.is-stop{color:#b42318}

/* price strip: only in the phone peek sheet (below); one chip per hotel, the chip is as wide as its price, the name is cut */
.sv-lab-map-box .svgm-strip{display:none}
.sv-lab-map-box .svgm-strip[hidden]{display:none!important}

/* route */
.sv-lab-map-box .svgm-route-view{overflow:auto;overscroll-behavior:contain;padding-bottom:10px}
.sv-lab-map-box .svgm-chips{display:flex;flex-wrap:wrap;gap:6px;padding:2px 12px 4px}
.sv-lab-map-box .svgm-chip{min-height:44px;min-width:44px;box-sizing:border-box;margin:0;padding:8px 13px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#10213d;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer}
.sv-lab-map-box .svgm-chip[aria-pressed=true]{background:#10213d;border-color:#10213d;color:#fff}
.sv-lab-map-box .svgm-custom{display:flex;gap:6px;padding:4px 12px}
.sv-lab-map-box .svgm-custom[hidden]{display:none}
.sv-lab-map-box .svgm-custom input,.sv-lab-map-box .svgm-route-row select{min-height:44px;min-width:0;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#10213d;padding:8px 10px;font:inherit;font-size:16px}
.sv-lab-map-box .svgm-custom input{flex:1 1 auto}
.sv-lab-map-box .svgm-route-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:4px 12px}
.sv-lab-map-box .svgm-open{white-space:nowrap}
.sv-lab-map-box .svgm-route-note{margin:4px 12px;font-size:13px;line-height:1.4;color:#475569;overflow-wrap:anywhere}
.sv-lab-map-box .svgm-frame{flex:1 1 auto;min-height:200px;margin:4px 12px 0;border-radius:10px;overflow:hidden;background:#e2e8f0}
.sv-lab-map-box .svgm-frame[hidden]{display:none}
.sv-lab-map-box .svgm-frame iframe{display:block;width:100%;height:100%;min-height:200px;border:0}

/* phone: the whole screen for the map, compact header (56 px), no footer (its "fit" lives in the sheet as „Сите") */
@media (max-width:760px) and (min-height:501px){
 .sv-lab-map-dialog.is-google{padding:0}
 .sv-lab-map-dialog.is-google .sv-lab-map-box{width:100%;height:100vh;height:100dvh;border-radius:0}
 .sv-lab-map-dialog.is-google .sv-lab-map-box header{min-height:56px;box-sizing:border-box;padding:6px 6px 6px 12px}
 .sv-lab-map-dialog.is-google .sv-lab-map-box h2{font-size:17px;margin:0}
 .sv-lab-map-dialog.is-google .sv-lab-map-count{display:none}
 .sv-lab-map-dialog.is-google .sv-lab-map-box footer{display:none}
 /* route: the sheet takes what the header and a 24 % map strip leave, never more (76dvh + 120 px canvas + 57 px header ran
    23 px past the bottom at 320×640, measured 17.09); its content scrolls inside */
 .sv-lab-map-box .svgm-side[data-view=route]{height:auto;flex:1 1 auto;min-height:0}
 .sv-lab-map-box .svgm-side[data-view=route]~.svgm-canvas{flex:0 0 auto;height:24vh;height:24dvh;min-height:110px}

 /* verify 17.09 (D4-г): at 320-390 px the fitted resort is one pin, so the peek sheet lists every hotel's price (≥3 at 390) */
 .sv-lab-map-box .svgm-side[data-view=peek] .svgm-strip{display:flex;gap:8px;margin:0;padding:8px 12px 6px;padding-bottom:max(6px,env(safe-area-inset-bottom));list-style:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
 .sv-lab-map-box .svgm-strip::-webkit-scrollbar{display:none}
 .sv-lab-map-box .svgm-strip>li{flex:0 0 auto;scroll-snap-align:start}
 .sv-lab-map-box .svgm-strip-item{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-width:96px;min-height:48px;box-sizing:border-box;margin:0;padding:5px 9px;border:1px solid #dbe2ea;border-radius:10px;background:#fff;color:#10213d;text-align:left;cursor:pointer;font-family:inherit}
 .sv-lab-map-box .svgm-strip-item span{display:block;width:0;min-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;line-height:1.3;color:#475569}
 .sv-lab-map-box .svgm-strip-item b{font-size:14px;font-weight:800;line-height:1.3;white-space:nowrap}
 .sv-lab-map-box .svgm-strip-item[aria-current=true]{border-color:#ff7900;background:#fff7ed}
 .sv-lab-map-box .svgm-strip-item:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
}
/* wide or landscape: 340 px column (list / card / route) + map; the footer keeps „Сите видливи понуди" */
@media (min-width:761px),(max-height:500px){
 .sv-lab-map-box .svgm-workspace{display:grid;grid-template-columns:340px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
 .sv-lab-map-box .svgm-side{grid-column:1;grid-row:1;height:auto!important;max-height:none!important;border-top:0;border-right:1px solid #dbe2ea;border-radius:0;box-shadow:none;background:#f8fafc}
 .sv-lab-map-box .svgm-canvas{grid-column:2;grid-row:1}
 .sv-lab-map-box .svgm-bar{display:none!important}
 .sv-lab-map-box .svgm-list-view{padding-top:8px}
 .sv-lab-map-box .svgm-card-body{display:block}
 .sv-lab-map-box .svgm-photo{width:100%;height:auto;aspect-ratio:16/10;margin:0 0 10px}
 .sv-lab-map-box .svgm-row:hover{background:#eef2f6}
 .sv-lab-map-box .svgm-frame{min-height:300px}
}
@media (max-height:500px){
 .sv-lab-map-box .svgm-workspace{grid-template-columns:280px minmax(0,1fr)}
 .sv-lab-map-box .svgm-frame,.sv-lab-map-box .svgm-frame iframe{min-height:180px}
}
/* verify 17.09: on 320×568 and on a landscape phone the route iframe sat below the fold of the sheet; on a short screen it
   comes right after the heading, the origin chips follow it */
@media (max-height:600px){
 .sv-lab-map-box .svgm-route-view>*{order:2}
 .sv-lab-map-box .svgm-route-view>.svgm-head{order:0}
 .sv-lab-map-box .svgm-route-view>.svgm-frame{order:1;margin-top:0;margin-bottom:6px}
}

@media (prefers-reduced-motion:reduce){.sv-lab-map-box .svgm-pin>span{transition:none}}

/* C67: the desktop split dock is a narrow map viewport, with a compact sheet. */
.sv-lab-map-dialog.is-dock.is-google .svgm-workspace{display:flex;flex-direction:column;min-height:0}
.sv-lab-map-dialog.is-dock.is-google .svgm-canvas{order:1;flex:1 1 auto;min-height:160px}
.sv-lab-map-dialog.is-dock.is-google .svgm-side{order:2;flex:0 0 auto;height:auto!important;max-height:52%!important;border:0;border-top:1px solid #dbe2ea;border-radius:12px 12px 0 0}
.sv-lab-map-dialog.is-dock.is-google .svgm-side[data-view=peek]{max-height:105px!important}
.sv-lab-map-dialog.is-dock.is-google .svgm-list-toggle{display:inline-flex}
.sv-lab-map-dialog.is-dock.is-google .svgm-side[data-view=peek] .svgm-strip{display:flex;gap:8px;margin:0;padding:6px 12px;list-style:none;overflow-x:auto}
.sv-lab-map-dialog.is-dock.is-google .svgm-side[data-view=route]{height:52%!important}

/* C67: reuse the existing route/search/waypoint surface with either renderer. */
.sv-lab-map-dialog.has-shared-workspace .sv-lab-map-workspace{position:relative;display:flex;flex:1 1 auto;min-height:0;min-width:0;overflow:hidden}
.sv-lab-map-dialog.has-shared-workspace .sv-lab-map-canvas[hidden]{display:none!important}
.sv-lab-map-dialog.has-shared-workspace .svgm-workspace{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column}
.sv-lab-map-dialog.has-shared-workspace .svgm-canvas{order:1;flex:1 1 auto;min-height:120px}
.sv-lab-map-dialog.has-shared-workspace .svgm-side{order:2;max-height:45%!important;flex:0 0 auto;border:0;border-top:1px solid #dbe2ea;border-radius:12px 12px 0 0}
.sv-lab-map-dialog.has-shared-workspace .svgm-side[data-view=peek] .svgm-list-view{display:none}
.sv-lab-map-dialog.has-shared-workspace .svgm-list-toggle{display:inline-flex}
.sv-lab-map-dialog.has-shared-workspace .sv-lab-map-route-panel{z-index:1050}
@media(min-width:1024px){.sv-lab-map-dialog.has-shared-workspace:not(.is-dock) .sv-lab-map-route-panel{flex:0 0 330px;width:330px;box-sizing:border-box}.sv-lab-map-dialog.has-shared-workspace:not(.is-dock) .sv-lab-map-route-panel:not([open]){flex-basis:230px;width:230px}}
