:root{font-family:'Segoe UI',system-ui,sans-serif;color:#25372c;background:#fafbf8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;background:#fafbf8;border:1px solid #d6ddd4;border-radius:6px;padding:9px 14px}button:hover{background:#e9eee5}button:focus-visible,a:focus-visible{outline:3px solid #c08043;outline-offset:3px}button.active{background:#526b58;color:white;border-color:#526b58}#viewport{position:absolute;inset:0}canvas{display:block;touch-action:none}header{position:absolute;top:20px;left:26px;right:26px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.identity{display:flex;gap:14px;align-items:center;background:#fafbf8f5;padding:12px 20px 12px 12px;border-radius:10px}.mark{display:inline-grid;place-content:center;background:#526b58;color:white;width:48px;height:48px;border-radius:50%;font-size:17px;font-weight:650;letter-spacing:-1px}h1{margin:0;font-size:22px;line-height:1.2;font-weight:600}.identity p{font-size:12px;margin:4px 0 0;color:#69796a}header button{pointer-events:auto}nav{position:absolute;left:26px;top:111px;display:flex;gap:6px;max-width:calc(100% - 52px);overflow:auto;padding:4px;background:#fafbf8e8;border-radius:8px}nav button{white-space:nowrap;font-size:13px;padding:9px 12px;border-color:transparent}#plan{position:absolute;left:26px;bottom:64px;width:190px;background:#fafbf8ef;border-radius:9px;padding:12px}.plan-top{display:flex;align-items:center;justify-content:space-between;font-size:12px}.plan-top button{font-size:11px;padding:5px 7px}#minimap{width:100%;height:182px;margin-top:8px}#room-label{margin:4px 0 0;font-size:14px;font-weight:600}#hint{position:absolute;bottom:72px;left:50%;transform:translateX(-50%);background:#fafbf8df;padding:10px 18px;border-radius:6px;font-size:12px;white-space:nowrap;pointer-events:none}footer{position:absolute;bottom:0;width:100%;padding:13px 26px;background:#fafbf8e8;display:flex;align-items:center;gap:24px;font-size:11px}footer span{flex:1}footer a{color:#385c44}footer button{padding:3px 8px;font-size:11px}#loading{position:absolute;inset:0;background:#fafbf8;display:grid;place-items:center;text-align:center;z-index:10}#loading h2{font-size:24px;font-weight:500}#loading p{color:#6b7e70;font-size:14px}#loading[hidden]{display:none}dialog{max-width:470px;border:0;border-radius:12px;padding:30px;color:#25372c;background:#fafbf8;box-shadow:0 20px 80px #0003}dialog h2{font-weight:600}dialog p{font-size:14px;line-height:1.6}dialog::backdrop{background:#26372d70}#touch{display:none;position:absolute;right:25px;bottom:72px;text-align:center;touch-action:none}#touch button{width:44px;height:44px;padding:0;margin:2px;font-size:20px;background:#fafbf8de}@media(pointer:coarse){#touch{display:block}#hint{display:none}}@media(max-width:760px){header{top:12px;left:12px;right:12px}.identity{padding:8px 12px 8px 8px}.mark{width:40px;height:40px}h1{font-size:18px}nav{top:88px;left:12px;max-width:calc(100% - 24px)}#plan{left:12px;bottom:65px;width:145px;padding:9px}#minimap{height:136px}footer{padding:10px 12px;gap:14px}footer span{display:none}footer a{flex:1}#hint{bottom:50px;font-size:10px;max-width:100%;padding:8px}#room-label{font-size:12px}}
.modes{display:flex;gap:6px;pointer-events:auto}.modes button{font-size:12px;background:#fafbf8ee}.modes button.active{background:#526b58;color:white}@media(max-width:760px){.modes{gap:3px}.modes button{font-size:10px;padding:7px}.identity p{display:none}}
@media(max-width:600px){header{align-items:flex-start;flex-direction:column;gap:7px}.modes button{font-size:11px;padding:7px 10px}nav{top:126px}#plan{width:132px}#minimap{height:116px}}

body.mobile #touch{display:block;right:max(12px,env(safe-area-inset-right));bottom:calc(66px + env(safe-area-inset-bottom));user-select:none}
body.mobile #touch button{width:52px;height:52px;border-radius:12px;font-size:25px;box-shadow:0 2px 8px #0002;touch-action:none}
body.mobile #touch button:active{background:#526b58;color:white}
@media(max-width:600px){
 header{top:max(8px,env(safe-area-inset-top));left:10px;right:10px;gap:6px}
 .identity{padding:6px 10px;gap:8px}.mark{width:32px;height:32px;font-size:13px}h1{font-size:16px}
 .modes{width:100%;gap:6px}.modes button{min-height:44px;flex:1;font-size:12px}
 nav{top:calc(108px + env(safe-area-inset-top));left:10px;max-width:calc(100% - 20px);gap:2px;scrollbar-width:thin}
 nav button{min-height:44px;padding:8px 12px}
 #plan{width:130px;left:10px;bottom:calc(64px + env(safe-area-inset-bottom));padding:8px}
 #minimap{display:none}#room-label{margin:8px 0 0}.plan-top button{min-height:44px;font-size:12px}
 footer{padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px;min-height:54px}
 footer a,footer button{min-height:38px;display:flex;align-items:center;justify-content:center;font-size:11px}
 #download-model{display:none}footer button{max-width:105px}dialog{max-width:calc(100% - 24px);max-height:80dvh;overflow:auto;padding:20px}
 #hint{display:none}#loading h2{font-size:21px;padding:0 16px}
}
@media(max-height:500px) and (pointer:coarse){
 header{top:6px;left:8px;right:8px;flex-direction:row;align-items:center}.identity{padding:6px}.identity h1{font-size:14px}.identity .mark{display:none}
 .modes{width:auto}.modes button{min-height:40px;font-size:11px}nav{top:62px;left:8px;max-width:calc(100% - 16px)}nav button{min-height:40px}
 #minimap{display:none}#plan{bottom:55px;width:128px}#touch{bottom:54px}footer{min-height:46px;padding:5px 10px}
}
