:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#23312f;background:#e8e9e5;font-synthesis:none;font-size:16px;--ink:#182b2a;--muted:#71817c;--line:#e4e8e3;--accent:#d6ebbd}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #709753;outline-offset:3px}button{color:inherit}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icons{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.header{height:78px;display:flex;align-items:center;gap:24px;padding:0 30px;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:4}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:28px;font-weight:700;letter-spacing:-1.5px}.brand>svg{width:31px;height:31px;stroke-width:1.5}.brand-dot{color:#739251}.project-title{margin-left:96px;color:#52645d;font-size:14px}.project-title span{padding:0 14px;color:#bdc7c0}.scale-badge{margin-left:auto;font-size:12px;letter-spacing:.04em;color:#68766f}.icon-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #dbe1d9;border-radius:9px;background:#fff}.icon-button:hover{background:#f0f3ec}.icon-button[aria-pressed=true]{background:var(--accent);border-color:#9daf84}.workspace{display:grid;grid-template-columns:304px 1fr;height:calc(100dvh - 78px);min-height:580px}.sidebar{background:#fff;padding:32px 25px 22px;display:flex;flex-direction:column;z-index:3;border-right:1px solid var(--line);overflow-y:auto}.eyebrow,.section-label{font-size:12px;font-weight:650;letter-spacing:.13em;color:#71817a}.eyebrow{font-size:12px;letter-spacing:.10em}h1{font-size:26px;letter-spacing:-1.05px;line-height:1.24;font-weight:560;margin:16px 0 13px}.intro{font-size:14px;line-height:1.65;color:#728078;margin:0}.total{display:flex;justify-content:space-between;align-items:center;padding:27px 0 29px;margin:0 0 22px;border-bottom:1px solid var(--line);gap:12px}.total strong{font-size:33px;font-weight:450;letter-spacing:-1.8px;white-space:nowrap}.total strong span{font-size:17px;letter-spacing:-.4px}.total>span{font-size:12px;line-height:1.6;color:#78847c}.section-label{margin-bottom:14px}.room-list{display:flex;flex-direction:column;gap:7px;margin-bottom:30px}.room{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:13px 10px;border:1px solid transparent;border-radius:9px;background:transparent}.room:hover{background:#f5f7f2}.room.active{background:#f0f4e9;border-color:#d9e3ce}.room-no{font-size:12px;align-self:flex-start;margin-top:4px;color:#92a084}.room strong{font-size:14px;font-weight:600;display:block}.room small{display:block;font-size:12px;color:#7a877b;margin-top:5px}.room svg{margin-left:auto;width:15px;height:15px;color:#798b72}.measurement-block dl{margin:0}.measurement-block dl>div{display:flex;justify-content:space-between;margin:13px 0;font-size:12px}.measurement-block dt{color:#7d877f}.measurement-block dd{margin:0;font-weight:550;font-variant-numeric:tabular-nums}.sidebar-bottom{margin-top:auto;padding-top:27px}.primary{border:0;border-radius:8px;background:var(--ink);color:#f1f8e9;padding:15px;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;font-size:14px;font-weight:550}.primary:hover{background:#29463f}.primary>svg:last-child{margin-left:auto;width:18px}.footnote{font-size:12px;color:#8a9289;text-align:center;line-height:1.6}.text-button{border:0;background:none;padding:7px 0;font-size:12px;color:#68765f;width:100%;text-align:center}.text-button span{padding-left:7px}.viewport{position:relative;overflow:hidden;outline:none;background:#e6e8e2;isolation:isolate;touch-action:none}#canvas-host{width:100%;height:100%;position:absolute;inset:0}#canvas-host canvas{display:block;width:100%;height:100%;outline:0}.view-toolbar{position:absolute;top:24px;left:28px;right:28px;display:flex;justify-content:space-between;gap:12px;z-index:2}.segmented{display:flex;background:#fffefaf2;padding:4px;border:1px solid #d8ddd3;border-radius:11px;box-shadow:0 4px 14px #23382b05}.segmented button{border:0;background:transparent;display:flex;align-items:center;gap:8px;padding:10px 13px;font-size:13px;border-radius:7px;color:#748070}.segmented button.selected{background:var(--ink);color:#f2f5ee}.segmented svg{width:18px;height:18px}.view-actions{display:flex;gap:7px;align-items:center}.view-actions .icon-button{background:#fffefaeb}.scene-title{position:absolute;top:109px;left:30px;pointer-events:none}.scene-title .eyebrow{color:#7e897a;font-size:12px}.scene-title h2{font-size:20px;font-weight:450;letter-spacing:-.6px;margin:9px 0;color:#405041}.bottom-strip{position:absolute;bottom:24px;left:28px;right:28px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;gap:20px}.navigation-hint{font-size:12px;display:flex;gap:10px;align-items:center;background:#ffffffdb;padding:10px 13px;border-radius:6px;color:#65745f;max-width:80%}.navigation-hint i{font-style:normal;color:#acb5a7;margin:0 8px}.mouse-symbol{font-size:20px;color:#748569}#view-scale{font-size:12px;letter-spacing:.12em;color:#82907a}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.label{position:absolute;padding:7px 11px;background:#fffffff0;border:1px solid #ccd4c2;border-radius:6px;font-size:12px;letter-spacing:.02em;white-space:nowrap;transform:translate(-50%,-50%);box-shadow:0 3px 10px #2937270b;color:#4f5d46}.label.measure{border-color:#c5d4b0;color:#415633;background:#f3f8e9}.minimap{position:absolute;right:25px;bottom:80px;background:#fffffff0;border:1px solid #d8dfd0;border-radius:12px;width:137px;padding:14px 13px 9px;box-shadow:0 6px 22px #2a3c2909}.map-title{font-size:12px;letter-spacing:.09em;color:#73826a;margin-bottom:8px}.minimap canvas{width:100%;height:auto;display:block}.minimap>span{font-size:12px;color:#91a184;display:flex;justify-content:space-between;padding:5px 4px 0}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;background:#e6e8e2;z-index:3;font-size:14px}.loader{border:2px solid #b9c4ae;border-top-color:#213d30;width:21px;height:21px;border-radius:100%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.walk-bar{position:absolute;top:90px;left:28px;right:28px;display:flex;gap:15px;align-items:center;background:#ffffffed;border:1px solid #d6dfcc;border-radius:9px;padding:12px 15px;font-size:12px}.walk-bar>span{font-weight:600;margin-right:auto}.walk-bar label{display:flex;gap:8px;align-items:center;font-size:12px}.walk-bar input{width:75px;accent-color:#38523b}.walk-bar output{width:40px}.walk-bar button{padding:6px 8px;background:#edf2e6;border:1px solid #d5dec9;border-radius:5px;font-size:12px}.crosshair{position:absolute;width:5px;height:5px;background:#f7fff0;border:1px solid #3d5038;border-radius:50%;top:50%;left:50%;box-shadow:0 0 0 3px #ffffff40}.toast{position:absolute;left:50%;bottom:88px;transform:translateX(-50%);background:#19352deb;color:#fff;padding:12px 18px;border-radius:8px;max-width:80%;font-size:13px;text-align:center;z-index:7}.touch-controls{position:absolute;bottom:86px;left:24px;display:flex;gap:20px;align-items:end}.dpad{display:grid;grid-template-columns:43px 43px 43px;grid-template-rows:43px 43px;gap:5px}.dpad button,.look-controls button{border:1px solid #bac7b4;background:#fffffff0;border-radius:8px;font-size:22px;height:43px;width:43px;user-select:none;touch-action:none}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.look-controls{display:flex;gap:5px}dialog{border:1px solid #cbd3c5;border-radius:17px;padding:26px;max-width:min(960px,94vw);max-height:90dvh;width:960px;color:#2d3d30;background:#fcfdf9;box-shadow:0 25px 100px #0c1f3166}dialog::backdrop{background:#13292088;backdrop-filter:blur(6px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialog-header h2{font-size:24px;font-weight:500;margin:7px 0 0;letter-spacing:-.7px}.dialog-header button{font-size:26px;border:0;background:#edf1e7;border-radius:50%;height:35px;width:35px}.reference-content{display:grid;grid-template-columns:1.25fr 1fr;gap:25px}.reference-content img{width:100%;border-radius:9px;align-self:start}.reference-content h3{font-size:15px;margin:16px 0 6px}.reference-content h3:first-child{margin-top:0}.reference-content p,.help-content p{font-size:14px;line-height:1.7;color:#6c7869;margin:8px 0 16px}.note{border-top:1px solid var(--line);padding-top:16px;font-size:12px!important}#help-dialog{width:540px}.help-content kbd{font-family:inherit;background:#e9eddf;padding:2px 6px;border-radius:4px;font-size:12px;margin-right:3px}.help-content .primary{margin-top:24px}.walk-mode .scene-title{display:none}.walk-mode .minimap{background:#ffffffea}
@media(min-height:850px){.sidebar{padding-top:42px}.room-list{margin-bottom:40px}.room{padding-top:17px;padding-bottom:17px}}
@media(max-width:1050px){.workspace{grid-template-columns:263px 1fr}.sidebar{padding:27px 18px 18px}.project-title{margin-left:50px}.scene-title h2{font-size:18px}.view-toolbar{left:18px;right:18px}.segmented button{padding:9px}.view-actions{gap:5px}.view-actions .icon-button{width:34px;height:37px}.walk-bar{flex-wrap:wrap;top:87px;left:18px;right:18px}.walk-bar>span{flex-basis:100%}.measurement-block dl>div{font-size:12px}.scene-title{left:20px}.navigation-hint{max-width:85%;font-size:12px}#view-scale{display:none}.total strong{font-size:29px}}
@media(max-width:760px){.header{height:61px;padding:0 17px;gap:13px}.brand{font-size:24px;gap:8px}.brand>svg{height:27px;width:27px}.project-title{margin-left:auto;font-size:12px}.project-title span,.scale-badge{display:none}.header>.icon-button{width:32px;height:32px}.workspace{display:flex;flex-direction:column-reverse;height:calc(100dvh - 61px);min-height:570px}.viewport{flex:1;min-height:380px}.sidebar{display:block;flex-shrink:0;padding:12px 14px;border-right:0;border-top:1px solid var(--line);overflow:visible}.sidebar>.eyebrow,.sidebar h1,.intro,.total,.sidebar>.section-label,.measurement-block,.footnote,.room small,.room-no,.room svg{display:none}.room-list{display:flex;flex-direction:row;gap:5px;margin:0}.room{justify-content:center;padding:10px 6px;border-color:var(--line);border-radius:7px}.room strong{font-size:12px;white-space:nowrap}.sidebar-bottom{padding-top:10px;display:flex;gap:13px;align-items:center}.sidebar-bottom .primary{width:auto;flex:1;min-height:43px;padding:10px 12px;font-size:13px}.sidebar-bottom .text-button{width:92px;font-size:12px;line-height:1.6}.view-toolbar{top:14px;left:13px;right:13px;gap:6px}.segmented button{padding:8px 10px;font-size:12px;gap:6px}.view-actions .icon-button{height:35px;width:32px;border-radius:7px}.view-actions #reset{display:none}.segmented svg{width:16px;height:16px}.scene-title{top:75px;left:18px}.scene-title h2{font-size:16px;margin-top:7px}.scene-title .eyebrow{font-size:12px}.bottom-strip{bottom:15px;left:13px;right:13px}.navigation-hint{font-size:12px;max-width:100%;padding:8px 10px;gap:6px}.minimap{width:95px;bottom:65px;right:14px;padding:10px 9px 6px;border-radius:8px}.map-title{font-size:12px;letter-spacing:0}.minimap>span{font-size:12px}.label{font-size:12px;padding:5px 7px}.walk-bar{top:68px;left:13px;right:13px;gap:7px;padding:9px 11px}.walk-bar>span{font-size:12px}.walk-bar label{font-size:12px}.walk-bar button{margin-left:auto;font-size:12px}.touch-controls{left:15px;bottom:62px;gap:8px}.dpad{grid-template-columns:36px 36px 36px;grid-template-rows:36px 36px;gap:4px}.dpad button,.look-controls button{width:36px;height:36px;font-size:19px}.reference-content{grid-template-columns:1fr}.reference-content img{max-height:60vh;object-fit:contain}dialog{padding:20px}.toast{bottom:160px;width:80%}.walk-mode .bottom-strip .navigation-hint{font-size:12px}.walk-mode .mouse-symbol{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}@media(max-width:390px){.view-actions #fullscreen{display:none}.project-title{font-size:12px}.segmented button{padding:8px}.sidebar-bottom .primary{font-size:12px}}

.measurement-block dl>div{font-size:14px}.segmented button{font-size:14px}.room small{font-size:12px}.section-label{font-size:12px}.walk-bar{font-size:14px}.walk-bar label,.walk-bar button{font-size:12px}@media(max-width:760px){.segmented button{font-size:12px}.room strong{font-size:12px}.map-title{line-height:1.4}.minimap{width:110px}.navigation-hint{font-size:12px}.walk-mode .navigation-hint{max-width:100%}.walk-mode .minimap{bottom:150px}.touch-controls{bottom:68px}.bottom-strip{bottom:10px}}
