.map-compass{position:absolute;z-index:4;top:130px;left:12px;width:40px;height:50px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow-card)}.map-compass span{font-size:23px;line-height:22px;color:var(--blue)}.map-compass b{font-size:11px;line-height:14px}.map-help-actions{display:grid;gap:6px;pointer-events:auto}.mapfoot .map-help-actions button{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-height:36px;font-size:11px;padding:8px 10px;color:var(--ink)}.map-help-actions .icon{width:16px;height:16px}.entrance-layer{position:absolute;inset:0;pointer-events:none}.entrance-marker{position:absolute;transform:translate(-50%,0);display:flex;align-items:center;gap:5px;border:1px solid var(--blue);border-radius:10px;background:var(--surface);color:var(--blue);padding:7px 10px;min-height:36px;white-space:nowrap;font-size:12px;font-weight:600;pointer-events:auto;box-shadow:0 3px 10px #0002}.entrance-marker .icon{width:18px;height:18px}.far .entrance-marker span{display:none}.far .entrance-marker{padding:6px}.orientation-card{display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--surface)}.orientation-card h3{margin:0 0 5px;font-size:20px}.orientation-card p{font-size:13px;color:var(--muted);line-height:1.5}.north-down{font-size:20px;color:var(--blue);white-space:nowrap}.wayfinding-actions{display:flex;gap:8px;margin-top:18px}.wayfinding-actions button{flex:1;font-size:13px;min-height:48px;padding:10px}.hotel-route{margin:24px 0}.hotel-route h3,.map-legend h3{font-size:22px;margin:0 0 12px}.hotel-route p,.hotel-route li{font-size:15px;line-height:1.6}.hotel-route ol{padding-left:22px;margin:18px 0}.hotel-route li{padding:0 0 10px 4px}.hotel-route .caption{font-size:12px;color:var(--muted)}.venue-floor{width:100%;height:auto;border-radius:12px;margin-top:12px;background:white}.map-legend>div{display:flex;align-items:center;gap:12px;margin:14px 0;font-size:14px}.legend-swatch{width:28px;height:24px;display:inline-grid;place-items:center;border:2px solid #b7a9ca;border-radius:6px;background:#faf8fe;color:#28694d}.legend-swatch.saved{background:#eee6ff;border-color:#7050cf}.legend-swatch.visited{background:#e4f3eb;border-color:#5a9881}.legend-cluster{display:inline-grid;place-items:center;width:28px;height:28px;border:2px solid #b7a9ca;border-radius:8px;background:var(--surface);font-weight:600}.map-legend .wide{margin-top:22px}@media(max-height:650px){.map-compass{top:124px}.map-help-actions{gap:4px}.mapfoot .map-help-actions button{min-height:32px;padding:6px 8px}}

#canvas .source-entrance-label{display:none}

/* Quiet source entrances and a separate hotel connection diagram below the hall. */
.venue-context .venue-corridor{fill:none;stroke:#e4deed;stroke-width:10;stroke-linecap:round}.venue-context .hotel-walk{fill:none;stroke:#9272c9;stroke-width:1.3;stroke-dasharray:3 2;stroke-linejoin:round}.venue-context .route-dot{fill:#9272c9;stroke:#fff;stroke-width:.6}.venue-context text{font-family:inherit;fill:#746584}.venue-context .entrance-label{font-size:5px;font-weight:500}.venue-context .corridor-label{font-size:5px;fill:#81758e}.venue-context .street-line{stroke:#cfc4dd;stroke-width:.6;stroke-dasharray:1 2}.venue-context .skywalk-label{font-size:5px;fill:#7554ac}.westin-block{cursor:pointer}.westin-block rect{fill:#e8ddfa;stroke:#c5afe8;stroke-width:.8}.venue-context .hotel-name{font-size:7px;font-weight:600;fill:#624491}.venue-context .hotel-city{font-size:4px;fill:#80639f}.venue-context .route-caption{font-size:4.5px;fill:#8a7b98}.westin-block:focus-visible rect{stroke:#7050cf;stroke-width:2}.far .venue-context .entrance-label{visibility:hidden}

/* Wayfinding is available without panning away from the booths. */
.mapfoot .map-help-actions button{min-height:40px}.map-help-actions{max-width:calc(100% - 110px)}
.venue-hours{padding:18px;margin:20px 0;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.venue-hours h3{font-size:20px;margin:0 0 14px}.venue-hours dl{display:grid;gap:12px;margin:0 0 14px}.venue-hours dl>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px}.venue-hours dt{font-size:14px;color:var(--muted)}.venue-hours dd{margin:0;font-weight:600;font-size:15px}.venue-hours p{font-size:13px;line-height:1.6;color:var(--muted)}
.venue-source-links{display:grid;gap:10px;margin-top:14px}.venue-source-links a{display:inline-flex;align-items:center;gap:6px;font-size:12px;overflow-wrap:anywhere}.venue-source-links .icon{flex-shrink:0;width:14px;height:14px}
.hotel-route .eyebrow{font-size:10px}.hotel-route h3{margin-top:8px}.bridge-directions h4{margin-bottom:8px}.bridge-directions ol{margin-top:8px}.bridge-directions details{margin:12px 0 20px}
.bridge-map{margin:20px 0}.bridge-map a{display:block;position:relative;border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden}.bridge-map .venue-floor{display:block;margin:0}.bridge-map-pin{position:absolute;left:65.1%;top:4.8%;width:7%;aspect-ratio:1;border:3px solid #6c35c1;box-shadow:0 0 0 2px white;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.bridge-map figcaption{margin-top:8px;font-size:12px;line-height:1.5;color:var(--muted)}
#venueAccess{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:10px;white-space:normal;min-height:48px}

/* Real hall doors are tappable; the Westin connection is explicitly off-plan. */
.entrance-layer{z-index:5}.map-entrance-pin{position:absolute;transform:translate(-50%,0);display:flex;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 2px 8px #0002;font-size:12px;white-space:nowrap;pointer-events:auto;cursor:pointer;touch-action:manipulation}.map-entrance-pin .icon{width:18px;height:18px;flex:none;color:var(--blue)}.map-entrance-pin:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.westin-entrance-pin{text-align:left;min-width:230px;border-color:var(--blue)}.westin-entrance-pin strong,.westin-entrance-pin small{display:block}.westin-entrance-pin small{margin-top:3px;font-size:10px;color:var(--muted)}.far .map-entrance-pin:not(.westin-entrance-pin)>span{display:none}.far .map-entrance-pin:not(.westin-entrance-pin){justify-content:center;padding:8px}
.entrance-options{display:grid;gap:10px;margin:18px 0}.entrance-options button{display:flex;align-items:center;gap:12px;padding:16px;text-align:left;min-height:72px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink)}.entrance-options button>span{flex:1;min-width:0}.entrance-options strong,.entrance-options small{display:block}.entrance-options strong{font-size:16px}.entrance-options small{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.5}.entrance-options .icon{width:20px;height:20px;flex:none;color:var(--blue)}.entrance-summary{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);margin-bottom:18px}.entrance-summary h3{font-size:22px;margin:10px 0}.entrance-hours{display:block;font-size:21px;color:var(--blue);line-height:1.4}.entrance-summary p{font-size:14px;line-height:1.6;margin-top:12px}.entrance-summary .caption{font-size:12px;color:var(--muted)}.entrance-source{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:13px}.entrance-source .icon{width:14px;height:14px}#allEntrances{margin-top:12px}.wayfinding-actions{flex-wrap:wrap}
