*{box-sizing:border-box}body{margin:0;background:#e9edf1;color:#172934;font:16px system-ui}canvas{display:block;width:100%;height:100%;touch-action:none}[hidden]{display:none!important}#referenceImage{max-height:60dvh;object-fit:contain}header{position:absolute;top:24px;left:28px;pointer-events:none}h1{font-size:25px;margin:4px 0}header p{max-width:430px;margin:5px 0;color:#536572;font-size:14px}.tag{font-size:12px;letter-spacing:2px;color:#426879}nav{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;gap:8px;background:#fff;padding:9px;border-radius:18px;box-shadow:0 8px 35px #13253620;max-width:96vw}button{border:0;border-radius:10px;padding:12px 16px;background:#eef2f4;color:#172934;font:14px system-ui;white-space:nowrap;cursor:pointer}button#mode{background:#1e5968;color:white}button[aria-pressed="true"]{background:#c3e7ed}#measureInfo{position:absolute;bottom:138px;left:50%;transform:translateX(-50%);width:max-content;max-width:92vw;padding:12px 18px;background:#fff;border:1px solid #9abcc4;border-radius:12px;font-size:14px;box-shadow:0 4px 20px #18323b15}nav{flex-wrap:wrap;justify-content:center}button:hover{background:#d8e5e9}button:focus-visible{outline:3px solid #087f99}.hint{position:absolute;bottom:100px;left:0;right:0;text-align:center;font-size:14px;color:#536572;pointer-events:none}#error{position:absolute;top:45%;left:10%;right:10%;text-align:center}#scene{height:100dvh} @media(max-width:600px){#measureInfo{bottom:195px}.hint{bottom:160px!important}#referencePanel{top:125px!important;right:16px!important;max-width:210px!important}header{top:16px;left:18px}h1{font-size:21px}header p{max-width:300px}nav{flex-wrap:wrap;justify-content:center;width:94%;bottom:16px}button{padding:10px}.hint{bottom:125px;font-size:12px}}:is(#furniturePanel,#car-furniturePanel){position:absolute;left:18px;top:138px;bottom:160px;width:290px;z-index:4;background:#fff;box-shadow:0 8px 35px #13253622;border:1px solid #c9d5dc;border-radius:14px;padding:16px;overflow-y:auto;font-size:14px}:is(#furniturePanel,#car-furniturePanel) p{margin:10px 0;line-height:1.4}.f-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.f-head strong{font-size:17px}.f-note{color:#536572}.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}:is(#furniturePanel,#car-furniturePanel) input[type=number],:is(#furniturePanel,#car-furniturePanel) select{font:16px system-ui;width:100%;padding:8px;border:1px solid #aebfc9;border-radius:7px;background:white;color:#172934}:is(#furniturePanel,#car-furniturePanel) select{margin:5px 0 9px}.f-grid label{font-size:14px}.f-grid input{margin-top:4px}:is(#furniturePanel,#car-furniturePanel) button{padding:9px 12px}.f-primary{width:100%;background:#1e5968;color:white}.f-check{display:flex;gap:7px;align-items:center;margin:12px 0}.f-check input{width:18px;height:18px}.f-nudge,.f-actions{display:flex;gap:6px;margin:10px 0}.f-nudge button{flex:1}.f-actions button{flex:1}#furnitureStatus{color:#165f74}#furnitureSize{font-weight:600}@media(max-width:600px){:is(#furniturePanel,#car-furniturePanel){top:auto;bottom:190px;left:10px;max-height:36dvh;width:min(310px,calc(100vw - 20px));padding:12px}header p{max-width:290px}nav{gap:5px}nav button{padding:9px 8px}} #extensionPanel{position:absolute;left:18px;top:138px;bottom:180px;width:310px;z-index:5;background:#fff;box-shadow:0 8px 35px #13253622;border:1px solid #c9d5dc;border-radius:14px;padding:16px;overflow-y:auto;font-size:14px;line-height:1.45}#extensionPanel p{margin:12px 0}#extensionPanel select{width:100%;font:16px system-ui;padding:10px;border:1px solid #aebfc9;border-radius:8px;margin:6px 0 14px}#extensionArea{width:100%;accent-color:#007d68;margin:12px 0}#extensionPanel output{font-size:22px;font-weight:650;color:#126751}#extensionPanel .f-actions{flex-wrap:wrap}#extensionPanel button{padding:10px}#extensionMetrics{background:#edf6f1;border-radius:10px;padding:12px;color:#245646}#extensionBadge{position:absolute;top:110px;left:28px;z-index:3;background:#d8eee4;color:#1d5e49;padding:7px 12px;border-radius:8px;font-size:14px}#extensionPanel small{display:block;font-size:14px;color:#536572}.extension-legend{display:inline-block;width:13px;height:13px;background:#75b5a1;vertical-align:middle;margin-right:6px} @media(max-width:600px){#extensionPanel{top:auto;bottom:190px;left:10px;width:min(320px,calc(100vw - 20px));max-height:43dvh;padding:12px}#extensionBadge{left:18px;top:115px;max-width:90vw}}
#topTools{position:absolute;right:18px;top:18px;z-index:6;display:flex;flex-direction:column;align-items:flex-end;gap:8px}#topTools #referencePanel{position:static!important;max-width:240px!important}#extensionsToggle{background:#fff;box-shadow:0 4px 18px #13253615}#extensionsToggle[aria-pressed="true"]{background:#c3e7ed}#measureInfo{bottom:128px}:is(#furniturePanel,#car-furniturePanel,#extensionPanel){bottom:125px}.hint{bottom:100px}@media(max-width:800px){header p{max-width:calc(100vw - 275px)}}@media(max-width:600px){header p{max-width:calc(100vw - 36px)}#topTools{top:132px;left:18px;right:18px;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:8px}#topTools #referencePanel{max-width:min(210px,calc(100vw - 220px))!important}#extensionsToggle{padding:10px}#extensionBadge{top:186px}.hint{bottom:85px!important;padding:0 15px;font-size:12px}#measureInfo{bottom:110px}:is(#furniturePanel,#car-furniturePanel,#extensionPanel){bottom:112px}nav{width:max-content;max-width:94vw;flex-wrap:nowrap}nav button{white-space:normal} }
#walkToggle{background:#1e5968;color:white;box-shadow:0 4px 18px #13253615}.walking header,.walking #topTools,.walking nav,.walking .hint,.walking #extensionBadge{display:none!important}#walkHUD{position:absolute;inset:0;z-index:10;pointer-events:none}#walkHUD button,#walkHUD select{pointer-events:auto;touch-action:none;user-select:none}#walkBar{position:absolute;top:max(16px,env(safe-area-inset-top));left:16px;right:16px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}#walkBar button,#walkBar label{background:#fffffff2;box-shadow:0 3px 16px #13253615}#walkBar #walkExit{background:#1e5968;color:#fff}#walkBar label{padding:9px;border-radius:10px;font-size:14px}#walkHeight{font:14px system-ui;border:0;background:transparent;color:#172934;padding:3px}#walkHelp{position:absolute;top:75px;left:16px;max-width:440px;margin:0;padding:10px 14px;border-radius:10px;background:#ffffffe6;font-size:14px;color:#344f5b}#walkPad{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:max(25px,env(safe-area-inset-bottom));display:grid;grid-template-columns:52px 52px 52px;gap:7px}#walkPad button{font-size:22px;padding:12px;min-height:50px;background:#fffffff0;box-shadow:0 3px 14px #13253622}#walkPad button.held{background:#9ccfd1}#walkPad [data-walk=forward]{grid-column:2}#walkPad [data-walk=left]{grid-column:1;grid-row:2}#walkPad [data-walk=back]{grid-column:2;grid-row:2}#walkPad [data-walk=right]{grid-column:3;grid-row:2}#walkLookHint{position:absolute;right:22px;bottom:35px;max-width:160px;padding:10px;background:#ffffffe0;border-radius:9px;font-size:14px}#walkCrosshair{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#fff9;box-shadow:0 0 2px #172934;transform:translate(-50%,-50%)}@media(max-width:600px){#topTools{display:grid;grid-template-columns:auto 1fr;justify-content:start}#topTools #referencePanel{grid-column:1 / -1;justify-self:end;max-width:210px!important}#extensionBadge{top:234px}#walkBar{gap:6px}#walkBar button{font-size:14px;padding:10px}#walkHelp{top:122px;right:16px;max-width:none;font-size:14px}#walkMouse{display:none}#walkLookHint{max-width:125px;font-size:14px}#walkPad{left:16px}#walkPad button{min-height:52px}}@media(max-height:500px){#walkHelp{top:68px;max-width:420px}#walkPad{bottom:14px}#walkLookHint{bottom:16px}}
#solarPanel{position:absolute;left:18px;top:138px;bottom:125px;width:330px;z-index:5;background:white;border:1px solid #c9d5dc;border-radius:14px;padding:16px;overflow-y:auto;font-size:14px;line-height:1.45;box-shadow:0 8px 35px #13253622}#solarPanel p{margin:12px 0}#solarPanel input:not([type=range]){font:16px system-ui;width:100%;min-width:0;padding:8px;border:1px solid #aebfc9;border-radius:7px;background:white;color:#172934}#solarSlider{width:100%;accent-color:#bd800b}#solarState{padding:12px;border-radius:10px;background:#e6edf2;font-weight:600}#solarState[data-sun=true]{background:#fff0c4;color:#694500}#solarChart svg{width:100%;height:auto;display:block}#solarPeriods{font-weight:600}#solarToggle{background:white}#solarToggle[aria-pressed=true]{background:#ffe6a0}#solarPanel a{color:#1e5968}#solarPanel summary{cursor:pointer}@media(max-width:600px){#solarPanel{top:auto;bottom:112px;left:10px;width:min(330px,calc(100vw - 20px));max-height:45dvh;padding:12px}#topTools{grid-template-columns:auto auto 1fr;gap:6px}#topTools #referencePanel{grid-column:1 / -1}#topTools button{padding:10px 8px;font-size:13px}}
