:root{font:14px/1.5 system-ui,sans-serif;color:#183249;background:#f5f8fa}*{box-sizing:border-box}body{margin:0}header{height:70px;background:#17364b;color:white;display:flex;justify-content:space-between;align-items:center;padding:12px 24px;gap:12px}header b{font-size:22px}header span{display:block;color:#cbdce7;font-size:12px}a{color:#087767}header a{color:#e1f6f0;margin-left:16px}main{height:calc(100dvh - 112px);position:relative;display:flex}aside{width:310px;flex-shrink:0;overflow:auto;padding:16px;background:white;z-index:2;box-shadow:2px 0 10px #0001}#map{flex:1}h2{margin:10px 0;font-size:20px}fieldset{border:1px solid #dde6eb;border-radius:9px;padding:12px;margin:18px 0}legend{font-weight:700}label{display:block;margin:7px 0}input[type=search],select{width:100%;padding:9px;border:1px solid #b7c8d1;border-radius:6px}button{background:#e9f2f4;color:#17364b;border:1px solid #bad0d5;border-radius:6px;padding:8px 12px;cursor:pointer}button:hover{background:#d2e8e8}.note{font-size:12px;color:#627784}footer{height:42px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;border-top:1px solid #ddd;background:white;font-size:12px}#detail{position:absolute;right:16px;top:16px;width:440px;max-height:calc(100% - 32px);overflow:auto;background:white;box-shadow:0 8px 40px #0003;border-radius:12px;padding:20px;z-index:3}#closeDetail{float:right}.badge{display:inline-block;background:#e7f6e9;padding:3px 8px;border-radius:8px}.warning{background:#fff3ce}.candidate{border:1px solid #dce5ec;border-radius:8px;padding:10px;margin:10px 0}.candidate strong{display:block}.candidate.match{border-color:#67a9df;background:#f1f8fd}.evidence{white-space:pre-wrap;font-size:12px;border-left:3px solid #9fb6c4;padding:8px;overflow-wrap:anywhere}dialog{max-width:570px;border:0;border-radius:14px;padding:28px;box-shadow:0 8px 50px #0005}dialog::backdrop{background:#112d4670}.maplibregl-popup-content{font-family:system-ui;padding:15px;max-width:320px}.records{max-width:1200px;margin:30px auto;padding:20px}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;padding:9px;border-bottom:1px solid #dce5ea;vertical-align:top}th{background:#e9f2f4}#collapse{width:100%}aside.collapsed{width:125px}aside.collapsed #filters{display:none}@media(max-width:700px){header{padding:10px 12px}header b{font-size:18px}header nav{font-size:11px}aside{position:absolute;top:10px;left:10px;width:255px;max-height:65%;border-radius:10px}#detail{right:8px;top:8px;width:calc(100% - 16px);max-height:80%}footer{height:55px;display:block;padding:5px 10px}footer span{display:block}main{height:calc(100dvh - 125px)}}
:root{--card-width:400px}
.map-page{font-family:Arial,sans-serif;color:#172b3b;background:#eef2f5}.map-page header{height:64px;background:#172b3b;padding:12px 24px}.map-page header strong{font-size:20px;letter-spacing:3px}.map-page main{height:calc(100dvh - 136px);display:block;position:relative}.map-page #map{position:absolute;inset:0;width:100%;height:100%}.map-page aside.panel{position:absolute;top:16px;left:16px;width:294px;max-height:calc(100% - 32px);padding:16px;border-radius:10px;box-shadow:0 3px 18px #172b3b35;z-index:2;flex:none}.map-page #controls.collapsed{width:294px}.map-page #collapse{width:auto}.map-page .panel-title h1{font-size:19px;margin:0}.map-page #filters .note{font-size:11px;line-height:1.5}.map-page .license-filters{border-top:1px solid #e4e9ee;margin-top:16px;padding-top:12px}.map-page summary{cursor:pointer;font-size:13px;font-weight:700}.map-page #hostPanel{right:54px;left:auto;width:340px}.map-page #hostPanel>details>summary{font-size:14px}.map-page #hostSearch{margin:10px 0}.map-page #clearHost{margin-top:8px}.map-page .host-column-labels,.map-page .host-row{display:grid;grid-template-columns:minmax(100px,1fr) 44px 78px;gap:7px;align-items:center}.map-page .host-row{padding:3px 0;margin:0}.map-page .host-name{background:transparent;text-align:left;overflow-wrap:anywhere}.map-page .host-count{display:block;padding:5px;background:#fecaca;color:#991b1b;border:1px solid #dc2626;border-radius:5px;text-align:center}.map-page .host-metric{display:block;padding:5px;background:#fff8cc;border:1px solid #e7c84b;border-radius:5px;text-align:center}.map-page #statusbar{height:72px;min-height:72px;max-height:none;width:100%;background:#172b3b;color:#eef6fa;padding:10px 16px;overflow:auto;z-index:3}.map-page #statusbar>span:last-child{text-align:right}.map-page .theme-switch{display:inline-flex;margin:3px 0 0 10px;gap:4px;font-size:11px}.map-page #detail{left:50%;right:auto;top:50%;width:var(--card-width);max-height:calc(100% - 28px);transform:translate(-50%,-50%);border:2px solid #172b3b;border-radius:10px;padding:18px;box-shadow:0 6px 30px #172b3b45;transition:left 320ms ease,transform 320ms ease;z-index:4}.map-page #detail h2{font-size:18px;text-transform:none;letter-spacing:0;margin:0 30px 12px 0}.map-page #detail h3{font-size:13px;margin:16px 0 8px}.map-page #detail.preview-docked{left:12px;transform:translate(0,-50%)}.map-page.match-exploration #controls{visibility:hidden;pointer-events:none}.map-page .property-associations{border-top:1px solid #d5e0e7;margin-top:16px;padding-top:14px}.map-page .property-associations>summary{font-size:14px;color:#096b88;line-height:1.5}.map-page #exitMatches{margin-top:12px}.map-page .candidate{padding:10px;border-radius:6px;font-size:12px}.map-page #closeDetail{font-size:24px;line-height:26px;padding:0;width:34px;height:34px}.map-page.dark-mode #detail,.map-page.dark-mode aside{background:#17232d;color:#e2e8f0}.map-page.dark-mode .candidate{background:#17232d;border-color:#496273}.map-page.dark-mode .candidate.match{background:#183547}.map-page.dark-mode .note{color:#b3c1ca}.map-page.dark-mode .badge{color:#123b26}.map-page.dark-mode .property-associations>summary{color:#79c9e8}@media(max-width:700px){.map-page header{padding:10px 12px}.map-page header strong{font-size:18px}.map-page header nav{font-size:11px}.map-page main{height:calc(100dvh - 154px)}.map-page aside.panel,.map-page #controls.collapsed{width:260px;top:10px;left:10px;max-height:calc(100% - 20px)}.map-page #hostPanel{right:10px;left:auto;top:76px;width:260px;max-height:calc(100% - 86px)}.map-page #detail,.map-page #detail.preview-docked{left:10px;right:10px;top:10px;transform:none;width:calc(100% - 20px);max-height:calc(100% - 20px)}.map-page #statusbar{height:90px;min-height:90px;display:flex;align-items:flex-start}.map-page #statusbar>span:last-child{text-align:left}}@media(prefers-reduced-motion:reduce){.map-page #detail{transition:none}}

.map-page .explore-panel-actions{display:flex;align-items:center;gap:4px}.map-page .panel-title h1{font-size:17px;white-space:nowrap}.map-page .clear-filter{background:#dc2626;border-color:#991b1b;color:#fff;font-size:11px;font-weight:700;padding:6px 7px}.map-page .clear-filter:hover{background:#b91c1c}.map-page #clearHost{margin:0}.map-page .hosts-heading{display:flex;justify-content:space-between;gap:8px;align-items:center}.map-page #hostMenu{margin-top:7px}.map-page #hostMenu>summary{font-size:12px}.map-page #cookiePrompt{position:fixed;left:16px;bottom:88px;width:min(550px,calc(100vw - 32px));max-height:45vh;overflow:auto;background:white;color:#172b3b;border:1px solid #bccbd6;border-radius:10px;box-shadow:0 5px 25px #172b3b40;padding:16px;z-index:8;font-size:13px;margin:0}.map-page #acceptCookies{background:#087f8c;color:white;font-weight:700}.map-page.dark-mode #cookiePrompt{background:#17232d;color:#e2e8f0}.map-page #cookieSettings{font-size:11px;padding:3px 6px}@media(max-width:700px){.map-page #controls.collapsed{width:calc(100% - 20px);max-width:294px}.map-page #hostPanel{top:76px}.map-page #cookiePrompt{bottom:100px}}

.map-page #detail{padding:12px 14px;width:380px;--card-width:380px;font-size:12px;line-height:1.4}.map-page #detail h2{font-size:16px;line-height:1.3;margin:0 28px 7px 0}.map-page #detail .listing-link{margin:5px 0 7px}.map-page .listing-host-sticky{position:sticky;top:-12px;z-index:2;background:white;border-bottom:1px solid #d5e0e7;margin:0 -14px 8px;padding:9px 14px;display:flex;align-items:center;justify-content:space-between;gap:6px}.map-page .listing-host-sticky b{font-size:13px}.map-page #selectHost{font-size:11px;padding:4px 6px}.map-page .listing-facts{line-height:1.55}.map-page .property-associations{margin-top:10px;padding-top:10px}.map-page #detail h3{margin:10px 0 5px;font-size:12px}.map-page #exitMatches{font-size:11px;padding:4px 7px;margin-top:6px}.map-page .candidate-explanation{margin:4px 0 8px;font-size:11px}.map-page .name-filter{margin:5px 0;font-size:11px}.map-page .candidate{padding:7px 8px;margin:6px 0;line-height:1.35;font-size:11px}.map-page .candidate strong{font-size:12px;margin-bottom:2px}.map-page .candidate-owner{display:block;font-weight:700;margin-bottom:4px}.map-page .candidate-distance{font-size:11px}.map-page .candidate button{font-size:11px;padding:4px 6px;margin-top:4px}.map-page .evidence{padding:5px;font-size:11px}.map-page #evidenceSection{border:0;padding:0;margin:0}.map-page.dark-mode .listing-host-sticky{background:#17232d;border-color:#496273}@media(max-width:700px){.map-page #detail,.map-page #detail.preview-docked{width:calc(100% - 20px)}}

.map-page .host-column-labels,.map-page .host-row{grid-template-columns:minmax(100px,1fr) 38px 67px 36px;gap:5px}.map-page .host-cap-number{background:#fecaca;border-color:#dc2626;color:#991b1b;font-size:11px;font-weight:700;padding:5px 2px}.map-page .occupancy-cap{font-size:11px;color:#607483}.map-page .occupancy-cap.over{color:#dc2626;font-weight:bold}

/* Keep menu controls fixed while their contents scroll independently. */
.map-page aside.panel{overflow:visible;display:flex;flex-direction:column;padding:12px 14px}.map-page .panel-title,.map-page .hosts-heading{flex:none}.map-page #filters{overflow:auto;max-height:calc(100dvh - 240px);margin-top:8px}.map-page #hostMenu{min-height:0}.map-page #hostMenu>summary{padding:8px 0;background:white}.map-page #hostContent{overflow:auto;max-height:calc(100dvh - 290px);padding-right:4px}.map-page #hostPanel{width:390px}.map-page .host-column-labels,.map-page .host-row{grid-template-columns:minmax(100px,1fr) 36px 65px 92px}.map-page .capacity-count{color:#dc2626;font-weight:bold}.map-page .match-preview{margin:10px 0;padding:8px 0;border-top:1px solid #d5e0e7;font-size:11px}.map-page .match-preview>div{padding:5px 8px;margin-top:5px;background:#edf7f4;border-left:3px solid #087f8c}.map-page #detail:not(.preview-docked){width:400px;padding:14px 16px}.map-page #detail:not(.preview-docked) h2{font-size:18px}.map-page .listing-facts{padding:6px 0}.map-page.dark-mode #hostMenu>summary{background:#17232d}.map-page.dark-mode .match-preview>div{background:#183547}@media(max-width:700px){.map-page #hostPanel{width:calc(100% - 20px);top:86px}.map-page #hostContent{max-height:calc(100dvh - 360px)}.map-page #detail:not(.preview-docked){width:calc(100% - 20px)}}

@keyframes filter-pulse{0%,100%{box-shadow:0 0 0 0 #dc262640}50%{box-shadow:0 0 0 5px #dc262620}}.map-page .clear-filter:not([hidden]),.map-page button.filter-active{background:#dc2626;color:white;border-color:#b91c1c;animation:filter-pulse 1.6s ease-in-out infinite}.map-page button.filter-active .capacity-count{color:white}@media(prefers-reduced-motion:reduce){.map-page .clear-filter,.map-page button.filter-active{animation:none}}

.map-page #filters{overflow-x:hidden}.map-page .initial-license-match{font-size:12px;color:#087f65}.map-page #minOver{min-width:0;max-width:100%}

.map-page .party-controls{padding:8px 10px;margin:5px 0 10px;background:#f0f6f8;border:1px solid #bdcdd7;border-radius:5px}.map-page .party-controls label{font-size:11px;margin:5px 0}.map-page .hosts-heading b{font-size:12px}.map-page.dark-mode .party-controls{background:#183547}

.map-page .host-sort-controls{display:flex;align-items:center;gap:6px;margin:0 0 6px}.map-page .host-sort-controls label{font-size:11px;white-space:nowrap}.map-page #hostSort{padding:5px;font-size:12px}.map-page #hostSortDirection{padding:4px 8px}.map-page #hostMenu:not([open]) .host-sort-controls{display:none}.map-page #hostContent{max-height:calc(100dvh - 330px)}@media(max-width:700px){.map-page #hostContent{max-height:calc(100dvh - 400px)}}

.map-page .host-sort-controls[hidden]{display:none}.map-page #hostContent{overflow:visible;max-height:none}.map-page #hostListScroll{overflow:auto;max-height:calc(100dvh - 480px);min-height:0}.map-page .host-column-labels{position:static;padding:5px 0}.map-page .host-column-labels button{border:0;background:transparent;font-size:10px;font-weight:bold;padding:3px 0;text-align:center}.map-page .combined-sort{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px}.map-page .sort-arrow{color:#dc2626}.map-page.dark-mode .host-column-labels{background:#17232d}@media(max-width:700px){.map-page #hostListScroll{max-height:calc(100dvh - 470px)}}

@media(max-width:700px){.map-page #hostListScroll{max-height:max(100px,calc(100dvh - 620px))}}

.map-page .boundary-legend{font-size:11px;line-height:1.7}.map-page .boundary-legend i{display:inline-block;width:20px;border-top:3px solid #22d3ee;box-shadow:0 -1px #083344}.map-page .boundary-legend span{display:block;color:#6d28d9}

.map-page .candidate.licensed-candidate{background:#e7f6e9;border-color:#15803d}.map-page.dark-mode .candidate.licensed-candidate{background:#143d2d}

.map-page .occupancy-cap.over{display:inline-flex;flex-direction:column;text-align:center;vertical-align:middle;margin-left:6px;font-weight:bold}.map-page .overage-line{display:block;line-height:1.1}

.map-page .capacity-stack{display:inline-flex;flex-direction:column;text-align:center;vertical-align:middle}.map-page .capacity-stack .overage-line{color:#dc2626;font-weight:bold}.map-page .occupancy-cap.over{display:inline;font-size:11px}

.map-page #propertyTypes{max-height:240px;overflow:auto}.map-page .filter-bulk-actions{display:flex;gap:6px;margin:8px 0}.map-page #propertyTypes label,.map-page #globalPartyKeywords label{font-size:11px}.map-page #edgeBuffer{min-width:0;max-width:100%}.map-page .hosts-heading b{line-height:1.4}

.map-page .hotel-badge{background:#ffedd5;color:#9a3412}.map-page .hosts-heading b{font-size:11px;max-width:270px}

.map-page .card-over-capacity{color:#dc2626;font-weight:bold}

.map-page main{height:calc(100dvh - 148px)}.map-page #statusbar{height:84px;min-height:84px;gap:16px}.map-page #counts{font-size:11px;line-height:1.6}.map-page .count-equation,.map-page .count-secondary{display:block}.map-page .count-secondary{font-size:10px;color:#bdcdd7;margin-top:3px}.map-page .review-count{color:#facc15}.map-page #statusbar>span:last-child{flex-shrink:0;font-size:11px}@media(max-width:700px){.map-page main{height:calc(100dvh - 184px)}.map-page #statusbar{height:120px;min-height:120px;display:block;padding:8px 10px}.map-page #counts{font-size:10px;line-height:1.4}.map-page #statusbar>span:last-child{display:block;margin-top:5px;line-height:1.4}.map-page .count-secondary{margin-top:2px;font-size:9px}}

.privacy-distance-alert{border:3px solid #dc2626;background:#fee2e2;color:#7f1d1d;padding:8px;border-radius:6px;font-size:12px}

#filters label[hidden]{display:none!important}

.map-page #host[hidden]{display:none!important}.map-page #hostPanel{overflow:hidden}.map-page #hostListScroll{overscroll-behavior:contain;overflow:auto;min-height:0}

@media(max-width:700px){.map-page:has(#controls:not(.collapsed)):has(#hostMenu[open]) #controls,.map-page:has(#controls:not(.collapsed)):has(#hostMenu[open]) #hostPanel{max-height:45%;overflow:hidden}.map-page:has(#hostMenu[open]) #controls:not(.collapsed) #filters{min-height:0;flex:1}.map-page #hostContent{flex-shrink:0}}

@media(max-width:700px){.map-page:has(#controls:not(.collapsed)):has(#hostMenu[open]) #hostPanel{max-height:60%}}

.address-report{margin-top:12px;border-top:1px solid #a8beca;padding-top:10px;font-size:12px}.address-report input,.address-report select{width:100%;margin:6px 0}.address-report button{margin:4px 0}.verified-address{border-left:3px solid #15803d;padding-left:8px}.address-report a[hidden]{display:none!important}#reportForm{display:block;background:#087f8c;color:white;padding:10px;margin:8px 0}

@media(max-width:819px){.map-page #controls,.map-page #controls.collapsed{left:8px;right:auto;width:calc(50% - 12px);max-width:none;padding:8px}.map-page #hostPanel{right:8px;left:auto;top:16px;width:calc(50% - 12px);max-height:calc(100% - 32px);padding:8px}.map-page .panel-title{flex-wrap:wrap;gap:5px}.map-page .panel-title h1{font-size:13px;white-space:normal}.map-page .hosts-heading{flex-wrap:wrap;font-size:11px}.map-page .host-column-labels,.map-page .host-row{grid-template-columns:minmax(30px,1fr) 26px 32px 48px;gap:2px}.map-page .host-column-labels button{font-size:8px}.map-page .host-name{font-size:10px;padding:3px}.map-page #hostContent{font-size:11px}.map-page #hostPanel #hostMenu{max-width:100%}.map-page #hostSearch{min-width:0;width:100%}.map-page #filters{min-height:0;max-height:calc(100dvh - 300px)}.map-page #hostPanel,.map-page #controls{overflow:hidden}}

.footer-contact{display:inline-block;background:#e8f3f7;color:#173747!important;border:1px solid #b8d1db;border-radius:5px;padding:4px 7px;text-decoration:none;font-size:11px;white-space:nowrap}.footer-contact:hover{background:#cde6ef}

@media(max-width:540px){.map-page #controls,.map-page #controls.collapsed,.map-page #hostPanel{left:8px;right:8px;width:calc(100% - 16px)}.map-page .panel-title h1{font-size:16px}.map-page .hosts-heading{font-size:11px}.map-page .host-column-labels,.map-page .host-row{grid-template-columns:minmax(90px,1fr) 36px 65px 92px;gap:5px}.map-page .host-column-labels button,.map-page .host-name{font-size:11px}.map-page #filters{flex:1;min-height:0}.map-page #hostPanel{max-height:calc(100% - 32px)}}

/* Share space between names and metrics at every panel width. */
.map-page .host-column-labels,.map-page .host-row{grid-template-columns:minmax(0,1.4fr) minmax(0,.65fr) minmax(0,.9fr) minmax(0,1.2fr);gap:5px}
.map-page .host-column-labels button{font-size:11px;line-height:1.3;white-space:normal;overflow-wrap:normal;padding:4px 1px}
.map-page .host-name{min-width:0;font-size:11px;line-height:1.35;padding:4px 2px}
.map-page .host-count,.map-page .host-metric,.map-page .host-cap-number{min-width:0;font-size:11px;padding:5px 2px}
.map-page .combined-sort{min-width:0;gap:3px}

.map-page main{height:calc(100dvh - 168px)}.map-page #statusbar{height:104px;min-height:104px}@media(max-width:700px){.map-page main{height:calc(100dvh - 224px)}.map-page #statusbar{height:160px;min-height:160px}}

#reportCandidates{max-height:340px;overflow:auto;margin:8px 0}.report-candidate-link{display:inline-block;margin-top:6px;padding:7px;background:#087f8c;color:white!important;border-radius:4px;text-decoration:none}.address-report #reportOnlyNames{width:auto}

/* The footer uses only the space its content needs; the map takes the remainder. */
body.map-page{height:100dvh;display:grid;grid-template-rows:64px minmax(0,1fr) auto;overflow:hidden}
.map-page main{height:auto;min-height:0}
.map-page #statusbar{height:auto;min-height:0;max-height:none;overflow:visible;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 14px;padding:6px 12px;line-height:1.35}
.map-page #counts{min-width:0;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.map-page .count-secondary{margin-top:2px;font-size:10px;line-height:1.3}
.map-page #statusbar>span:last-child{min-width:0;font-size:10px;text-align:right;line-height:1.35;overflow-wrap:anywhere}
.map-page #statusbar .theme-switch{margin:2px 0 0 5px}.map-page #statusbar button,.map-page .footer-contact{padding:3px 6px;font-size:10px}
@media(max-width:900px){.map-page #statusbar{grid-template-columns:minmax(0,1fr);gap:4px;padding:5px 9px}.map-page #statusbar>span:last-child{text-align:left;margin-top:0}.map-page #statusbar>span:last-child br{display:none}.map-page #counts{font-size:10px}.map-page .count-secondary{font-size:9px}}

.map-page #statusbar{position:static;inset:auto;grid-row:3}.map-page main{grid-row:2}.map-page header{grid-row:1}

.host-other-count{font-size:10px;font-weight:normal;opacity:.8}
