html,body{height:100%;overflow:hidden}body{height:100dvh;display:flex;flex-direction:column}header{flex:none;min-height:76px;padding:10px 18px}header .identity p{font-size:.75rem}main{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) 350px;overflow:hidden}#mapSection{min-height:0;position:relative}.toolbar{flex:none;gap:6px;padding:8px 12px;position:relative;z-index:4}.stage{display:flex;flex:1;min-height:0;overflow:hidden}#viewport{height:auto;min-height:180px;min-width:0;flex:1}#viewport:focus-visible{outline:3px solid #008876;outline-offset:-4px}#inspector{min-height:0;display:flex;flex-direction:column;background:white;border-left:1px solid var(--line)}#detail{flex:1;min-height:0;max-height:none;border:0;overflow:auto;padding:16px 20px;font-size:1rem;overscroll-behavior:contain}.inspector-head{flex:none;display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);font-size:.875rem}#closeDetail,#detailToggle{display:none}.map-footer{flex:none;flex-wrap:wrap;font-size:.75rem;padding:6px 12px;gap:4px 12px}.map-footer span:last-child{white-space:normal}.select-row label,.view-tools label{font-size:.875rem}.toolbar button,.toolbar select{font-size:.875rem;min-height:36px;padding:6px 9px}.tool-options{margin:0;font-size:.875rem;align-self:center}.tool-options summary{padding:6px 8px;min-height:34px}.tool-options[open] .option-grid{position:absolute;top:100%;left:10px;right:10px;max-height:48vh;overflow:auto;background:white;border:1px solid var(--line);box-shadow:0 8px 24px #153f3222;padding:14px;border-radius:8px;display:flex;flex-wrap:wrap;gap:12px;z-index:8}.option-grid label{font-size:.875rem}input[type=range]{width:90px}#referencePane{width:44%;min-width:0;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--line);padding:8px;overflow:hidden}.reference-head{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:.875rem}#referenceCanvas{flex:1;min-height:0;object-fit:contain;width:100%;height:100%;cursor:zoom-in}#referenceNote{margin:4px 0}.map-inset{position:absolute;right:10px;top:12px;width:124px;background:#fffef8f2;border:1px solid var(--line);border-radius:6px;overflow:hidden;pointer-events:auto}#miniMap{width:124px;height:75px;cursor:crosshair;display:block}.map-inset span{display:block;text-align:center;font-size:.75rem;padding:2px}#miniMap:focus-visible{outline:3px solid #008876;outline-offset:-3px}.scene-caption{max-width:calc(100% - 156px);left:14px;top:12px}.scene-caption strong{font-size:1rem}.scene-caption span{font-size:.75rem}.map-label{font-size:.875rem;min-height:30px;max-width:230px;overflow:hidden;text-overflow:ellipsis}.map-label.room{font-size:.8rem}.map-label.facility{background:#075c50}.map-label[data-use=retail]{background:#805126}.map-label[data-use=management]{background:#555b72}.map-label.selected{border-color:#e4b74e}.map-label.occluded{opacity:.7;border-style:dashed}.evidence-pills{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.evidence-pills span{font-size:.75rem;border:1px solid #bacdc4;padding:3px 6px;border-radius:3px;background:#f5f8f6}.evidence-pills .unverified{background:#fff4df;border-color:#dcc192;color:#704511}.facility-card{border:1px solid var(--line);padding:10px;border-radius:6px}.facility-card p{margin:0!important}.facility-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.facility-actions button{font-size:.8rem;min-height:36px;padding:6px 9px}.search-row{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.search-row input{min-width:0;flex:1;min-height:38px;font:inherit;border:1px solid var(--line);padding:7px 10px;border-radius:5px}.room-list button[aria-pressed=true]{background:var(--accent);color:white}.level-chip{font-size:.8rem;padding:5px 8px;border:1px dashed #beaa7c}.image-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px 0}.image-stage{height:min(65vh,720px);position:relative;overflow:hidden;background:#e7ece9;border:1px solid var(--line);touch-action:none;cursor:grab}.image-stage img{position:absolute!important;width:auto!important;height:auto!important;max-width:none!important;transform-origin:0 0;user-select:none;pointer-events:none}.image-stage.dragging{cursor:grabbing}.image-note{font-size:.8rem;line-height:1.6;margin:8px 0}.image-state{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.image-state[hidden]{display:none}dialog{width:min(1200px,96vw);padding:16px}#dialogContent{overflow-wrap:anywhere}.dialog-head{top:-16px;padding:6px 0}.dialog-head h2{font-size:1.05rem}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:8px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.data-table th{background:#edf5f1}.scroll-table{overflow:auto}.bottom-controls{bottom:10px;left:10px;right:10px}.bottom-controls span{font-size:.75rem;padding:6px 8px}#taskProgress{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:#fff4df;font-size:.875rem;flex:none}#fallback2d{position:absolute;inset:0;background:#fff;padding:22px;overflow:auto;z-index:10}#fallbackUnits{display:flex;flex-wrap:wrap;gap:12px;padding:18px 0}#fallback2d a{display:inline-block;padding:6px}#error button{margin:8px 5px 0 0}#savedViews{max-width:160px}.test-results{white-space:pre-wrap;font-family:inherit;font-size:.875rem;line-height:1.6}.evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.evidence-grid section{padding:12px;border:1px solid var(--line)}.evidence-grid h3{margin-top:0}.review-warning{color:#76470d;background:#fff5e8;border-left:3px solid #c7903f;padding:10px}.scope-status{font-size:.8rem;padding:5px 0}input:focus-visible,canvas:focus-visible,summary:focus-visible{outline:3px solid #008876;outline-offset:2px}#cancelTask{min-height:32px}.landscape-caption{font-size:.75rem}body[data-mode=unit] #mapInset,body[data-mode=facility] #mapInset{display:none}
@media(min-width:1700px){main{grid-template-columns:minmax(0,1fr) 390px}}
@media(max-width:1100px){header{gap:8px;padding:8px 12px;min-height:70px}.identity{min-width:250px}header nav{order:0;width:auto}main{grid-template-columns:minmax(0,1fr) 300px}#detail{padding:14px}.toolbar{padding:7px}#viewport{height:auto}}
@media(max-width:900px){header{flex-wrap:wrap}.identity{min-width:220px}header nav{order:3;width:100%}header nav button{flex:1}main{display:flex;flex-direction:column}#mapSection{flex:1;min-height:0}#viewport{height:auto;min-height:140px;flex:1}#inspector{border-left:0;border-top:1px solid var(--line);flex:none;height:44px;max-height:46%;overflow:hidden}.inspector-head{min-height:44px;cursor:pointer}#detail{display:none}body.detail-open #inspector{height:42%;min-height:145px}body.detail-open #detail{display:block}#detailToggle,#closeDetail{display:inline-block}#closeDetail{min-height:30px;padding:3px 8px;font-size:.8rem}#detailToggle{font-weight:600}.tool-options[open] .option-grid{max-height:50vh}.toolbar{gap:4px}.view-tools{gap:4px}.map-footer{font-size:.75rem;padding:4px 9px}.map-footer span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-caption strong{font-size:.9rem}.scene-caption{max-width:calc(100% - 130px)}.map-inset{width:104px}#miniMap{width:104px;height:63px}.map-inset span{font-size:.75rem}.bottom-controls span{max-width:70%;font-size:.75rem}.evidence-grid{grid-template-columns:1fr}#referencePane{width:45%;padding:5px}#referenceNote{display:none}.reference-head{font-size:.8rem}#referenceZoom{padding:4px 6px;min-height:30px}.image-stage{height:58vh}}
@media(max-width:450px){.brand{display:none}.identity{min-width:180px}header .quiet{font-size:.75rem;padding:5px}h1{font-size:1rem}.toolbar label,.toolbar button,.toolbar select{font-size:.8rem}.toolbar{padding:5px}#clearSelection{padding:4px}.map-inset{display:none}.scene-caption{max-width:calc(100% - 24px)}.map-footer span:last-child{display:none}.bottom-controls span{max-width:60%}.stage{flex-direction:column}#referencePane{width:100%;height:42%;border-left:0;border-top:1px solid var(--line)}#referenceCanvas{min-height:60px}body.detail-open #inspector{height:38%}.inspector-head{font-size:.8rem}.tool-options{font-size:.8rem}}
@media(pointer:coarse){button,select,.map-label{min-height:44px}.map-label{padding:8px}.toolbar button,.toolbar select{min-height:40px}}
body.testing .stage,body.testing .toolbar,body.testing #inspector,body.testing header{pointer-events:none}body.testing #canvasHost canvas{object-fit:contain}body.testing #taskProgress{outline:2px solid #c7903f}#cancelTask{touch-action:manipulation}
#cancelLoad{position:absolute;right:12px;top:82px;z-index:8}#fallbackTools{display:flex;flex-wrap:wrap;align-items:center;gap:12px}#fallbackTools select{max-width:180px;font:inherit;padding:6px}#fallbackMap{width:100%;height:auto;max-height:60vh;object-fit:contain}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Keep the canvas inside its allotted flex area, including zoomed/narrow windows. */
header nav button{white-space:nowrap}
@media(max-width:450px){header .identity{grid-column:1;grid-row:1}header #helpButton{grid-column:2;grid-row:1}header nav{grid-row:2}}
@media(max-width:900px){#viewport{min-height:0}.map-footer{flex-direction:row}.inspector-head{min-height:40px}body.detail-open #inspector{min-height:120px}}
@media(max-width:450px){header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;padding:7px;min-height:0}.identity{min-width:0;margin:0}header nav{grid-column:1/-1;order:0}.identity p{font-size:.7rem;line-height:1.35}header .quiet{max-width:92px;min-height:34px}.toolbar .view-tools{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:2px}.view-tools button{flex:none;padding:5px 6px}#detailToggle{font-size:.75rem}.bottom-controls span{display:none}.bottom-controls{justify-content:flex-end}.scene-caption{top:6px}#referencePane{min-height:0}body.detail-open .scene-caption span{display:none}}
@media(max-height:500px) and (min-width:500px){header{min-height:0;padding:5px 10px;gap:8px;flex-wrap:nowrap}.identity{min-width:150px;margin-right:0}.brand,.identity p{display:none}h1{font-size:.9rem}header nav{order:0;width:auto;margin-left:auto}header button{min-height:32px;padding:5px 7px;font-size:.8rem}header .quiet{font-size:.75rem}main{flex-direction:row}#inspector{display:none;width:250px;height:100%;max-height:100%;border-left:1px solid var(--line);border-top:0}body.detail-open #inspector{display:flex;flex:none;height:100%;min-height:0}#detail{padding:10px}.toolbar{padding:4px;gap:3px}.toolbar button,.toolbar select{min-height:30px;padding:4px 6px}.tool-options summary{min-height:28px;padding:3px 6px}.map-inset{display:none}.scene-caption{top:5px;max-width:calc(100% - 20px)}.scene-caption span,.bottom-controls span{display:none}.bottom-controls{justify-content:flex-end;bottom:5px}.map-footer{padding:3px 6px}.map-footer span:last-child{display:none}.image-stage{height:50vh}#referencePane{width:45%;min-height:0}.tool-options[open] .option-grid{position:fixed;top:82px;bottom:8px;left:8px;right:8px;max-height:none}.dialog-head{z-index:2}}
