/* Viewer 8.3.0 — explicit doorways and clear equipment reference photos. */
#property-navigation { --nav-bg: rgba(27,28,28,.97); --nav-border: rgba(255,255,255,.19); color:#f5f5f0; font:14px/1.45 'Montserrat',sans-serif; }
#property-navigation [hidden] { display:none!important; }
/* Doorways remain in Places and proximity detection; hide projected scene labels. */
#nav-pins { display:none!important; }
#property-navigation button, #property-navigation a { touch-action:manipulation; }
#property-navigation button:focus-visible, #property-navigation a:focus-visible {outline:3px solid #91c5ff;outline-offset:3px;}
#property-navigation button {font:inherit;color:inherit;cursor:pointer;}
.nav-menu-heading {font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#aaa;padding:14px 10px 4px;margin:0;border-top:1px solid rgba(255,255,255,.12);}
#scene-menu {max-height:calc(100dvh - 180px);overflow-y:auto;overscroll-behavior:contain;}
#scene-menu button {display:block;width:100%;min-height:44px;padding:10px 14px;text-align:left;background:none;border:0;color:#f5f5f0;font:inherit;cursor:pointer;}
#scene-menu button:hover {background:rgba(255,255,255,.08);}
.nav-pin {position:fixed;z-index:12;transform:translate(-50%,-50%);max-width:190px;min-height:44px;padding:8px 13px;border:1px solid rgba(255,255,255,.5);border-radius:8px;background:rgba(20,25,29,.87);box-shadow:0 3px 14px #0005;text-align:center;}
.nav-pin::before {content:'↗';padding-right:7px;color:#9ccbff;}
.nav-card {position:fixed;z-index:23;right:max(20px,env(safe-area-inset-right));top:130px;width:min(310px,calc(100vw - 32px));max-height:calc(100dvh - 250px);overflow-y:auto;box-sizing:border-box;border:1px solid var(--nav-border);border-radius:12px;background:var(--nav-bg);padding:20px;box-shadow:0 12px 40px #0005;}
.nav-card h2 {font-size:18px;line-height:1.25;margin:6px 28px 14px 0;font-weight:600;}
.nav-card p {font-size:13px;color:#cbcecf;margin:12px 0;}
.nav-card .nav-eyebrow {font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#a9c5dd;margin:0;}
.nav-close {position:absolute;right:5px;top:5px;width:44px;height:44px;border:0;background:none;font-size:25px!important;}
.nav-primary, .nav-return-link {display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;padding:10px 16px;color:#fff;text-decoration:none;border:1px solid var(--nav-border);border-radius:7px;background:#264e70;}
#nav-return {position:fixed;z-index:24;top:18px;right:max(76px,env(safe-area-inset-right));}
.nav-return-link {background:var(--nav-bg);}
#nav-photo-open {display:block;width:100%;padding:5px;border:1px solid #737775;border-radius:6px;background:#121615;}
#nav-photo-open::after {content:'Tap to enlarge';display:block;color:#bcc3c7;font-size:11px;padding:6px 0 2px;}
#nav-reference-img {display:block;width:100%;height:210px;object-fit:contain;}
.nav-card-actions {display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.nav-card-actions button,.nav-card-actions a {font-size:12px!important;min-height:44px;display:inline-flex;align-items:center;background:transparent;border:0;color:#a9d2fa!important;padding:0;text-decoration:underline;text-underline-offset:3px;}
#nav-approach {position:fixed;z-index:25;left:50%;bottom:130px;transform:translateX(-50%);display:flex;align-items:center;gap:16px;background:var(--nav-bg);border:1px solid var(--nav-border);padding:10px 14px;border-radius:10px;max-width:calc(100vw - 44px);box-sizing:border-box;}
#nav-approach button,#nav-tour button,.nav-photo-tools button {min-height:44px;border:1px solid var(--nav-border);border-radius:6px;padding:8px 12px;background:#343a3e;white-space:nowrap;}
#nav-subject {position:fixed;z-index:11;width:28px;height:28px;transform:translate(-50%,-50%);border:2px solid #d1e8fa;border-radius:50%;box-shadow:0 0 0 5px #163a5b80;pointer-events:none;}
#nav-tour {position:fixed;z-index:24;left:20px;top:135px;max-width:320px;padding:14px;background:var(--nav-bg);border:1px solid var(--nav-border);border-radius:10px;}
#nav-tour>div {display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}
#nav-tour button:disabled {opacity:.4;cursor:default;}
#nav-photo-dialog {width:min(1100px,94vw);height:min(900px,92dvh);box-sizing:border-box;padding:14px;border:1px solid #606b72;border-radius:12px;background:#181c1f;color:#fff;}
#nav-photo-dialog::backdrop {background:rgba(0,0,0,.85);}
.nav-photo-tools {display:flex;gap:10px;align-items:center;min-height:44px;margin-bottom:10px;}
.nav-photo-tools span {flex:1;font-size:15px;}
#nav-photo-scroll {height:calc(100% - 58px);overflow:auto;overscroll-behavior:contain;}
#nav-photo-full {width:100%;height:100%;object-fit:contain;display:block;}
#nav-photo-scroll.zoomed #nav-photo-full {width:auto;height:auto;max-width:none;min-width:150%;max-height:none;}
#property-navigation.nav-hidden {visibility:hidden;pointer-events:none;}
@media(max-width:700px),(orientation:portrait) {
  #nav-reference {top:auto;bottom:126px;right:16px;width:min(380px,calc(100vw - 32px));max-height:38dvh;padding:14px;}
  #nav-reference h2 {font-size:16px;margin-bottom:10px;}
  #nav-photo-open {width:116px;float:left;margin:0 14px 8px 0;}
  #nav-reference-img {height:104px;}
  #nav-reference-description {font-size:12px;margin:6px 0;}
  .nav-card-actions {clear:both;gap:18px;}
  #nav-door {top:auto;bottom:126px;right:16px;padding:16px;max-height:35dvh;}
  #nav-return {top:110px;right:16px;max-width:calc(100vw - 32px);}
  .nav-return-link {font-size:12px;padding:8px 10px;}
  .nav-pin {font-size:11px!important;max-width:156px;}
  #nav-approach {bottom:128px;font-size:12px;gap:8px;}
  #nav-tour {top:100px;left:12px;font-size:12px;max-width:calc(100vw - 48px);}
  .nav-photo-tools {flex-wrap:wrap;gap:6px;}
  .nav-photo-tools span {flex-basis:100%;}
  #nav-photo-scroll {height:calc(100% - 88px);}
}
@media(max-height:550px) and (orientation:landscape) {
  .nav-card {top:74px;right:12px;max-height:calc(100dvh - 170px);width:300px;padding:12px;}
  #nav-reference-img {height:120px;}
}

/* Reference photos stay beside the centered subject. Doorway prompts remain centered. */
#nav-door {left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(380px,calc(100vw - 32px));max-height:calc(100dvh - 180px);}
#nav-reference {left:auto;right:max(20px,env(safe-area-inset-right));top:50%;bottom:auto;transform:translateY(-50%);width:min(320px,calc(50vw - 42px));max-height:calc(100dvh - 220px);}
@media(min-width:701px) and (orientation:portrait) {
  #nav-photo-open {float:none;width:100%;margin:0 0 12px;}
  #nav-reference-img {height:180px;}
}
@media(max-width:700px) {
  #nav-reference {left:12px;right:12px;top:auto;bottom:max(112px,calc(96px + env(safe-area-inset-bottom)));transform:none;width:auto;max-height:calc(50dvh - 124px);padding:12px;}
  #nav-reference h2 {font-size:15px;margin:4px 28px 10px 0;}
  #nav-photo-open {width:82px;margin:0 12px 8px 0;}
  #nav-reference-img {height:74px;}
  #nav-reference-description {font-size:12px;}
  .nav-card-actions {gap:14px;}
}
@media(max-height:550px) and (orientation:landscape) {
  #nav-reference {top:16px;bottom:auto;transform:none;max-height:calc(100dvh - 100px);width:min(280px,calc(50vw - 28px));}
}

/* Touch tools favour gestures and keep a useful view of the scene. */
@media(pointer:coarse),(max-width:700px){
  #viewer-tools .sheet-title{order:-3}
  #viewer-tools #btn-gestures{order:-2}
  #viewer-tools #btn-help{order:2}
  #viewer-tools #section-tools{order:3}
  #controls button{min-height:48px}
}
@media(min-width:701px) and (max-width:1200px){
  #viewer-tools,#scene-menu{left:auto;right:max(16px,env(safe-area-inset-right));transform:none;width:340px;max-height:calc(100dvh - 200px)}
}
#section-tools input[type=number]{font-size:16px}
#viewer-tools .render-quality{grid-column:1/-1;border-top:1px solid #ffffff24;margin:8px 0 0;padding:14px 12px;order:1;flex:0 0 auto}
#viewer-tools .render-quality label{display:grid;gap:8px;font-size:14px}
#viewer-tools .render-quality select{width:100%;min-height:48px;font-size:16px;color:inherit;background:#252825;border:1px solid #ffffff40;border-radius:6px;padding:8px}
#viewer-tools .render-quality-hint{font-size:12px;line-height:1.5;white-space:normal;opacity:.8;margin:8px 0 0}
