:root{font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;color:#263332;background:#f4f5f2;font-synthesis:none;font-size:16px;--line:#dfe3dc;--accent:#286d65;--muted:#737f78}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button,select{cursor:pointer}button{color:inherit}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #53a89d;outline-offset:3px}button{border:0;background:none;transition:background .15s}button:hover{background:#e7ece6}header{height:76px;display:flex;align-items:center;padding:0 30px;border-bottom:1px solid var(--line);background:#fcfcfa;gap:35px}.brand{display:flex;align-items:center;gap:12px;min-width:145px}.brand-icon{font-size:43px;line-height:1;color:var(--accent)}.brand strong{font-size:23px;font-weight:600;letter-spacing:5px}.brand div{display:flex;flex-direction:column;gap:2px}.brand div>span{font-size:10px;letter-spacing:2px}.project{border-left:1px solid var(--line);padding-left:30px;display:flex;gap:15px;align-items:center}.project b{font-weight:500}.project span,.header-end{font-size:13px;color:var(--muted)}.header-end{margin-left:auto;display:flex;gap:10px;align-items:center}.local-dot{width:6px;height:6px;border-radius:50%;background:#5b8a6d}.icon-button{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;margin-left:14px}main{display:grid;grid-template-columns:minmax(0,1fr) 328px;height:calc(100dvh - 76px)}#viewport{position:relative;overflow:hidden;min-width:0;background:#e4e7e5}#canvas-host{position:absolute;inset:0}canvas{display:block;touch-action:none;outline:none}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.scene-caption{position:absolute;left:30px;top:29px;pointer-events:none}.eyebrow{font-size:11px;letter-spacing:2px;color:#6d7872}.scene-caption h1{font-size:23px;font-weight:500;margin:9px 0}.scene-caption p{font-size:13px;color:#69756e;display:flex;align-items:center;gap:5px}.scene-caption i{height:10px;width:1px;background:#aeb8b0;margin:0 8px}.view-switch{position:absolute;left:50%;bottom:56px;transform:translate(-50%);display:flex;padding:5px;background:#ffffffed;box-shadow:0 4px 24px #23393212;border:1px solid #fff;border-radius:8px;white-space:nowrap}.view-switch button{padding:10px 17px;font-size:14px;border-radius:5px}.view-switch .active{background:#263d37;color:#fff}.compass{position:absolute;right:28px;top:30px;color:#52645b;display:flex;flex-direction:column;align-items:center;font-size:12px}.viewport-footer{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:12px;padding:15px 25px;background:#edf0ebbb;font-size:12px;color:#67776d;pointer-events:none}#status{position:absolute;left:30px;top:137px;max-width:calc(100% - 90px);font-size:12px;color:#496459;background:#f6f8f1c9;padding:7px 10px;border-radius:4px;pointer-events:none}aside{overflow-y:auto;border-left:1px solid var(--line);background:#fcfcfa;scrollbar-width:thin}.panel{padding:24px 23px;border-bottom:1px solid var(--line)}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.section-title h2{font-size:15px;font-weight:600;margin:0}.section-title>span{font-size:10px;letter-spacing:1.8px;color:#8b958b}.view-list{display:grid;gap:3px}.view-list button{display:flex;align-items:center;text-align:left;gap:12px;font-size:14px;padding:10px 8px;border-radius:4px}.view-number{font-size:11px;color:#8b968c}.view-list button>span:last-child{margin-left:auto;color:#778f80}.toggle-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-top:16px;gap:10px}.toggle-row input{accent-color:var(--accent);width:17px;height:17px}.toggle-row select{border:1px solid var(--line);background:#f4f6f1;border-radius:4px;padding:5px;font-size:12px;max-width:150px}.segmented{display:flex;border:1px solid var(--line);padding:3px;border-radius:5px;background:#f2f4ef}.segmented button{flex:1;padding:9px 5px;font-size:13px;border-radius:3px}.segmented [aria-pressed=true]{background:#fff;color:var(--accent);box-shadow:0 1px 4px #0001}.muted{font-size:13px;line-height:1.8;color:var(--muted)}.pickers{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pickers label{font-size:11px;letter-spacing:.5px;color:#7d877e}.pickers select{display:block;width:100%;margin-top:6px;padding:9px 4px;border:1px solid var(--line);background:#fff;border-radius:4px;font-size:13px;color:#35463c}.primary{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:14px;background:var(--accent);color:#fff;padding:12px 14px;font-size:14px;border-radius:4px}.primary:hover{background:#20594f}.text-button{font-size:12px;color:#60776a;padding:5px}.results-title{display:flex;justify-content:space-between;align-items:center;margin-top:22px;font-size:12px;color:#7a877d}.empty{font-size:12px;color:#8c958d;text-align:center;padding:14px 0}.footnote{font-size:11px;color:#919990;line-height:1.7;margin-bottom:0}.result{position:relative;background:#f0f4ed;border-left:2px solid #559183;padding:11px 25px 10px 12px;margin-top:9px}.result>span{display:block;font-size:11px;color:#6e7e72}.result>strong{display:block;font-size:25px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.5px;margin:5px 0}.result strong small{font-size:12px;font-weight:400;color:#8a978c}.result>small{font-size:10px;color:#809084}.result>button{position:absolute;right:3px;top:3px;font-size:20px;color:#778b7c}.check-button{font-size:12px;padding:7px 9px;border:1px solid var(--line);border-radius:4px}.check-ok{font-size:13px;color:#3b7d60;margin-bottom:0}.conflict{font-size:12px;color:#97552c;text-align:left;padding:8px;background:#fff1e5;margin-top:8px;border-radius:4px;width:100%}.credits{font-size:11px;padding:18px 23px;color:#929b92;display:flex;justify-content:space-between;gap:8px}.credits a{color:#677e70;text-decoration:none}.dimension-label{position:absolute;transform:translate(-50%,-140%);padding:6px 9px;border-radius:3px;background:#fcfffb;color:#176a62;border:1px solid #8db7ab;box-shadow:0 2px 10px #183c2720;white-space:nowrap;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}#loading{position:absolute;inset:0;z-index:5;background:#e9ece7ef;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}#loading[hidden]{display:none}#loading b{font-size:18px;font-weight:500}#loading span{font-size:13px;color:#7c8b7f;max-width:80%;overflow-wrap:anywhere}.spinner{width:32px;height:32px;border:2px solid #bdcfc1;border-top-color:#286d65;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#joystick{display:none;position:absolute;bottom:105px;left:28px;width:110px;height:110px;border-radius:50%;background:#fff5;border:1px solid #ffffffaa;align-items:center;justify-content:center;touch-action:none}#joystick.visible{display:flex}#stick{width:44px;height:44px;background:#3c655da6;border:1px solid #ffffffaa;border-radius:50%;pointer-events:none}dialog{max-width:560px;width:calc(100% - 32px);padding:28px;border:1px solid var(--line);border-radius:10px;box-shadow:0 20px 100px #0003;line-height:1.9;font-size:14px}dialog::backdrop{background:#17372f55}dialog h2{font-size:21px;font-weight:500}.dialog-close{float:right;font-size:25px;padding:0 8px}button[hidden]{display:none}@media(max-width:850px){header{padding:0 18px;height:62px;gap:18px}.brand{min-width:110px}.brand strong{font-size:20px}.brand-icon{font-size:35px}.project{padding-left:18px}.project span{display:none}.header-end>span{display:none}main{grid-template-columns:minmax(0,1fr) 280px;height:calc(100dvh - 62px)}.panel{padding:20px 16px}.scene-caption{left:20px;top:20px}.scene-caption h1{font-size:20px}#status{left:20px;top:119px;font-size:11px}.viewport-footer{padding:12px 15px;font-size:11px}.compass{right:16px;top:20px}.view-switch button{padding:10px 12px}}@media(max-width:620px){header{height:58px}.brand div>span{font-size:9px}.project{font-size:13px}.icon-button{margin:0}main{display:block;height:auto}#viewport{height:66dvh;min-height:390px;max-height:780px}aside{border-left:none;overflow:visible}.panel{padding:20px}.scene-caption h1{font-size:19px}.scene-caption p{font-size:12px}.view-switch{bottom:43px}.viewport-footer{padding:10px 14px}#hint{max-width:72%;font-size:10px}.view-list{grid-template-columns:1fr 1fr}.toggle-row{font-size:14px}.pickers select{font-size:16px;padding:10px}.segmented button,.primary{font-size:14px;padding:12px}.muted{font-size:14px}.footnote,.credits{font-size:12px}.section-title h2{font-size:16px}.dimension-label{font-size:12px}.results-title,.check-button{font-size:14px}#joystick{width:96px;height:96px;bottom:96px;left:20px}.header-end{margin-left:auto}.panel.measurement{scroll-margin-top:12px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.room-label{position:absolute;transform:translate(-50%,-50%);font-size:13px;letter-spacing:2px;color:#35443dc7;background:#f8faf09c;padding:4px 8px;border-radius:3px;pointer-events:none}.room-label[hidden]{display:none}#joystick.paused{opacity:.25;pointer-events:none}.toggle-row:has(input:disabled){opacity:.55}.interior-view .scene-caption h1{font-size:16px}.interior-view .scene-caption .eyebrow,.interior-view .scene-caption p{display:none}.presentation-tools{position:absolute;right:18px;top:18px;z-index:6;display:flex;gap:8px}.presentation-button{width:40px;height:40px;display:grid;place-items:center;background:#fcfcfaed;border:1px solid #dfe3dc;border-radius:8px;box-shadow:0 2px 10px #183c2712;color:#35594e}.presentation-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.presentation-button[aria-pressed=true]{background:#263d37;color:#fff}.clean-slash,.collapse-icon{display:none}#clean-view[aria-pressed=true] .clean-slash,#fullscreen[aria-pressed=true] .collapse-icon{display:initial}#fullscreen[aria-pressed=true] .expand-icon{display:none}.compass{top:76px}#app.clean-view>header,#app.clean-view aside,.clean-view #labels,.clean-view .scene-caption,.clean-view .view-switch,.clean-view .compass,.clean-view #status,.clean-view .viewport-footer,.clean-view #loading b,.clean-view #loading span{display:none!important}#app.clean-view main{display:block;height:100dvh}#app.clean-view #viewport,#viewport:fullscreen,#viewport.fullscreen-fallback{width:100%;height:100dvh;min-height:0;max-height:none}#viewport.fullscreen-fallback{position:fixed;inset:0;z-index:100}@media(max-width:620px){.presentation-tools{right:12px;top:12px;gap:6px}.presentation-button{width:40px;height:40px}.scene-caption{max-width:calc(100% - 125px)}.scene-caption h1{overflow-wrap:anywhere}}#cabinet-detail{white-space:pre-line;font-size:12px;line-height:1.9}
