/* Widths are map-image pixels, so the highlight stays on the printed border
   when zooming rather than becoming a wide, screen-sized dashed outline. */
.zone polygon,
.unnamed-zone polygon {
  vector-effect: none;
  stroke-width: 1.4;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.zone:hover polygon,
.zone:focus-visible polygon {
  stroke-width: 2.2;
}
.zone.selected polygon {
  stroke-width: 2.8;
  stroke-dasharray: none;
}

/* Ownership colour lives only in this layer, over a neutral map. Multiplication
   keeps the original black line art crisp under the stronger faction tint. */
#map { isolation: isolate; }
#map-image { filter: grayscale(1); }
.has-image .zone polygon {
  fill-opacity: .74;
  mix-blend-mode: multiply;
  filter: saturate(1.15);
}
.has-image .unnamed-zone polygon { fill-opacity: .7; }
.has-image .zone.selected polygon { fill-opacity: .88; }
.has-image .zone:hover polygon { fill-opacity: .82; }
.has-image .zone.unclaimed-zone polygon { fill-opacity: .04; }
.has-image .zone.unclaimed-zone.selected polygon,
.has-image .zone.unclaimed-zone:hover polygon { fill-opacity: .16; }
