/* GSF04 v46: clear, deterministic booth status colors; original SVG geometry unchanged.
   Precedence: selected foreground > search > purchased > planned > favorite > original. */

/* Search: cyan rather than pale yellow, with a narrow stroke that cannot flood neighboring booths. */
#mapSvg #boothLayer .booth.search-hit:not(.selected):not(.mergedSource),
#mapSvg #mergedBoothLayer .mergedBooth.search-hit:not(.selected) {
  fill: #9ddff4 !important;
  stroke: #207ba3 !important;
  stroke-width: .68 !important;
  stroke-opacity: 1 !important;
  fill-opacity: 1 !important;
  filter: none !important;
}

/* Bought: a muted, readable gray. All works bought OR circle manually marked purchased. */
#mapSvg #boothLayer .booth:is(.work-complete, .done):not(.selected):not(.search-hit):not(.mergedSource),
#mapSvg #mergedBoothLayer .mergedBooth:is(.work-complete, .done):not(.selected):not(.search-hit) {
  fill: #b1bdc9 !important;
  stroke: #647688 !important;
  stroke-width: .66 !important;
  stroke-opacity: 1 !important;
  fill-opacity: 1 !important;
  filter: none !important;
}

/* Planned: some registered works still need buying. It outranks a favorite. */
#mapSvg #boothLayer .booth.work-pending:not(.selected):not(.search-hit):not(.done):not(.mergedSource),
#mapSvg #mergedBoothLayer .mergedBooth.work-pending:not(.selected):not(.search-hit):not(.done) {
  fill: #ffcb91 !important;
  stroke: #bb762b !important;
  stroke-width: .7 !important;
  stroke-opacity: 1 !important;
  fill-opacity: 1 !important;
  filter: none !important;
}

/* Favorite: stronger mint-green than v30, but below shopping statuses. */
#mapSvg #boothLayer .booth.favorite:not(.selected):not(.search-hit):not(.done):not(.work-complete):not(.work-pending):not(.mergedSource),
#mapSvg #mergedBoothLayer .mergedBooth.favorite:not(.selected):not(.search-hit):not(.done):not(.work-complete):not(.work-pending) {
  fill: #9feab8 !important;
  stroke: #318957 !important;
  stroke-width: .7 !important;
  stroke-opacity: 1 !important;
  fill-opacity: 1 !important;
  filter: none !important;
}

/* The foreground selection is rendered by v34 with an INSIDE border. The
   ordinary selected rectangles remain fully invisible to avoid double edges. */
#mapSvg #gsfSelectionForegroundV34 .gsf46SelectionFill {
  stroke: none !important;
  filter: none !important;
}
#mapSvg #gsfSelectionForegroundV34 .gsf46SelectionInset {
  fill: none !important;
  stroke: #168ac4 !important;
  stroke-width: .6 !important;
  filter: none !important;
}

/* Compact mobile sheet: discreet status beside the booth number. */
.gsf46LocationRow {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 7px;
  min-width: 0;
  max-width: 100%;
  line-height: 1;
}
.gsf46MenuCheck {
  display: inline-grid;
  place-items: center;
  box-sizing: border-box;
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  border-radius: 50%;
  background: #24a755;
  color: #fff;
  font-family: sans-serif;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}
.gsf46MenuCheck[hidden], .gsf46AuthorX[hidden] { display: none !important; }
.gsf46AuthorX {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 23px;
  height: 23px;
  flex: 0 0 23px;
  margin: -4px 0;
  border: 1px solid #d8e1ea;
  border-radius: 7px;
  background: #f8fafb;
  color: #40556b;
  text-decoration: none;
  font-size: 12px;
  font-weight: 750;
  line-height: 1;
  pointer-events: auto;
  touch-action: manipulation;
}
.gsf46AuthorX:focus-visible { outline: 2px solid #197ba9; outline-offset: 2px; }
@media (min-width: 761px) {
  .gsf46LocationRow { display: none; }
}

/* v47: last-word selection visibility; override the later v30 rules. */
#mapSvg #boothLayer .booth.selected:not(.mergedSource),
#mapSvg #selectedSingleBoothLayer .booth.selected,
#mapSvg #selectedMergedBoothLayer .mergedBooth.selected {
  fill-opacity: 0 !important; stroke-opacity: 0 !important;
  opacity: 0 !important; filter: none !important;
}
#mapSvg #gsfSelectionForegroundV34 .gsf46SelectionInset {
  stroke: #168ac4 !important; stroke-width: .60 !important;
  vector-effect: non-scaling-stroke;
}

/* v48: one visible selected shape (v34), irrespective of earlier styles. */
#mapSvg #boothLayer rect.booth.selected,
#mapSvg #selectedMergedBoothLayer rect.mergedBooth.selected,
#mapSvg #selectedSingleBoothLayer rect.booth.selected {
  fill-opacity:0!important;stroke-opacity:0!important;opacity:0!important;filter:none!important;
}
#mapSvg #gsfSelectionForegroundV34 { opacity:1!important;pointer-events:none!important; }
#mapSvg #gsfSelectionForegroundV34 .gsf46SelectionFill { fill:#9ddff4!important;fill-opacity:1!important; }
#mapSvg #gsfSelectionForegroundV34 .gsf46SelectionInset { stroke:#168ac4!important;stroke-opacity:1!important; }
