/* booth-map.css — the ONLY styles for the booth map (dashboard + vendor map).
   Landscape: a portrait floor plan rotated 90deg inside a landscape stage. */
.map-stage{position:relative;width:100%;max-width:1450px;margin:0 auto;aspect-ratio:2078/1260;overflow:hidden;background:#fff}
.map{position:absolute;width:60.63%;aspect-ratio:1260/2078;left:50%;top:50%;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center;background:url('booth-map-wood-floor.png') center/100% 100% no-repeat}
.map .booth{position:absolute;border:1px solid #fff;border-radius:3px;color:#fff;font-weight:800;font-size:clamp(11px,1.25vw,18px);line-height:1.05;padding:1px;text-align:center;text-shadow:0 1px 2px #000;overflow:hidden;cursor:default}
.map .booth .label{transform:rotate(-90deg);transform-origin:center;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:1px 2px}
.map .booth .num{font-size:.50em;white-space:nowrap;margin-bottom:2px}
.map .booth .name{font-size:.60em;max-width:100%;overflow:hidden;white-space:normal;overflow-wrap:anywhere}
.booth.available,.dot.available{background:rgba(46,157,88,.78)}
.booth.reserved,.dot.reserved{background:rgba(183,58,58,.84)}
.booth.checked-in,.dot.checked-in{background:rgba(37,99,235,.85)}
.map-legend{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:8px;font-size:13px}
.map-legend .dot{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:4px}
.map-updated{color:#777}
@media(max-width:600px){.map-stage{min-width:760px}}
