.escape-wayfinding{display:flex;flex-direction:column;gap:5px;margin-top:8px;max-width:100%;pointer-events:auto;text-align:left}
.escape-wayfinding[hidden]{display:none!important}
.escape-wayfinding>small{font-size:12px;line-height:1.3;letter-spacing:0;color:inherit;opacity:.9}
.escape-wayfinding button,.escape-wayfinding summary{font:inherit;font-size:14px;line-height:1.4;min-height:44px;padding:9px 12px;white-space:normal;overflow-wrap:anywhere;cursor:pointer;touch-action:manipulation;border:1px solid #acbb9777;border-radius:6px;background:#12211def;color:#edf1d9;text-align:left;width:100%;box-sizing:border-box}
.escape-wayfinding button.escape-wayfinding-next{background:#d9dfa9;color:#17221b;border-color:#edf1bd;font-weight:700}
.escape-wayfinding button:disabled{opacity:.55;cursor:not-allowed}
.escape-wayfinding :focus-visible{outline:3px solid #f9df83;outline-offset:2px}
.escape-wayfinding details{position:relative}
.escape-wayfinding details[open]{max-height:min(30dvh,230px);overflow:auto;overscroll-behavior:contain;background:#12211df2;border-radius:6px}
.escape-wayfinding details button{margin-top:4px}
.escape-wayfinding summary{list-style-position:inside}
/* Dynamic offsets keep the text fallback below the larger objective card. */
body[data-wayfinding] #textView{top:calc(var(--card,170px) + 10px)}
@media(max-height:540px){.escape-wayfinding>small{display:none}.escape-wayfinding{margin-top:4px}}
body[data-wayfinding="unregistered-floor"] #roomnav{overflow-x:auto;justify-content:flex-start;scrollbar-width:thin}
body[data-wayfinding="unregistered-floor"] #roomnav button{flex:0 0 auto;min-width:120px;max-width:180px;white-space:normal;font-size:14px;line-height:1.3;min-height:48px;padding:8px 12px}
body[data-wayfinding="unregistered-floor"] #roomnav button.nav-recommended{background:#d9dfa9;color:#17221b;border:2px solid #f0ebba;font-weight:700}
body[data-wayfinding="unregistered-floor"] #roomnav button>span{font-size:12px}
body[data-wayfinding="unregistered-floor"] #panelContent>.escape-wayfinding{margin:0 0 14px}
@media(max-width:700px){body[data-wayfinding="unregistered-floor"] #roomnav{height:64px}body[data-wayfinding="unregistered-floor"] #roomnav button{flex-direction:row;gap:8px}body[data-wayfinding="unregistered-floor"].playing:not(.uf3d) #viewport{bottom:177px}}
body[data-wayfinding="last-patrol"] .escape-wayfinding small{font-size:12px}
body[data-wayfinding="last-patrol"] #interactionText{line-height:1.5}

/* The prompt must wrap on a phone instead of extending outside its button. */
body[data-wayfinding="last-patrol"] #interaction{white-space:normal;width:max-content;max-width:min(540px,90%)}
body[data-wayfinding].textmode #textView{max-height:max(64px,calc(100dvh - var(--card,170px) - var(--bar,112px) - 150px));overflow:auto}
body[data-wayfinding].textmode #objectList{top:calc(var(--tv,300px) + 12px);bottom:auto;max-height:max(64px,calc(100dvh - var(--tv,300px) - 20px - var(--bar,112px)));overflow:auto}
/* In short viewports, keep long destination labels in a scrollable card. */
@media(max-height:540px){body[data-wayfinding]:not([data-wayfinding="unregistered-floor"]) .objective{max-height:36dvh;overflow:auto;overscroll-behavior:contain}}

body.cinema .escape-wayfinding{visibility:hidden;pointer-events:none}
