#live-map{position:absolute;inset:0;z-index:1;background:#e9ede5}.map-canvas{display:none}.map-top,.map-actions,.map-hint,.map-request,.map-selection,.map-error{z-index:1001}.map-top{right:80px}.map-actions{position:absolute;right:14px;top:96px;display:flex;flex-direction:column;gap:7px}.map-actions button{border:1px solid #dedfd8;background:white;border-radius:7px;padding:10px;font-size:11px;box-shadow:0 2px 8px #0001}.map-panel{min-height:640px;position:sticky;top:95px;align-self:start;height:calc(100vh - 115px);max-height:850px}.price-marker{background:white;border:1px solid #ccd1c8;border-radius:9px;box-shadow:0 5px 14px #071b3920;color:var(--navy);font:800 13px/36px sans-serif;text-align:center}.price-marker::after{content:'';position:absolute;left:35px;bottom:-7px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid white}.price-marker.selected{background:var(--navy);color:white;border-color:var(--navy)}.price-marker.selected::after{border-top-color:var(--navy)}.price-marker.full{color:#6b7568}.map-selection{position:absolute;bottom:118px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px;background:white;border-radius:12px;box-shadow:0 8px 25px #071b3920}.map-selection strong{display:block;font-size:16px;margin:9px 0}.map-selection small{font-size:11px;color:#738077}.map-selection button{background:var(--navy);color:white;border:0;border-radius:7px;padding:12px;font-size:11px;white-space:nowrap}.map-hint{bottom:84px;background:#ffffffdf;margin:0 15px;padding:6px 10px;border-radius:6px;line-height:1.6}.map-request{bottom:33px}.map-error{position:absolute;left:15px;right:15px;top:60px;background:#fff4dd;border-radius:6px;padding:10px;font-size:12px}.sort-label{display:flex;gap:8px;align-items:center;font-size:11px;color:#647168;margin-left:auto}.sort-label select{padding:9px;border:1px solid #dedfd8;border-radius:7px;background:white;color:var(--navy);font-size:12px}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:10px!important}.leaflet-control-zoom{margin:16px!important}.leaflet-container.selecting{cursor:crosshair}.finder-heading .demo-badge{display:none}.finder-heading h1{font-size:30px}.finder-main{padding-top:28px}.demo-note{margin-bottom:15px}.parking-card{min-height:190px}.map-pin.selected{outline:2px solid white}
@media(max-width:1000px){.map-panel{position:relative;top:auto;height:580px;min-height:580px;max-height:none}.map-selection{left:12px;right:12px;bottom:127px;padding:12px}.map-selection strong{font-size:14px}.map-selection small{font-size:10px}.map-selection button{padding:10px;font-size:10px}.map-hint{bottom:85px;font-size:10px}.map-request{bottom:37px}.map-top>span:first-child{font-size:8px;padding:9px}.map-actions{right:12px;top:94px}.finder-heading h1{font-size:28px}.sort-label{margin-left:0;align-self:flex-end}.finder-layout[data-view=map] .parking-card{display:none}.finder-layout[data-view=map] .results-heading{display:none}.finder-layout[data-view=map] .request-card{margin-top:0}.view-switch{position:sticky;top:75px;z-index:1002}.finder-toolbar{gap:10px}.map-selection{flex-wrap:wrap}.map-selection button{margin-left:auto}}
.request-location-pin{background:var(--red);color:white;display:grid;place-items:center;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:3px solid white;box-shadow:0 4px 12px #071b3933}.request-location-pin span{transform:rotate(45deg);font-size:18px}.leaflet-popup-content strong{display:block;margin:0 0 10px;font-size:12px}.leaflet-popup-content button{border:0;border-radius:8px;padding:12px;background:var(--navy);color:white;font:700 12px sans-serif;cursor:pointer}.leaflet-popup-content{margin:16px}.request-location-pin:focus-visible{outline:3px solid var(--navy)}
.request-location-pin{background:none;border:0;border-radius:0;box-shadow:none}.request-location-pin svg{width:38px;height:46px;filter:drop-shadow(0 3px 4px #071b3933)}

/* Keep the map sized when its grid becomes a vertical flex layout. */
.map-panel{width:100%;min-width:0;isolation:isolate}
.finder-body [hidden]{display:none!important}
@media(max-width:1000px){
 .map-panel{align-self:stretch;flex-shrink:0;height:clamp(380px,65svh,520px);min-height:380px}
 .view-switch{position:static;width:100%;align-self:stretch;z-index:auto}
 .view-switch button{flex:1;min-height:44px;padding:10px 16px}
 .finder-body .brand{gap:8px;font-size:15px;white-space:nowrap}
 .finder-body .brand img{width:38px;height:38px}
 .request-header{max-width:150px;min-height:44px}
 .map-top{right:64px}
 .map-top>span:first-child{line-height:1.5;max-width:100%}
 .map-selection{bottom:120px}
 .map-hint{left:0;right:0;bottom:77px}
 .map-request{bottom:28px;max-width:calc(100% - 24px);white-space:normal}
 .map-actions{top:74px}
 .finder-heading h1{font-size:clamp(24px,7vw,28px)}
}

/* Map UI lives outside the camera so it never covers markers or routes. */
.map-panel{height:auto;min-height:0;overflow:visible;background:white}
.map-viewport{position:relative;height:clamp(400px,65vh,660px);overflow:hidden;border-radius:16px 16px 0 0;isolation:isolate}
.map-controls{padding:14px;border-top:1px solid #dedfd8;border-radius:0 0 16px 16px;background:white}
.map-controls .map-hint{position:static;margin:0 0 10px;padding:0;background:none;color:#67746c;font-size:11px;line-height:1.6;text-align:left}
.map-controls .map-selection{position:static;padding:0;margin:0 0 12px;border-radius:0;box-shadow:none}
.map-controls .map-selection strong{margin:5px 0;font-size:14px}
.map-controls .map-request{position:static;display:block;width:100%;max-width:none;transform:none;margin:0;box-shadow:none;border-radius:8px;padding:13px;font-size:12px}
.map-actions{top:105px;right:10px;gap:4px}
.map-actions button{width:36px;height:36px;padding:0;font-size:22px;line-height:1}
.map-top{top:10px;left:10px;right:60px}
.map-top>span:first-child{padding:7px 9px;font-size:10px;box-shadow:none}
.price-marker{width:72px;height:36px;font:800 12px/34px sans-serif;border-radius:8px}
.price-marker::after{left:29px}
.request-location-pin{width:38px;height:46px;transform:none}
.maplibregl-ctrl-attrib{font-size:9px}
.maplibregl-ctrl-top-right .maplibregl-ctrl{margin:10px}
.maplibregl-ctrl-group button{width:36px;height:36px}
#live-map.selecting .maplibregl-canvas-container{cursor:crosshair}
@media(max-width:1000px){
 .map-panel{height:auto;min-height:0}
 .map-viewport{height:clamp(360px,58svh,460px)}
 .map-controls{padding:12px}
 .map-top>span:first-child{font-size:9px}
 .map-actions{top:90px}
 .map-selection button{margin-left:0}
}

.spot-actions{display:flex;flex-direction:column;gap:8px;min-width:150px}
.payment-button{display:block;background:var(--navy);color:white;border:0;border-radius:8px;padding:13px 16px;text-align:center;text-decoration:none;font:700 12px/1.5 sans-serif;cursor:pointer}
.payment-button:disabled,.map-selection .payment-button:disabled{background:#eef0ed;color:#69756d;cursor:default;white-space:normal}
.payment-button:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.detail-payment{margin:20px 0}.detail-payment .payment-button{width:100%;box-sizing:border-box;font-size:14px}
@media(max-width:1000px){.spot-actions{width:100%;flex-direction:row;flex-wrap:wrap}.spot-actions .payment-button{flex:1;min-width:160px}.map-controls .map-selection{flex-wrap:wrap}}

/* Desktop: only the inventory column scrolls; map controls stay in view. */
.map-controls .map-selection>div{min-width:0}
.map-controls .map-selection strong{line-height:1.5;overflow-wrap:anywhere}
.map-controls .map-selection small{display:block;line-height:1.6}
.map-controls .map-selection>button{flex:0 0 auto;min-height:42px;padding:10px 18px}
@media(min-width:1001px){
 .finder-body{height:100dvh;overflow:hidden;display:flex;flex-direction:column}
 .finder-body .site-header{flex:none;position:relative}
 .finder-body .header-inner{min-height:68px}
 .finder-main{width:100%;flex:1;min-height:0;display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr) auto;padding:16px 24px 10px}
 .finder-heading .eyebrow{margin:0 0 5px}
 .finder-heading h1{font-size:25px}
 .finder-heading p:not(.eyebrow){margin:7px 0;font-size:12px}
 .demo-note{margin:3px 0 10px}
 .search-bar{width:100%;padding-top:5px;padding-bottom:5px}
 .finder-toolbar{margin:10px 0;align-items:center}
 .finder-layout{min-height:0;overflow:hidden;grid-template-columns:320px minmax(0,1fr);gap:18px}
 .results{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 10px 8px 2px;scrollbar-gutter:stable}
 .map-panel{position:relative;top:auto;align-self:stretch;height:100%;max-height:none;min-height:0;display:flex;flex-direction:column;overflow:hidden}
 .map-viewport{flex:1;min-height:0;height:auto}
 .map-controls{flex:none;padding:10px 14px}
 .map-controls .map-selection{gap:12px;margin-bottom:8px}
 .map-controls .map-selection strong{font-size:14px;margin:4px 0}
 .map-controls .map-hint{font-size:10px;margin-bottom:7px}
 .map-controls .map-request{padding:10px}
 .finder-foot{padding:8px 0 0}
 .parking-card{min-height:0;padding:15px}
}
@media(min-width:1001px) and (max-height:740px){
 .finder-heading .eyebrow,.finder-heading p:not(.eyebrow){display:none}
 .finder-heading h1{font-size:22px}
 .demo-note{font-size:10px;margin:4px 0 7px}
 .finder-main{padding-top:10px}
 .finder-foot{display:none}
 .finder-toolbar{margin:8px 0}
}
@media(max-width:1000px){
 .map-controls .map-selection{flex-wrap:nowrap;align-items:center;gap:10px}
 .map-controls .map-selection>button{padding:10px 12px;font-size:11px}
 .map-controls .map-selection strong{font-size:13px}
}

/* Keep search and title on one row and dedicate the height to the map. */
.map-controls .map-hint:empty{display:none}
.finder-heading p:not(.eyebrow){display:none}
@media(min-width:1001px){
 .finder-main{grid-template-rows:auto auto minmax(0,1fr) auto;padding-top:12px}
 .finder-search-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,480px);gap:24px;align-items:center}
 .finder-heading .eyebrow{display:none}
 .finder-heading h1{font-size:clamp(18px,1.8vw,25px);line-height:1.5}
 .finder-heading h1 span{margin-left:6px}
 .finder-search-heading .search-bar{max-width:none;margin:0;padding:4px 6px 4px 14px}
 .finder-search-heading .search-bar button{padding:11px 18px}
 .finder-foot{display:none}
 .finder-toolbar{margin:10px 0}
 .map-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:center;padding:12px 14px}
 .map-controls .map-hint{grid-column:1/-1;margin:0}
 .map-controls .map-selection{margin:0}
 .map-controls .map-request{width:auto;padding:12px 15px}
}
@media(min-width:1001px) and (max-width:1100px){
 .finder-search-heading{grid-template-columns:minmax(0,1fr) 340px;gap:14px}
 .finder-layout{grid-template-columns:290px minmax(0,1fr)}
 .map-controls{grid-template-columns:minmax(0,1fr)}
 .map-controls .map-request{width:100%;padding:9px}
}
@media(max-width:1000px){
 .finder-search-heading .search-bar{margin-top:16px}
 .finder-heading .eyebrow{margin-bottom:8px}
 .finder-heading h1{font-size:24px}
}

/* Compact inventory cards: information left, monthly price right. */
.parking-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;min-height:0;padding:16px}
.parking-card .card-top{grid-column:1/-1;justify-content:flex-end;margin-bottom:4px}
.parking-card h3{grid-column:1;grid-row:2;font-size:15px;line-height:1.5;margin:5px 0}
.parking-card .spot-address{grid-column:1;grid-row:3;line-height:1.6}
.parking-card .tags{grid-column:1/-1;grid-row:4;margin:10px 0 0}
.parking-card .card-bottom{grid-column:2;grid-row:2/4;align-self:center;display:block;margin:0;text-align:right}
.parking-card .price{font-size:21px;white-space:nowrap}
.parking-card .price small{display:block;font-size:10px;margin:2px 0 0}
.parking-card .card-arrow{display:none}

.parking-card h3{grid-row:1;margin:0 0 5px}
.parking-card .spot-address{grid-row:2}
.parking-card .tags{grid-row:3}
.parking-card>.availability{grid-column:2;grid-row:1;justify-self:end;align-self:start;white-space:nowrap}
.parking-card .card-bottom{grid-row:2/4;align-self:center}
.request-card{padding:20px;margin-top:16px}
.request-card h3{margin:0 0 10px;font-size:17px;line-height:1.6}
.request-card p{margin:0 0 14px;line-height:1.8}
.request-card button{margin:0;padding:14px 0 0}

@media(min-width:1001px){
 .results{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;padding:0;scrollbar-gutter:auto}
 .results-heading{padding:2px 10px 0 2px;margin-bottom:12px}
 .results-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:2px 10px 2px 2px}
 .results>.request-card{margin:12px 0 0;padding:16px 18px}
 .results>.request-card h3{font-size:15px;margin-bottom:7px}
 .results>.request-card p{margin-bottom:10px}
 .results>.request-card button{padding-top:11px}
}

.place-choices{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;max-height:160px;overflow-y:auto}
.place-choices button{border:1px solid #d1d8cd;border-radius:7px;background:white;color:var(--navy);font-size:12px;padding:9px 12px;text-align:left}
@media(max-width:1000px){.map-panel{scroll-margin-top:80px}}
