:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:#173334;background:#f4f7f5;--ink:#103536;--teal:#0d5553;--gold:#f5b83b;--line:#dbe5e1;--muted:#6b7d7b}*{box-sizing:border-box}body{margin:0}.topbar{height:74px;background:#0c3435;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 44px;border-bottom:2px solid #e8ae37}.brand{display:flex;align-items:center;gap:12px}.brandIcon{width:44px;height:44px;border-radius:12px;background:var(--gold);display:grid;place-items:center;font-size:22px}.brand h1{font-size:19px;margin:0 0 3px}.brand p{margin:0;font-size:12px;color:#b8cdca}.primary{border:0;border-radius:10px;background:var(--gold);color:#183738;font-weight:800;padding:11px 16px;cursor:pointer}.notice{margin:18px 44px;min-height:52px;padding:11px 15px;border:1px solid #edd18b;background:#fff8df;border-radius:12px;display:flex;align-items:center;gap:10px;font-size:13px}.notice span{color:#a66b00}.notice div{flex:1}.notice a{color:#0d5553;font-weight:750;text-decoration:none;white-space:nowrap}.layout{display:grid;grid-template-columns:minmax(360px,38%) 1fr;gap:18px;padding:0 44px 28px;height:calc(100vh - 144px)}.leftPane,.rightPane{min-height:0}.leftPane{display:flex;flex-direction:column}.filters{display:grid;grid-template-columns:1fr 172px;gap:10px}.filters input,.filters select{height:44px}.check{grid-column:1/-1;font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:center}.check input{width:auto}.count{font-size:12px;color:var(--muted);padding:11px 4px}.list{overflow:auto;padding-right:4px}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:15px;margin-bottom:10px;cursor:pointer;transition:.15s}.card:hover,.card.active{border-color:#176d68;box-shadow:0 3px 14px #10353610}.cardTop{display:flex;justify-content:space-between;gap:10px}.card h3{font-size:15px;margin:0 0 7px;color:#173334}.address{font-size:12px;color:#70827f;margin-bottom:10px}.summary{font-size:12.5px;line-height:1.55;color:#334c4b}.miniMeta{border-top:1px solid #edf1ef;margin-top:10px;padding-top:9px;font-size:11.5px;color:#70827f;display:flex;gap:14px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:800;white-space:nowrap}.verified{background:#dcf6e8;color:#20754d}.partial{background:#fff0c9;color:#95651a}.unverified{background:#fde6e1;color:#a64b3e}.rightPane{display:grid;grid-template-rows:minmax(300px,1.05fr) minmax(250px,.95fr);gap:14px}.mapWrap{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#dfeae6}.mapWrap #map{height:100%;width:100%}.mapNote{position:absolute;z-index:500;left:12px;bottom:12px;background:#fffffff2;border:1px solid #dce5e1;border-radius:9px;padding:8px 10px;font-size:11px;color:#657673}.detail{background:white;border:1px solid var(--line);border-radius:16px;padding:18px;overflow:auto}.emptyDetail{height:100%;display:grid;place-content:center;text-align:center;color:#6f807d;gap:5px}.detailHead{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #edf1ef;padding-bottom:13px}.detailHead h2{font-size:19px;margin:4px 0}.detailHead p{font-size:12px;color:#70827f;margin:0}.mapLink{height:38px;border:1px solid #cfdcd8;background:white;border-radius:9px;padding:0 12px;color:#0d5553;font-weight:750;cursor:pointer;white-space:nowrap}.detailGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.info{background:#f5f8f7;border-radius:11px;padding:12px;min-height:90px}.infoTitle{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:800;margin-bottom:7px}.infoText{font-size:12px;line-height:1.5;color:#405553}.detailFoot{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px;font-size:11px;color:#71827f}.detailFoot a{color:#0d5553;font-weight:750;text-decoration:none}input,select,textarea{width:100%;border:1px solid #cad7d3;border-radius:9px;padding:10px;background:white;color:#173334}textarea{min-height:72px;resize:vertical}dialog{width:min(660px,94vw);max-height:90vh;border:0;border-radius:16px;padding:0;box-shadow:0 24px 70px #0005}dialog::backdrop{background:#082b2bd0}form{padding:20px;display:grid;gap:12px;overflow:auto}.dialogHead{display:flex;justify-content:space-between;gap:12px}.dialogHead h2{margin:0;font-size:18px}.dialogHead p{margin:4px 0 0;color:#71827f;font-size:12px}.dialogHead button{border:0;background:none;font-size:24px;cursor:pointer}.callout{background:#fff8df;border:1px solid #edd18b;border-radius:10px;padding:10px;font-size:12px}.searchRow{display:grid;grid-template-columns:1fr auto;gap:8px}.searchRow button,.searchResult,.pinConfirm button{border:1px solid #cbd8d4;background:white;border-radius:9px;padding:9px 12px;cursor:pointer;font-weight:700}.searchResults{display:grid;gap:6px;max-height:145px;overflow:auto}.searchResult{text-align:left;font-size:11.5px}.searchResult:hover{background:#f2f7f5}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}label{display:grid;gap:5px;font-size:12px;font-weight:750}.pinConfirm{display:flex;justify-content:space-between;align-items:center;background:#f2f7f5;border-radius:9px;padding:8px 10px;font-size:11.5px;color:#647774}.pinConfirm button{padding:6px 9px;font-size:11px}.formFooter{display:flex;justify-content:space-between;align-items:center;gap:10px}.hint{font-size:11px;color:#6e807d;margin:0}.empty{padding:28px;text-align:center;color:#748481;background:#fff;border-radius:12px}.leaflet-popup-content-wrapper{border-radius:10px}.map-error{position:absolute;z-index:1000;top:14px;left:50%;transform:translateX(-50%);background:#fff4e5;border:1px solid #f2c078;border-radius:10px;padding:10px 14px;font-size:13px;box-shadow:0 3px 14px #0002;max-width:340px;text-align:center}@media(max-width:900px){.topbar{padding:0 16px}.notice{margin:12px 16px}.layout{padding:0 16px 20px;grid-template-columns:1fr;height:auto}.leftPane{max-height:46vh}.rightPane{grid-template-rows:52vh auto}.notice a{display:none}}@media(max-width:560px){.brand p{display:none}.filters{grid-template-columns:1fr 135px}.detailGrid,.row{grid-template-columns:1fr}.detailHead{flex-direction:column}.mapLink{width:max-content}.notice{font-size:12px}.layout{gap:12px}}

.mapTip{position:absolute;z-index:500;top:12px;left:50%;transform:translateX(-50%);background:#0c3435e8;color:white;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:750;pointer-events:none;box-shadow:0 3px 12px #0002;white-space:nowrap}.mapAction{position:absolute;z-index:500;right:12px;top:12px;border:1px solid #d6e1dd;background:#fffffff2;border-radius:9px;padding:8px 10px;color:#0d5553;font-weight:750;cursor:pointer}.pinPopup{display:grid;gap:6px;min-width:190px}.pinPopup>b{font-size:13px}.pinPopup>span{font-size:11px;color:#6b7d7b;line-height:1.35}.pinPopup>em{font-size:10px;font-style:normal;font-weight:800;width:max-content;border-radius:999px;padding:3px 7px}.pinActions{display:flex;gap:6px;margin-top:3px}.pinActions button,.addHerePopup button{border:0;border-radius:8px;background:#f5b83b;color:#173334;font-weight:800;padding:7px 9px;cursor:pointer;font-size:11px}.pinActions button+button{background:#edf4f1}.addHerePopup{display:grid;gap:6px;min-width:170px}.addHerePopup span{font-size:11px;color:#6b7d7b}.leaflet-container{cursor:crosshair}@media(max-width:900px){.rightPane{order:-1;grid-template-rows:48vh auto}.leftPane{max-height:none}.mapTip{top:auto;bottom:48px}.mapAction{top:12px}.layout{display:flex;flex-direction:column}.detail{max-height:none}}@media(max-width:560px){.mapTip{font-size:10px;padding:7px 9px}.mapAction{font-size:10px;padding:7px 8px}.topbar{height:66px}.primary{padding:10px 12px}.notice{margin-top:10px}}
.topActions{display:flex;align-items:center;gap:8px}.adminBtn{border:1px solid #ffffff55;background:#ffffff10;color:white;border-radius:10px;padding:10px 13px;font-weight:750;cursor:pointer}.listMeta{display:flex;justify-content:space-between;align-items:center}.adminState{font-size:11px;color:#0d5553;font-weight:800}.reviewBadge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800}.reviewBadge.pending{background:#fff0c9;color:#95651a}.reviewBadge.approved{background:#dcf6e8;color:#20754d}.reviewBadge.rejected{background:#eee;color:#667}.reviewActions{display:flex;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #edf1ef}.reviewActions button{border:0;border-radius:9px;padding:9px 12px;font-weight:800;cursor:pointer}.approveBtn{background:#dcf6e8;color:#176640}.rejectBtn{background:#fde6e1;color:#9b4036}.adminLogged{display:flex;align-items:center;justify-content:space-between;background:#f2f7f5;border-radius:10px;padding:11px}.adminLogged button{border:1px solid #cbd8d4;background:white;border-radius:8px;padding:7px 10px;cursor:pointer}.adminDialog{width:min(460px,94vw)}@media(max-width:560px){.adminBtn{padding:9px 10px;font-size:11px}.topActions{gap:5px}}

/* V7 overnight status */
.useMeta{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0}.useMeta>span{display:flex;align-items:center;gap:5px;font-size:12px}.useBadge{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#eef1ef;color:#59625d}.useBadge.allowed{background:#dff5e8;color:#176b3a}.useBadge.prohibited{background:#fde7e7;color:#9d2929}.useBadge.permit_required{background:#e7effd;color:#285b9f}.useGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 14px}.useInfo{border:1px solid #e4e9e6;border-radius:12px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fbfcfb}.adminUseEditor{margin-top:16px;padding:14px;border:1px solid #dfe6e1;border-radius:12px;background:#f7faf8;display:flex;gap:10px;align-items:end;flex-wrap:wrap}.adminUseEditor>b{width:100%}.adminUseEditor label{display:flex;flex-direction:column;gap:5px;font-size:12px}.adminUseEditor select{padding:8px;border:1px solid #ccd6d0;border-radius:8px;background:white}.saveUseBtn{padding:9px 12px;border:0;border-radius:8px;background:#214d3c;color:white;font-weight:700;cursor:pointer}@media(max-width:700px){.useGrid{grid-template-columns:1fr}.adminUseEditor{align-items:stretch}.adminUseEditor label,.saveUseBtn{width:100%}}


/* V7.1 bulk import */
.bulkImportBox{margin-top:14px;padding-top:14px;border-top:1px solid #dfe6e1;display:grid;gap:10px}.bulkImportBox[hidden]{display:none}.bulkTitle{display:flex;justify-content:space-between;gap:10px;align-items:end}.bulkTitle span{font-size:11px;color:#6e807d}.bulkImportBox textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;min-height:160px}.bulkActions{display:flex;gap:8px}.bulkActions button{border:1px solid #cbd8d4;background:white;border-radius:9px;padding:9px 12px;font-weight:800;cursor:pointer}.bulkActions .primary{background:var(--gold);border-color:var(--gold)}.bulkActions button:disabled{opacity:.45;cursor:not-allowed}.bulkPreview{display:grid;gap:7px;max-height:260px;overflow:auto}.bulkItem{border:1px solid #e2e9e5;background:#f8faf9;border-radius:10px;padding:9px;display:grid;gap:7px}.bulkItem>div:first-child{display:grid;gap:3px}.bulkItem b{font-size:12px}.bulkItem span{font-size:10.5px;color:#647774}.bulkBadges{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.bulkGeo{border-radius:999px;padding:3px 7px;font-weight:800}.bulkGeo.ok{background:#dcf6e8;color:#20754d}.bulkGeo.bad{background:#fde6e1;color:#a64b3e}@media(max-width:560px){.bulkTitle{align-items:start;flex-direction:column}.bulkActions{display:grid}.bulkActions button{width:100%}}

/* V7.2 地点维护 */
.adminManage{margin-top:14px;padding-top:12px;border-top:1px solid #e3e9e5;display:flex;gap:8px;flex-wrap:wrap}.adminManage button{border:1px solid #cbd8d4;background:white;border-radius:9px;padding:9px 12px;font-weight:800;cursor:pointer}.adminManage .pauseBtn{background:#fff5d8;color:#805e12;border-color:#efd58b}.adminManage .restoreBtn{background:#e4f5ea;color:#176640;border-color:#b9dfc7}.adminManage .deleteBtn{background:#fde7e4;color:#9b3027;border-color:#efc2bc}.staleBadge{display:inline-flex;margin-left:6px;border-radius:999px;padding:3px 7px;background:#fff0c9;color:#8a6117;font-size:10px;font-weight:800}.inactiveBadge{display:inline-flex;border-radius:999px;padding:4px 8px;background:#eceff0;color:#596469;font-size:10px;font-weight:800}.adminFilter{display:none}.adminMode .adminFilter{display:inline-block}.editDialog{width:min(620px,94vw)}.editDialog form{display:grid;gap:10px}.editDialog textarea{min-height:76px}@media(max-width:560px){.adminManage{display:grid}.adminManage button{width:100%}}

/* V7.3 易用版 */
.quickActions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:10px}.quickActions button{border:1px solid #d5dfdc;background:white;border-radius:10px;padding:10px 8px;font-weight:800;color:#234b49;cursor:pointer}.quickActions .quickPrimary{background:var(--gold);border-color:var(--gold);color:#173334}.filterChips{display:flex;gap:7px;overflow:auto;padding:0 0 10px;scrollbar-width:none}.filterChips::-webkit-scrollbar{display:none}.chip{border:1px solid #d7e1de;background:white;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;color:#58706d;white-space:nowrap;cursor:pointer}.chip.active{background:#153f3e;color:white;border-color:#153f3e}.adminAddFields{border:1px solid #dce6e2;background:#f6faf8;border-radius:11px;padding:12px;display:grid;gap:9px}.adminAddFields[hidden]{display:none}.adminAddBtn{width:100%;border:1px solid #cbd8d4;background:#f7faf8;border-radius:10px;padding:10px 12px;font-weight:800;color:#174f4b;cursor:pointer}.advancedTools{margin-top:12px;border-top:1px solid #dfe6e1;padding-top:10px}.advancedTools summary{cursor:pointer;font-size:12px;font-weight:800;color:#617572;list-style:none}.advancedTools summary::-webkit-details-marker{display:none}.advancedTools .bulkImportBox{border-top:0;margin-top:8px;padding-top:8px}.statusLegend{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.markerDot{width:18px;height:18px;border-radius:50%;border:3px solid white;box-shadow:0 1px 5px #0005}.markerDot.allowed{background:#2e9d62}.markerDot.prohibited{background:#d9534f}.markerDot.permit{background:#3f7fc4}.markerDot.unknown{background:#8b9894}.leaflet-div-icon{background:transparent;border:0}@media(max-width:560px){.quickActions{grid-template-columns:1fr 1fr}.quickActions .quickPrimary{grid-column:1/-1}.filters select#verifyFilter,.filters .check{display:none}.filterChips{margin-right:-4px}}


/* V7.4 — map-first layout + marker clustering */
@media(min-width:901px){
  .layout{grid-template-columns:minmax(360px,34%) 1fr;gap:16px;height:calc(100vh - 144px)}
  .rightPane{position:relative;display:block;min-height:0}
  .mapWrap{height:100%;min-height:520px}
  .detail{position:absolute;z-index:650;right:14px;top:72px;width:min(365px,42%);max-height:calc(100% - 100px);padding:16px;box-shadow:0 12px 34px #10353624;transition:opacity .18s,transform .18s;overflow:auto}
  .detail.detailHidden{opacity:0;pointer-events:none;transform:translateX(18px)}
  .detailGrid{grid-template-columns:1fr}
  .detailFoot{align-items:flex-start;flex-direction:column}
  .card{padding:12px;margin-bottom:8px}
  .card h3{margin-bottom:4px}
  .address{margin-bottom:6px}
  .summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .miniMeta{margin-top:7px;padding-top:7px}
}
.detailHeadActions{display:flex;gap:6px;align-items:flex-start}
.detailClose{width:38px;height:38px;border:1px solid #cfdcd8;background:white;border-radius:9px;color:#536c69;font-size:20px;line-height:1;cursor:pointer}
.detailClose:hover{background:#f2f6f4}
.leaflet-marker-icon.marker-cluster{border:0;background:transparent}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:#ffffffcc!important;box-shadow:0 3px 12px #0002}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:#16845f!important;color:#fff;font-weight:900;border:3px solid #fff;box-shadow:0 2px 8px #0003}
.marker-cluster span{line-height:34px}
@media(max-width:900px){
  .rightPane{display:block;position:relative;order:-1}
  .mapWrap{height:52vh;min-height:360px}
  .detail{margin-top:10px;max-height:none}
  .detail.detailHidden{display:none}
}

/* V7.4.1 — spacing polish: keep quick-filter chips clear of search controls */
.filterChips{
  flex:0 0 auto;
  min-height:42px;
  height:auto;
  align-items:center;
  overflow-x:auto;
  overflow-y:hidden;
  padding:2px 1px 8px;
  margin:0 0 8px;
}
.filterChips .chip{
  flex:0 0 auto;
  min-height:30px;
  line-height:16px;
  padding:6px 10px;
}
.filters{flex:0 0 auto;margin-top:0}

@media(min-width:901px){
  /* Floating detail panel: narrower and airier so the map remains visible. */
  .detail{
    right:16px;
    top:64px;
    width:min(350px,39%);
    max-height:calc(100% - 92px);
    border-radius:14px;
    box-shadow:0 14px 36px #1035362b;
  }
  .detailHead{position:sticky;top:-16px;z-index:2;background:#fff;padding-top:16px}
}

/* V7.5 — production polish */
.quickActions{grid-template-columns:1fr 1fr}.quickActions .mapPickSecondary{display:block}.quickActions .quickPrimary{grid-column:auto}
.leftPane{background:#f4f7f5}.listMeta{min-height:34px}.adminMode .adminState{background:#e8f3ef;border:1px solid #cfe1db;border-radius:8px;padding:5px 8px}
.compactUse{margin:7px 0 5px;gap:6px}.compactUse>span{font-size:11px}.toiletMini{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#eef3f1;color:#60716e;font-weight:700}.compactMeta{border-top:0;margin:0;padding:0;font-size:10.5px}.card{padding:11px 12px}.card .address{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cardTop{align-items:flex-start}
.mapLegend{position:absolute;z-index:500;left:12px;top:12px;background:#fffffff2;border:1px solid #dce5e1;border-radius:10px;padding:7px 9px;display:flex;gap:9px;align-items:center;box-shadow:0 2px 10px #0001;font-size:10px;color:#506562}.mapLegend span{display:flex;align-items:center;gap:4px;white-space:nowrap}.legendDot{width:9px;height:9px;border-radius:50%;display:inline-block}.legendDot.allowed{background:#2e9d62}.legendDot.prohibited{background:#d9534f}.legendDot.permit{background:#3f7fc4}.legendDot.unknown{background:#8b9894}
.detail h2{font-size:20px;line-height:1.2}.detailHead p{font-size:11.5px}.useInfo{padding:11px}.detailGrid>div{padding:11px}.mapTip{top:auto;bottom:48px;background:#0c3435d9}.mapNote{font-size:10px}
@media(min-width:901px){.layout{grid-template-columns:minmax(330px,31%) 1fr}.detail{width:min(360px,38%)}.leftPane{min-width:0}}
@media(max-width:900px){.notice{margin-bottom:10px}.layout{padding-bottom:12px}.rightPane{display:flex;flex-direction:column}.mapWrap{height:58vh;min-height:390px}.detail{position:relative;order:2;border-radius:14px}.mapLegend{max-width:calc(100% - 120px);overflow-x:auto}.mapTip{display:none}.leftPane{max-height:none}.list{max-height:45vh}.quickActions{position:sticky;top:0;z-index:5;background:#f4f7f5;padding-top:4px}}
@media(max-width:560px){.topbar{padding:0 12px}.notice{margin-left:12px;margin-right:12px}.layout{padding-left:12px;padding-right:12px}.brandIcon{width:38px;height:38px}.brand h1{font-size:16px}.mapWrap{height:55vh;min-height:340px}.mapLegend{left:8px;top:8px;padding:6px;gap:6px}.mapAction{right:8px}.filterChips{padding-bottom:6px}.detail{padding:14px}.useGrid{gap:8px}.quickActions button{padding:10px 8px}}

/* V7.5.2 — warmer, clearer map presentation */
.mapLegend{top:auto;bottom:14px;left:14px;border-radius:12px;padding:8px 10px;background:#fffffff0;backdrop-filter:blur(8px);box-shadow:0 5px 18px #173f3d18}
.mapWrap{background:#eef3ef}
.leaflet-control-zoom a{color:#174f4b!important;border-color:#dbe5e1!important}
.leaflet-control-zoom{border:0!important;box-shadow:0 4px 16px #173f3d20!important}
.markerDot{width:20px;height:20px;border-width:3px;box-shadow:0 3px 10px #102f2d45}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:#16845f!important;border:3px solid white!important;box-shadow:0 4px 12px #123c3840!important}
@media(max-width:560px){.mapLegend{bottom:10px;left:8px;max-width:calc(100% - 16px)}}
/* V7.5.8 MapLibre/OpenFreeMap: clean no-key vector basemap */
.maplibregl-canvas{cursor:crosshair}.maplibregl-popup-content{border-radius:12px;padding:12px;box-shadow:0 8px 28px #173f3d30}.maplibregl-ctrl-group{border-radius:10px!important;overflow:hidden}.maplibregl-ctrl-attrib{font-size:10px}.maplibregl-marker .markerDot{display:block}

/* V7.6 language switcher */
.langSelect{background:#fff;color:#0b4a46;border:1px solid rgba(255,255,255,.28);border-radius:10px;padding:9px 10px;font-weight:700;min-width:118px;cursor:pointer}.topActions{align-items:center}@media(max-width:720px){.langSelect{min-width:92px;padding:8px 7px}.brand p{display:none}}

/* V7.6.4 — global-language UI polish. Layout only; map/data logic unchanged. */
.topActions{display:flex;align-items:center;gap:9px;min-width:0}
.topActions .langSelect,.topActions .adminBtn,.topActions .primary{height:42px;min-height:42px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1.1}
.topActions .langSelect{width:auto;min-width:160px;max-width:220px;padding:0 34px 0 12px}
.topActions .adminBtn{padding:0 15px}
.topActions .primary{padding:0 17px;min-width:max-content}
.quickActions{gap:8px}.quickActions button{min-height:42px;white-space:nowrap}
.filterChips{scrollbar-width:thin;overscroll-behavior-x:contain}.filterChips .chip{white-space:nowrap}
.listMeta{display:flex;align-items:center;justify-content:space-between;gap:8px}.adminState{white-space:nowrap;font-size:11px}
@media(min-width:901px){
  .detail{width:min(400px,42%);max-height:calc(100% - 92px)}
  .useGrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .useInfo{min-width:0}.useInfo b{line-height:1.22;overflow-wrap:anywhere}
}
@media(max-width:1080px){
  .topbar{padding-left:24px;padding-right:24px}
  .topActions{gap:6px}.topActions .langSelect{min-width:132px;max-width:170px}
  .topActions .adminBtn{padding:0 11px}.topActions .primary{padding:0 12px}
}
@media(max-width:720px){
  .topbar{height:auto;min-height:68px;padding-top:8px;padding-bottom:8px;gap:8px}
  .topActions{gap:5px}.topActions .langSelect{min-width:108px;max-width:132px;height:38px;min-height:38px}
  .topActions .adminBtn,.topActions .primary{height:38px;min-height:38px;padding:0 9px;font-size:12px}
}
@media(max-width:560px){
  .brand h1{max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topActions .langSelect{min-width:94px;max-width:112px}.topActions .primary{font-size:0}.topActions .primary::after{content:'+';font-size:18px}
}

/* V7.7.1 automatic content translation */
.translationBadge{display:inline-flex;margin-top:6px;border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:800;background:#e8f3f1;color:#17645f}.translationBadge.human{background:#dcf6e8;color:#20754d}

/* V7.8.1 practical controls: additive only; translation pipeline unchanged */
.practicalControls{display:grid;grid-template-columns:1fr 1fr;gap:10px;grid-column:1/-1}.practicalControls button,.practicalControls select{min-height:44px;border:1px solid #d7e0dc;border-radius:10px;background:#fff;padding:0 12px;font:inherit;color:#173f3b}.staleBadge{margin-left:5px;color:#a76800;font-weight:700}@media(max-width:760px){.practicalControls{grid-template-columns:1fr}}

/* V7.9 private parking marketplace MVP */
.privateOfferBtn{min-height:42px;border:1px solid #c9ddd6;border-radius:10px;background:#eef8f3;color:#17644f;font-weight:800;padding:0 12px}.quickActions{grid-template-columns:1fr 1fr 1fr}.privateChip{background:#f1f7ff!important}.markerDot.private{background:#8a5bd3;border-color:#fff}.privateCard{border-left:4px solid #8a5bd3}.privateBadge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#efe8fb;color:#6941a5;font-size:10px;font-weight:800}.privateSummary{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;font-size:11px}.privateSummary b{color:#17644f}.privateHero{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#f5f0fc;border:1px solid #e1d4f4;border-radius:12px;padding:12px;margin:10px 0}.privateHero strong{font-size:20px;color:#5d3894}.privateHero span{font-size:11px;color:#6f647d}.privateNotes,.privateSecret{border:1px solid #e1e8e5;border-radius:12px;padding:12px;margin:10px 0;background:#fff}.privateNotes p{white-space:pre-wrap;margin:7px 0 0}.privateSecret{background:#fff6dc;border-color:#eedc9e}.requestParkingBtn{width:100%;margin-top:10px;min-height:46px}.privacyCallout{background:#eef7f4;border:1px solid #cfe5dd;border-radius:10px;padding:10px 12px;margin:8px 0 14px;font-size:12px;color:#315b52}.privateOfferDialog form,.parkingRequestDialog form{width:min(680px,92vw)}
@media(max-width:760px){.quickActions{grid-template-columns:1fr 1fr}.privateOfferBtn{grid-column:1/-1}}


/* V8.0 private booking workflow */
.bookingAdminDialog .bookingDialogInner,.myBookingsDialog .bookingDialogInner{width:min(720px,92vw);max-height:82vh;overflow:auto;padding:4px}.bookingList{display:grid;gap:10px}.bookingItem{border:1px solid #dce5e1;border-radius:12px;padding:12px;background:#fff;display:grid;gap:6px;font-size:12px}.bookingItemHead{display:flex;justify-content:space-between;gap:10px;align-items:center}.bookingStatus{padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;background:#eef2f1}.bookingStatus.accepted{background:#dcf6e8;color:#20754d}.bookingStatus.pending{background:#fff2c9;color:#835d00}.bookingStatus.declined,.bookingStatus.cancelled{background:#f8e5e5;color:#923b3b}.bookingStatus.completed{background:#e7eefb;color:#315e9b}.bookingActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px}.bookingMsg,.bookingWait{color:#60716c}.addressReveal{background:#eaf7ef;border:1px solid #c9e7d4;border-radius:10px;padding:10px;display:grid;gap:4px}.bookingEmpty{padding:18px;text-align:center;color:#687873}.adminAddBtn#bookingAdminBtn{margin-top:8px}.quickActions{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:900px){.quickActions{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* V8.2 admin center + booking availability */
.bookingAdminDialog{width:min(860px,calc(100vw - 32px));max-width:860px;padding:0;overflow:hidden}
.bookingAdminDialog .bookingDialogInner{width:100%;max-height:86vh;overflow-y:auto;overflow-x:hidden;padding:22px}
.bookingAdminDialog .dialogHead{position:sticky;top:-22px;z-index:4;background:#fff;padding:18px 0 14px;margin-top:-18px;border-bottom:1px solid #edf1ef}
.adminCenterTabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.adminCenterTab{border:1px solid #d5e1dd;background:#f5f8f7;border-radius:11px;padding:11px 14px;font-weight:800;color:#31504d;cursor:pointer}.adminCenterTab.active{background:#0d5553;color:#fff;border-color:#0d5553}.adminCenterPanel{min-width:0}.adminCenterSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.adminStat{background:#f5f8f7;border:1px solid #e1e9e6;border-radius:10px;padding:10px}.adminStat b{display:block;font-size:18px}.adminStat span{font-size:11px;color:#6b7d7b}.offerReviewCard{border:1px solid #dce5e1;border-radius:13px;padding:14px;background:#fff;display:grid;gap:8px}.offerReviewMeta{display:flex;gap:12px;flex-wrap:wrap;color:#526966;font-size:12px}.offerReviewSecret{background:#edf7f4;border-radius:9px;padding:9px;font-size:12px}.bookingDay{font-weight:850;color:#173334;margin:14px 0 7px;padding-bottom:7px;border-bottom:1px solid #e6ece9}.bookingPeriod{display:flex;align-items:center;gap:10px;background:#f5f8f7;border-radius:9px;padding:9px 10px}.bookingPeriod .bar{height:7px;border-radius:999px;flex:1;background:#d7e2de;position:relative;overflow:hidden}.bookingPeriod.accepted .bar:after{content:"";position:absolute;inset:0;background:#2d7b5a}.bookingPeriod.pending .bar:after{content:"";position:absolute;inset:0;background:#e9b640}.bookingPeriod.unavailable .bar:after{content:"";position:absolute;inset:0;background:#8b9693}.bookingToolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.bookingToolbar button{border:1px solid #d1ddd9;background:#fff;border-radius:8px;padding:7px 10px;cursor:pointer}.bookingFilter{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}.bookingFilter button.active{background:#0d5553;color:#fff}.bookingItem{overflow:hidden}.bookingItemHead b{font-size:14px}.bookingItem .bookingPeriod{margin:2px 0}.bookingStatus.unavailable{background:#e8edeb;color:#53615e}.bookingConflictNote{font-size:11px;color:#6a7976}.requestAvailability{margin-top:10px;background:#f5f8f7;border:1px solid #dfe8e5;border-radius:11px;padding:10px}.requestAvailabilityTitle{font-weight:800;font-size:12px;margin-bottom:7px}.availabilityRows{display:grid;gap:6px}.availabilityRow{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px;padding:7px 8px;border-radius:8px;background:#fff}.availabilityRow.booked{background:#f1f3f2;color:#6c7875}.availabilityRow .availabilityState{font-weight:800}.availabilityRow.booked .availabilityState{color:#8b4b45}.availabilityRow.open .availabilityState{color:#20754d}
@media(max-width:620px){.bookingAdminDialog{width:calc(100vw - 16px)}.bookingAdminDialog .bookingDialogInner{padding:14px}.adminCenterSummary{grid-template-columns:1fr 1fr}.adminCenterTabs{grid-template-columns:1fr}.bookingFilter{margin-left:0;width:100%}}

/* V8.3 public availability */
.publicAvailability,.requestBookedWrap{margin:12px 0;padding:12px;border:1px solid #d9e5e1;border-radius:14px;background:#f8fbfa}.availabilityHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.availabilityHead span{font-size:12px;color:#60736e}.bookedSlots{display:grid;gap:7px}.bookedSlot{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:9px 10px;border-radius:10px;background:#fff1ef;border:1px solid #ffd7d1;font-size:13px}.bookedSlot>span:last-child{font-size:12px;font-weight:700;color:#b13a2d}.bookedDot{width:9px;height:9px;border-radius:50%;background:#d84b3e}.availabilityFree{padding:9px 10px;border-radius:10px;background:#eaf8f0;color:#17683c;font-weight:700}.availabilityLoading{padding:8px;color:#64746f}.requestAvailability{display:flex;flex-direction:column;gap:3px;margin:10px 0;padding:11px 12px;border-radius:12px}.requestAvailability.free{background:#eaf8f0;color:#17683c}.requestAvailability.conflict{background:#fff0ee;color:#a63127;border:1px solid #ffcfc9}.requestAvailability span{font-size:12px}.requestBookedTitle{font-weight:800;margin-bottom:8px}.requestParkingBtn:disabled,#parkingRequestForm button[type="submit"]:disabled{opacity:.5;cursor:not-allowed}

/* V8.3.2 controlled booking date/time picker */
.bookingTimeGrid{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:10px;align-items:end;margin:12px 0}.bookingTimeArrow{text-align:center;font-size:24px;padding-bottom:12px;color:#64748b}.bookingTimeLabel{font-weight:800;margin-bottom:7px}.bookingTimeControls{display:grid;grid-template-columns:minmax(145px,1fr) minmax(100px,.65fr);gap:8px}.bookingTimeControls input,.bookingTimeControls select{width:100%;min-height:46px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;padding:0 12px;font:inherit}.bookingTimeControls select{cursor:pointer}@media(max-width:680px){.bookingTimeGrid{grid-template-columns:1fr}.bookingTimeArrow{transform:rotate(90deg);padding:0;line-height:18px}.bookingTimeControls{grid-template-columns:1fr 1fr}}

/* V8.4 host portal */
.hostAuthBox{max-width:480px;margin:8px auto 20px}.hostAuthTabs{display:flex;gap:8px;margin-bottom:14px}.hostAuthTabs button{flex:1}.hostAuthTabs button.active{font-weight:700;border-color:#111}.hostAuthBox form{display:grid;gap:12px}.hostCenterActions{display:flex;gap:10px;align-items:center;margin:12px 0 16px}.hostOfferCard{border:1px solid #e5e7eb;border-radius:16px;padding:16px;margin:12px 0;background:#fff}.hostOfferCard .offerReviewMeta{margin:10px 0}.hostRequestList{margin-top:12px;border-top:1px solid #eee;padding-top:10px}.hostRequestList h4{margin:0 0 8px}.hostRequest{padding:12px;border:1px solid #eee;border-radius:12px;margin:8px 0}.hostRequest .bookingActions{margin-top:10px}


/* V8.5.1 public blurred-pin preview */
.privatePinPreviewWrap{margin:10px 0 14px;border:1px solid #d9e4e0;border-radius:14px;background:#fff;overflow:hidden}.privatePinPreviewWrap[hidden]{display:none}.privatePinPreviewHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;background:#f6faf8}.privatePinPreviewHead>div{display:grid;gap:2px}.privatePinPreviewHead span{font-size:11px;color:#60716c}.privatePinPreviewHead button{border:1px solid #cbd9d4;background:#fff;border-radius:9px;padding:7px 10px;font-weight:700;cursor:pointer}.privatePinPreviewMap{height:230px;width:100%}.privatePinPreviewCoords{padding:8px 12px;font-size:11px;color:#60716c;background:#fbfcfc}.privatePreviewPin{width:24px;height:24px;border-radius:50% 50% 50% 0;background:#8055c7;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.28);transform:rotate(-45deg)}@media(max-width:620px){.privatePinPreviewMap{height:190px}.privatePinPreviewHead{align-items:flex-start;flex-direction:column}}
/* V8.7 account + notifications */
#notificationCount:not(:empty){display:inline-flex;min-width:18px;height:18px;padding:0 5px;align-items:center;justify-content:center;border-radius:999px;background:#c62828;color:#fff;font-size:11px;font-weight:700}
.notificationUnread{box-shadow:inset 4px 0 0 #f4b72f;background:#fffdf5}
.accountDialogInner{max-width:720px}

/* V8.8 WKW? brand experience */
:root{--wkw-night:#092c3b;--wkw-night2:#16485b;--wkw-green:#63ed91;--wkw-cream:#fffaf0}
.wkwLanding{position:fixed;inset:0;z-index:99999;overflow:hidden;background:linear-gradient(160deg,#082b3c 0%,#123f50 47%,#9b6f65 73%,#f0a56e 100%);color:#fff;display:grid;align-items:center;padding:clamp(28px,6vw,90px)}
.wkwLanding.isHidden{display:none}.wkwSky{position:absolute;inset:0;background:radial-gradient(circle at 72% 65%,#ffc77d 0 1%,#ffb77855 2%,transparent 17%),radial-gradient(circle at 20% 18%,#ffffff20 0 1px,transparent 2px);opacity:.9}
.wkwLanding:after{content:"";position:absolute;left:-8%;right:-8%;bottom:-12%;height:48%;background:linear-gradient(150deg,transparent 0 15%,#071e28 15.2% 29%,transparent 29.2%),linear-gradient(30deg,transparent 0 34%,#0a2731 34.2% 51%,transparent 51.2%),linear-gradient(165deg,transparent 0 52%,#061a22 52.2% 70%,transparent 70.2%);opacity:.88;pointer-events:none}
.wkwHero{position:relative;z-index:2;width:min(720px,90vw)}.wkwLogo{font-size:clamp(58px,8vw,112px);line-height:.9;font-weight:950;letter-spacing:-.075em;text-shadow:0 6px 30px #0004}.wkwLogo span{color:var(--wkw-green);display:inline-block;transform:rotate(7deg);margin-left:.05em}.wkwMeaning{font-size:clamp(11px,1.4vw,17px);letter-spacing:.36em;margin:18px 0 42px;color:#d8e6e8;font-weight:700}.wkwHero h1{font-size:clamp(42px,6vw,82px);line-height:1.01;letter-spacing:-.045em;margin:0;max-width:700px}.wkwLead{font-size:clamp(18px,2vw,28px);color:#d8e2e3;margin:20px 0 30px}.wkwFeatures{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:34px}.wkwFeatures span{border:1px solid #ffffff35;background:#ffffff12;backdrop-filter:blur(8px);border-radius:999px;padding:9px 13px;font-size:13px}.wkwCtas{display:flex;gap:12px;flex-wrap:wrap}.wkwCtas button{min-height:52px;border-radius:999px;padding:0 25px;font-size:15px;font-weight:850;cursor:pointer}.wkwPrimary{border:0;background:var(--wkw-green);color:#092c3b}.wkwSecondary{border:1px solid #ffffff88;background:#ffffff12;color:#fff;backdrop-filter:blur(8px)}.wkwCn{font-size:12px;letter-spacing:.08em;color:#d5e3e4;margin-top:24px}.wkwSkip{position:absolute;z-index:4;right:28px;top:24px;border:0;background:#ffffff15;color:#fff;border-radius:999px;padding:9px 14px;cursor:pointer}.wkwRoad{position:absolute;z-index:1;right:8%;bottom:-3%;width:32vw;height:78%;transform:rotate(10deg);opacity:.75}.wkwRoad:before{content:"";position:absolute;inset:0 35%;background:#10242b;clip-path:polygon(43% 0,57% 0,100% 100%,0 100%)}.wkwRoad:after{content:"";position:absolute;left:49.2%;top:4%;width:1.5%;height:85%;background:repeating-linear-gradient(to bottom,#fff 0 22px,transparent 22px 48px);transform:perspective(300px) rotateX(12deg)}
.wkwTopBrand .wkwMark{background:linear-gradient(145deg,#164f50,#0a292f);border:1px solid #ffffff1f;box-shadow:inset 0 1px 0 #ffffff1a,0 3px 10px #00191d40}.wkwTopBrand h1{letter-spacing:-.03em}.wkwTopBrand h1 small{font-size:12px;font-weight:650;letter-spacing:0;color:#b8cdca}.wkwTopBrand p{letter-spacing:.02em}
@media(max-width:700px){.wkwLanding{align-items:start;padding-top:100px}.wkwMeaning{margin-bottom:28px}.wkwFeatures{display:grid;grid-template-columns:1fr 1fr}.wkwRoad{right:-18%;width:70vw;opacity:.5}.wkwSkip{right:14px;top:14px}.wkwCtas button{width:100%}}

/* V8.8.1 city-ready brand header */
.brandCnAlias{font-size:14px;font-weight:800;letter-spacing:.06em;color:#d9e8e5;margin-left:7px;vertical-align:middle}.brandCnAlias[hidden]{display:none}.citySwitcher{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid #d7e2df;border-radius:10px;padding:0 7px 0 9px;min-height:40px;color:#173b3a;font-weight:750}.citySwitcher select{border:0;outline:0;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:0 4px}.wkwTopBrand h1{display:flex;align-items:baseline;gap:2px}.wkwTopBrand p{font-size:11px;color:#b8cdca}@media(max-width:850px){.citySwitcher{order:-1}.brandCnAlias{font-size:12px}}

/* V8.9 Phase 1 — community discovery */
.communityCallout b{display:block;margin-bottom:4px}.communityClaimGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.communityClaimGrid label{min-width:0}.communityBadge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#fff4d8;color:#795500;font-size:12px;font-weight:700}.communityMeta{margin:10px 0;padding:10px 12px;border:1px solid var(--border,#ddd);border-radius:12px;background:var(--viz-card,#fafafa);font-size:13px;line-height:1.55}.communityMeta strong{display:block;margin-bottom:3px}@media(max-width:640px){.communityClaimGrid{grid-template-columns:1fr}}

/* V8.9.1 — map-first discovery */
.discoveryLocationChoice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 0 12px;padding:10px;border:1px solid #dce7e2;border-radius:12px;background:#f5faf7}.discoveryLocationChoice span{font-size:12px;color:#667773}.mapChoosePrimary{background:#0c4a46!important;color:#fff!important;border-color:#0c4a46!important;font-weight:800}.mapPickMode #map{outline:3px solid #f2b632;outline-offset:-3px}.mapPickMode .mapTip{background:#8a5a00e8;font-weight:800}.mapPickSecondary.isPicking{background:#fff2c7;border-color:#e0a72b;color:#6b4a00;font-weight:800}

/* V8.10 — community trust + explorer */
.trustPanel{margin:12px 0;padding:14px;border:1px solid var(--line,#dfe7e5);border-radius:14px;background:#f7faf9;display:grid;gap:10px}.trustTop{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.trustScore{font-size:20px;font-weight:800}.trustScore.high{color:#087a54}.trustScore.medium{color:#8a6500}.trustScore.low{color:#a44927}.trustScore.insufficient{color:#66736f}.trustAxes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.trustAxis{background:white;border:1px solid #e6ecea;border-radius:10px;padding:9px}.trustAxis b{display:block;margin-bottom:4px}.trustMeta{font-size:12px;color:#68736f}.trustConflict{font-size:12px;color:#9b3f26;font-weight:700}.verifyCommunityBtn{border:0;border-radius:10px;background:#0b6258;color:white;padding:10px 14px;font-weight:800;cursor:pointer}.verifyCommunityBtn:disabled{opacity:.55;cursor:not-allowed}.trustWarning{background:#fff7dc;border:1px solid #efd58a;border-radius:10px;padding:10px 12px;font-size:13px;margin:8px 0 14px}.explorerMini{font-size:12px;color:#50615c;font-weight:700}.communityTrustMini{margin-top:6px;font-size:12px;color:#50615c}.communityTrustMini strong{color:#0b6258}@media(max-width:700px){.trustAxes{grid-template-columns:1fr}}

/* V8.10.1 auth recovery */
.linkButton{border:0;background:transparent;color:#0b6b5b;text-decoration:underline;cursor:pointer;padding:8px 0;font-weight:700}
/* V8.11 evidence / explorer */
#verifyPlaceForm input[type=file]{padding:10px;background:#fff;border:1px dashed #b9c9c5;border-radius:10px}.trustEvidenceBadge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;color:#0b6258;background:#e8f6f1;border-radius:999px;padding:4px 8px}
/* V8.11.1 verification evidence */
.verificationEvidenceBox{margin:8px 0 12px;padding:12px;border:1px solid #dce8e3;border-radius:12px;background:#f7fbf9}
.verificationEvidenceBox b{display:block;margin-bottom:8px}.verificationEvidenceGrid{display:flex;gap:8px;flex-wrap:wrap}.verificationEvidenceGrid a{display:inline-flex;align-items:center;gap:6px;max-width:100%;word-break:break-all}.verificationEvidenceGrid img{width:92px;height:72px;object-fit:cover;border-radius:9px;border:1px solid #d7e3de}.trustEvidence{margin-top:10px;padding-top:10px;border-top:1px solid #e1e9e5}.trustEvidenceTitle{font-weight:800;margin-bottom:7px}.trustEvidenceItems{display:flex;gap:8px;flex-wrap:wrap}.trustEvidenceItems img{width:84px;height:64px;object-fit:cover;border-radius:8px;border:1px solid #d7e3de}.trustEvidenceItems a.sourceEvidence{padding:7px 9px;border:1px solid #d7e3de;border-radius:8px;background:#fff;text-decoration:none;color:#075e54;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* V8.13 evidence viewer */
.evidenceThumbBtn{border:0;background:transparent;padding:0;cursor:zoom-in;display:inline-flex;flex-direction:column;gap:4px;align-items:flex-start}.evidenceThumbBtn img{width:92px;height:68px;object-fit:cover;border-radius:8px}.evidenceThumbBtn small{font-size:11px;opacity:.7}.evidenceLightbox{border:0;border-radius:14px;padding:0;width:min(96vw,1200px);height:min(92vh,900px);max-width:none;max-height:none;overflow:hidden;background:#111;color:#fff}.evidenceLightbox::backdrop{background:rgba(0,0,0,.82)}.evidenceToolbar{height:48px;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:6px 10px;background:#171717}.evidenceToolbar button,.evidenceOriginal{min-width:38px;height:36px;border:1px solid #444;border-radius:8px;background:#242424;color:#fff;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer}.evidenceClose{font-size:26px;margin-right:auto}.evidenceViewport{height:calc(100% - 84px);display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;cursor:zoom-in}.evidenceViewport.zoomed{cursor:grab}.evidenceViewport.dragging{cursor:grabbing}.evidenceLightbox img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transform-origin:center center;user-select:none;will-change:transform}.evidenceLightboxMeta{height:36px;text-align:center;padding:8px 12px;font-size:13px;opacity:.8;background:#171717}.verificationEvidenceGrid .evidenceThumbBtn img{width:92px;height:68px;object-fit:cover;border-radius:8px}

.evidenceViewport img{pointer-events:none}

/* V8.17 language-safe layout for longer Vietnamese, Thai, and Lao labels. */
.dialogHead,.dialogHead>div,.bookingItem,.bookingItemHead,.offerReviewCard,.hostOfferCard,
.info,.card,.notice>div,.accountDialogInner,#accountLoggedBox{min-width:0}
.dialogHead h2,.dialogHead p,.bookingItem,.bookingItemHead b,.bookingMsg,.bookingWait,
.offerReviewMeta,.offerReviewSecret,.hostRequest,.notificationItem,.hint,.privacyCallout{
  overflow-wrap:anywhere;word-break:normal
}
.bookingAdminDialog button,.privateOfferDialog button,.parkingRequestDialog button,
.bookingActions button,.hostCenterActions button,.accountHubActions button{
  white-space:normal;line-height:1.25;min-height:38px;overflow-wrap:anywhere
}
#accountLoggedBox .adminLogged,#hostLoggedBox .adminLogged{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px
}
#accountEmail,#hostEmail{display:block;min-width:0;line-height:1.55;overflow-wrap:anywhere}
#accountLogoutBtn,#hostLogoutBtn{white-space:nowrap;min-width:max-content;align-self:start}
.notificationItem .bookingItemHead{align-items:flex-start}
.notificationItem .bookingItemHead small{white-space:nowrap;flex:0 0 auto}
.quickActions button{min-width:0;white-space:normal;line-height:1.2;overflow-wrap:anywhere}
.filterChips .chip{max-width:100%}
.wkwMark{overflow:visible}
.wkwMark svg{width:32px;height:42px;display:block;overflow:visible}
.wkwLogoRoadEdge,.wkwLogoRoadLane{fill:none;stroke-linecap:round;stroke-linejoin:round}
.wkwLogoRoadEdge{stroke:#fff;stroke-width:8}
.wkwLogoRoadLane{stroke:#164b50;stroke-width:2;stroke-dasharray:4 4}
.wkwLogoPin{fill:var(--wkw-green);stroke:#fff;stroke-width:1.6}
.wkwLogoPinCore{fill:#164b50;stroke:#fff;stroke-width:1}
.wkwHeroMark{display:inline-block!important;width:.46em;height:.68em;margin-left:.07em!important;transform:none!important;vertical-align:-.14em}
.wkwHeroMark svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 5px 8px #0004)}
.wkwHeroMark .wkwLogoRoadEdge{stroke-width:7}.wkwHeroMark .wkwLogoRoadLane{stroke:#143c48;stroke-width:1.8}
.quickActions{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:620px){
  #accountLoggedBox .adminLogged,#hostLoggedBox .adminLogged{grid-template-columns:1fr}
  #accountLogoutBtn,#hostLogoutBtn{justify-self:start}
  .dialogHead{gap:10px}.dialogHead>div{min-width:0}
  .bookingItemHead{align-items:flex-start;flex-wrap:wrap}
  .quickActions{grid-template-columns:1fr 1fr}
}

/* V8.18 private-parking i18n: allow long Vietnamese, Thai and Lao copy to reflow. */
.privateOfferDialog form,.parkingRequestDialog form{min-width:0}
.privateOfferDialog label,.parkingRequestDialog label,.bookingTimeLabel,
.privatePinPreviewHead,.privateHero,.availabilityHead{min-width:0;overflow-wrap:anywhere}
.privateOfferDialog .row,.parkingRequestDialog .bookingTimeGrid{min-width:0}
.privateOfferDialog input,.privateOfferDialog select,.privateOfferDialog textarea,
.parkingRequestDialog input,.parkingRequestDialog select,.parkingRequestDialog textarea{min-width:0}
.privatePinPreviewHead button,.searchRow button{flex:0 1 auto;max-width:100%;white-space:normal}
@media(max-width:700px){
  .privateOfferDialog .row{grid-template-columns:1fr}
  .privateOfferDialog .searchRow{grid-template-columns:1fr}
  .privateOfferDialog .searchRow button{width:100%}
  .parkingRequestDialog .bookingTimeGrid{grid-template-columns:1fr}
  .parkingRequestDialog .bookingTimeArrow{transform:rotate(90deg);justify-self:center}
  .privateHero,.availabilityHead{align-items:flex-start;flex-direction:column}
}

/* V8.18.5 localized file picker + full-width private-space form */
.privateOfferDialog{width:min(920px,calc(100vw - 32px));max-width:920px;max-height:90vh;overflow:hidden}
.privateOfferDialog form{width:100%;max-height:90vh;overflow-x:hidden;overflow-y:scroll;scrollbar-gutter:stable;overscroll-behavior:contain}
.privateOfferDialog .searchRow{grid-template-columns:minmax(0,1fr) auto}
.privateOfferDialog .row>*{min-width:0}
.filePicker{position:relative;display:flex;align-items:center;gap:10px;min-height:48px;padding:7px 10px;border:1px solid #cad7d3;border-radius:9px;background:#fff;cursor:pointer;min-width:0}
.filePicker input[type=file]{position:absolute;width:1px!important;height:1px;padding:0!important;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0!important}
.filePickerButton{flex:0 0 auto;padding:7px 11px;border:1px solid #aebfba;border-radius:8px;background:#f4f7f6;color:#173334;font-size:12px;font-weight:800;line-height:1.2}
.filePickerStatus{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#687b78;font-size:12px;font-weight:500}
.filePicker:focus-within{outline:2px solid #2d8279;outline-offset:2px}
@media(max-width:700px){.privateOfferDialog{width:calc(100vw - 20px)}.filePicker{align-items:flex-start;flex-direction:column}.filePickerStatus{max-width:100%}}

/* V8.20 Phase 5B: keep the manual pin map and touch controls in the scroll flow. */
.privateOfferDialog form{grid-auto-rows:max-content}
.privatePinActions{display:flex;flex-wrap:wrap;gap:8px;padding:12px}
.privatePinActions button{min-height:44px;flex:1 1 150px;border:1px solid #cbd9d4;border-radius:9px;padding:9px 12px;background:#fff;font-weight:700;cursor:pointer}
.privatePinActions button:disabled{opacity:.5;cursor:not-allowed}

@media(max-width:700px){.privateOfferDialog{position:fixed;inset:5dvh auto auto 10px;margin:0;width:calc(100vw - 20px);max-height:90dvh}.privateOfferDialog form{max-height:90dvh}}

/* V8.21A.1: small location and notification navigation affordances. */
.locationStatus{position:absolute;top:64px;right:12px;z-index:3;max-width:min(280px,75%);padding:8px 10px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0002;font-size:13px;pointer-events:none}
.locationStatus:empty,#notificationNavStatus:empty{display:none}
.notificationLink{cursor:pointer}
.notificationLink:hover{background:#eef5fb}
.notificationLink:focus-visible,.notificationTarget:focus{outline:3px solid #2875b9;outline-offset:2px}
.notificationTarget{box-shadow:inset 4px 0 0 #2875b9}
/* V8.21A.2 */
.wkwFooter{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;padding:1rem;background:#f5f7fb}.wkwFooter button{border:0;background:transparent;color:#315586;text-decoration:underline;cursor:pointer;padding:.4rem}.wkwModal{width:min(92vw,680px);max-height:85vh;overflow:auto;padding:1.4rem}.wkwModal label{display:block;margin:1rem 0}.wkwModal textarea,.wkwModal select{display:block;width:100%;box-sizing:border-box;margin-top:.4rem}.wkwModal p{line-height:1.6}.wkwFeedbackCard{padding:1rem;border-bottom:1px solid #ccd5e0;overflow-wrap:anywhere}.wkwFeedbackCard button{margin:.3rem}.wkwReport{margin:.7rem 0;padding:.4rem .8rem}@media(max-width:390px){.wkwFooter{gap:.2rem}.wkwModal{width:calc(100vw - 2rem);padding:1rem}.wkwFeedbackCard{padding:.7rem}}
/* V8.21A.2 final: wrap legacy long addresses and technical identifiers. */
.detail,.detailHead,.detailHead>div,.detailHead p,.privateNotes,.privateSecret,
.offerReviewCard,.offerReviewMeta,.offerReviewMeta span,.offerReviewSecret,
.hostOfferCard,.hostOfferCard .bookingItemHead,.bookingAdminDialog .bookingDialogInner,
.wkwFeedbackCard,.wkwFeedbackCard p,.wkwFeedbackCard small{
  min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal;
}
.wkwFeedbackId{display:block;margin:.4rem 0;color:#647574;overflow-wrap:anywhere}
.wkwFeedbackTarget{font-weight:700}
@media(max-width:390px){.detail,.bookingAdminDialog,.bookingAdminDialog .bookingDialogInner,
.offerReviewCard,.hostOfferCard,.wkwFeedbackCard{min-width:0;max-width:100%}}
