#spatial{padding:0;background:#f7f8fc;overflow:hidden}.mapTop,.mapControls,.mapPlayback{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 22px;border-bottom:1px solid #dfe2ee}.mapTop{justify-content:space-between;background:white}.mapTop h2{margin:0}.mapModes{display:flex;gap:5px}.mapModes button[aria-pressed=true]{background:#34316b;color:white}.mapLayout{display:grid;grid-template-columns:260px minmax(0,1fr)}.mapInspector{background:white;padding:20px;border-right:1px solid #dfe2ee;max-height:760px;overflow:auto}.mapInspector label{display:block;margin:12px 0 5px}.mapInspector input,.mapInspector select{width:100%}.mapInspector button{margin-top:10px}.mapInspector p{font-size:13px;line-height:1.55;color:#55596c}.mapStage{min-width:0;position:relative}.mapCanvas{display:block;width:100%;height:480px;touch-action:none;background:#f7f8fc;cursor:crosshair}.mapCanvas:focus{outline:3px solid #716ac8;outline-offset:-3px}.mapLegend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;padding:12px 22px;background:#fff}.mapLegend span::before{content:'●';color:#5f58b2;margin-right:6px}.mapLegend span:nth-child(2)::before{color:#dd9049}.mapLegend span:nth-child(3)::before{color:#298e8e}.mapStatus{margin:0;padding:12px 22px;background:#eeedf8;font-size:13px;min-height:42px}.mapTables{padding:16px 22px;overflow:auto;background:#fff}.mapTables table{min-width:560px;width:100%;border-collapse:collapse}.mapTables td,.mapTables th{padding:9px;text-align:left;border-bottom:1px solid #e5e7ef}.mapTables input{max-width:120px}.mapTables select{max-width:180px}.mapPlayback input[type=range]{flex:1;min-width:150px}.mapPlayback output{font-variant-numeric:tabular-nums;font-size:22px;color:#34316b}.mapMetrics{display:flex;flex-wrap:wrap;gap:24px;padding:18px 22px;background:#fff;border-top:1px solid #dfe2ee}.mapMetrics strong{display:block;font-size:24px;color:#34316b}.mapMetrics span{font-size:12px}.mapComparison{display:grid;grid-template-columns:1fr 1fr}.mapComparison .mapCanvas{height:380px}.mapComparison h3{padding:0 22px}.mapRoomList{max-height:200px;overflow:auto}.mapRoomList button{display:block;width:100%;text-align:left;font-size:12px}.mapActions{display:flex;flex-wrap:wrap;gap:6px}.mapHelp{padding:12px 22px;font-size:13px;color:#55596c}.spatialPresent .workspaceNav,.spatialPresent .top,.spatialPresent .mainheading,.spatialPresent .mobileNavigation,.spatialPresent .mapInspector,.spatialPresent .mapTables,.spatialPresent .mapControls{display:none}.spatialPresent .workspace{display:block}.spatialPresent .mapLayout{display:block}.spatialPresent .mapCanvas{height:65vh}.spatialPresent main{padding:12px}.mapControls label{font-size:12px}.mapControls select{max-width:240px}.mapControls input{max-width:130px}.mapSelection{padding:10px 22px;min-height:40px;background:#fff;font-size:13px}.mapInspector details{margin-top:16px}.mapInspector summary{cursor:pointer;font-weight:600}@media(max-width:850px){.mapLayout{grid-template-columns:210px minmax(0,1fr)}.mapComparison{grid-template-columns:1fr}.mapCanvas{height:400px}}@media(max-width:600px){.mapLayout{display:flex;flex-direction:column}.mapInspector{max-height:300px;border-right:0;border-bottom:1px solid #dfe2ee}.mapCanvas{height:340px}.mapTop,.mapControls,.mapPlayback{padding:12px}.mapModes{flex-wrap:wrap}.mapTop h2{font-size:24px}}@media(prefers-reduced-motion:reduce){#spatial *{scroll-behavior:auto;transition:none}}
.mapVideo{width:min(1100px,95vw)}.mapVideo video{display:block;width:100%;margin:15px 0}.mapVideo a{display:inline-block;margin-right:24px}.mapDragRoom{padding:10px;border:1px dashed #8c87b1;margin-top:12px;cursor:grab;font-size:12px}

.mapPlaybackHelp{flex-basis:100%;margin:0;font-size:13px;color:#55596c}

.mapAreaEditor{padding:12px 0;border-bottom:1px solid #dfe2ee}.mapAreaEditor label{font-size:12px}
/* The plan is the main workspace; setup can be tucked away during inspection. */
#spatial{background:#edf2f3;border:1px solid #dce3e8;border-radius:12px}
#spatial .mapTop{gap:12px;padding:16px 20px}
#spatial .mapTop h2{font-size:21px;letter-spacing:-.4px}
#spatial .mapTop p{font-size:12px;margin:4px 0 0}
#spatial .mapTop>div:first-child{margin-right:auto}
#spatial .mapControls{padding:10px 20px;background:#fff;gap:8px}
#spatial button{font-size:12px;padding:9px 12px;min-height:36px}
#spatial .mapControls label{display:flex;align-items:center;gap:8px}
#spatial .mapControls select{min-height:36px;padding:7px}
#spatial .mapLayout{grid-template-columns:240px minmax(0,1fr);align-items:start}
#spatial .mapInspector{max-height:680px;padding:16px;width:100%;font-size:12px}
#spatial .mapInspector h3{margin:0 0 14px;font-size:16px}
#spatial .mapInspector p{font-size:12px}
#spatial .mapInspector input,#spatial .mapInspector select{padding:8px;font-size:12px;min-width:0}
#spatial .mapInspector label{margin-top:10px}
#spatial .mapCanvas{height:500px;background:#edf2f3}
#spatial .mapCanvas[hidden]{display:none}
#spatial .mapLegend{gap:14px;padding:10px 18px;border-top:1px solid #dce3e8}
#spatial .mapSelection{background:#f8fafb;padding:10px 18px;color:#526976}
#spatial .mapPlayback{padding:12px 18px;background:#fff;gap:10px}
#spatial .mapPlayback:empty,#spatial .mapMetrics:empty{display:none}
#spatial .mapPlayback label{font-size:11px}
#spatial .mapPlayback output{font-size:20px}
#spatial .mapMetrics{padding:14px 18px;gap:16px}
#spatial .mapMetrics strong{font-size:18px}
#spatial .mapMetrics p{font-size:12px;margin:0;flex-basis:100%}
#spatial.mapSetupHidden .mapLayout{grid-template-columns:minmax(0,1fr)}
#spatial.mapSetupHidden .mapInspector{display:none}
#spatial.mapSetupHidden .mapCanvas{height:560px}
body:has(#spatial:not([hidden])) .mainheading{padding-bottom:14px}
body:has(#spatial:not([hidden])) .mainheading h1{font-size:32px}
.spatialPresent #spatial .mapCanvas{height:70vh}
.spatialPresent #mapSetupToggle{display:none}
@media(max-width:900px){#spatial .mapLayout{grid-template-columns:210px minmax(0,1fr)}#spatial .mapTop{flex-wrap:wrap}#spatial .mapCanvas{height:420px}}
@media(max-width:600px){#spatial .mapLayout{display:flex;flex-direction:column}#spatial .mapStage{width:100%;order:-1}#spatial .mapInspector{max-height:350px}#spatial .mapCanvas,#spatial.mapSetupHidden .mapCanvas{height:300px}#spatial .mapTop,#spatial .mapControls{padding:12px}#spatial .mapTop>div:first-child{flex-basis:100%}#spatial .mapPlayback input[type=range]{min-width:80px}#spatial .mapControls select{max-width:180px}}
#spatial.mapSetupHidden .mapComparison .mapCanvas{height:360px}
@media(max-width:600px){#spatial.mapSetupHidden .mapComparison .mapCanvas{height:300px}}

.mapLegend span:nth-child(4)::before{color:#24704e}

#spatial .mapSourceNote{margin:0 20px 14px;padding:10px 14px;border-left:3px solid #8ba99c;background:#f1f6f3;color:#52665e;font-size:12px;line-height:1.5}

#spatial .mapDiagnostic{min-width:0;width:100%;flex:0 0 100%}
#spatial .mapDiagnostic .dataTable{max-width:100%;overflow:auto}
#spatial .mapDiagnostic table{width:100%;min-width:640px}
#spatial .mapDiagnostic td:first-child{white-space:normal;overflow-wrap:anywhere;max-width:18rem}

#spatial .mapDiagnostic td:first-child,#spatial .mapDiagnostic th:first-child{width:180px;min-width:160px}
.emergencyIntro{max-width:75ch}.emergencyIntro h3{font-size:24px;margin:0 0 8px}.emergencyFields{display:flex;flex-wrap:wrap;gap:18px;margin:20px 0}.emergencyFields label{display:grid;gap:6px;min-width:160px}.emergencyColumns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.emergencyColumns section{min-width:0}.emergencyColumns h4,.emergencyResults h4{font-size:20px;margin:16px 0 8px}.emergencyColumns p{max-width:65ch;color:#55596c}.emergencyRow{border:1px solid #cbd5df;border-left:4px solid #237d82;padding:16px;margin:16px 0;min-width:0}.emergencyRow legend{font-weight:650;padding:0 6px}.emergencyRow label{display:grid;gap:5px;margin-bottom:12px}.emergencyRow input[type=checkbox]{width:20px;height:20px}.emergencyScope{padding:14px 18px;background:#edf4f5;border-left:4px solid #237d82;max-width:85ch}.emergencyIssue{border-left:4px solid #a7611c;padding:10px 14px;background:#fff6e8}.emergencyResults{border-top:2px solid #237d82;margin-top:24px;padding-top:12px}.emergencyResults p{max-width:90ch}#spatial[data-mode=emergency] .mapTables input,#spatial[data-mode=emergency] .mapTables select{max-width:100%;width:100%}#spatial[data-mode=emergency] .mapTables input[type=checkbox]{width:20px}#spatial[data-mode=emergency] .mapTables>details{margin:22px 0}#spatial[data-mode=emergency] .mapTables>details label{display:grid;gap:8px;margin:14px 0}#spatial[data-mode=emergency] .mapLegend{display:none}#spatial[data-mode=emergency] .mapMetrics:empty{display:none}@media(max-width:760px){.emergencyColumns{grid-template-columns:1fr}.emergencyFields{display:grid;grid-template-columns:1fr}.mapModes{flex-wrap:wrap}}
