.viewport-camera-info .viewport-help-button{display:inline-grid;place-items:center;flex-shrink:0;width:26px;height:26px;padding:0;border:1px solid #c78639;border-radius:50%;background:#f5a448;color:#19222b;font:700 16px system-ui;cursor:pointer;box-shadow:0 0 0 3px #ee9c3020}.viewport-camera-info .viewport-help-button:hover{background:#ffc777;transform:translateY(-1px)}.viewport-camera-info .viewport-help-button:focus-visible{outline:3px solid #69bfff;outline-offset:4px}.viewport-help-pulse{animation:viewport-help-pulse 2.8s ease-in-out infinite}@keyframes viewport-help-pulse{0%,to{box-shadow:0 0 0 2px #ee9c3025}50%{box-shadow:0 0 0 7px #ee9c3008,0 0 15px #ee9c3040}}.viewport-help-dialog{padding:0;border:1px solid #40515d;border-radius:18px;width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 40px);background:#172129;color:#e7edf0;box-shadow:0 24px 90px #0008;overflow:auto;font:14px/1.5 system-ui}.viewport-help-dialog::backdrop{background:#080e16b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.viewport-help-content{padding:26px}.viewport-help-content header{display:flex;gap:20px;align-items:flex-start}.viewport-help-eyebrow{font-size:10px;font-weight:700;letter-spacing:.15em;color:#f7b65f}.viewport-help-content h2{font-size:26px;line-height:1.2;margin:8px 0 10px;color:#fff}.viewport-help-content p{margin:8px 0;color:#afbec8}.viewport-help-close{margin-left:auto;background:#25333d;color:#dbe5ed;border:1px solid #40515d;border-radius:9px;font-size:24px;width:34px;height:34px;cursor:pointer;flex-shrink:0}.viewport-help-tip{padding:13px 16px;margin:18px 0;background:#f5a44810;border:1px solid #f5a44840;border-radius:10px;color:#eacda8}.viewport-help-tip b{color:#ffc777}.viewport-help-content dl{margin:0}.viewport-help-content dl>div{display:grid;grid-template-columns:1fr 1.25fr;gap:18px;padding:10px 0;border-bottom:1px solid #ffffff0d}.viewport-help-content dt{font-weight:600;color:#e9f0f5}.viewport-help-content dd{margin:0;color:#b5c4ce}.viewport-help-content .viewport-help-note{font-size:12px;margin-top:16px}.viewport-help-content footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;font-size:12px;color:#9eafbb}.viewport-help-content footer button{background:#f5a448;color:#19222b;border:0;border-radius:8px;padding:9px 19px;font-weight:700;cursor:pointer;white-space:nowrap}@media(max-width:520px){.viewport-help-content{padding:18px}.viewport-help-content dl>div{grid-template-columns:1fr;gap:3px}.viewport-help-content h2{font-size:23px}}@media(prefers-reduced-motion:reduce){.viewport-help-pulse{animation:none}}.viewport-camera-info{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font:12px system-ui;color:#dbe4ec}.viewport-info-chip,.viewport-speed-menu>summary{display:flex;align-items:center;gap:6px;border:1px solid #46515c;background:#283039;border-radius:7px;padding:5px 8px;white-space:nowrap;min-height:28px;box-sizing:border-box}.viewport-info-chip select{background:transparent!important;color:inherit!important;border:0!important;font:inherit;padding:0!important;cursor:pointer;max-width:135px}.viewport-info-chip select option{background:#283039;color:#e8eef3}.viewport-speed-menu{position:relative}.viewport-speed-menu>summary{cursor:pointer;list-style:none}.viewport-speed-menu>summary::-webkit-details-marker{display:none}.viewport-speed-panel{position:absolute;right:0;top:calc(100% + 8px);width:245px;max-width:80vw;z-index:100;background:#19232c;border:1px solid #475966;border-radius:12px;padding:16px;box-shadow:0 12px 35px #0006;color:#dce7ef}.viewport-speed-panel p,.viewport-speed-panel small{color:#aebdc8;font-size:12px;line-height:1.4;display:block}.viewport-speed-panel label{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:12px 0;font-size:12px}.viewport-speed-panel input[type=number]{width:78px;background:#253440;color:#fff;border:1px solid #50606f;border-radius:5px;padding:5px}.viewport-speed-panel input[type=range]{width:100%;accent-color:#f5a448}.viewport-speed-panel>div{display:flex;gap:6px;margin:8px 0}.viewport-camera-info .viewport-speed-panel button{background:#304150;border:1px solid #536675;color:#e7f0f6;border-radius:5px;padding:4px 12px;cursor:pointer}.viewport-grid-controls{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.viewport-grid-controls button,.viewport-grid-controls select{background:#26313a;color:#e1e8e4;border:1px solid #46515b;border-radius:5px;padding:5px 7px;font:inherit;font-size:11px}.viewport-grid-controls button[aria-pressed=true]{background:#a8601f;color:#fff;border-color:#e69a4f}.viewport-camera-info,.room-scene-actions{flex-wrap:wrap}.placement-tools{display:flex;gap:4px;flex-wrap:wrap}.placement-tools button[aria-pressed=true]{background:#e48b30;color:#171d21}.placement-coordinates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.placement-coordinates input{width:100%;box-sizing:border-box}.room-model-panel{max-height:calc(100% - 80px);overflow:auto}.placement-coordinates label{display:flex;flex-direction:column;min-width:0}.room-model-panel .placement-coordinates input{min-width:0;max-width:100%;padding:4px}.room-model-panel{width:280px;box-sizing:border-box}.room-scene-bar .viewport-grid-controls button,.room-scene-bar .viewport-grid-controls select{background:#26313a;color:#e1e8e4}.room-scene-bar .viewport-grid-controls button[aria-pressed=true]{background:#a8601f;color:#fff}:root{--bg:#0f1216;--panel:#171c22;--panel2:#1e252d;--line:#2b333c;--ink:#e7edf3;--muted:#93a1b0;--accent:#e08a3c;--accent2:#5aa9e6;--ok:#4caf7d;--bad:#e0603c;--warn:#d9a441;--field:#0c0f13;--panel-lg:#2a323d;--panel-lg2:#333c48;--line-lg:#414c59;--field-lg:#1c2129;--muted-lg:#a6b3c2;--board:#f6f3ee}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{display:flex;flex-direction:column;height:100dvh}.top{display:flex;align-items:center;gap:10px;padding:5px 12px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;flex-shrink:0}.tabstrip{display:flex;align-items:flex-end;gap:2px;padding:4px 8px 0;background:var(--panel2);border-bottom:1px solid var(--line);flex-shrink:0;overflow-x:auto}.jobtab{display:flex;align-items:center;gap:4px;padding:4px 6px 4px 12px;background:var(--panel);border:1px solid var(--line);border-bottom:none;border-radius:8px 8px 0 0;color:var(--muted);font-size:12.5px;cursor:pointer;white-space:nowrap;max-width:220px}.jobtab.on{background:var(--bg);color:var(--ink);border-color:var(--accent);border-bottom:1px solid var(--bg);margin-bottom:-1px}.jobtab:hover{color:var(--ink)}.jobtabname{overflow:hidden;text-overflow:ellipsis}.jobtabx{background:transparent;border:0;color:inherit;font:inherit;font-size:14px;line-height:1;padding:0 4px;cursor:pointer;border-radius:4px;opacity:.6}.jobtabx:hover{opacity:1;background:#0004}.jobtabadd{background:transparent;border:1px dashed var(--line);border-bottom:none;border-radius:8px 8px 0 0;color:var(--muted);font:inherit;padding:4px 10px;cursor:pointer}.jobtabadd:hover{color:var(--ink);border-color:var(--accent2)}.cmdline{position:fixed;top:96px;left:50%;transform:translate(-50%);z-index:96;width:340px;max-width:92vw;background:var(--panel);border:1px solid var(--accent);border-radius:10px;box-shadow:0 18px 50px #000a;overflow:hidden}.cmdinput{width:100%;box-sizing:border-box;background:var(--field);border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;font-size:14px;padding:9px 12px;outline:none}.cmdlist{max-height:280px;overflow-y:auto}.cmdrow{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:13px;color:var(--ink);cursor:pointer}.cmdrow.on{background:var(--panel2);box-shadow:inset 3px 0 0 var(--accent)}.cmdrow.muted{color:var(--muted);cursor:default}.cmdname{flex:1}.cmdalias{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:0 6px;font-size:11px;color:var(--accent2)}.cmdhint{font-size:11px;color:var(--muted)}.top .roomtag{margin-left:auto}.tab.hamb{font-size:14px;padding:5px 14px;display:inline-flex;gap:7px;align-items:center}.top .filebtns{position:fixed;right:8px;left:auto;margin:0;top:52px;flex-direction:column;align-items:stretch;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px;box-shadow:0 12px 30px #0006;z-index:60;min-width:230px;max-width:calc(100vw - 16px);max-height:calc(100vh - 62px);overflow-y:auto}.top .filebtns button{justify-content:flex-start;text-align:left}.brand{font-size:19px;font-weight:800}.brand b{color:var(--accent)}.modes{display:inline-flex;background:var(--field);border:1px solid var(--line);border-radius:9px;overflow:hidden}.modes button{background:none;border:0;color:var(--muted);padding:7px 16px;cursor:pointer;font:inherit}.modes button.on{background:var(--accent);color:#111;font-weight:700}.rooms{display:flex;gap:6px;align-items:center;margin-left:auto;flex-wrap:wrap}.tab{background:var(--field);border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:6px 12px;cursor:pointer;font:inherit}.tab.on{border-color:var(--accent2);color:#fff}.tab.add{color:var(--accent2);border-style:dashed}.filebtns{display:inline-flex;gap:6px;margin-left:4px}.filebtns .ghost{padding:6px 10px;font-size:12.5px}.toggle{display:inline-flex;align-items:center;gap:7px;background:var(--field);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:12.5px;color:var(--ink);margin-left:8px}.toggle input{accent-color:var(--accent2)}.build{flex:1;display:grid;grid-template-columns:1fr 320px;grid-template-rows:minmax(0,1fr);min-height:0}.canvas-col{display:flex;flex-direction:column;min-width:0;background:#e9edf1}.walls{display:flex;gap:6px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line);align-items:center;position:sticky;top:0;z-index:20;flex-shrink:0}.viewtog{display:inline-flex;background:var(--field);border:1px solid var(--line);border-radius:10px;overflow:hidden;flex-shrink:0;position:fixed;left:50%;bottom:44px;transform:translate(-50%);z-index:44;box-shadow:0 6px 20px #0008}.viewtog button{padding:8px 16px;font-size:13px}.walls .barmenus{position:sticky;right:0;z-index:3;background:var(--panel);box-shadow:-4px 0 10px -4px #0008;padding-left:4px}.viewtog button{background:none;border:0;color:var(--muted);padding:6px 12px;cursor:pointer;font:inherit}.viewtog button.on{background:var(--accent2);color:#fff;font-weight:600}.canvas.plan{padding:0;background:var(--board);overflow:visible}.zoomvp{overflow:hidden}.zoominner .canvas svg{background:transparent;box-shadow:none;border-radius:0}.canvas.plan svg,.zoominner .canvas.plan svg{max-width:none;max-height:none;width:100%;height:100%;box-shadow:none;border-radius:0}.canvas{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;padding:24px;min-height:0}.canvas svg{width:100%;max-width:1100px;height:auto;background:#fff;box-shadow:0 4px 24px #0002;border-radius:2px}.canvas [data-cab]:hover rect{filter:brightness(.97)}.issuebar{background:var(--panel);border-top:1px solid var(--line);padding:8px 12px;display:flex;gap:12px;align-items:flex-start}.ihead{white-space:nowrap;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px}.ihead .ok{color:var(--ok)}.ihead .warn{color:var(--warn)}.ihead .bad{color:var(--bad)}.ilist{display:flex;flex-wrap:wrap;gap:6px}.ipill{font-size:11.5px;padding:3px 8px;border-radius:6px;background:var(--field);border-left:3px solid var(--line)}.ipill.error{border-left-color:var(--bad)}.ipill.warning{border-left-color:var(--warn)}.ipill.info{border-left-color:var(--accent2)}.props{background:var(--panel-lg);border-left:1px solid var(--line);overflow-y:auto;overflow-x:hidden;padding:10px;scrollbar-width:thin;scrollbar-color:var(--line-lg) transparent;scrollbar-gutter:stable}.props::-webkit-scrollbar{width:8px}.props::-webkit-scrollbar-track{background:transparent}.props::-webkit-scrollbar-thumb{background:var(--line-lg);border-radius:4px}.props::-webkit-scrollbar-thumb:hover{background:var(--muted-lg)}.pgroup{border:1px solid var(--line-lg);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:var(--panel-lg2)}.pgroup h3{margin:0 0 6px;font-size:13px;color:#f2f6fa}.pgroup h3 .muted{font-weight:400;font-size:11px}.muted{color:var(--muted-lg)}.subhead{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);border-bottom:1px solid var(--line-lg);padding-bottom:2px;margin:8px 0 5px}.subgroup{margin-top:6px}.subgroup summary{list-style:none;-webkit-user-select:none;user-select:none}.subgroup summary::-webkit-details-marker{display:none}.subgroup summary:before{content:"▸ ";color:var(--accent2);font-size:9px}.subgroup[open] summary:before{content:"▾ "}.frow{display:block}.fld{display:grid;grid-template-columns:var(--lblw,92px) 1fr;align-items:center;gap:7px;margin-bottom:3px;min-height:26px;min-width:0}.fld span{font-size:11.5px;color:var(--muted-lg);text-align:right;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fld input,.fld select{width:100%;min-width:0;background:var(--field-lg);border:1px solid var(--line-lg);color:var(--ink);border-radius:5px;padding:4px 7px;font:inherit;font-size:12.5px;outline:none}.fld input:focus,.fld select:focus{border-color:var(--accent2);background:var(--field)}.fld input[type=checkbox]{width:15px;height:15px;padding:0;margin:0;justify-self:start;accent-color:var(--accent2)}.stepper{min-width:0;display:inline-flex;align-items:center;gap:4px;background:var(--field-lg);border:1px solid var(--line-lg);border-radius:5px;padding:2px}.stepper button{background:var(--panel-lg2);border:1px solid var(--line-lg);color:var(--ink);border-radius:4px;width:22px;height:22px;font:600 15px/1 system-ui;cursor:pointer;padding:0}.stepper button:hover:not(:disabled){border-color:var(--accent2);color:var(--accent2)}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper-val{flex:1;text-align:center;font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--ink)}.stepper-max{font-size:10.5px;padding-right:4px}.color-input{min-width:0;display:inline-flex;align-items:center;gap:5px;background:var(--field-lg);border:1px solid var(--line-lg);border-radius:5px;padding:2px}.color-input input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;width:26px;height:22px;border-radius:4px;background:transparent;cursor:pointer}.color-input input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-input input[type=color]::-webkit-color-swatch{border:1px solid var(--line);border-radius:4px}.color-input input[type=text]{flex:1;background:transparent;border:0;color:var(--ink);font:inherit;font-size:12px;padding:0 4px;font-family:ui-monospace,Consolas,monospace}.color-input input[type=text]:focus{outline:none}button.ghost{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:8px 12px;cursor:pointer;font:inherit}button.ghost:hover{border-color:var(--accent2)}button.wide{width:100%;margin-top:4px}button.viewbtn{background:#f4f1eaee;border:1px solid #b8b2a4;color:#2b2f35;border-radius:7px;padding:2px 9px;font:inherit;font-size:12px;cursor:pointer;box-shadow:0 1px 3px #0003}button.viewbtn:hover{background:#fff;border-color:#8a94a3}button.viewbtn:active{background:#e3ded2;transform:translateY(1px)}.viewhint{color:#5c646e;background:#f4f1eacc;border-radius:6px;padding:1px 8px}button.danger{width:100%;background:transparent;border:1px solid #4a2a2a;color:var(--bad);border-radius:8px;padding:8px;cursor:pointer;margin-top:6px}.mini{font-size:11px}.sheets{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:20px;align-items:center;background:#e9edf1}.sheets-bar{align-self:stretch;display:flex;gap:10px;align-items:center;position:sticky;top:0;z-index:20;background:#e9edf1;padding:6px 0;margin:-6px 0}.sheet-card{background:#fff;box-shadow:0 6px 30px #00000026}.sheet-svg{width:min(1000px,92vw)}.sheet-svg svg{width:100%;height:auto;display:block}@media print{@page{size:letter landscape;margin:0}.top,.sheets-bar{display:none}.sheets{padding:0;gap:0;background:#fff}.sheet-card{box-shadow:none;page-break-after:always}.sheet-svg{width:11in}}@keyframes cfPulse{0%,to{border-color:var(--warn);box-shadow:0 0 #d9a44100}50%{border-color:var(--warn);box-shadow:0 0 10px 2px #d9a44159}}button.pulse{animation:cfPulse 2.2s ease-in-out infinite;color:var(--warn);border-color:var(--warn)}.fixpanel{border:1px solid var(--warn);border-radius:8px;padding:8px;margin-top:6px;background:#3a331f22}.fixpanel .ghost{margin-top:4px;text-align:left;font-size:12.5px}.zoomwrap{flex:1;display:flex;flex-direction:column;min-height:0}.zoombar{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.zoombar .zbtn{padding:3px 10px;font-size:13px;border-radius:6px}.zval{font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted);min-width:44px;text-align:center}.zoomvp{flex:1;overflow:hidden;position:relative;touch-action:none;cursor:grab;background:var(--board);min-height:0;user-select:none;-webkit-user-select:none}.zoomvp:active{cursor:grabbing}.zoominner{transform-origin:0 0;height:100%}.zoominner .canvas svg *{vector-effect:non-scaling-stroke}@media(pointer:coarse),(max-width:700px){.zoominner .canvas svg *{vector-effect:none}}.modalback{position:fixed;top:0;right:0;bottom:0;left:0;background:#0007;z-index:75;display:flex;align-items:center;justify-content:center}.modalback .droppanel{position:static;margin:0;width:min(380px,92vw);max-height:82vh;overflow-y:auto;border-radius:14px;box-shadow:0 24px 70px #000b}.zoominner .canvas{height:100%}.aiview{flex:1;overflow:auto;display:flex;justify-content:center;padding:24px;background:#e9edf1}.aicard{width:min(720px,94vw);background:var(--panel-lg2);border:1px solid var(--line-lg);border-radius:12px;padding:18px;height:fit-content;color:var(--ink)}.aicard h2{margin:0 0 6px;font-size:18px}.aidesc,.aijson{width:100%;background:var(--field-lg);border:1px solid var(--line-lg);color:var(--ink);border-radius:7px;padding:9px;font:inherit;font-size:13px;resize:vertical;margin-top:6px}.aijson{font-family:ui-monospace,Consolas,monospace;font-size:12px}button.primary{background:var(--accent);border:0;color:#111;font-weight:700;border-radius:8px;padding:10px 14px;cursor:pointer;font:inherit;margin-top:8px}button.primary:hover{filter:brightness(1.08)}.aicard code{background:var(--field);padding:1px 5px;border-radius:4px;font-size:11px}.barmenus{margin-left:auto;display:flex;gap:6px;align-items:center;position:relative;flex-wrap:wrap;justify-content:flex-end;row-gap:5px}.droppanel{position:absolute;right:0;top:calc(100% + 8px);z-index:45;width:320px;max-height:70vh;overflow-y:auto;background:var(--panel-lg2);border:1px solid var(--line-lg);border-radius:10px;padding:10px;box-shadow:0 10px 40px #000a;scrollbar-width:thin}.droppanel .pgroup{border:0;background:transparent;padding:0;margin:0}.roomtag{margin-left:auto;font-size:12px;font-weight:700;color:var(--accent);background:var(--field);border:1px solid var(--line);border-radius:6px;padding:3px 10px}.cloudwrap{position:relative}.cloudpanel{right:auto;left:0;width:300px}.cloudpanel h3{margin:0 0 4px;font-size:14px}.cloudfield{width:100%;margin-top:6px;background:var(--field);border:1px solid var(--line);color:var(--ink-d);border-radius:6px;padding:7px 9px;font:inherit;font-size:13px}.joblink{text-align:left;margin-top:4px;display:flex;justify-content:space-between;gap:8px}.joblink.on{border-color:var(--accent)}.ordivider{display:flex;align-items:center;gap:8px;margin:10px 0 2px;color:var(--muted);font-size:11px}.ordivider:before,.ordivider:after{content:"";flex:1;height:1px;background:var(--line-lg)}.gbtn{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}.zoominner .canvas svg{width:auto;height:auto;max-width:100%;max-height:100%}@media print{html,body,#root{overflow:visible;height:auto}.app{height:auto}}.planwrap{position:relative;width:100%;height:100%}.planwrap>div{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.planoverlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;background:none!important;box-shadow:none!important;overflow:visible}.canvas.plan.drawing{cursor:crosshair}.dimspanel{width:280px}.dimrow{display:block;padding:4px 2px;cursor:pointer;font-size:13px}.dimrow input{margin-right:7px}.dimrow .mini{display:block;margin-left:22px}.tab.hasdims{border-color:var(--accent)}button.aibusy{cursor:wait;border-color:var(--warn);color:var(--warn)}button:disabled{opacity:.55;cursor:not-allowed}.dots:after{content:"";animation:cfDots 1.2s steps(4,end) infinite}@keyframes cfDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.radialback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0003}.radial{position:absolute;width:0;height:0}.radialitem{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1px;width:64px;height:64px;border-radius:50%;border:1.5px solid var(--accent);background:var(--panel);color:var(--ink-d);font:600 10.5px/1.1 system-ui;cursor:pointer;justify-content:center;transition:transform .1s,background .1s}.radialitem:hover{transform:translate(-50%,-50%) scale(1.18);background:var(--field);z-index:2}.ricon{font-size:16px;color:var(--accent)}.radialhub{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:var(--accent);color:#111;display:flex;align-items:center;justify-content:center;font:700 10px system-ui}.ghost.del{float:right;padding:1px 7px;font-size:12px}.radialitem.sector{width:78px;height:78px;font-size:12px;border-width:2px;background:var(--panel2)}.radialitem.on{background:var(--accent2);color:#fff}.radialitem.on .ricon{color:#fff}.radialhub{border:0;cursor:pointer}.radialhub:hover{filter:brightness(1.15)}.build.nopanel{grid-template-columns:1fr}.fab{display:none}@media(max-width:760px),(pointer:coarse)and (max-width:1100px){.fab{display:flex;position:absolute;right:14px;bottom:64px;z-index:40;width:54px;height:54px;border-radius:50%;border:0;background:var(--accent);color:#111;font-size:22px;align-items:center;justify-content:center;box-shadow:0 4px 16px #0006;cursor:pointer}header{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:4px;padding:6px 8px}header::-webkit-scrollbar{display:none}header.top .rooms{flex-wrap:nowrap}.walls{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:6px 8px;gap:4px}.walls::-webkit-scrollbar{display:none}.walls .mini.muted,.top .roomtag{display:none}.tab,.viewtog button{padding:5px 9px;font-size:12px;white-space:nowrap}.filebtns button,.modes button,.rooms button{padding:5px 8px;font-size:12px;white-space:nowrap}.hamblbl{display:none}.emberwrap{width:100%!important;min-width:0!important;padding:0 8px}.build{grid-template-columns:1fr}aside.props{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:62vh;overflow-y:auto;z-index:55;border-radius:14px 14px 0 0;box-shadow:0 -8px 30px #0007}.qedit input,.qedit select{min-height:34px;font-size:14px}.radialitem{width:58px;height:58px;font-size:9.5px}.radialitem.sector{width:70px;height:70px;font-size:11px}.issuebar{padding:6px 8px}}.hwbar{display:flex;align-items:center;gap:10px;padding:6px 12px;background:#3a2f1d;border-bottom:1px solid var(--warn);color:#f0e6d2;font-size:13px;flex-shrink:0}.hwbar select{background:var(--field);color:var(--ink-d);border:1px solid var(--line);border-radius:5px;padding:3px 6px;font-size:12px}.hwbar .ghost{padding:3px 10px;font-size:12px}.workshop-nest{padding:24px;overflow:auto;height:100%;color:#203a32;background:#eeeee7}.workshop-head,.model-head{display:flex;justify-content:space-between;gap:18px;align-items:center}.workshop-head small,.model-head small{display:block;font-size:10px;letter-spacing:1.7px;color:#62766a}.workshop-head h2{font-size:28px;margin:6px 0}.workshop-head p{margin:0 0 12px;color:#66766c}.workshop-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.workshop-settings{display:grid;grid-template-columns:repeat(3,minmax(200px,1fr));gap:16px;margin:20px 0}.workshop-settings fieldset,.stock-panel{border:1px solid #cbd4ca;background:#fafaf5;padding:16px;border-radius:10px}.workshop-settings legend{font-weight:650;font-size:13px}.workshop-settings label{display:flex;align-items:center;gap:8px;margin:9px 0;font-size:13px}.workshop-settings small{display:block;color:#6f7a70;line-height:1.5}.workshop-nest input[type=number]{width:86px;padding:5px}.workshop-nest input,.workshop-nest select,.model-studio input,.model-studio select{background:#fffef9;color:#29453b;border:1px solid #bdcbbf;border-radius:5px;padding:6px}.workshop-nest table{border-collapse:collapse;width:100%;margin:12px 0;font-size:12px}.workshop-nest th,.workshop-nest td{padding:7px 10px;text-align:left;border-bottom:1px solid #dce0d6}.stock-panel p{font-size:12px;color:#67766b}.nest-summary{display:flex;gap:24px;padding:20px 0;font-size:14px}.nest-notice{padding:12px;border:1px solid #cda66a;background:#fff2d9;color:#77551f;font-size:13px}.workshop-sheet{padding:14px;margin:18px 0;background:#fff}.model-studio{display:flex;flex:1;min-height:520px;min-width:0;flex-direction:column;background:#f4f5ee;color:#244338;overflow:hidden}.model-head{padding:12px 16px;border-bottom:1px solid #cdd8ce}.model-head b{display:block;font-size:20px;margin-top:4px}.model-body{display:flex;flex:1;min-height:0}.model-tools{width:86px;padding:10px 6px;display:flex;flex-direction:column;gap:6px;border-right:1px solid #cdd8ce;flex-shrink:0}.model-tools button{display:flex;flex-direction:column;gap:3px;align-items:center;padding:8px 2px;border:1px solid transparent;background:transparent;color:#445e50;font-size:10px;border-radius:7px}.model-tools button span{font-size:24px;line-height:24px}.model-tools button small{font-size:9px;opacity:.5}.model-tools button.active,.model-solid-list button.active{color:#fff;background:#285d49}.model-viewport{position:relative;flex:1;min-width:0;min-height:460px}.model-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.model-canvas canvas{display:block;touch-action:none}.model-navigation{position:absolute;bottom:12px;left:12px;pointer-events:none;color:#4c6857;background:#ffffffcf;padding:7px 10px;border-radius:5px;font-size:11px}.view-cube{position:absolute;top:12px;right:12px;z-index:6;width:120px;text-align:center}.view-cube canvas{cursor:pointer}.view-cube button{background:#fffef6e8;border:1px solid #b9c7bc;color:#365b49;border-radius:4px;font-size:10px;padding:4px 6px;cursor:pointer}.cube-directions{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:6px}.model-inspector{width:235px;flex-shrink:0;padding:16px;border-left:1px solid #cdd8ce;overflow:auto}.model-inspector h3{font-size:12px;text-transform:uppercase;letter-spacing:1px;margin:12px 0}.model-inspector p,.model-save-note{font-size:12px;line-height:1.6;color:#697d6d}.model-inspector label{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:10px 0;gap:8px}.model-inspector input{width:115px}.model-inspector select{width:100%}.model-solid-list{max-height:180px;overflow:auto;display:flex;flex-direction:column;gap:4px}.model-solid-list button{background:#e6ebe1;color:#365341;border:0;border-radius:4px;padding:8px;text-align:left}.model-save-note{display:block;margin-top:22px}.model-status{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 16px;background:#dae4d7;font-size:12px}.model-status label{display:flex;align-items:center;gap:8px}.model-status input{width:175px}@media(max-width:1000px){.workshop-settings{grid-template-columns:1fr 1fr}.model-inspector{width:190px}.model-head{flex-wrap:wrap}}@media(max-width:700px){.workshop-settings{grid-template-columns:1fr}.model-inspector{display:none}.model-tools{width:64px}.workshop-head,.model-status{flex-wrap:wrap}}@media print{.workshop-head,.workshop-settings,.stock-panel,.nest-summary,.workshop-nest>p{display:none!important}.workshop-nest{height:auto;overflow:visible;padding:0}.workshop-sheet{break-before:page;box-shadow:none;border:0}.workshop-sheet table{font-size:9px}}.build.modeling>.canvas-col{min-height:0}.build.modeling .canvas-col>.walls,.build.modeling .canvas-col>.hwbar,.build.modeling .canvas-col>.issuebar,.build.modeling>.panel{display:none}.model-studio,.model-viewport{min-height:0}.model-tools{overflow-y:auto}.model-studio button.ghost,.workshop-nest button.ghost{color:#345747;border-color:#b8c7b9}.model-studio button:disabled{opacity:.35}@media(max-width:700px){.model-inspector{display:block;width:160px;padding:8px}.model-navigation{display:none}.model-head{padding-top:10px}.model-status input{width:130px}}.model-inspector .workshop-actions button{background:#e7ece2;color:#345747;border:1px solid #b8c7b9;padding:6px 9px;border-radius:5px;cursor:pointer}.model-scenes{display:flex;gap:2px;overflow-x:auto;flex-shrink:0;padding:5px 8px 0;background:#e0e7de;border-bottom:1px solid #b8c7b9}.model-scenes button{white-space:nowrap;background:#edf1e8;color:#345747;border:1px solid #b8c7b9;border-bottom:0;border-radius:5px 5px 0 0;padding:8px 12px;cursor:pointer;font-size:11px}.model-scenes button[aria-selected=true]{background:#285d49;color:#fff}.model-context{position:absolute;top:12px;left:12px;max-width:calc(100% - 160px);font-size:11px;color:#345747;background:#fffef6e8;padding:7px;border-radius:5px}.model-context button{display:block;margin-top:5px;color:#345747;background:#e7ece2;border:1px solid #b8c7b9;cursor:pointer}.model-menu{position:fixed;z-index:1000;min-width:190px;padding:5px;background:#fffef9;border:1px solid #a8b9ad;border-radius:7px;box-shadow:0 8px 28px #203a3240;display:flex;flex-direction:column}.model-menu button{text-align:left;padding:9px 12px;border:0;color:#244338;background:transparent;cursor:pointer}.model-menu button:hover:not(:disabled){background:#e0ebdf}.job-materials-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#101b22aa;display:grid;place-items:center;padding:20px}.job-materials{width:min(520px,100%);max-height:90vh;overflow:auto;background:#f4f5ee;color:#244338;border:1px solid #b8c7b9;padding:24px;border-radius:12px;box-shadow:0 12px 50px #0005}.job-materials header,.job-materials footer{display:flex;gap:10px;align-items:center;justify-content:space-between}.job-materials h2{margin:0}.job-materials p{font-size:13px;line-height:1.5}.job-materials label{display:grid;grid-template-columns:1fr 130px;gap:6px 16px;margin:18px 0;font-size:14px}.job-materials label small{grid-column:1 / -1;color:#697d6d}.job-materials input{background:#fffef9;color:#244338;border:1px solid #b8c7b9;border-radius:5px;padding:8px;width:100%}.job-materials button{color:#244338;border:1px solid #a8b9ad;background:#e0ebdf;border-radius:5px;padding:8px;cursor:pointer}.job-materials button[type=submit]{background:#285d49;color:#fff}.job-materials [role=alert]{color:#ab2525}.model-inference{position:absolute;z-index:5;pointer-events:none;font-size:11px;white-space:nowrap}.model-inference i{position:absolute;width:9px;height:9px;border:2px solid currentColor;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #fff}.model-inference span{position:absolute;left:13px;top:12px;background:#fffef7ee;border:1px solid currentColor;border-radius:3px;padding:4px 7px}.model-inspector label:has(select[aria-label="Linear inference"]){display:block;line-height:1.8}.model-exit{display:flex;gap:4px;flex-wrap:wrap;padding-left:8px;border-left:1px solid #b8c7b9}.model-exit button{font-weight:600}.model-head>.workshop-actions{flex-wrap:wrap;justify-content:flex-end}@media(max-width:700px){.model-head{flex-wrap:wrap;gap:8px}.model-head>.workshop-actions{justify-content:flex-start}.model-exit{padding-left:0;border-left:0}}.top{min-height:40px;padding:4px 10px;gap:8px}.top .brand{font-size:17px}.top .modes{flex-shrink:0;border-radius:5px}.top .modes button,.top>button,.top .rooms button{font-size:12px;padding:4px 9px;min-height:28px}.top .rooms{flex:1;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.top .roomtag{display:none}.top .hamb{flex-shrink:0}.view-command-bar{display:flex;align-items:center;flex-shrink:0;min-height:38px;gap:10px;padding:3px 8px;background:var(--panel2);border-bottom:1px solid var(--line);z-index:25}.app .view-command-bar .viewtog{display:flex;position:static;transform:none;box-shadow:none;border-radius:5px}.viewtog button{white-space:nowrap;padding:5px 10px;font-size:12px}.view-tools-host{flex:1;min-width:0}.view-tools-host .walls{padding:0;border:0;background:transparent;position:relative;gap:4px}.view-tools-host .walls .tab{padding:4px 7px;font-size:12px;white-space:nowrap}.view-tools-host .walls .barmenus{margin-left:auto;background:var(--panel2)}.view-tools-host .model-head{padding:0;border:0}.view-tools-host .workshop-actions{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:5px}.view-tools-host .model-head button,.view-tools-host .model-head select{color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:4px 8px;font-size:12px;height:28px;white-space:nowrap}.view-tools-host button:disabled{opacity:.35}.tabstrip{padding:2px 8px 0;min-height:27px;scrollbar-width:thin}.jobtab{font-size:11px;padding:2px 5px 2px 9px;border-radius:4px 4px 0 0}.jobtabadd{padding:1px 9px;border-radius:4px 4px 0 0}.model-scenes{padding:2px 5px 0}.model-scenes button{padding:4px 9px}.model-tools{width:112px;padding:5px;gap:2px;scrollbar-width:thin}.model-tools button{flex-direction:row;min-height:32px;flex-shrink:0;padding:4px;gap:5px;border-radius:4px;text-align:left}.model-tools button span{font-size:18px;line-height:20px;width:20px;flex-shrink:0;text-align:center}.model-tools button .tool-name{font-size:10px;line-height:12px;width:auto;flex:1;text-align:left}.model-tools button small{font-size:9px}.model-inspector{width:220px;padding:10px;scrollbar-width:thin}.model-inspector h3{margin:8px 0;font-size:11px}.model-inspector p{font-size:11px;line-height:1.4}.model-status{min-height:32px;padding:3px 10px;font-size:11px}.model-status input{padding:3px 6px}.model-navigation{padding:4px 7px;bottom:8px;left:8px;font-size:10px}.workshop-head{padding-bottom:10px}.workshop-head h2{font-size:20px;margin:3px 0}.workshop-head p{margin:3px 0}button:focus-visible,select:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}@media(max-width:1100px){.view-command-bar{flex-wrap:wrap;gap:3px}.view-tools-host{flex-basis:100%}.top .brand{font-size:15px}.top .rooms{max-width:200px}}@media(max-width:700px){.top{overflow-x:auto}.top .rooms{flex:none}.view-command-bar{padding:3px 5px}.view-tools-host .workshop-actions,.view-tools-host .walls{overflow-x:auto}.model-tools{width:44px}.model-tools button{justify-content:center;min-height:34px}.model-tools .tool-name,.model-tools button small{display:none}.model-inspector{width:160px;padding:7px}.model-status{flex-wrap:nowrap}.model-status>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media print{.view-command-bar,.tabstrip{display:none}}.view-tools-host .walls>select{max-width:150px;padding:4px 7px;font-size:12px}.view-tools-host .walls .mini.muted{display:none}.view-tools-host .walls .barmenus{display:flex;flex-wrap:nowrap;gap:4px}.view-tools-host .view-3d>button{display:none}.view-tools-host .view-3d .barmenus{margin-left:0}.tabstrip{overflow-y:hidden}.top .rooms button{white-space:nowrap;flex-shrink:0}.room3d-workspace{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}.room3d-viewport{position:relative;flex:1;min-height:0}.room-scene-bar{display:flex;align-items:center;background:#e0e7de;border-bottom:1px solid #b8c7b9;flex-shrink:0;gap:6px}.room-scene-bar .model-scenes{flex:1;min-width:0;border:0}.room-scene-actions{display:flex;gap:4px;padding:3px 6px;align-items:center}.room-scene-actions button,.room-scene-actions select,.room-scene-actions input{background:#f4f5ee;color:#345747;border:1px solid #b8c7b9;border-radius:3px;padding:3px 6px;font-size:11px}.room-scene-actions button:disabled{opacity:.4}.room-scene-actions input{width:130px}@media(max-width:800px){.room-scene-bar{flex-wrap:wrap}.room-scene-bar .model-scenes{flex-basis:100%}.room-scene-actions{overflow-x:auto}}.room-model-panel{position:absolute;z-index:8;left:8px;top:42px;width:230px;max-height:calc(100% - 55px);overflow:auto;background:#f4f5eef2;color:#244338;border:1px solid #b8c7b9;border-radius:5px;padding:7px;font-size:12px}.room-model-panel summary{cursor:pointer;font-weight:600}.room-model-panel label{display:flex;gap:6px;align-items:center;margin:5px 0}.room-model-panel select{min-width:0;flex:1}.room-model-panel input{width:120px}.room-model-panel small{display:block;font-size:10px;margin:6px 0}.room-model-panel button{margin:3px;padding:4px 6px}.room-model-panel input,.room-model-panel select,.room-model-panel button{color:#244338;background:#fff;border:1px solid #b8c7b9;border-radius:3px;font-size:12px}.isolation-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;background:#f4f5ee;color:#244338}.isolation-overlay>header{display:flex;align-items:center;gap:12px;padding:8px;background:#171c22;color:#fff}.isolation-overlay>header span{flex:1;font-size:12px}.isolation-overlay>.view-tools-host{flex:0;padding:5px;background:#1e252d}.isolation-overlay>p{margin:4px 10px;color:#a22}.room-model-editor{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;min-height:0}.room-model-editor>.model-studio{width:100%;height:100%}.room-model-toolbar{flex:none;background:#1e252d;padding:4px}.room-scene-bar>button[aria-pressed=true]{background:#e67e22;color:#171c22}.room-modeling>.room-scene-bar>.mini{color:#244338;margin-left:8px}.wall-visibility{position:relative;font-size:12px;color:#243b34;z-index:25;flex-shrink:0}.wall-visibility>summary{cursor:pointer;padding:5px 9px;border:1px solid #b8c7b9;border-radius:5px;background:#f2f4ec;list-style:none}.wall-visibility-panel{position:absolute;top:100%;left:0;width:290px;max-width:80vw;padding:12px;background:#f5f6ef;border:1px solid #b8c7b9;border-radius:8px;box-shadow:0 8px 25px #0004;display:grid;gap:10px}.wall-visibility-actions{display:flex;gap:6px;flex-wrap:wrap}.wall-visibility button{padding:4px 8px;font-size:12px}.wall-visibility small{color:#526b61;line-height:1.4}.wall-visibility-list{max-height:220px;overflow:auto;display:grid;gap:5px}.wall-visibility-list>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.wall-visibility-list label{display:flex;align-items:center;gap:6px}.wall-opacity{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px}.wall-opacity input{width:100%;accent-color:#e88b30}
