/* v1.9.8 — interactive long-press relocation and two-way building swap */
.map-world .plots .plot.moving-source,
.map-world .plots .plot.moving-source.focused,
.map-world .plots .plot.moving-source.selected{
  background:linear-gradient(180deg,#d9ebff,#a9d0ff)!important;
  border:3px solid #1877ee!important;
  outline:3px solid rgba(24,119,238,.34)!important;
  box-shadow:0 0 0 5px rgba(255,255,255,.8),0 17px 25px rgba(22,79,154,.28)!important;
  transform:translateY(-11px) scale(1.035)!important;
  z-index:20!important;
  cursor:grab;
  animation:relocationPulse 1.25s ease-in-out infinite;
  touch-action:none;
}
.map-world .plots .plot.moving-source svg{filter:drop-shadow(1px 6px 5px rgba(15,63,113,.4))!important}
.map-world .plots .plot.move-target:not(.moving-source){
  border:2px dashed #239c83!important;
  background:rgba(194,241,220,.43)!important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)!important;
}
.map-world .plots .plot.move-target.occupied:not(.moving-source){
  border-color:#328ac4!important;
  background:linear-gradient(180deg,rgba(236,248,255,.96),rgba(211,235,246,.88))!important;
}
.map-world .plots .plot.drop-candidate:not(.moving-source){outline:4px solid #1884ea!important;outline-offset:-2px!important;box-shadow:0 0 0 5px rgba(24,132,234,.23)!important}
.map-world .plots .plot.swap-in-motion{visibility:hidden!important}
@keyframes relocationPulse{
  0%,100%{box-shadow:0 0 0 4px rgba(24,119,238,.12),0 15px 23px rgba(22,79,154,.23)}
  50%{box-shadow:0 0 0 8px rgba(24,119,238,.28),0 21px 30px rgba(22,79,154,.33)}
}
#finishMapMove{
  position:fixed;z-index:10015;bottom:calc(104px + env(safe-area-inset-bottom,0px));
  left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 36px);
  padding:13px 22px;border:2px solid #1a75cc;border-radius:18px;
  color:white;background:#1264c2;box-shadow:0 6px 20px rgba(7,56,120,.28);
  font:800 15px/1.25 ui-rounded,system-ui,sans-serif;cursor:pointer;
}
#finishMapMove[hidden]{display:none!important}
.relocation-ghost{pointer-events:none!important;z-index:10021!important}
.swap-animation-layer{position:fixed;inset:0;z-index:10020;pointer-events:none;overflow:visible}
.swap-flight{margin:0!important;opacity:1;transform-origin:center center;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
@media(max-width:700px){#finishMapMove{bottom:calc(175px + env(safe-area-inset-bottom,0px));font-size:14px;padding:12px 18px}}
@media(prefers-reduced-motion:reduce){.map-world .plots .plot.moving-source{animation:none!important}}

/* v1.9.9: single continuous long-press-and-drag gesture */
.swap-preview-live{position:fixed;z-index:10018;pointer-events:none;opacity:.68;filter:drop-shadow(0 8px 8px #225b8066);display:flex;align-items:center;justify-content:center;animation:swapPreviewPulse .8s ease-in-out infinite alternate}
.swap-preview-live[hidden]{display:none!important}
.swap-preview-live svg{width:100%;height:100%;object-fit:contain}
@keyframes swapPreviewPulse{from{opacity:.45;transform:translateY(-3px)}to{opacity:.8;transform:translateY(-9px)}}
body.actively-relocating .city .map{touch-action:none!important}
#collectAllMapCoins{position:absolute;top:10px;right:12px;z-index:20;background:#fff1c2;color:#345748;border:2px solid #d3ae59;border-radius:13px;padding:9px 13px;box-shadow:0 4px 10px #29473635;font:800 13px/1.2 ui-rounded,system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
#collectAllMapCoins:active{transform:scale(.97)}
#collectAllMapCoins:disabled{opacity:.65}
@media(max-width:700px){#collectAllMapCoins{top:9px;right:9px;font-size:11px;padding:9px 10px;max-width:56%}}

/* v1.9.9 — stronger separation: constructed buildings vs. vacant green terrain.
   Do not override selection, service coverage or relocation indicators. */
.map-world .plots .plot.occupied:not(.focused):not(.selected):not(.moving-source):not(.move-target):not(.drop-candidate):not(.impact-full):not(.impact-partial):not(.in-range){
  background:linear-gradient(155deg,#fffaf0 0%,#f2e9d7 100%)!important;
  border:1.5px solid #9d998a!important;
  box-shadow:0 3px 0 #b8b8a9,0 7px 15px rgba(44,61,50,.23),inset 0 1px 0 #ffffff!important;
}
.map-world .plots .plot:not(.occupied):not(.focused):not(.selected):not(.move-target){
  background:rgba(179,199,167,.11)!important;
  border:1.5px dashed rgba(82,118,91,.66)!important;
  box-shadow:none!important;
}
.map-world .plots .plot.occupied .plot-type{
  background:#fff2d4!important;
  border:1px solid #d6bea0!important;
  color:#304e45!important;
  text-shadow:none!important;
}
.map-world .plots .plot.occupied svg{
  filter:drop-shadow(1px 2px 0 rgba(52,68,61,.55)) drop-shadow(3px 7px 3px rgba(30,47,39,.35))!important;
}
