:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#120a06;--surface:#1f130d;--text:#fff;--accent:#e97132;--line:#ffffff1f;--line-strong:#e971326b;--muted:#ffffff8f;--subtle:#ffffff57;--success:#70c779;--danger:#e6695f;--left-panel-width:0px;--right-panel-width:0px;--panel-width-left:clamp(246px, 24.6vw - 44.5px, 420px);--panel-width-right:clamp(278px, 26.9vw - 39.6px, 460px);--header-height:clamp(62px, 1.6vw + 49px, 96px);--status-height:clamp(34px, .55vw + 28px, 48px);--panel-heading-height:clamp(52px, 1.1vw + 44px, 76px);--tool-button-width:clamp(52px, 1.9vw + 34.6px, 82px);--tool-button-height:clamp(44px, 1.1vw + 32.2px, 62px);--font-family:"Cascadia Mono", Consolas, "DejaVu Sans Mono", monospace;--font-mono-xs:clamp(10px, .18vw + 7.4px, 13px);--font-mono-sm:clamp(11px, .2vw + 8.1px, 14px);--font-mono-md:clamp(12px, .22vw + 8.8px, 15px);--font-body:clamp(12px, .25vw + 8.4px, 16px);--font-title:clamp(14px, .3vw + 9.7px, 19px);--icon-size:clamp(15px, .28vw + 11px, 21px);--icon-slot:calc(var(--icon-size) + 13px);--icon-slot-tight:calc(var(--icon-size) + 7px);--cube-scale:1}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--background);color:var(--text);font-family:var(--font-family)}button,input,select{color:inherit;font:inherit}button,summary,select,input[type=range],input[type=checkbox]{touch-action:manipulation}button{-webkit-tap-highlight-color:transparent}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.viewer-shell{width:100%;height:100svh;padding-bottom:env(safe-area-inset-bottom);grid-template-rows:var(--header-height) minmax(0, 1fr) var(--status-height);background:var(--background);min-width:0;display:grid}.viewer-shell.left-open{--left-panel-width:var(--panel-width-left)}.viewer-shell.right-open{--right-panel-width:var(--panel-width-right)}.viewer-shell.full-view{--left-panel-width:0px;--right-panel-width:0px;grid-template-rows:0 minmax(0, 1fr) var(--status-height)}.app-header{z-index:40;border-bottom:1px solid var(--line-strong);background:var(--background);grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);align-items:center;gap:16px;min-width:0;padding:0 12px;display:grid;position:relative;box-shadow:0 3px 18px #00000047}.brand-block{align-items:center;gap:9px;min-width:0;display:flex}.brand-logo{object-fit:contain;flex:none;width:88px;height:64px}.brand-name{white-space:nowrap;align-items:center;display:flex}.project-back{border:1px solid var(--line);height:32px;color:var(--muted);font:700 10px/1 var(--font-family);letter-spacing:.09em;background:#ffffff06;border-radius:3px;flex:none;align-items:center;gap:5px;padding:0 10px 0 6px;text-decoration:none;display:inline-flex}.project-back:hover{border-color:var(--line-strong);color:var(--text);background:#e971321f}.project-back svg{width:15px;height:15px}.project-identity a{color:inherit;text-decoration:none}.project-identity a:hover strong{color:var(--accent)}.brand-name span{color:var(--accent);font:700 11px/1 var(--font-family);letter-spacing:.12em}.project-identity{flex-direction:column;align-items:center;gap:1px;min-width:170px;display:flex}.project-identity span,.overline{color:var(--accent);font:700 var(--font-mono-sm)/1.35 var(--font-family);letter-spacing:.14em}.project-identity strong{max-width:36vw;color:var(--text);font-size:var(--font-title);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.header-actions{justify-self:end;align-items:center;gap:5px;display:flex}.icon-button{border:1px solid var(--line);width:clamp(32px,1.4vw + 22px,44px);height:clamp(32px,1.4vw + 22px,44px);color:var(--muted);cursor:pointer;background:#ffffff06;border-radius:3px;flex:none;place-items:center;padding:0;display:grid}.icon-button svg{width:var(--icon-size);height:var(--icon-size)}.icon-button:hover,.icon-button[aria-pressed=true]{border-color:var(--line-strong);color:var(--text);background:#e971321a}.language-switch{border:1px solid var(--line);border-radius:3px;margin-left:4px;display:inline-flex;overflow:hidden}.language-switch button{min-width:clamp(30px,1.3vw + 20px,40px);height:clamp(32px,1.4vw + 22px,44px);color:var(--muted);cursor:pointer;font:700 var(--font-mono-xs)/1 var(--font-family);letter-spacing:.08em;background:#ffffff06;border:0;padding:0 6px}.language-switch button+button{border-left:1px solid var(--line)}.language-switch button:hover{color:var(--text);background:#e971321a}.language-switch button.is-active{color:var(--text);box-shadow:inset 0 -2px var(--accent);background:#e9713233}@media (max-width:520px){.language-switch{margin-left:2px}.language-switch button{padding:0 4px}}.full-view-exit{border:1px solid var(--line-strong);min-height:30px;color:var(--text);cursor:pointer;font:700 12px/1 var(--font-family);letter-spacing:.08em;background:#e971321a;border-radius:3px;align-items:center;gap:8px;padding:0 11px;display:none}.full-view-exit svg{width:16px;height:16px;color:var(--accent)}.full-view .brand-block,.full-view .project-identity,.full-view .header-actions{display:none}.full-view .app-header{height:0;min-height:0;box-shadow:none;pointer-events:none;background:0 0;border-bottom:0;padding:0;display:block;overflow:visible}.full-view .full-view-exit{pointer-events:auto;background:#1f130df0;display:inline-flex;position:absolute;top:12px;right:12px;box-shadow:0 8px 24px #00000057}.full-view .full-view-exit:hover{background:#e971322e}@media (min-width:901px){.full-view .navigation-cube{top:calc(52px + 3px * var(--cube-scale))}}.full-view .side-panel,.full-view .mobile-backdrop{display:none}.viewer-workspace{grid-template-columns:var(--left-panel-width) minmax(0, 1fr) var(--right-panel-width);min-width:0;min-height:0;transition:grid-template-columns .26s cubic-bezier(.22,1,.36,1);display:grid;position:relative;overflow:hidden}.side-panel{overscroll-behavior:contain;contain:layout paint;visibility:hidden;opacity:0;pointer-events:none;scrollbar-color:#e97132bf #ffffff12;background:var(--background);will-change:transform, opacity;min-width:0;min-height:0;transition:opacity .16s,transform .26s cubic-bezier(.22,1,.36,1),visibility 0s .26s;overflow:auto}.side-panel::-webkit-scrollbar{width:10px}.side-panel::-webkit-scrollbar-track{background:#ffffff12}.side-panel::-webkit-scrollbar-thumb{background:#e97132bf padding-box content-box;border:2px solid #0000;border-radius:6px}.side-panel::-webkit-scrollbar-thumb:hover{background:#e97132f2 padding-box content-box}.layer-panel{border-right:1px solid var(--line);grid-area:1/1;transform:translate(-12px)}.properties-panel{border-left:1px solid var(--line);grid-area:1/3;transform:translate(12px)}.viewer-shell.left-open .layer-panel,.viewer-shell.right-open .properties-panel{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s;transform:translate(0)}.panel-heading{z-index:2;height:var(--panel-heading-height);border-bottom:1px solid var(--line);background:var(--background);justify-content:space-between;align-items:center;padding:0 14px;display:flex;position:sticky;top:0}.panel-heading h2{font-size:var(--font-title);letter-spacing:.01em;margin:2px 0 0;font-weight:600}.layer-panel{flex-direction:column;display:flex;overflow:hidden}.panel-fixed-top,.panel-fixed-bottom{flex:none;min-height:0}.panel-fixed-bottom{border-top:1px solid var(--line);background:var(--background)}.panel-fixed-bottom .project-state-actions{margin:10px}.layer-panel .layer-tree{overscroll-behavior:contain;scrollbar-color:#e97132bf #ffffff12;flex:auto;min-height:0;overflow-y:auto}.layer-panel .layer-tree::-webkit-scrollbar{width:10px}.layer-panel .layer-tree::-webkit-scrollbar-track{background:#ffffff12}.layer-panel .layer-tree::-webkit-scrollbar-thumb{background:#e97132bf padding-box content-box;border:2px solid #0000;border-radius:6px}.layer-panel .layer-tree::-webkit-scrollbar-thumb:hover{background:#e97132f2 padding-box content-box}.panel-heading .icon-button{width:30px;height:30px}.project-summary{border:1px solid var(--line);border-left:2px solid var(--accent);background:#00000021;align-items:center;gap:10px;margin:12px 12px 8px;padding:10px;display:flex}.project-badge{color:var(--accent);font:700 11px/1 var(--font-family)}.project-summary div{flex-direction:column;gap:2px;min-width:0;display:flex}.project-summary strong{font-size:var(--font-body);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.project-summary small{color:var(--muted);font-size:var(--font-body)}.project-import-menu{border:1px solid var(--line);background:#0000001f;margin:0 12px 8px}.project-import-menu>summary{min-height:34px;color:var(--accent);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.1em;grid-template-columns:17px 1fr 14px;align-items:center;gap:8px;padding:0 9px;list-style:none;display:grid}.project-import-menu>summary::-webkit-details-marker{display:none}.project-import-menu>summary svg{width:14px;height:14px}.project-import-menu>summary svg:last-child{color:var(--subtle);transition:transform .15s}.project-import-menu[open]>summary svg:last-child{transform:rotate(90deg)}.project-import-menu>button{border:1px solid var(--line);background:var(--surface);width:calc(100% - 12px);min-height:40px;color:var(--text);cursor:pointer;text-align:left;grid-template-columns:22px 1fr;align-items:center;gap:8px;margin:0 6px 6px;padding:5px 8px;display:grid}.project-import-menu>button:hover{border-color:var(--accent);background:#e971321a}.project-import-menu>button svg{width:17px;color:var(--accent)}.project-import-menu>button span{flex-direction:column;gap:2px;display:flex}.project-import-menu>button strong{font:700 11px/1 var(--font-family)}.project-import-menu>button small{color:var(--muted);font-size:10px}.layer-tree{padding:0 8px 16px}.layer-category{border-bottom:1px solid #ffffff13}.layer-category>summary{grid-template-columns:9px var(--icon-size) 1fr auto;min-height:clamp(36px,1.5vw + 26px,48px);color:var(--muted);cursor:pointer;font:700 var(--font-mono-sm)/1 var(--font-family);letter-spacing:.09em;align-items:center;gap:8px;padding:0 7px;list-style:none;display:grid}.layer-category>summary::-webkit-details-marker{display:none}.layer-category>summary:before{content:"›";color:var(--subtle);transition:transform .14s;transform:rotate(0)}.layer-category[open]>summary:before{transform:rotate(90deg)}.layer-category>summary svg{width:var(--icon-size);height:var(--icon-size);color:var(--accent)}.layer-category>summary em{color:var(--subtle);font-style:normal}.category-content{padding:0 0 7px 14px}.layer-entry{grid-template-columns:calc(var(--icon-size) + 17px) 1fr;min-height:clamp(46px,1.8vw + 32px,62px);color:var(--muted);border:1px solid #0000;border-radius:3px;align-items:stretch;display:grid}.layer-entry:hover{background:#ffffff09}.layer-entry.is-selected{border-color:var(--line-strong);color:var(--text);background:#e9713214}.layer-visibility{color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.layer-visibility:disabled{cursor:not-allowed;opacity:.35}.layer-visibility svg{width:var(--icon-size);height:var(--icon-size)}.layer-select{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:7px;padding:5px 7px 5px 0;display:flex}.layer-select>span{flex-direction:column;gap:2px;min-width:0;display:flex}.layer-select strong{font-size:var(--font-body);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.layer-select small,.layer-select em,.future-row{color:var(--subtle);font:600 var(--font-mono-xs)/1.3 var(--font-family);letter-spacing:.06em;text-transform:uppercase}.layer-select em{font-style:normal}.status-loading .layer-select em{color:var(--accent)}.status-ready .layer-select em{color:var(--success)}.status-error .layer-select em{color:var(--danger)}.future-row{opacity:.7;justify-content:space-between;align-items:center;min-height:34px;padding:0 8px 0 13px;display:flex}.future-row em{border:1px solid var(--line);color:var(--subtle);border-radius:2px;padding:3px 5px;font-style:normal}.clipping-library-group+.clipping-library-group{margin-top:6px}.clipping-group-heading{color:var(--subtle);font:700 9px/1 var(--font-family);letter-spacing:.1em;justify-content:space-between;align-items:center;padding:5px 8px 3px 13px;display:flex}.clipping-group-heading em{color:var(--accent);font-style:normal}.clipping-library-actions{grid-template-columns:1fr 1fr;gap:5px;margin:7px 8px 2px 13px;display:grid}.clipping-library-actions button{border:1px solid var(--line);min-height:26px;color:var(--text);cursor:pointer;font:700 9px/1 var(--font-family);letter-spacing:.05em;background:#ffffff06;border-radius:2px}.clipping-library-actions button:hover{border-color:var(--accent);background:#e971321a}.clipping-library-actions button:only-child{grid-column:1/-1}.measurement-tree-entry{grid-template-columns:var(--icon-slot) minmax(0,1fr) var(--icon-slot);min-height:clamp(42px,1.6vw + 30px,56px);color:var(--muted);border:1px solid #0000;border-radius:3px;align-items:center;margin-left:8px;display:grid}.measurement-tree-entry:hover{background:#ffffff09}.measurement-tree-entry.is-selected{border-color:var(--line-strong);color:#fff;background:#e9713214}.measurement-tree-select{align-items:center;gap:calc(var(--icon-size) * .42);min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:5px 2px;display:flex}.measurement-tree-select>svg{width:var(--icon-size);height:var(--icon-size);color:var(--accent);flex:none}.measurement-tree-select span{flex-direction:column;gap:2px;min-width:0;display:flex}.measurement-tree-select strong{font-size:var(--font-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.measurement-tree-select small{color:var(--subtle);font:600 var(--font-mono-xs)/1 var(--font-family);text-transform:uppercase}.measurement-delete{width:26px;height:28px;color:var(--subtle);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.measurement-delete:hover{color:var(--danger)}.measurement-delete svg{width:13px;height:13px}.viewport{contain:layout paint;background:var(--background);isolation:isolate;grid-area:1/2;min-width:0;min-height:0;position:relative;overflow:hidden}.viewport canvas{touch-action:none;width:100%;height:100%;display:block}.viewport{--reticle-cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cg fill='none' stroke='%23000' stroke-opacity='.55' stroke-width='3'%3E%3Cpath d='M12 1v6M12 17v6M1 12h6M17 12h6'/%3E%3C/g%3E%3Cg fill='none' stroke='%23fff' stroke-width='1'%3E%3Cpath d='M12 1v6M12 17v6M1 12h6M17 12h6'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='.5' fill='%23fff'/%3E%3C/svg%3E") 12 12, crosshair}.viewport canvas.is-measuring{cursor:var(--reticle-cursor)}.viewport{--reticle-snap-cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cg fill='none' stroke='%23000' stroke-opacity='.55' stroke-width='3'%3E%3Cpath d='M12 1v5M12 18v5M1 12h5M18 12h5'/%3E%3Crect x='7.5' y='7.5' width='9' height='9'/%3E%3C/g%3E%3Cg fill='none' stroke='%23E97132' stroke-width='1'%3E%3Cpath d='M12 1v5M12 18v5M1 12h5M18 12h5'/%3E%3Crect x='7.5' y='7.5' width='9' height='9'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='.5' fill='%23fff'/%3E%3C/svg%3E") 12 12, cell}.viewport canvas.is-measuring.has-measurement-snap{cursor:var(--reticle-snap-cursor)}.measurement-label-layer{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.measurement-label{color:#fff;white-space:pre;text-align:left;width:max-content;font:700 11px/1.35 var(--font-family);background:#120a06e6;border:1px solid #e971329e;border-radius:3px;padding:5px 7px;transform:translate(-50%,calc(-100% - 8px));box-shadow:0 3px 14px #00000061}.measurement-label.is-selected{background:#682b10f0;border-color:#fff}.measurement-label{padding:4px 7px;font-size:12px;line-height:1.3}.measurement-label.is-preview{margin:-6px 0 0 15px}.annotation-label{--annotation-color:#e97132;--annotation-scale:1;border:1px solid #e971328c;border-left:3px solid var(--annotation-color);color:#fff;white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;width:max-content;max-width:min(34ch,42vw);font:600 calc(var(--font-body) * var(--annotation-scale))/1.35 var(--font-family);background:#120a06eb;border-radius:3px;padding:5px 8px;box-shadow:0 3px 14px #0000006b}.annotation-label.is-preview{color:var(--accent);cursor:none;pointer-events:none;font:700 var(--font-mono-sm)/1 var(--font-family);letter-spacing:.1em;background:#120a06bd;border-style:dashed}.panorama-station-label{color:#ffffffd1;font:700 var(--font-mono-xs)/1.5 var(--font-family);letter-spacing:.06em;pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;background:#120a06b8;border:1px solid #e9713280;border-radius:9px;padding:1px 5px;transition:color .12s,border-color .12s,background .12s;transform:translate(-50%,calc(-100% - 9px))}.panorama-station-label:hover{border-color:var(--accent);color:#fff;background:#2e160af2}.panorama-station-label.is-step{color:#fff;letter-spacing:.08em;background:#120a06cc;border:1px solid #fff9;border-radius:2px;padding:1px 6px}.panorama-station-label.is-step:hover{border-color:var(--accent);background:#120a06eb}.panorama-station-label.is-step.is-other-level{color:#ffc08f;border-color:#e97132f2}.viewport:after{content:"";z-index:1;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 80px #00000038}.viewport-toolbar{z-index:8;border:1px solid var(--line);background:#1f130df0;border-radius:4px;width:max-content;max-width:calc(100% - 28px);margin-inline:auto;display:flex;position:absolute;top:12px;left:0;right:0;overflow:visible;box-shadow:0 8px 24px #00000057}.tool-button{width:auto;min-width:var(--tool-button-width);height:var(--tool-button-height);border:0;border-right:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:4px;padding:0 8px;display:flex;position:relative}.tool-button:last-child{border-right:0}.tool-button svg{width:var(--icon-size);height:var(--icon-size)}.tool-button span{font:700 var(--font-mono-xs)/1 var(--font-family);letter-spacing:.04em;text-transform:uppercase}.tool-button:hover:not([aria-disabled=true]),.tool-button.is-active{color:var(--text);box-shadow:inset 0 -2px var(--accent);background:#e9713221}.tool-button[aria-disabled=true]{cursor:not-allowed;opacity:.38}.tool-button>i{background:var(--subtle);border-radius:50%;width:4px;height:4px;position:absolute;top:6px;right:7px}.measure-tool{display:flex;position:relative}.measure-menu{z-index:60;border:1px solid var(--line-strong);background:#1f130dfa;border-radius:4px;width:310px;padding:10px;position:fixed;top:55px;left:50%;transform:translate(-50%);box-shadow:0 16px 36px #00000085}.measure-menu-heading{justify-content:space-between;align-items:baseline;padding:2px 2px 9px;display:flex}.measure-menu-heading strong{color:var(--accent);font:700 11px/1 var(--font-family);letter-spacing:.1em}.measure-menu-heading span,.measure-menu p{color:var(--subtle);font:600 10px/1.35 var(--font-family)}.measure-menu-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.measure-menu-grid button{border:1px solid var(--line);min-height:54px;color:var(--muted);cursor:pointer;font:700 10px/1 var(--font-family);text-transform:uppercase;background:#ffffff06;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:5px;display:flex}.measure-menu-grid button svg{width:18px;height:18px;color:var(--accent)}.measure-menu-grid button:hover,.measure-menu-grid button.is-active{border-color:var(--line-strong);color:#fff;background:#e971321f}.measure-menu p{text-align:center;margin:8px 2px 0}.measurement-refining{z-index:7;border:1px solid var(--line-strong);color:var(--text);font:700 11px/1 var(--font-family);letter-spacing:.08em;background:#120a06e6;border-radius:3px;align-items:center;gap:8px;padding:7px 10px;display:flex;position:absolute;bottom:48px;left:50%;transform:translate(-50%)}.measurement-refining i{border:1px solid var(--accent);border-top-color:#0000;border-radius:50%;width:7px;height:7px;animation:.7s linear infinite spin}.navigation-hint{z-index:5;color:var(--subtle);font:700 11px/1.4 var(--font-family);letter-spacing:.09em;font-size:10px;position:absolute;bottom:14px;right:14px}.vertex-hint{z-index:5;color:var(--accent);font:700 10px/1.4 var(--font-family);letter-spacing:.09em;opacity:.78;pointer-events:none;position:absolute;bottom:14px;right:14px}.orientation-indicator{z-index:5;width:70px;height:70px;color:var(--text);font:700 11px/1 var(--font-family);position:absolute;bottom:24px;left:22px}.orientation-indicator i{transform-origin:0;width:28px;height:1px;position:absolute;bottom:25px;left:31px}.orientation-indicator i:after{content:"";border-top:1px solid;border-right:1px solid;width:5px;height:5px;position:absolute;top:-2px;right:-1px;transform:rotate(45deg)}.orientation-indicator i.x{color:#e56b5b;background:#e56b5b;transform:rotate(28deg)}.orientation-indicator i.y{color:#6fc37a;background:#6fc37a;transform:rotate(-28deg)}.orientation-indicator i.z{color:#6394db;background:#6394db;width:32px;transform:rotate(-90deg)}.orientation-indicator span{position:absolute}.orientation-indicator span.x{color:#e56b5b;bottom:13px;left:61px}.orientation-indicator span.y{color:#6fc37a;bottom:40px;left:62px}.orientation-indicator span.z{color:#6394db;top:0;left:28px}.navigation-cube{z-index:6;top:calc(12px + 3px * var(--cube-scale));transform:scale(var(--cube-scale));transform-origin:100% 0;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;right:10px}.navigation-cube-frame{place-items:center;padding:9px;display:grid;position:relative}.navigation-cube,.navigation-cube *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.navigation-cube-stage{perspective:460px;cursor:grab;touch-action:none;place-items:center;width:140px;height:140px;display:grid}.navigation-cube-step{z-index:2;border:1px solid var(--line);width:20px;height:20px;color:var(--muted);cursor:pointer;opacity:.5;background:#120a06c7;border-radius:3px;place-items:center;padding:0;line-height:1;transition:opacity .12s;display:grid;position:absolute}.navigation-cube-step i{clip-path:polygon(50% 0%,100% 100%,0% 100%);background:currentColor;width:9px;height:9px}.navigation-cube-step.is-up i{transform:rotate(0)}.navigation-cube-step.is-right i{transform:rotate(90deg)}.navigation-cube-step.is-down i{transform:rotate(180deg)}.navigation-cube-step.is-left i{transform:rotate(-90deg)}.navigation-cube:hover .navigation-cube-step,.navigation-cube-step:focus-visible{opacity:1}.navigation-cube-step:hover{border-color:var(--line-strong);color:var(--text);opacity:1;background:#e971322e}.navigation-cube-step.is-up{top:-3px;left:50%;transform:translate(-50%)}.navigation-cube-step.is-down{bottom:-3px;left:50%;transform:translate(-50%)}.navigation-cube-step.is-left{top:50%;left:-3px;transform:translateY(-50%)}.navigation-cube-step.is-right{top:50%;right:-3px;transform:translateY(-50%)}.navigation-cube-stage:active{cursor:grabbing}.navigation-cube-body{width:96px;height:96px;transform-style:preserve-3d;will-change:transform;position:relative}.navigation-cube-face{backface-visibility:hidden;transform-style:flat;outline-offset:-1px;background:#1f130ded;outline:1px solid #e9713280;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);display:grid;position:absolute;top:0;left:0}.navigation-cube-zone{pointer-events:none;outline-offset:-1px;color:var(--muted);cursor:pointer;font:700 8px/1 var(--font-family);letter-spacing:.04em;background:0 0;border:0;outline:1px solid #e9713221;place-items:center;padding:0;display:grid}.navigation-cube-zone span{pointer-events:none;color:var(--text)}.navigation-cube-zone.is-hovered{background:#e9713257}.navigation-cube-zone:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.navigation-cube[data-active-view=top] .navigation-cube-zone[data-view=top],.navigation-cube[data-active-view=bottom] .navigation-cube-zone[data-view=bottom],.navigation-cube[data-active-view=front] .navigation-cube-zone[data-view=front],.navigation-cube[data-active-view=back] .navigation-cube-zone[data-view=back],.navigation-cube[data-active-view=left] .navigation-cube-zone[data-view=left],.navigation-cube[data-active-view=right] .navigation-cube-zone[data-view=right],.navigation-cube[data-active-view=iso] .navigation-cube-zone[data-view=iso]{background:#e971323d}.navigation-cube-fit{border:1px solid var(--line);min-width:96px;height:26px;color:var(--muted);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.1em;text-indent:.05em;background:#120a06d1;border-radius:3px;place-items:center;padding:0 9px;display:grid}.navigation-cube-fit:hover{border-color:var(--line-strong);color:var(--text);background:#e971321f}.navigation-cube-actions{grid-template-columns:repeat(2,1fr);gap:4px;width:158px;display:grid}.navigation-cube-actions .navigation-cube-fit{letter-spacing:.05em;text-indent:.025em;min-width:0;padding:0 4px;overflow:hidden}.navigation-cube-fit.is-active{border-color:var(--accent);color:#fff;background:#e9713233}.navigation-directions{z-index:300;overscroll-behavior:contain;border:1px solid var(--line-strong);background:#120a06f5;border-radius:4px;gap:7px;width:148px;padding:8px;display:grid;overflow-y:auto;box-shadow:0 14px 32px #00000080}.navigation-directions-layer>span{color:var(--accent);font:700 9px/1 var(--font-family);letter-spacing:.1em;padding-bottom:4px;display:block}.navigation-directions-grid{grid-template-columns:repeat(3,1fr);gap:3px;display:grid}.navigation-directions-grid button,.navigation-directions-grid i{border-radius:2px;place-items:center;height:26px;display:grid}.navigation-directions-grid button{border:1px solid var(--line);color:var(--muted);cursor:pointer;font:700 9px/1 var(--font-family);letter-spacing:.04em;background:#ffffff05}.navigation-directions-grid button:hover{border-color:var(--accent);color:#fff;background:#e9713229}.navigation-directions-grid i{border:1px dashed #e971322e}.draw-actions{z-index:8;border:1px solid var(--line-strong);background:#120a06eb;border-radius:4px;align-items:center;gap:6px;padding:6px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.draw-actions span{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.08em;padding:0 6px}.draw-actions button{border:1px solid var(--line);min-height:34px;color:var(--text);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.08em;background:#ffffff08;border-radius:3px;padding:0 14px}.draw-actions button:hover{border-color:var(--line-strong);background:#e9713224}.draw-actions button.is-cancel{color:var(--muted)}.snap-picker{z-index:8;border:1px solid var(--line-strong);background:#120a06eb;border-radius:4px;flex-direction:column;align-items:stretch;gap:4px;width:168px;padding:6px;display:flex;position:absolute;bottom:14px;right:14px;box-shadow:0 8px 24px #0006}.snap-picker>span{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.1em;padding:3px 4px 5px}.snap-picker button{border:1px solid var(--line);min-height:28px;color:var(--muted);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.06em;text-align:left;white-space:nowrap;background:#ffffff08;border-radius:3px;padding:0 10px}.snap-picker button:hover{border-color:var(--line-strong);color:var(--text);background:#e9713224}.snap-picker button.is-active{border-color:var(--accent);color:#fff;background:#e9713238}.snap-picker button{align-items:center;gap:8px;display:flex}.snap-picker button>i{opacity:.7;border:1px solid;border-radius:2px;flex:none;width:10px;height:10px}.snap-picker button.is-active>i{border-color:var(--accent);background:var(--accent);opacity:1;box-shadow:inset 0 0 0 2px #120a06eb}.snap-picker~.scalar-legend{bottom:200px}@media (hover:none) and (pointer:coarse){.snap-picker button{min-height:36px}}@media (max-width:720px){.snap-picker{flex-flow:wrap;justify-content:center;align-items:center;width:auto;bottom:74px;left:8px;right:8px}.snap-picker>span{padding:0 6px 0 4px}.snap-picker~.scalar-legend{bottom:150px}}.viewport-messages{z-index:10;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(520px,100% - 30px);display:flex;position:absolute;top:74px;left:50%;transform:translate(-50%)}.viewport-message{border:1px solid var(--line-strong);pointer-events:auto;background:#1f130df0;border-radius:3px;align-items:center;gap:10px;max-width:100%;padding:9px 12px;display:flex;box-shadow:0 8px 24px #00000059}.viewport-message div{flex-direction:column;gap:2px;min-width:0;display:flex}.viewport-message strong{font:700 11px/1.3 var(--font-family);letter-spacing:.08em}.viewport-message span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.viewport-message.is-loading>i{border:2px solid #e9713247;border-top-color:var(--accent);border-radius:50%;flex:none;width:15px;height:15px;animation:.8s linear infinite spin}.viewport-message.is-error{border-color:#e6695f80}.viewport-message.is-error strong{color:var(--danger)}.viewport-message.is-notice{border-color:#e9713280}.viewport-message.is-notice strong{color:var(--accent)}.viewport-message.is-notice span{white-space:normal;max-width:none}.viewport-message.is-notice button{border:1px solid var(--line);min-height:34px;color:var(--text);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.08em;background:#ffffff08;border-radius:3px;flex:none;padding:0 14px}.viewport-message.is-notice button:hover{border-color:var(--line-strong);background:#e9713224}@keyframes spin{to{transform:rotate(360deg)}}.properties-panel{min-width:0;padding-bottom:18px;overflow-x:hidden}.properties-panel *{min-width:0}.properties-panel p,.properties-panel small,.properties-panel li{overflow-wrap:break-word}.selected-entity{border:1px solid var(--line);border-left:2px solid var(--accent);background:#00000021;grid-template-columns:38px 1fr;align-items:center;gap:9px;margin:12px;padding:10px;display:grid}.selected-entity>svg{width:24px;height:24px;color:var(--accent)}.selected-entity div{flex-direction:column;gap:2px;min-width:0;display:flex}.selected-entity span{color:var(--subtle);font:700 10px/1.2 var(--font-family);letter-spacing:.09em}.selected-entity strong{font-size:var(--font-body);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.selected-entity small{color:var(--muted);text-transform:uppercase;font-size:11px}.empty-properties{min-height:220px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:22px;display:flex}.empty-properties svg{width:24px;color:var(--accent)}.empty-properties strong{font-size:13px}.empty-properties span{font-size:12px;line-height:1.5}.property-section{border-top:1px solid var(--line)}.property-section:last-of-type{border-bottom:1px solid var(--line)}.property-section summary{min-height:clamp(36px,1.5vw + 26px,48px);color:var(--accent);cursor:pointer;font:700 var(--font-mono-sm)/1 var(--font-family);letter-spacing:.1em;justify-content:space-between;align-items:center;padding:0 13px;list-style:none;display:flex}.property-section summary::-webkit-details-marker{display:none}.property-section summary svg{width:13px;transition:transform .14s}.property-section[open] summary svg{transform:rotate(90deg)}.property-content{flex-direction:column;gap:11px;padding:3px 13px 14px;display:flex}.property-line,.property-value,.select-control>span,.range-control>span{color:var(--muted);font-size:var(--font-body);justify-content:space-between;align-items:center;gap:8px;display:flex}.select-control,.range-control{flex-direction:column;gap:6px;display:flex}.select-control select{border:1px solid var(--line);background:var(--surface);width:100%;height:31px;color:var(--text);font:600 11px/1 var(--font-family);border-radius:2px;padding:0 8px}.select-control select:hover,.select-control select:focus{border-color:var(--accent)}.range-control output{color:var(--text);font:600 11px/1 var(--font-family)}.geo-range{appearance:none;cursor:pointer;background:0 0;border:0;outline:0;width:100%;height:22px;margin:0;padding:0}.geo-range::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) 0 var(--range-progress,0%), #fff3 var(--range-progress,0%) 100%);border-radius:3px;height:6px}.geo-range::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:0;border-radius:8px;width:26px;height:16px;margin-top:-5px;transition:background-color .12s,box-shadow .12s;box-shadow:0 1px 4px #00000073,inset 0 1px #ffffff38}.geo-range:hover::-webkit-slider-thumb{background:#f1864c}.geo-range:active::-webkit-slider-thumb{background:#f1864c;box-shadow:0 2px 7px #00000080,inset 0 1px #ffffff40}.geo-range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #e9713259,0 1px 4px #00000073}.geo-range::-moz-range-track{background:#fff3;border-radius:3px;height:6px}.geo-range::-moz-range-progress{background:var(--accent);border-radius:3px;height:6px}.geo-range::-moz-range-thumb{background:var(--accent);border:0;border-radius:8px;width:26px;height:16px;box-shadow:0 1px 4px #00000073,inset 0 1px #ffffff38}.geo-range:hover::-moz-range-thumb{background:#f1864c}.geo-range:disabled{cursor:not-allowed;opacity:.35}.geo-range[data-bump=max]::-webkit-slider-thumb{animation:.32s cubic-bezier(.3,.7,.4,1) geo-range-bump-max}.geo-range[data-bump=min]::-webkit-slider-thumb{animation:.32s cubic-bezier(.3,.7,.4,1) geo-range-bump-min}.geo-range[data-bump=max]::-moz-range-thumb{animation:.32s cubic-bezier(.3,.7,.4,1) geo-range-bump-max}.geo-range[data-bump=min]::-moz-range-thumb{animation:.32s cubic-bezier(.3,.7,.4,1) geo-range-bump-min}@keyframes geo-range-bump-max{0%{transform:none}35%{transform:translate(3px)scaleX(.8)}70%{transform:translate(-1px)scaleX(1.06)}to{transform:none}}@keyframes geo-range-bump-min{0%{transform:none}35%{transform:translate(-3px)scaleX(.8)}70%{transform:translate(1px)scaleX(1.06)}to{transform:none}}@media (prefers-reduced-motion:reduce){.geo-range[data-bump]::-webkit-slider-thumb{animation:none}.geo-range[data-bump]::-moz-range-thumb{animation:none}}.switch{flex:none;width:31px;height:17px;display:inline-block;position:relative}.switch input{opacity:0;pointer-events:none;position:absolute}.switch span{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:20px;transition:all .15s;position:absolute;inset:0}.switch span:after{content:"";background:var(--muted);border-radius:50%;width:11px;height:11px;transition:transform .18s cubic-bezier(.3,.7,.4,1),background-color .15s;position:absolute;top:2px;left:2px;transform:translate(0)}.switch input:checked+span{border-color:var(--accent);background:var(--accent)}.switch input:checked+span:after{background:var(--text);transform:translate(14px)}.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.switch input:disabled+span{cursor:not-allowed;opacity:.35}.switch.is-touched input:checked+span:after{animation:.34s cubic-bezier(.3,.7,.4,1) switch-knob-on}.switch.is-touched input:not(:checked)+span:after{animation:.34s cubic-bezier(.3,.7,.4,1) switch-knob-off}@keyframes switch-knob-on{0%{transform:translate(0)scaleX(1)}45%{transform:translate(8px)scaleX(1.4)}75%{transform:translate(15.5px)scaleX(.86)}to{transform:translate(14px)scaleX(1)}}@keyframes switch-knob-off{0%{transform:translate(14px)scaleX(1)}45%{transform:translate(6px)scaleX(1.4)}75%{transform:translate(-1.5px)scaleX(.86)}to{transform:translate(0)scaleX(1)}}@media (prefers-reduced-motion:reduce){.switch.is-touched input+span:after{animation:none}}.view-button-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.view-button-grid button{border:1px solid var(--line);min-height:26px;color:var(--muted);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.05em;background:#ffffff06;border-radius:3px;padding:0 2px}.view-button-grid button:hover{border-color:var(--line-strong);color:var(--text);background:#e971321f}.view-button-grid button.is-accent{border-color:var(--line-strong);color:var(--accent)}.active-ramp-summary{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.05em;grid-template-columns:auto minmax(70px,1fr);align-items:center;gap:10px;display:grid}.active-ramp-summary i{border:1px solid #ffffff26;border-radius:2px;height:8px}.scalar-properties{gap:12px}.scalar-range-fields{grid-template-columns:1fr 1fr;gap:7px;display:grid}.scalar-number-control{color:var(--muted);flex-direction:column;gap:5px;font-size:11px;display:flex}.scalar-number-control>span:last-child{border:1px solid var(--line);background:var(--surface);border-radius:2px;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0;display:grid}.scalar-number-control input{width:100%;min-width:0;height:30px;color:var(--text);text-align:right;font:600 11px/1 var(--font-family);background:0 0;border:0;outline:0;padding:0 6px}.scalar-number-control input:focus{box-shadow:inset 0 -1px var(--accent)}.scalar-number-control input:disabled{opacity:.45;cursor:not-allowed}.scalar-number-control em{color:var(--accent);font:600 9px/1 var(--font-family);padding-right:6px}.mapping-toggle{border:1px solid var(--line);background:var(--surface);border-radius:3px;grid-template-columns:1fr 1fr;padding:2px;display:grid}.mapping-toggle button{min-height:28px;color:var(--muted);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.06em;background:0 0;border:0;border-radius:2px}.mapping-toggle button:hover{color:var(--text)}.mapping-toggle button.is-active{background:var(--accent);color:var(--text)}.ramp-picker{border:1px solid var(--line);background:var(--surface);border-radius:3px;position:relative}.ramp-picker>summary{min-height:39px;color:var(--text);cursor:pointer;grid-template-columns:1fr 14px;align-items:center;gap:8px;padding:5px 8px;list-style:none;display:grid}.ramp-picker>summary::-webkit-details-marker{display:none}.ramp-picker>summary>span{grid-template-columns:76px minmax(70px,1fr);align-items:center;gap:8px;min-width:0;display:grid}.ramp-picker>summary b{color:var(--text);font:700 10px/1 var(--font-family);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ramp-picker i{border:1px solid #ffffff29;border-radius:2px;height:10px;display:block}.ramp-picker>summary svg{width:13px;color:var(--accent);transition:transform .14s}.ramp-picker[open]>summary svg{transform:rotate(90deg)}.ramp-picker>div{border-top:1px solid var(--line);gap:3px;padding:4px;display:grid}.ramp-picker button{background:var(--background);min-height:32px;color:var(--muted);cursor:pointer;text-align:left;font:600 10px/1 var(--font-family);border:1px solid #0000;border-radius:2px;grid-template-columns:84px 1fr;align-items:center;gap:8px;padding:0 6px;display:grid}.ramp-picker button:hover,.ramp-picker button.is-selected{border-color:var(--accent);color:var(--text)}.color-ramp-control{gap:7px;display:grid}.ramp-groups>strong{color:var(--accent);font:700 9px/1 var(--font-family);letter-spacing:.11em;padding:6px 5px 2px}.ramp-groups>p{color:var(--subtle);margin:3px 6px 6px;font-size:10px}.ramp-option-row{grid-template-columns:minmax(0,1fr) 42px;gap:3px;display:grid}.ramp-option-row>button:first-child{grid-template-columns:84px minmax(45px,1fr)}.ramp-option-row>button:last-child{text-align:center;padding:0 3px;display:block}.user-ramp-row{grid-template-columns:minmax(0,1fr)}.user-ramp-row>div{grid-template-columns:repeat(4,1fr);gap:3px;display:grid}.user-ramp-row>div button{text-align:center;background:#00000026;min-height:23px;padding:0 2px;font-size:9px;display:block}.user-ramp-row>div button.is-danger{color:var(--danger)}.ramp-create-actions{grid-template-columns:1.35fr 1fr;gap:4px;margin-top:4px;display:grid}.ramp-create-actions button{border-color:var(--line-strong);text-align:center;background:#e9713212;grid-template-columns:none;min-height:30px;padding:0 5px;display:block}.ramp-message{border-left:2px solid var(--accent);color:var(--muted);background:#e9713212;margin:0;padding:5px 7px;font-size:10px;line-height:1.35}.color-ramp-editor{border:1px solid var(--line-strong);border-top:2px solid var(--accent);background:var(--background);gap:10px;padding:9px;display:grid}.ramp-editor-heading{justify-content:space-between;align-items:center;display:flex}.ramp-editor-heading span{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.08em}.ramp-editor-heading button{width:24px;height:24px;color:var(--accent);cursor:pointer;background:0 0;border:0;font-size:16px}.ramp-editor-preview{border:1px solid #ffffff2e;border-radius:2px;height:18px}.ramp-stop-list{gap:5px;display:grid}.ramp-stop-row{border:1px solid var(--line);background:var(--surface);grid-template-columns:82px minmax(0,1fr) 22px;align-items:end;gap:5px;padding:6px;display:grid}.ramp-stop-row>label{color:var(--muted);gap:3px;font-size:9px;display:grid}.ramp-stop-row>label>span:last-child{grid-template-columns:minmax(0,1fr) 15px;align-items:center;display:grid}.ramp-stop-row>label:nth-child(2)>span:last-child{grid-template-columns:30px minmax(0,1fr);gap:4px}.ramp-stop-row input{border:1px solid var(--line);background:var(--background);width:100%;min-width:0;height:25px;color:var(--text);font:600 10px/1 var(--font-family);padding:0 4px}.ramp-stop-row input[type=color]{cursor:pointer;padding:2px}.ramp-stop-row em{color:var(--subtle);font-size:9px;font-style:normal}.ramp-stop-row>button{border:1px solid var(--line);width:22px;height:25px;color:var(--danger);cursor:pointer;background:0 0}.ramp-stop-row>button:disabled{cursor:not-allowed;opacity:.25}.ramp-editor-tools{grid-template-columns:1.4fr 1fr;gap:5px;display:grid}.ramp-editor-tools button{border:1px solid var(--line);background:var(--surface);min-height:28px;color:var(--text);cursor:pointer;font:700 9px/1 var(--font-family)}.ramp-editor-tools button:hover{border-color:var(--accent);background:#e9713217}.section-reset{border:1px solid var(--line);background:var(--surface);min-height:29px;color:var(--accent);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.06em;border-radius:2px}.section-reset:hover{border-color:var(--accent);color:var(--text);background:#e971321a}.scalar-legend{z-index:7;border:1px solid var(--line-strong);pointer-events:auto;background:#120a06eb;border-radius:3px;width:210px;padding:9px 10px;position:absolute;bottom:42px;right:14px;box-shadow:0 8px 24px #00000061}.scalar-legend>div:first-child{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.1em;justify-content:space-between;align-items:center;display:flex}.scalar-legend button{width:21px;height:21px;color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:16px;line-height:1}.scalar-legend button:hover{color:var(--accent)}.scalar-legend>strong{color:var(--text);margin:3px 0 7px;font-size:12px;display:block}.scalar-legend>i{border:1px solid #ffffff2e;border-radius:2px;height:11px;display:block}.scalar-legend-range{color:var(--text);font:600 9px/1 var(--font-family);justify-content:space-between;margin-top:5px;display:flex}.scalar-legend small{color:var(--accent);font:700 9px/1 var(--font-family);margin-top:5px;display:block}.property-value strong{max-width:60%;color:var(--text);font:600 var(--font-mono-sm)/1.35 var(--font-family);text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.property-value.is-multiline{align-items:flex-start}.property-value.is-multiline strong{white-space:normal;overflow-wrap:anywhere;overflow:visible}.information-list{gap:8px}.scope-note{color:var(--muted);overflow-wrap:break-word;margin:0;padding-right:2px;font-size:12px;line-height:1.55}.settings-notice{border-left:2px solid var(--accent);color:var(--muted);background:#e9713212;margin:10px 13px;padding:8px;font-size:11px;line-height:1.45}.measurement-results .property-value:first-child{border-left:2px solid var(--accent);background:#e9713212;min-height:34px;margin:-3px 0 1px;padding:0 7px}.measurement-results .property-value:first-child strong{color:var(--accent);font-size:13px}.measurement-results.is-coordinates .property-value:first-child{background:0 0;border-left:0;min-height:0;margin:0;padding:0}.measurement-results.is-coordinates .property-value:first-child strong{color:var(--text);font-size:var(--font-mono-sm)}.text-control,.color-control{color:var(--muted);font-size:var(--font-body);justify-content:space-between;align-items:center;gap:10px;display:flex}.text-control input{border:1px solid var(--line);width:64%;min-width:0;height:30px;color:var(--text);background:#0000002e;border-radius:2px;padding:0 7px;font-size:12px}.color-control input{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:2px;width:45px;height:27px;padding:2px}.measurement-points-list>div{border:1px solid var(--line);border-left:2px solid var(--accent);background:#0000001f;flex-direction:column;gap:3px;padding:7px;display:flex}.measurement-points-list strong{color:var(--accent);font:700 10px/1 var(--font-family)}.measurement-points-list span{color:var(--text);font:600 11px/1.3 var(--font-family)}.measurement-points-list small{color:var(--subtle);overflow-wrap:anywhere;font-size:10px;line-height:1.35}.danger-zone{background:#e6695f0b;border:1px solid #e6695f4d;flex-direction:column;gap:7px;margin:13px;padding:10px;display:flex}.danger-zone button{height:32px;color:var(--danger);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.07em;background:#e6695f14;border:1px solid #e6695f73;border-radius:2px;justify-content:center;align-items:center;gap:7px;display:flex}.danger-zone button svg{width:13px}.danger-zone span{color:var(--subtle);font-size:10px;line-height:1.4}.performance-overlay{z-index:9;border:1px solid var(--line-strong);width:236px;font-family:var(--font-family);background:#1f130df2;border-radius:3px;position:absolute;top:268px;right:14px;overflow:hidden;box-shadow:0 10px 32px #00000061}.metrics-heading{border-bottom:1px solid var(--line);height:30px;color:var(--muted);letter-spacing:.08em;justify-content:space-between;align-items:center;padding:0 10px;font-size:11px;display:flex}.metrics-heading b{color:var(--accent);font-size:10px}.metrics-fps{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:9px 10px;display:flex}.metrics-fps strong{color:var(--text);font-size:29px;line-height:1}.metrics-fps span{color:var(--muted);font-size:10px;line-height:1.45}.performance-overlay dl{margin:0;padding:6px 10px 8px}.performance-overlay dl div{justify-content:space-between;gap:8px;padding:3px 0;display:flex}.performance-overlay dt{color:var(--subtle);font-size:10px}.performance-overlay dd{color:var(--text);text-align:right;margin:0;font-size:10px}.benchmark-result{border-top:1px solid var(--line-strong);color:var(--muted);flex-direction:column;gap:2px;padding:8px 10px;font-size:10px;display:flex}.benchmark-result b{color:var(--accent);font-size:10px}.status-bar{z-index:35;border-top:1px solid var(--line-strong);background:var(--background);min-width:0;color:var(--muted);font:600 var(--font-mono-sm)/1 var(--font-family);align-items:center;display:flex;position:relative;overflow:hidden}.status-segment,.coordinate-segment{border-right:1px solid var(--line);white-space:nowrap;flex:none;align-items:center;gap:6px;height:100%;padding:0 10px;display:flex}.status-segment svg{width:13px;height:13px;color:var(--accent)}.status-segment span,.coordinate-segment span{color:var(--subtle)}.status-segment strong,.coordinate-segment strong{color:var(--text);font-weight:600}.status-segment strong.good{color:var(--success)}.coordinate-segment .axis-x{color:#e56b5b}.coordinate-segment .axis-y{color:#6fc37a}.coordinate-segment .axis-z{color:#6394db}.status-spacer{flex:auto;min-width:8px}.quality{border-right:0}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);z-index:100;border:1px solid var(--line);background:var(--surface);width:max-content;max-width:250px;color:var(--text);opacity:0;visibility:hidden;pointer-events:none;font:500 11px/1.35 var(--font-family);letter-spacing:0;text-transform:none;border-radius:3px;padding:6px 8px;transition:all .12s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,-3px);box-shadow:0 8px 22px #0006}.tooltip:hover:after,.tooltip:focus-visible:after{opacity:1;visibility:visible;transition-delay:.35s;transform:translate(-50%)}.layer-visibility.tooltip:after{left:8px;transform:translateY(-3px)}.layer-visibility.tooltip:hover:after{transform:translate(0)}.mobile-backdrop{display:none}@media (min-width:1700px){:root{--cube-scale:1.12}}@media (min-width:2400px){:root{--panel-width-left:clamp(420px, 15vw, 500px);--panel-width-right:clamp(460px, 17vw, 550px);--font-mono-xs:14px;--font-mono-sm:15px;--font-mono-md:16px;--font-body:17px;--font-title:21px;--icon-size:23px;--cube-scale:1.3}}@media (max-width:1180px){.tool-button span{font-size:9px}}@media (max-width:900px){.viewer-shell{--left-panel-width:0px;--right-panel-width:0px;grid-template-rows:64px minmax(0,1fr) 38px}.viewer-shell.full-view{--left-panel-width:0px;--right-panel-width:0px;grid-template-rows:0 minmax(0,1fr) 38px}.app-header{grid-template-columns:1fr auto;gap:8px;padding:0 8px}.brand-logo{width:72px;height:51px}.brand-name span{font-size:9px}.project-identity,.project-back span{display:none}.project-back{padding:0 7px}.viewer-workspace{display:block}.viewport{width:100%;height:100%}.side-panel{z-index:32;width:min(84vw,320px);position:absolute;top:0;bottom:0;box-shadow:14px 0 34px #00000073}.layer-panel{left:0;transform:translate(-100%)}.properties-panel{right:0;transform:translate(100%);box-shadow:-14px 0 34px #00000073}.mobile-backdrop{z-index:31;background:#0000007a;border:0;display:block;position:absolute;inset:0}.viewport-toolbar{scrollbar-width:none;max-width:calc(100% - 16px);overflow:auto hidden}.viewport-toolbar::-webkit-scrollbar{display:none}.full-view .full-view-exit{padding:0 8px;right:8px}.full-view .full-view-exit span{display:none}.full-view .viewport-toolbar{max-width:calc(100% - 96px)}.tool-button{width:46px;height:44px}.tool-button span,.navigation-hint,.vertex-hint{display:none}.orientation-indicator{transform-origin:0 100%;bottom:12px;left:12px;transform:scale(.85)}.navigation-cube{--cube-scale:.72;top:68px;right:8px}.navigation-directions{overscroll-behavior:contain;max-height:46dvh;overflow-y:auto}.performance-overlay{width:min(236px,100% - 16px);top:228px;right:8px}.scalar-legend{width:min(210px,100% - 16px);bottom:42px;right:8px}.geo-range{height:30px}.geo-range::-webkit-slider-thumb{border-radius:11px;width:32px;height:22px;margin-top:-8px}.geo-range::-moz-range-thumb{border-radius:11px;width:32px;height:22px}.status-bar{scrollbar-width:none;overflow-x:auto}.status-bar::-webkit-scrollbar{display:none}.status-spacer{min-width:0}.status-segment,.coordinate-segment{padding:0 8px}}@media (max-width:520px){.header-actions{gap:3px}.header-actions .icon-button{width:32px;height:32px}.brand-name span{display:none}.status-bar .crs strong{text-overflow:ellipsis;max-width:62px;overflow:hidden}.status-bar .quality{padding-right:12px}.viewport-messages{top:62px}.viewport-message span{max-width:72vw}.tooltip:after{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.clipping-menu{width:330px}.clipping-menu-actions{gap:5px;display:grid}.clipping-menu-actions button{border:1px solid var(--line);color:var(--text);cursor:pointer;text-align:left;background:#ffffff06;border-radius:3px;flex-direction:column;align-items:flex-start;gap:3px;padding:9px;display:flex}.clipping-menu-actions button:hover{border-color:var(--accent);background:#e971321a}.clipping-menu-actions strong{color:var(--accent);font:700 10px/1.2 var(--font-family);letter-spacing:.05em}.clipping-menu-actions span{color:var(--muted);font-size:10px;line-height:1.3}@media (max-width:900px),(hover:none) and (pointer:coarse){.measure-menu,.clipping-menu{overscroll-behavior:contain;width:auto;max-height:70dvh;padding:12px 12px calc(12px + env(safe-area-inset-bottom));border-radius:6px 6px 0 0;position:fixed;inset:auto 0 0;overflow-y:auto;transform:none;box-shadow:0 -14px 34px #00000080}.measure-menu-grid{gap:6px}.measure-menu-grid button{min-height:64px}.clipping-menu-actions button{padding:12px}}.object-tree-entry{grid-template-columns:var(--icon-slot-tight) var(--icon-slot-tight) minmax(0,1fr) var(--icon-slot-tight) var(--icon-slot-tight) var(--icon-slot);margin-left:2px}.annotation-tree-entry{grid-template-columns:var(--icon-slot) minmax(0,1fr) var(--icon-slot-tight) var(--icon-slot)}.annotation-tree-entry .measurement-tree-select small{text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:0;font-family:var(--font-family);overflow:hidden}.annotation-text-control{color:var(--muted);font-size:var(--font-body);flex-direction:column;gap:6px;display:flex}.annotation-text-control textarea{border:1px solid var(--line);width:100%;min-height:84px;color:var(--text);resize:vertical;font:400 var(--font-body)/1.45 var(--font-family);background:#00000038;border-radius:2px;padding:8px}.annotation-text-control textarea:focus{border-color:var(--accent);outline:none}.annotation-text-control textarea::placeholder{color:var(--subtle)}.object-tree-entry .measurement-tree-select{min-width:0}.object-enabled,.object-mini-action{width:23px;height:26px;color:var(--accent);cursor:pointer;font:700 12px/1 var(--font-family);background:0 0;border:0}.object-mini-action:hover,.object-enabled:hover{color:#fff;background:#e971321a}.project-state-actions{border:1px solid var(--line);background:#0000001f;gap:6px;margin:0 10px 12px;padding:9px;display:grid}.project-state-actions>strong{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.1em}.project-state-actions>div{grid-template-columns:1fr 1fr;gap:5px;display:grid}.project-state-actions button,.action-grid button,.section-step-actions button,.object-actions button,.export-actions button{border:1px solid var(--line);min-height:30px;color:var(--text);cursor:pointer;font:700 10px/1 var(--font-family);letter-spacing:.05em;background:#ffffff06;border-radius:2px}.project-state-actions button:hover,.action-grid button:hover,.section-step-actions button:hover,.object-actions button:hover,.export-actions button:hover{border-color:var(--accent);background:#e971321a}.project-state-actions button:disabled,.action-grid button:disabled,.section-step-actions button:disabled,.object-actions button:disabled{cursor:not-allowed;opacity:.35}.project-state-actions>span{color:var(--muted);font-size:10px;line-height:1.35}.cad-layer-entry{border:1px solid #0000;border-radius:3px;margin:2px 0}.cad-layer-entry.is-selected{border-color:var(--line-strong);background:#e9713214}.cad-layer-entry>summary{grid-template-columns:28px minmax(0,1fr) 24px 28px;align-items:center;gap:5px;min-height:44px;list-style:none;display:grid}.cad-layer-entry>summary::-webkit-details-marker{display:none}.cad-layer-entry .layer-visibility{width:27px}.cad-layer-select{min-width:0;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:9px;padding:5px 7px 5px 4px;display:grid}.cad-layer-select svg{width:16px;color:var(--accent)}.cad-layer-select span{flex-direction:column;gap:2px;min-width:0;display:flex}.cad-layer-select small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cad-layer-select strong{overflow-wrap:break-word;font-size:12px;line-height:1.32}.cad-layer-select small{color:var(--muted);font-size:10px}.cad-source-layers{gap:2px;padding:0 5px 6px 28px;display:grid}.cad-source-layers button{min-height:25px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:5px;padding:0 6px;font-size:11px;display:grid}.cad-source-layers button:hover{color:var(--text);background:#ffffff09}.cad-source-layers button i{color:var(--subtle);font-style:normal}.cad-source-layers button.is-visible i{color:var(--accent)}.cad-source-layers button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cad-source-layers button em{color:var(--subtle);font:600 10px/1 var(--font-family)}.cad-source-layers p{border-left:2px solid var(--danger);color:#e6aaa4;background:#e6695f0f;margin:4px 0 0;padding:6px;font-size:10px;line-height:1.45}.cad-property-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.cad-property-actions button{border:1px solid var(--line);min-height:30px;color:var(--text);cursor:pointer;font:700 10px/1 var(--font-family);background:#ffffff06}.cad-property-actions button:hover{border-color:var(--accent);background:#e971321a}.cad-property-actions button.is-danger{color:var(--danger)}.cad-color-control{color:var(--muted);gap:6px;font-size:12px;display:grid}.cad-color-control>span:last-child{grid-template-columns:38px minmax(0,1fr);gap:6px;display:grid}.cad-color-control input{border:1px solid var(--line);background:var(--background);min-width:0;height:30px;color:var(--text)}.cad-color-control input[type=color]{cursor:pointer;padding:2px}.cad-color-control input[type=text]{font:600 11px/1 var(--font-family);padding:0 7px}.scope-note.is-standalone{margin:0 13px 12px}.scope-note.is-warning{border-left:2px solid var(--danger);color:#e6aaa4;background:#e6695f0f;padding:7px}.modal-backdrop{z-index:320;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000000ad;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.dxf-import-dialog{border:1px solid var(--line);background:#120a06;gap:14px;width:min(430px,100%);padding:18px;display:grid;box-shadow:0 24px 70px #0000009e}.dxf-import-dialog>div:first-child span{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.12em}.dxf-import-dialog h2{margin:4px 0 0;font-size:17px}.dxf-import-dialog dl{background:var(--surface);grid-template-columns:90px minmax(0,1fr);gap:6px 10px;margin:0;padding:10px;display:grid}.dxf-import-dialog dt{color:var(--muted);font-size:11px}.dxf-import-dialog dd{overflow-wrap:anywhere;min-width:0;color:var(--text);margin:0;font-size:12px}.dxf-import-dialog fieldset{border:1px solid var(--line);gap:6px;margin:0;padding:10px;display:grid}.dxf-import-dialog legend{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.07em;padding:0 5px}.dxf-import-dialog fieldset label{cursor:pointer;grid-template-columns:18px 1fr;align-items:start;gap:7px;padding:7px;display:grid}.dxf-import-dialog fieldset label:has(input:checked){background:#e9713217}.dxf-import-dialog input[type=radio]{accent-color:var(--accent)}.dxf-import-dialog fieldset span{flex-direction:column;gap:3px;display:flex}.dxf-import-dialog fieldset strong{font-size:12px}.dxf-import-dialog fieldset small,.dxf-import-dialog>p{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.dialog-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.dialog-actions button{border:1px solid var(--line);background:var(--surface);min-height:34px;color:var(--text);cursor:pointer;font:700 11px/1 var(--font-family)}.dialog-actions button.is-primary{border-color:var(--accent);color:#ffd9c4;background:#e9713226}.dialog-actions button:disabled{cursor:wait;opacity:.45}.dxf-import-dialog .dxf-capability{border-left:2px solid var(--line-strong);background:#1f130dbd;padding:8px 10px}.dxf-import-dialog .dxf-capability.is-large{border-left-color:var(--accent);color:#ffd0ae}.dxf-import-dialog .dxf-capability.is-very-large{color:#ffd0ae;border-left-color:#ff7a45}.dxf-import-progress{border:1px solid var(--line);background:var(--surface);gap:6px;padding:10px;display:grid}.dxf-import-progress>div{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.08em;justify-content:space-between;display:flex}.dxf-import-progress progress{width:100%;height:5px;accent-color:var(--accent);background:#120a06;border:0}.dxf-import-progress progress::-webkit-progress-bar{background:#120a06}.dxf-import-progress progress::-webkit-progress-value{background:var(--accent)}.dxf-import-progress small{color:var(--muted);font-size:11px}.cad-text-label{white-space:pre-line;pointer-events:none;font:500 12px/1.15 var(--font-family);text-shadow:0 1px 2px #120a06;background:#120a0694;border-radius:2px;padding:1px 3px}.dxf-drop-overlay{z-index:110;border:2px dashed var(--accent);color:var(--text);pointer-events:none;background:#120a06e0;place-content:center;justify-items:center;gap:8px;display:grid;position:absolute;inset:18px}.dxf-drop-overlay svg{width:42px;color:var(--accent)}.dxf-drop-overlay strong{color:var(--accent);font:700 14px/1 var(--font-family);letter-spacing:.12em}.dxf-drop-overlay span{color:var(--muted);font-size:13px}.numeric-control{color:var(--muted);grid-template-columns:minmax(0,1fr) minmax(128px,46%);align-items:center;gap:10px;font-size:12px;display:grid}.numeric-control>span:first-child{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.numeric-tuple .numeric-control{grid-template-columns:45px minmax(0,1fr);gap:8px}.numeric-control>span:last-child{border:1px solid var(--line);background:#0000002e;grid-template-columns:minmax(0,1fr) 24px;align-items:center;min-width:0;display:grid}.numeric-control input{width:100%;min-width:0;height:29px;color:var(--text);text-align:right;font:600 12px/1 var(--font-family);background:0 0;border:0;outline:0;padding:0 7px}.numeric-control input:focus{box-shadow:inset 0 -1px var(--accent)}.numeric-control em{color:var(--subtle);font:600 10px/1 var(--font-family)}.action-grid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.section-step-actions,.object-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.section-profile>summary{color:var(--accent)}.section-profile>.property-content{border-left:2px solid #e971328c}.object-actions{margin:12px}.property-content>.object-actions{margin:0}.export-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.export-actions p{color:var(--muted);grid-column:1/-1;margin:0;font-size:11px}.object-context-menu{z-index:200;border:1px solid var(--line-strong);background:#1f130dfc;border-radius:3px;width:210px;padding:5px;display:grid;position:fixed;box-shadow:0 16px 40px #00000080}.object-context-menu button{min-height:32px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;padding:0 9px;font-size:12px}.object-context-menu button:hover{background:#e971321f}.object-context-menu button.is-danger{color:var(--danger)}.object-context-menu button:disabled{cursor:not-allowed;opacity:.4}.project-import-input{display:none}.command-status{min-width:0;max-width:46vw}.command-status strong{text-overflow:ellipsis;overflow:hidden}.command-status em{color:var(--accent);padding-left:5px;font-style:normal;font-weight:700}.viewport canvas.has-object-hover{cursor:pointer}.viewport canvas.has-clipping-grab{cursor:grab}.viewport canvas.has-clipping-grab.is-object-interacting{cursor:grabbing}.viewport canvas.is-picking-station{cursor:crosshair}.viewport canvas.is-picking-station.has-object-hover{cursor:pointer}.viewport canvas.is-object-interacting{cursor:grabbing}.viewport canvas.is-command-picking{cursor:var(--reticle-cursor)}.viewport canvas.is-command-picking.has-measurement-snap{cursor:var(--reticle-snap-cursor)}.profile-open-button{border:1px solid var(--accent);color:#ffd7c0;cursor:pointer;width:100%;min-height:34px;font:700 11px/1 var(--font-family);letter-spacing:.07em;background:#e971321f;border-radius:2px}.profile-open-button:hover{background:#e9713233}.workspace-prompt{border:1px solid var(--line);background:#120a06;gap:13px;width:min(430px,100%);padding:18px;display:grid;box-shadow:0 24px 70px #0000009e}.workspace-prompt h2{margin:0;font-size:17px}.workspace-prompt dl{background:var(--surface);grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;margin:0;padding:10px;display:grid}.workspace-prompt dt{color:var(--muted);font-size:11px}.workspace-prompt dd{color:var(--text);text-align:right;margin:0;font-size:12px}.workspace-prompt p{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.dialog-actions.is-three{grid-template-columns:1fr 1fr 1fr}@media (max-width:520px){.dialog-actions.is-three{grid-template-columns:1fr}}.workspace-prompt .dialog-actions{flex-wrap:wrap;justify-content:flex-end;display:flex}.workspace-prompt .dialog-actions button{padding:0 15px}@media (max-width:520px){.workspace-prompt .dialog-actions{grid-template-columns:1fr;display:grid}}.viewport-opening-cover{z-index:5;background:var(--background);pointer-events:none;position:absolute;inset:0}.start-view-action{border-top:1px solid var(--line);gap:4px;margin-top:2px;padding-top:8px;display:grid}.start-view-action small{color:var(--muted);font-size:10px;line-height:1.4}.measurement-export-action{border-top:1px solid var(--line);gap:4px;margin-top:2px;padding-top:8px;display:grid}.measurement-export-action small{color:var(--muted);letter-spacing:.06em;font-size:10px}.measurement-export-action>div{grid-template-columns:1fr 1fr;gap:6px;display:grid}.profile-section-window{z-index:70;left:var(--left-panel-width);right:var(--right-panel-width);background:#100a07;border-top:1px solid #e97132d1;grid-template-rows:46px minmax(0,1fr) 27px;min-width:0;height:clamp(260px,43%,440px);transition:left .26s cubic-bezier(.22,1,.36,1),right .26s cubic-bezier(.22,1,.36,1);display:grid;position:absolute;bottom:0;box-shadow:0 -16px 42px #0000007a}.profile-section-titlebar{border-bottom:1px solid var(--line);background:linear-gradient(90deg,#e9713221,#ffffff04);grid-template-columns:minmax(160px,1fr) auto auto;align-items:center;gap:18px;min-width:0;padding:0 10px 0 14px;display:grid}.profile-section-titlebar>div:first-child{align-items:baseline;gap:9px;min-width:0;display:flex}.profile-section-titlebar>div:first-child span{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.11em}.profile-section-titlebar>div:first-child strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.profile-section-summary{color:var(--subtle);font:700 9px/1 var(--font-family);letter-spacing:.07em;gap:14px;display:flex}.profile-section-summary strong{color:#e8d4c7;margin-left:4px;font-size:11px}.profile-thickness{align-items:center;gap:6px;display:flex}.profile-thickness input{border:1px solid var(--line);color:#e8d4c7;text-align:right;width:64px;height:24px;font:700 11px/1 var(--font-family);letter-spacing:.02em;background:#00000038;border-radius:2px;outline:0;padding:0 6px}.profile-thickness input:hover:not(:disabled){border-color:#e971328c}.profile-thickness input:focus{border-color:var(--accent);background:#e9713214}.profile-thickness input:disabled{cursor:not-allowed;opacity:.55}.profile-thickness em{color:var(--subtle);font-size:10px;font-style:normal}.profile-section-actions{gap:5px;display:flex}.profile-section-actions button{border:1px solid var(--line);min-width:48px;height:27px;color:var(--text);cursor:pointer;font:700 10px/1 var(--font-family);background:#ffffff09}.profile-section-actions button:hover{border-color:var(--accent);background:#e971321f}.profile-section-actions button.is-active{border-color:var(--accent);background:var(--accent);color:#120a06}.profile-section-actions button.is-active:hover{background:#f08a4b}.profile-section-window[data-drawing=true] .profile-section-stage canvas{cursor:crosshair}.profile-section-actions .profile-close{min-width:28px;color:var(--accent);font-size:17px}.profile-section-stage{min-width:0;min-height:0;position:relative;overflow:hidden}.profile-section-stage canvas{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.profile-section-stage canvas:active{cursor:grabbing}.profile-section-loading{color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.08em;pointer-events:none;background:#100a07db;border:1px solid #e9713273;padding:6px 8px;position:absolute;top:10px;right:16px}.profile-hover-marker{pointer-events:none;z-index:2;background:#e9713247;border:1.5px solid #e97132;border-radius:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;position:absolute;box-shadow:0 0 0 1px #100a07a6}.profile-hover-label{color:#fff;font:700 10px/1.35 var(--font-family);letter-spacing:.05em;white-space:nowrap;pointer-events:none;z-index:3;background:#1f130d;border:1px solid #e971328c;flex-direction:column;gap:2px;margin:-14px 0 0 12px;padding:5px 8px;display:flex;position:absolute;box-shadow:0 4px 14px #0006}.profile-hover-label strong{color:#e97132;margin-left:5px}.profile-hover-label[data-touch=true]{margin:0;transform:translate(-50%,calc(-100% - 16px))}.profile-section-footer{border-top:1px solid var(--line);color:#ad8b78;min-width:0;font:600 9px/1 var(--font-family);letter-spacing:.04em;text-align:center;justify-content:center;align-items:center;padding:0 14px;display:flex}.profile-preview-label{color:#fff3ea;font:700 11px/1 var(--font-family);pointer-events:none;background:#100a07e6;border:1px solid #e97132bf;border-radius:2px;padding:3px 5px}@media (max-width:900px){.profile-section-window{height:min(48%,360px);left:0;right:0}.profile-section-titlebar{grid-template-columns:minmax(0,1fr) auto;gap:8px}.profile-section-summary{display:none}}.overview-map-toggle,.overview-map{z-index:6;border:1px solid var(--line);color:var(--muted);background:#1f130df0;border-radius:4px;position:absolute;top:12px;left:12px;box-shadow:0 8px 24px #00000057}.overview-map-toggle{cursor:pointer;place-items:center;width:32px;height:32px;padding:0;display:grid}.overview-map-toggle:hover{color:var(--text);background:#e9713221}.overview-map-toggle svg{width:var(--icon-size);height:var(--icon-size)}.overview-map{width:208px}.overview-map-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:25px;padding:0 3px 0 9px;display:flex}.overview-map-head strong{color:var(--text);font:700 var(--font-mono-xs)/1 var(--font-family);letter-spacing:.08em}.overview-map-close{width:21px;height:21px;color:var(--subtle);cursor:pointer;font:400 15px/1 var(--font-family);background:0 0;border:0;border-radius:3px}.overview-map-close:hover{color:var(--accent);background:#e971321f}.overview-map-canvas{border:1px solid var(--line);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#1f130d;margin:9px;position:relative;overflow:hidden}.overview-map-canvas.is-dragging{cursor:grabbing}.overview-map-canvas canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.overview-map-north{color:var(--text);font:700 9px/1 var(--font-family);letter-spacing:.1em;text-shadow:0 0 3px #000000e6;font-style:normal;position:absolute;top:3px;right:5px}.overview-map-scale{color:#fff;font:700 9px/1 var(--font-family);letter-spacing:.04em;text-align:center;text-shadow:0 0 3px #000000f2;border-bottom:2px solid #ffffffd9;padding-bottom:2px;position:absolute;bottom:5px;left:6px}.overview-map-fault{border:1px solid var(--line-strong);color:var(--accent);font:700 9px/1.3 var(--font-family);letter-spacing:.06em;text-align:center;background:#120a06db;padding:4px;position:absolute;top:50%;left:6px;right:6px;transform:translateY(-50%)}.overview-map-controls{justify-content:space-between;align-items:center;gap:6px;padding:0 9px 8px;display:flex}.overview-map-source{grid-template-columns:1fr 1fr;display:grid}.overview-map-zoom{display:flex}.overview-map-source button,.overview-map-zoom button{border:1px solid var(--line);height:20px;color:var(--subtle);cursor:pointer;font:700 9px/1 var(--font-family);letter-spacing:.06em;background:0 0;place-items:center;padding:0 8px;display:grid}.overview-map-zoom button{width:22px;padding:0;font-size:12px}.overview-map-fit svg{width:11px;height:11px}.overview-map-source button:first-child,.overview-map-zoom button:first-child{border-radius:3px 0 0 3px}.overview-map-source button:last-child,.overview-map-zoom button:last-child{border-radius:0 3px 3px 0}.overview-map-source button+button,.overview-map-zoom button+button{margin-left:-1px}.overview-map-source button,.overview-map-zoom button{position:relative}.overview-map-source button:hover,.overview-map-zoom button:hover{z-index:1;color:var(--text);background:#e971321a}.overview-map-source button.is-active{z-index:2;border-color:var(--accent);color:#fff;background:#e971322e}.overview-map-credit{border-top:1px solid var(--line);color:var(--subtle);font:600 9px/1.35 var(--font-family);letter-spacing:.02em;flex-direction:column;gap:1px;margin:0;padding:6px 9px;display:flex}.overview-map-credit em{color:var(--muted);font-style:normal}.overview-map-credit a{color:var(--muted);border-bottom:1px dotted var(--line-strong);text-decoration:none}.overview-map-credit a:hover{color:var(--accent);border-bottom-color:var(--accent)}.overview-map-empty{color:var(--subtle);font:500 10px/1.5 var(--font-family);margin:0;padding:10px 10px 12px}@media (max-width:900px){.overview-map-toggle,.overview-map{top:68px;left:8px}}.viewport{--walk-bottom:48px}@media (max-width:900px){.viewport{--walk-bottom:12px}}.viewport.has-panorama .measurement-refining,.viewport.has-panorama .draw-actions{bottom:calc(var(--walk-bottom,48px) + var(--tool-button-height) + 12px)}.panorama-enter,.panorama-bar{bottom:var(--walk-bottom,48px);z-index:8;border:1px solid var(--line);width:max-content;max-width:calc(100% - 28px);color:var(--muted);background:#1f130df0;border-radius:4px;align-items:stretch;margin-inline:auto;display:flex;position:absolute;left:0;right:0;box-shadow:0 8px 24px #00000057}.panorama-enter{height:calc(var(--tool-button-height) + 2px);white-space:nowrap;cursor:pointer;font:700 var(--font-mono-xs)/1 var(--font-family);letter-spacing:.04em;justify-content:center;align-items:center;gap:7px;padding:0 16px}.panorama-enter:hover{color:var(--text);background:#e9713221}.panorama-enter svg{width:var(--icon-size);height:var(--icon-size)}.panorama-bar{height:calc(var(--tool-button-height) + 2px);grid-template-columns:1fr auto 1fr;align-items:stretch;display:grid}.panorama-where,.panorama-fade,.panorama-channel{border-right:1px solid var(--line);white-space:nowrap;justify-content:center;align-items:center;gap:0;height:100%;padding:0 8px;display:flex}.panorama-channel button{border:1px solid var(--line);height:22px;color:var(--subtle);cursor:pointer;font:700 var(--font-mono-xs)/1 var(--font-family);letter-spacing:.04em;background:0 0;padding:0 9px}.panorama-channel button:first-child{border-radius:3px 0 0 3px}.panorama-channel button:last-child{border-radius:0 3px 3px 0}.panorama-channel button+button{border-left:0}.panorama-channel button:hover{color:var(--text);background:#e971321a}.panorama-channel button.is-active{border-color:var(--accent);color:#fff;background:#e971322e}.panorama-side{justify-content:center;align-items:stretch;min-width:0;height:100%;display:flex}.panorama-exit{border-right:1px solid var(--line);white-space:nowrap;flex:none;justify-content:center;align-items:center;height:100%;padding:0 14px;display:flex}.panorama-where{min-width:var(--tool-button-width);gap:8px;line-height:1}.panorama-where svg{width:var(--icon-size);height:var(--icon-size);flex:none}.panorama-where strong{text-overflow:ellipsis;white-space:nowrap;max-width:130px;color:var(--text);font:700 var(--font-mono-xs)/1 var(--font-family);letter-spacing:.04em;overflow:hidden}.panorama-where em:before{content:"· "}.panorama-where em{color:var(--subtle);font:700 var(--font-mono-xs)/1 var(--font-family);letter-spacing:.04em;font-style:normal}.panorama-loading{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1.1s ease-in-out infinite panorama-pulse}@keyframes panorama-pulse{0%,to{opacity:.25}50%{opacity:1}}.panorama-fade{gap:10px}.panorama-fade span{color:var(--subtle);font:700 var(--font-mono-xs)/1 var(--font-family);letter-spacing:.04em}.panorama-fade .geo-range{width:120px}.panorama-exit{min-width:var(--tool-button-width);color:var(--muted);font:700 var(--font-mono-xs)/1 var(--font-family);letter-spacing:.04em;cursor:pointer;background:0 0;border:0}.panorama-exit:hover{color:var(--text);background:#e9713221}@media (max-width:720px){.panorama-bar{grid-template-columns:auto 1fr auto;width:auto;max-width:none;margin:0;left:12px;right:12px}.panorama-channel{padding:0 8px}.panorama-channel button{padding:0 7px}.panorama-where,.panorama-exit{min-width:0;padding:0 12px}.panorama-where strong{max-width:none}.panorama-fade{flex:auto;gap:8px;min-width:0;padding:0 12px}.panorama-fade .geo-range{flex:auto;width:auto;min-width:56px}}@media (max-width:430px){.panorama-fade span{display:none}}@media (max-width:600px){.panorama-channel{display:none}}.viewport{container:viewport/inline-size}@container viewport (max-width:780px){.panorama-bar{grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;width:auto;max-width:none;margin:0;left:12px;right:12px}.panorama-channel{padding:0 8px}.panorama-channel button{padding:0 7px}.panorama-where,.panorama-exit{min-width:0;padding:0 12px}.panorama-where{overflow:hidden}.panorama-where strong{min-width:0;max-width:clamp(56px,24cqw,220px)}.panorama-fade{flex:auto;gap:8px;min-width:0;padding:0 12px}.panorama-fade .geo-range{flex:auto;width:auto;min-width:56px}}@container viewport (max-width:600px){.panorama-channel{display:none}}@container viewport (max-width:430px){.panorama-fade span{display:none}}.station-tree-entry{border-left:1px solid var(--line);align-items:center;gap:2px;margin-left:22px;display:flex}.station-tree-entry.is-selected{border-left-color:var(--accent);background:#e971321f}.station-tree-select{min-width:0;height:24px;color:var(--muted);font:500 var(--font-mono-sm)/1 var(--font-family);text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;align-items:center;gap:8px;padding:0 8px;display:flex}.station-tree-select svg{opacity:.7;flex:none;width:12px;height:12px}.station-tree-select strong{color:var(--text);font-weight:600}.station-tree-entry:hover .station-tree-select{color:var(--text)}.station-tree-walk{width:24px;height:24px;color:var(--subtle);cursor:pointer;background:0 0;border:0;flex:none;padding:0}.station-tree-walk:hover{color:var(--accent)}.station-steps{flex-wrap:wrap;gap:6px;display:flex}.station-steps .station-step{border:1px solid var(--line);min-width:34px;color:var(--text-dim);font:500 var(--font-mono-sm)/1 var(--font-family);text-align:center;cursor:pointer;background:0 0;border-radius:3px;padding:5px 9px}.station-steps .station-step:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.station-steps .station-step:disabled{opacity:.5;cursor:default}.scope-note,.settings-notice,.ramp-message,.danger-zone span,.project-state-actions>span,.cad-source-layers p,.dxf-import-dialog>p,.dxf-import-dialog fieldset small,.workspace-prompt p,.start-view-action small,.share-intro,.share-note{text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto;text-wrap:pretty}.advanced-settings{border-top:1px solid var(--line);margin-top:2px}.advanced-settings>summary{letter-spacing:0;min-height:0;color:var(--muted);cursor:pointer;font:600 var(--font-body)/1.2 var(--font-family);justify-content:space-between;align-items:center;padding:9px 0 3px;list-style:none;display:flex}.advanced-settings>summary::-webkit-details-marker{display:none}.advanced-settings>summary svg{width:13px;height:13px;color:var(--subtle);transition:transform .15s}.advanced-settings[open]>summary svg{transform:rotate(90deg)}.advanced-settings:not([open])>summary svg{transform:none}.advanced-settings>summary:hover{color:var(--text)}.advanced-settings-content{gap:10px;padding-top:8px;display:grid}.property-subheading{border-top:1px solid var(--line);color:var(--accent);font:700 10px/1 var(--font-family);letter-spacing:.1em;text-transform:uppercase;margin-top:6px;padding-top:10px}.object-actions>button:only-child,.action-grid>button:only-child{grid-column:1/-1}.clipping-properties{display:contents}.clipping-properties .property-line,.clipping-properties .numeric-control,.clipping-properties .text-control,.clipping-properties .select-control>span,.clipping-properties .range-control>span,.clipping-properties .numeric-control input,.clipping-properties .text-control input,.clipping-properties .select-control select,.clipping-properties .selected-entity strong{font-size:var(--font-body)}.clipping-properties .selected-entity span,.clipping-properties .numeric-control em,.clipping-properties .action-grid button,.clipping-properties .section-step-actions button,.clipping-properties .object-actions button,.clipping-properties .profile-open-button,.clipping-properties .danger-zone button{font-size:var(--font-mono-sm)}.clipping-properties .select-control select,.clipping-properties .numeric-control input,.clipping-properties .text-control input{height:31px}.section-dependent{flex-direction:column;gap:11px;transition:opacity .15s;display:flex}.section-dependent.is-disabled{opacity:.38}.section-dependent.is-disabled .profile-open-button{cursor:not-allowed}.section-dependent.is-disabled button:disabled{opacity:1}.danger-zone button:disabled{cursor:not-allowed;opacity:.4}.dynamic-input{z-index:30;color:#fff3ea;font:600 11px/1.2 var(--font-family);white-space:nowrap;pointer-events:none;background:#100a07e0;border:1px solid #e971328c;border-radius:2px;gap:3px;padding:5px 7px;display:grid;position:absolute;box-shadow:0 4px 14px #00000059}.dynamic-input[hidden]{display:none}.dynamic-input strong{font-weight:700}.dynamic-input span{color:#ffffff80;font-size:10px}.dynamic-input span.is-typed{color:#ffb07a;font-size:12px;font-weight:700}.rotation-gauge-label{color:#ffffff9e;font:600 10px/1 var(--font-family);text-shadow:0 0 3px #000,0 0 2px #000;pointer-events:none;transition:color .1s}.rotation-gauge-label.is-snapped{color:#fff;font-weight:800}.rotation-gauge-value{color:#fff3ea;font:700 12px/1.2 var(--font-family);text-shadow:0 0 2px #000;pointer-events:none;white-space:nowrap;background:#100a07c7;border-radius:2px;padding:2px 6px}.rotation-gauge-value.is-snapped{color:#fff;background:#e97132d9}
