/* Shared enlarged gallery. The desktop reference panel keeps its existing layout. */
.mobileDock,#photoThumb,.mobileSheet{display:none}
#photoDialog{position:fixed;inset:0;margin:auto;width:min(1100px,94vw);height:min(850px,94dvh);max-width:100vw;max-height:100dvh;padding:0;border:1px solid #bba27b60;background:#122229;color:#edece6;overflow:hidden}
#photoDialog[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}
.galleryHeader,.sheetHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px;padding:6px 18px;border-bottom:1px solid var(--line);background:#122229}
#galleryTitle{margin:0;font:400 12px/1.45 Arial,sans-serif;letter-spacing:.04em;color:var(--gold)}
#closePhoto{position:static;flex:0 0 44px;width:44px;height:44px;padding:0;font-size:28px;color:#e7e1d5}
.galleryNav{display:flex;align-items:center;justify-content:center;gap:26px;min-height:44px;border-bottom:1px solid var(--line)}
.galleryNav button{height:44px;min-width:52px;font-size:23px;color:var(--gold)}
.galleryNav button:disabled{opacity:.25;cursor:default}
#galleryCount{min-width:55px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:#dfd9cc}
#galleryStage{min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px;background:#09161d;touch-action:pan-y pinch-zoom;user-select:none;overflow:hidden}
#fullPhoto{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;cursor:default;user-select:none;-webkit-user-drag:none}
#fullPhoto.drawing{background:white}
.galleryDetails{padding:12px 24px 20px;max-height:180px;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-y}
#galleryRoom{margin:0 0 6px;font-size:25px}
#galleryDescription{margin:0;font-size:13px;line-height:1.65;color:#bdc9cd}
.galleryDetails .small{margin:10px 0 0;padding-top:10px}
.mobileSheet::backdrop{background:#06151c75}

@media(max-width:800px),(max-width:960px) and (max-height:500px){
 :root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--edge-left:max(12px,env(safe-area-inset-left,0px));--edge-right:max(12px,env(safe-area-inset-right,0px));--header-height:calc(54px + var(--safe-top));--dock-height:calc(64px + var(--safe-bottom))}
 html,body{height:100%;height:100dvh;overscroll-behavior:none}
 button,a{touch-action:manipulation}
 #viewport{height:100dvh;bottom:auto}
 header{height:var(--header-height);padding:var(--safe-top) var(--edge-right) 0 var(--edge-left);background:#102129e8;backdrop-filter:blur(12px)}
 .wordmark{font-size:20px;letter-spacing:.14em}.wordmark span{font-size:10px;margin-left:10px;padding-left:10px}
 header .edition,#photoToggle{display:none}
 .headerActions{gap:0}#enquireToggle{height:38px;padding:0 13px;font-size:10px;letter-spacing:.07em}.enquireLong{display:none}.enquireShort{display:inline}
 .intro{display:none!important}
 .modes,body.inside .modes,body.diagram .modes{top:var(--header-height);left:0;right:0;width:auto;height:44px;padding:0 var(--edge-right) 0 var(--edge-left);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;border:0;background:#102129ed;backdrop-filter:blur(12px)}
 .modes button,.modes button.active{display:flex;align-items:center;justify-content:center;white-space:nowrap;gap:0;padding:0;font-size:11px;letter-spacing:0;border:0;border-bottom:2px solid transparent;min-width:0;color:#afc0c6}
 .modes button span{display:none}.modes button.active{border-bottom-color:var(--gold);color:#f6ead7;background:#bba27b09}
 .bottom{display:none}
 #panel{display:none!important}
 #deckSelector{top:calc(var(--header-height) + 52px);left:var(--edge-left);right:var(--edge-right);width:auto;transform:none;max-width:none}
 .deckButtons{width:max-content;max-width:100%;margin:auto;padding:3px;background:#10242bf2}.deckButtons button{padding:8px 14px;min-height:40px;font-size:11px}.deckButtons button[aria-pressed=true]{background:var(--gold)}#deckDescription{display:none}
 .mobileDock{position:fixed;z-index:5;bottom:0;left:0;right:0;height:var(--dock-height);padding:8px var(--edge-right) calc(8px + var(--safe-bottom)) var(--edge-left);display:flex;align-items:center;gap:8px;background:#102129f5;border-top:1px solid #bba27b40;backdrop-filter:blur(14px)}
 .mobileRoomBar{display:flex;align-items:center;flex:1;min-width:0;border:1px solid #bba27b60;height:46px;background:#ffffff03}
 .mobileRoomBar>button{height:44px;min-width:42px;padding:0 8px;font-size:23px;color:var(--gold)}
 #roomPicker{display:flex;gap:6px;align-items:center;justify-content:center;flex:1;min-width:0;font-size:12px;color:#ece5d7}
 #selectedRoom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#roomPicker .chevron{font-size:10px;color:var(--gold)}
 #controlsToggle{height:46px;min-width:78px;padding:0 10px;font-size:11px;letter-spacing:.035em;border:1px solid #bba27b60;color:#ded0b8}
 #photoThumb:not([hidden]){position:fixed;z-index:4;left:var(--edge-left);bottom:calc(var(--dock-height) + 12px);display:flex;align-items:center;gap:9px;max-width:180px;height:54px;padding:3px 11px 3px 3px;background:#102129ef;border:1px solid #bba27b80;box-shadow:0 3px 14px #0003;backdrop-filter:blur(8px)}
 #photoThumbImage{width:64px;height:46px;object-fit:cover}#photoThumbLabel{font-size:10px;white-space:nowrap;color:#e9dfcd;letter-spacing:.01em}
 .mobileSheet{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:560px;max-height:calc(100dvh - var(--safe-top) - 12px);padding:0;border:1px solid #bba27b60;border-bottom:0;background:#122229;color:#edece6;overflow:hidden}
 .mobileSheet[open]{display:flex;flex-direction:column}
 .sheetHeader{flex:0 0 auto;padding:6px max(16px,env(safe-area-inset-right)) 6px max(16px,env(safe-area-inset-left))}
 .sheetHeader h2{font:400 15px/1.4 Arial,sans-serif;letter-spacing:.04em;color:var(--gold);margin:0}
 .sheetHeader button{width:44px;height:44px;font-size:27px;flex:0 0 auto}
 #roomList,#mobileControlsContent{padding:8px max(16px,env(safe-area-inset-right)) calc(14px + var(--safe-bottom)) max(16px,env(safe-area-inset-left));overflow:auto;overscroll-behavior:contain;min-height:0}
 #roomList .roomnav,.inside #roomList .roomnav,.diagram #roomList .roomnav{display:flex;flex-direction:column;gap:0;padding:0;margin:0;background:none}
 #roomList [data-room]{display:block;min-height:46px;padding:12px 14px;text-align:left;font-size:13px;letter-spacing:.025em;border:0;border-bottom:1px solid var(--line)}
 #roomList [data-room].active{color:#f4e0b9;background:#bba27b14;border-left:2px solid var(--gold)}
 #mobileControlsContent .toolbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:8px 0}
 #mobileControlsContent .toolbar>button{font-size:12px;min-height:46px;padding:10px;border:1px solid #bba27b55;background:#ffffff03;letter-spacing:.025em}
 #mobileControlsContent .toolbar>button[aria-pressed=true]{background:#bba27b20;border-color:var(--gold);color:#e8cca2}
 #mobileControlsContent .finishes{grid-column:1/-1;display:flex;justify-content:center;gap:18px;min-height:50px;margin-bottom:8px}
 #mobileControlsContent .finishes span{display:inline;font-size:10px;letter-spacing:.1em;margin-right:4px}
 #mobileControlsContent [data-color]{width:34px;height:34px;border:5px solid #122229}
 #mobileControlsContent #exploreHelp{position:static;width:auto;padding:14px 0 0;border:0;border-top:1px solid var(--line);background:none;margin-top:8px}
 #mobileControlsContent #exploreHelp p{font-size:11px;margin:8px 0;line-height:1.65}
 #mobileControlsContent .travelButtons button{min-height:44px;font-size:11px}
 #exitExplore{min-height:44px}
 #areaLoading{top:calc(var(--header-height) + 54px);font-size:12px;padding:9px 14px;max-width:90vw}
 #loading{font-size:14px;text-align:center;padding:24px}
 #photoDialog{inset:0;width:100%;height:100dvh;max-width:100%;max-height:100dvh;border:0;margin:0;padding:var(--safe-top) env(safe-area-inset-right) var(--safe-bottom) env(safe-area-inset-left)}
 #photoDialog[open]{grid-template-rows:auto auto minmax(0,1fr) minmax(90px,22dvh)}
 .galleryHeader{padding:4px 12px;min-height:52px}#galleryTitle{font-size:11px;letter-spacing:.025em}
 .galleryNav{min-height:44px;gap:38px}#galleryStage{padding:8px}
 .galleryDetails{padding:14px 18px 18px;max-height:none;border-top:1px solid var(--line)}#galleryRoom{font-size:24px}#galleryDescription{font-size:12px;line-height:1.7}
 #enquiryDialog{max-height:100dvh}
}
@media(max-width:960px) and (max-height:500px) and (orientation:landscape){
 :root{--header-height:calc(46px + var(--safe-top));--dock-height:calc(58px + var(--safe-bottom))}
 .wordmark{font-size:18px}header{background:#102129e0}#enquireToggle{height:34px}
 .modes,body.inside .modes,body.diagram .modes{left:max(170px,env(safe-area-inset-left));right:max(124px,env(safe-area-inset-right));top:var(--safe-top);height:46px;padding:0;gap:2px;background:none;backdrop-filter:none;z-index:3}
 .modes button,.modes button.active{font-size:11px}
 #deckSelector{top:calc(var(--header-height) + 8px)}
 .mobileDock{padding-top:5px;padding-bottom:calc(5px + var(--safe-bottom));padding-left:max(210px,env(safe-area-inset-left));gap:10px}
 #photoThumb:not([hidden]){bottom:calc(6px + var(--safe-bottom));height:46px;z-index:6}#photoThumbImage{height:38px;width:54px}
 #photoDialog[open]{grid-template-columns:minmax(0,1fr) minmax(210px,30%);grid-template-rows:48px 44px minmax(0,1fr)}
 .galleryHeader{grid-column:1/-1;min-height:48px}.galleryNav{grid-column:1/-1}.galleryDetails{grid-column:2;grid-row:3;border-top:0;border-left:1px solid var(--line);padding:14px 16px}#galleryStage{grid-column:1;grid-row:3}.galleryDetails .small{font-size:9px!important}
 #galleryRoom{font-size:23px}#areaLoading{top:calc(var(--header-height) + 8px)}
}
