/* Isolated map view; existing list layouts and filters retain their styles. */
.pm-view-toggle,.results-toolbar>.pm-view-toggle{display:flex;flex-direction:row;align-items:center;border:1px solid #173f35;border-radius:24px;padding:3px;gap:2px;background:#fffaf2;flex-shrink:0}
.pm-view-toggle button{border:0;background:transparent;color:#173f35;font:inherit;font-size:13px;font-weight:700;min-height:38px;padding:8px 18px;border-radius:22px;cursor:pointer}
.pm-view-toggle button[aria-pressed=true]{background:#173f35;color:#fffaf2}
.pm-panel[hidden],#hotel-results[hidden],#campGrid[hidden],.pm-hidden-empty{display:none!important}
.pm-panel{background:#fffaf2;color:#173f35;border:1px solid #deded1;border-radius:14px;overflow:hidden;scroll-margin-top:100px}
.pm-panel *{box-sizing:border-box}
.pm-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 12px;gap:12px}
.pm-eyebrow{font-size:10px;font-weight:800;letter-spacing:.13em}
.pm-panel .pm-heading h2{font-family:Georgia,serif;font-size:28px;line-height:1.15;margin:4px 0 0;font-weight:400}
.pm-panel button,.pm-panel input,.pm-panel a{touch-action:manipulation}
.pm-panel button:focus-visible,.pm-panel a:focus-visible,.pm-panel input:focus-visible{outline:3px solid #bc5b3f;outline-offset:3px}
.pm-back,.pm-fit{background:transparent;border:1px solid #cbd2c6;border-radius:7px;color:#173f35;padding:9px 11px;font:inherit;font-size:12px;min-height:40px;cursor:pointer}
.pm-back span{font-size:19px;padding-left:6px}
.pm-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 20px;flex-wrap:wrap}
.pm-overlay{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;min-height:44px;cursor:pointer}
.pm-overlay input{accent-color:#173f35;width:18px;height:18px;margin:0 2px 0 0}
.pm-panel svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.pm-panel p.pm-scope{font-size:11px;line-height:1.5;color:#586359;margin:9px 20px 15px}
.pm-workspace{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(250px,1.2fr);border-block:1px solid #deded1;min-width:0}
.pm-list-column{min-width:0;background:#f5f3eb;display:flex;flex-direction:column;height:590px}
.pm-panel p.pm-count{font-size:12px;font-weight:700;line-height:1.5;margin:0;padding:14px 14px 10px}
.pm-results-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-right:12px;flex-shrink:0;background:#f5f3eb}
.pm-results-summary .pm-count{min-width:0}
.pm-browse{flex-shrink:0;border:1px solid #173f35;border-radius:7px;background:#fffdf8;color:#173f35;min-height:40px;padding:8px 10px;font:700 12px var(--sans);cursor:pointer}
.pm-browse[hidden],.pm-group-zoom[hidden]{display:none}
.pm-panel p.pm-selection-label{font-size:10px;font-weight:700;margin:0 0 6px;color:#586359}
.pm-panel p.pm-choose-hint{font-size:12px;line-height:1.5;margin:0;padding:6px 2px}
.pm-choose-hint button{font:inherit;font-weight:700;color:#94472f;text-decoration:underline;border:0;background:transparent;padding:8px 0;cursor:pointer}
.pm-cards{overflow-y:auto;min-height:0;flex:1;padding:0 12px 12px;position:relative;scroll-behavior:auto}
.pm-card{background:#fffdf8;border:1px solid #dcded1;border-radius:9px;margin:0 0 10px;overflow:hidden;color:#173f35}
.pm-card.is-selected{border-color:#173f35;box-shadow:inset 0 0 0 1px #173f35}
.pm-select{display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;color:inherit;background:transparent;padding:15px 14px 10px;border:0;font:inherit;cursor:pointer}
.pm-select strong{font-family:Georgia,serif;font-size:19px;line-height:1.2;font-weight:400;overflow-wrap:anywhere}
.pm-type{display:flex;gap:6px;align-items:center;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}
.pm-type.pm-camp{color:#a74d34}
.pm-area{color:#5d695f;font-size:12px;line-height:1.45}
.pm-fact{font-size:11px;line-height:1.4}
.pm-actions{display:flex;flex-wrap:wrap;gap:10px 16px;padding:2px 14px 14px}
.pm-panel .pm-actions a{color:#94472f;font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px;padding-block:5px}
.pm-unmapped{font-size:11px;line-height:1.5;padding:0 14px;background:#eeeee3}
.pm-unmapped p{margin:10px 0;font-size:11px!important}
.pm-unmapped button{padding:3px 0;border:0;background:transparent;text-decoration:underline;color:#173f35;font:inherit;cursor:pointer}
.pm-map-column{position:relative;min-width:0;background:#e6eddf}
.pm-map{height:590px;width:100%;isolation:isolate;z-index:0}
.pm-basemap{position:absolute;inset:0;pointer-events:none;z-index:0}
.pm-loading,.pm-empty{padding:24px;font-size:13px;line-height:1.5}
.pm-empty button{color:#173f35;background:#fffaf2;border:1px solid #173f35;border-radius:8px;padding:10px;font:inherit;cursor:pointer}
.pm-legend{display:flex;gap:15px;align-items:center;flex-wrap:wrap;padding:12px 18px;font-size:11px}
.pm-legend>span{display:flex;gap:6px;align-items:center;font-weight:700}
.pm-legend>span:nth-child(2){color:#a74d34}
.pm-legend small{font-size:11px;color:#586359;flex:1 1 200px}
.pm-map .pm-pin{display:flex;align-items:center;justify-content:center;background:#173f35;color:#fffaf2;border:2px solid #fffdf8;border-radius:50%;box-shadow:0 2px 8px #173f3540}
.pm-map .pm-pin svg{width:21px;height:21px}
.pm-map .pm-pin.pm-camp{background:#b7573b;border-radius:11px}
.pm-map .pm-pin-selected{outline:3px solid #e2b05e;outline-offset:2px;z-index:1000!important}
.pm-map .pm-cluster{display:flex;align-items:stretch;border:3px solid #fffdf8;border-radius:23px;overflow:hidden;box-shadow:0 2px 8px #173f3540;color:#fffaf2;font:700 13px Arial,sans-serif}
.pm-cluster-part{display:flex;gap:4px;justify-content:center;align-items:center;flex:1;min-width:0}
.pm-panel .pm-cluster-part svg{width:17px;height:17px}
.pm-cluster-hotels{background:#173f35}.pm-cluster-camps{background:#b7573b}
.pm-map .pm-cluster-camp{border-radius:12px}
.pm-cluster-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.pm-group[hidden]{display:none}
.pm-group{position:absolute;inset:12px;z-index:600;background:#fffdf8;border:1px solid #cbd2c6;border-radius:12px;box-shadow:0 6px 24px #173f3530;display:flex;flex-direction:column;overflow:hidden;color:#173f35}
.pm-group-heading{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;gap:12px;border-bottom:1px solid #deded1}
.pm-group-title{font-size:15px}.pm-group-heading button{flex-shrink:0;width:44px;height:44px;background:transparent;border:1px solid #cbd2c6;border-radius:8px;color:#173f35;font:24px Arial,sans-serif;cursor:pointer}
.pm-panel p.pm-group-note{font-size:11px;line-height:1.4;margin:10px 14px 6px}
.pm-group-zoom{align-self:flex-start;margin:0 14px 6px;min-height:36px;border:0;background:transparent;color:#94472f;font:700 12px var(--sans);text-decoration:underline;cursor:pointer}
.pm-group-list{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:0 10px 10px}
.pm-group-choice{display:flex;flex-direction:column;align-items:flex-start;gap:5px;width:100%;padding:12px;text-align:left;border:0;border-top:1px solid #deded1;background:#fffdf8;color:#173f35;font:12px/1.4 var(--sans);cursor:pointer}
.pm-group-choice:hover{background:#f1f3eb}.pm-group-choice strong{font-size:14px}.pm-group-choice>span:last-child{color:#586359}

.pm-popup{font-family:Arial,sans-serif;color:#173f35;font-size:12px;line-height:1.5}
.pm-popup strong{font-size:15px}.pm-popup p{margin:5px 0 10px!important;font-size:12px!important}.pm-popup a{color:#94472f!important}
.pm-map .leaflet-control-attribution{font-size:10px;background:#fffdf8ec;color:#173f35}.pm-map .leaflet-control-attribution a{color:#175b46}
.pm-map-error{position:absolute;top:50px;left:12px;right:12px;background:#fffaf2;padding:12px;border-radius:8px;z-index:500;font-size:12px!important}
.pm-map-error[hidden]{display:none}
.pm-mobile-detail{display:none}
@media(min-width:761px) and (max-width:1120px){.pm-workspace{grid-template-columns:1fr}.pm-map-column{grid-row:1}.pm-map{height:400px}.pm-list-column{height:330px}.pm-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pm-card{margin:0}.pm-select strong{font-size:17px}}
@media(max-width:760px){
  .pm-mobile-open{overflow:hidden}
  .pm-view-toggle{margin-left:auto}.pm-view-toggle button{min-height:40px}
  .pm-panel{position:fixed;inset:0;z-index:5000;border:0;border-radius:0;display:flex;flex-direction:column;height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .pm-heading{padding:14px 16px 8px}.pm-panel .pm-heading h2{font-size:23px}.pm-eyebrow{font-size:9px}.pm-back{font-size:12px;min-height:44px}
  .pm-controls{padding-inline:16px;gap:6px}.pm-fit{min-height:44px}.pm-overlay{font-size:12px}
  .pm-panel p.pm-scope{font-size:10px;margin:6px 16px 10px;line-height:1.35}
  .pm-workspace{display:flex;flex-direction:column;flex:1;min-height:0;position:relative;border-bottom:0}
  .pm-list-column{display:contents}.pm-panel p.pm-count{padding:7px 16px;font-size:11px;background:#f5f3eb;order:0}
  .pm-results-summary{order:0;min-height:50px;padding-right:12px}.pm-browse{min-height:44px}
  .pm-cards{display:none}.pm-unmapped{order:2;padding:0 16px;flex-shrink:0}.pm-unmapped p{margin:6px 0;font-size:10px!important}
  .pm-map-column{order:1;flex:1;min-height:0;display:flex;flex-direction:column}.pm-map{flex:1;min-height:140px;height:auto}
  .pm-mobile-detail{display:block;background:#fffaf2;padding:10px 12px;max-height:210px;overflow:auto;flex-shrink:0}
  .pm-mobile-detail .pm-card{margin:0}.pm-mobile-detail .pm-select{padding:10px 12px 4px;gap:4px}.pm-mobile-detail .pm-select strong{font-size:18px}
  .pm-mobile-detail .pm-actions{padding:0 12px 6px;gap:20px}.pm-mobile-detail .pm-actions a{min-height:40px;display:flex;align-items:center}
  .pm-legend{padding:7px 16px;gap:12px;font-size:10px;flex-shrink:0}.pm-legend small{display:none}.pm-legend svg{height:16px;width:16px}
  .pm-map .leaflet-popup-pane{display:none}.pm-panel .leaflet-control-zoom a{width:36px;height:36px;line-height:36px}
}

.pm-location-note{font-size:10px;line-height:1.4;color:#8c482f;font-weight:650}
.pm-map .pm-pin.pm-approximate{border:2px dashed #fffdf8;box-shadow:0 0 0 3px #b1b9a8;opacity:.86}
.pm-legend .pm-area-legend{font-weight:400;color:#586359}

/* Keep the camp controls in two balanced rows on phones. */
@media(max-width:720px){
  .results-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,145px);grid-template-areas:"filters view" "count sort";align-items:center;gap:12px;min-width:0}
  .results-toolbar>div:not(.pm-view-toggle){display:contents}
  .results-toolbar .mobile-filter-button{grid-area:filters;justify-self:start;min-height:46px;max-width:100%}
  .results-toolbar>#resultSummary,.results-toolbar #resultSummary{grid-area:count;min-width:0;margin:0;line-height:1.5}
  .results-toolbar>.sort-control{grid-area:sort;width:100%;min-width:0;margin:0;gap:4px}
  .results-toolbar>.sort-control select{width:100%;max-width:100%;min-width:0;min-height:44px;font-size:16px}
  .results-toolbar>.pm-view-toggle{grid-area:view;justify-self:end;margin:0;max-width:100%;gap:2px}
  .results-toolbar>.pm-view-toggle button{padding-inline:16px}
  .results-area>.active-chips:empty{display:none}
}
@media(max-width:360px){
  .results-toolbar{grid-template-areas:"filters view" "sort sort" "count count"}
  .results-toolbar>.sort-control{flex-direction:row;align-items:center;gap:10px}
  .results-toolbar>.sort-control select{flex:1;width:0}
}

/* Area summaries are intentionally separate from verified venue clusters. */
.pm-area-toggle{display:flex;align-items:center;gap:8px;margin:0 18px 12px;color:#586359;font:12px var(--sans);cursor:pointer}
.pm-area-toggle input{width:18px;height:18px;accent-color:#173f35}
.pm-map .pm-area-group{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fffaf2eb;color:#586359;border:2px dashed #6b786b;border-radius:9px;font:11px/1.3 Arial,sans-serif;text-align:center;box-shadow:0 2px 7px #173f3520;padding:3px;box-sizing:border-box}
.pm-area-group span{display:block;max-width:116px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.pm-area-group strong{font-size:11px}
@media(max-width:760px){.pm-area-toggle{margin:0 16px 8px;font-size:11px;min-height:24px}}

.pm-area-group .pm-area-count{display:flex;align-items:center;justify-content:center;gap:7px}
.pm-area-group .pm-area-count span{display:flex;align-items:center;gap:3px;overflow:visible}
.pm-area-group .pm-area-count svg{height:15px;width:15px;flex-shrink:0}
.pm-area-group .pm-area-camp{color:#a74d34}.pm-area-group .pm-area-hotel{color:#173f35}
.pm-area-group .pm-area-count small{font-size:10px;font-weight:400}
