.room-intro{height:42px;padding:0 12px;margin-bottom:14px;line-height:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.room-intro strong{font-size:15px;margin-right:4px}
#room-key{color:var(--accent)}
#room-count,#room-help{color:var(--muted)}
.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;min-height:40px}
.map-hint{margin:0;font-size:13px;line-height:1.4}
.map-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.map-actions output{min-width:42px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}
.map-viewport{aspect-ratio:1;overflow:auto;scrollbar-width:none;overscroll-behavior:contain;border:1px solid var(--line);border-radius:8px;cursor:grab}
.map-viewport::-webkit-scrollbar{display:none}
.map-viewport:active{cursor:grabbing}
.map-stage{position:relative;aspect-ratio:1;margin:0}
.map-stage>img{display:block;width:100%;height:100%;user-select:none;pointer-events:none}
.room-marker{position:absolute;transform:translate(-50%,-50%);padding:0;width:9px;height:9px;min-height:9px;border:1px solid #8b1212;background:#ff3030;border-radius:50%;box-shadow:0 0 0 1px #0006;cursor:pointer;z-index:1}
.room-marker:hover,.room-marker[aria-pressed=true]{z-index:3;border-color:#fff;box-shadow:0 0 0 1px #fff8}
.selected-room{font-size:15px;padding:14px 0;color:var(--accent);min-height:46px}
@media(max-width:760px){.map-toolbar{gap:8px}.map-hint{max-width:155px;font-size:12px}.map-actions{gap:5px}.map-actions .button{padding:7px 10px}}
