.spatial-view{height:var(--map-viewport-height,620px);min-height:240px;position:relative;overflow:hidden;background:#edf0f2;touch-action:none;isolation:isolate;border-radius:0}
.spatial-canvas{display:block;width:100%;height:100%;touch-action:none}
.spatial-labels,.spatial-place-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.spatial-seat-label{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:0;min-height:0;padding:1px 0;border:1px solid transparent;border-radius:4px;background:transparent;color:#263446;pointer-events:auto;font:600 var(--spatial-label-font,11px)/1.18 system-ui,sans-serif;box-shadow:none;white-space:nowrap;cursor:pointer}
.spatial-seat-label strong{font-size:inherit;font-weight:750}.spatial-seat-label small{font-size:8px;display:none;font-variant-numeric:tabular-nums;color:#414f60}
.spatial-wide-labels .spatial-seat-label small{display:block}
.spatial-seat-label.selected{background:#f8f4ffed;border-color:#7654d8;box-shadow:0 2px 5px #35225222;z-index:3;color:#51379b}
.spatial-seat-label.soon{background:#fff2d3df}.spatial-seat-label.due{background:#ffe1dcdf;color:#953824}
.spatial-seat-label:focus-visible{outline:3px solid #7654d8;outline-offset:3px}
.spatial-place-labels span{position:absolute;font:500 11px/1.4 system-ui,sans-serif;color:#687785;background:#f7f9fbc9;border-radius:4px;padding:2px 5px;white-space:nowrap;max-width:150px;text-overflow:ellipsis;overflow:hidden}
.spatial-caption{position:absolute;top:12px;left:16px;color:#607080;font-size:11px;pointer-events:none;background:#f7f9fbd9;border-radius:6px;padding:5px 9px}
.spatial-controls{position:absolute;bottom:14px;right:14px;display:flex;gap:2px;background:#fffffff0;border:1px solid #d5dce4;border-radius:12px;padding:4px;box-shadow:0 3px 10px #2634480a}
.spatial-controls button{border:0;background:transparent;color:#48576a;min-width:36px;min-height:36px;font-size:13px;padding:6px 10px;border-radius:8px;cursor:pointer}.spatial-controls button:hover{background:#efebfa;color:#6944c4}
.spatial-notice{position:absolute;top:48px;left:16px;font-size:12px;color:#86550d;max-width:min(330px,85%)}.spatial-notice details{background:#fff7e7e8;padding:6px 10px;border:1px solid #ebcd93;border-radius:8px}.spatial-notice p{margin:8px 0;line-height:1.5}.spatial-notice summary{cursor:pointer}
.spatial-loading{display:grid;place-items:center;min-height:300px;color:var(--ink);gap:10px}
.view-switch .spatial-switch{display:flex;gap:4px;align-items:center;min-width:68px;width:auto;flex-shrink:0;font-size:12px;white-space:nowrap}
.focus-view-switch{flex-shrink:0}.spatial-seat-label[hidden],.spatial-place-labels span[hidden]{display:none}
.spatial-seat-label.remind strong{animation:spatial-alert 1.5s ease-in-out infinite}
@keyframes spatial-alert{0%,60%,100%{transform:translateX(0)}65%,75%{transform:translateX(-1.5px)}70%,80%{transform:translateX(1.5px)}}
@media(prefers-reduced-motion:reduce){.spatial-seat-label.remind strong{animation:none}}
@media(max-width:767px){.spatial-view{min-height:200px}.spatial-controls{bottom:10px;right:8px;padding:3px}.spatial-controls button{min-width:40px;min-height:40px;padding:6px}.spatial-caption{left:10px;top:8px;font-size:10px}.spatial-place-labels{display:none}.spatial-notice{left:10px;top:37px}.spatial-notice details{font-size:10px}.view-switch .spatial-switch{min-width:52px;font-size:11px}}
[data-appearance=dark] .spatial-caption{background:#252c37ed;color:#d2d9e4}
[data-appearance=dark] .spatial-controls{background:#28313eee;border-color:#526074}
[data-appearance=dark] .spatial-controls button{color:#e3e8f0}
