:root{--bg:#15191e;--panel:#1c2127;--panel2:#232a31;--line:#2f3842;--line2:#3b4652;--text:#d8dee6;--muted:#8a96a3;--dim:#5d6974;--acc:#5b8def;--acc-dim:#2f4d8a;--acc-bg:#5b8def2e;--acc-text:#fff;--info:#4fb3d9;--warn:#e06c4f;--ok:#7bc47f;--scroll:#3b4652;--scroll-hover:#4a5766;--input:#12161a;--shadow:#0006;--hover:#283039;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}html[data-theme=light]{--bg:#eef0f3;--panel:#f7f8fa;--panel2:#e8ebef;--line:#d6dbe2;--line2:#c3cad3;--text:#1f262e;--muted:#5b6673;--dim:#8a94a0;--acc:#1f4e9e;--acc-dim:#9db4dd;--acc-bg:#1f4e9e24;--acc-text:#fff;--info:#1f86b3;--warn:#c8482c;--ok:#3f9a4d;--scroll:#c3cad3;--scroll-hover:#aab3be;--input:#fff;--shadow:#00000026;--hover:#dfe4ea;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=light] .overlay .lbl{background:#f7f8faf2}html[data-theme=light] .toolbar .grp,html[data-theme=light] .legend,html[data-theme=light] .toolhint{background:#f7f8faf0}html[data-theme=light] .drop .box{background:#eef0f3cc}html[data-theme=light] .help{background:#282e3673}*{scrollbar-width:thin;scrollbar-color:var(--scroll) transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scroll);border:2px solid var(--panel);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}::-webkit-scrollbar-corner{background:0 0}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:13px/1.45 var(--sans);margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{background:var(--panel2);border:1px solid var(--line2);cursor:pointer;border-radius:4px;padding:4px 9px}button:hover{border-color:var(--acc-dim);background:var(--hover)}button.primary{background:var(--acc);color:var(--acc-text);border-color:var(--acc);font-weight:600}button.primary:hover{background:var(--acc);filter:brightness(1.12)}button.danger{color:var(--warn);border-color:var(--warn);background:0 0}button.danger:hover{background:var(--warn);color:#fff;border-color:var(--warn)}button.icon{min-width:28px;padding:3px 7px}button.active{border-color:var(--acc);color:var(--acc)}button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}input:focus-visible{outline:2px solid var(--acc);outline-offset:1px}input[type=text],input[type=search],input[type=number],select{background:var(--input);border:1px solid var(--line2);border-radius:4px;padding:4px 7px}input[type=range]{accent-color:var(--acc)}input[type=color]{border:1px solid var(--line2);background:0 0;border-radius:4px;width:28px;height:24px;padding:0}input[type=checkbox]{accent-color:var(--acc)}.app{grid-template-rows:42px 1fr 26px;grid-template-columns:var(--left,300px) 1fr var(--right,340px);height:100%;display:grid}.app.noleft aside.left,.app.noright aside.right{display:none}aside.left{grid-area:2/1}main{grid-area:2/2}aside.right{grid-area:2/3}.handle{cursor:col-resize;z-index:4;width:6px;position:absolute;top:0;bottom:0}.handle.l{left:0}.handle.r{right:0}.handle:hover,.handle.drag{background:var(--acc-bg)}.edgebtn{z-index:4;width:14px;height:44px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:0;padding:0;font-size:9px;position:absolute;top:50%;transform:translateY(-50%)}.edgebtn.l{border-left:0;border-radius:0 4px 4px 0;left:0}.edgebtn.r{border-right:0;border-radius:4px 0 0 4px;right:0}header{border-bottom:1px solid var(--line);background:var(--panel);grid-column:1/4;align-items:center;gap:8px;padding:0 12px;display:flex}header h1{letter-spacing:.2px;margin:0 14px 0 0;font-size:14px;font-weight:600}header h1 small{color:var(--muted);margin-left:6px;font-weight:400}.envbadge{letter-spacing:.4px;text-transform:uppercase;vertical-align:1px;color:#1a1300;background:#f2a33a;border-radius:4px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.envbadge.dev{background:#5ad1c1}header .spacer{flex:1}aside{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}aside.right{border-right:0;border-left:1px solid var(--line)}.tabs{border-bottom:1px solid var(--line);flex:none;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:8px 4px}.tabs button.active{color:var(--text);border-bottom-color:var(--acc)}.pane{flex:1;min-height:0;padding:10px;display:none;overflow:auto}.pane.active{display:block}.pane h3{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:12px 0 6px;font-size:11px;font-weight:600}.pane h3:first-child{margin-top:0}main{min-width:0;min-height:0;position:relative}canvas#c{width:100%;height:100%;display:block}.toolbar{flex-wrap:wrap;gap:6px;max-width:calc(100% - 20px);display:flex;position:absolute;top:10px;left:12px}.toolbar .grp{border:1px solid var(--line);background:#1c2127eb;border-radius:6px;gap:2px;padding:3px;display:flex}.toolbar .grp button{background:0 0;border:0;padding:4px 8px}.toolbar .grp button:hover{background:var(--panel2)}.toolbar .grp button.active{color:var(--acc);background:var(--panel2)}.drop{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.drop .box{border:1px dashed var(--line2);color:var(--muted);text-align:center;background:#15191eb3;border-radius:10px;padding:28px 36px}.drop .box b{color:var(--text);margin-bottom:6px;font-size:15px;display:block}.drop.hidden{display:none}.examples{text-align:center;z-index:3;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.examples.hidden{display:none}.examples .cards{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px;display:flex}.examples button.card{border:1px solid var(--line2);text-align:left;cursor:pointer;background:#1c2127eb;border-radius:8px;flex-direction:column;align-items:stretch;width:150px;padding:0;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}html[data-theme=light] .examples button.card{background:#f7f8faeb}.examples button.card:hover{border-color:var(--acc);transform:translateY(-1px)}.examples button.card:disabled{opacity:.6;cursor:progress;transform:none}.examples .card img{object-fit:cover;background:var(--panel2);width:100%;height:72px;display:block}.examples .card b{color:var(--text);margin:6px 9px 1px;font-size:12.5px;font-weight:600;display:block}.examples .card span{color:var(--muted);margin:0 9px 7px;font-size:11px;display:block}main.dragover .drop{display:flex}main.dragover .drop .box{border-color:var(--acc);color:var(--text)}.legend{border:1px solid var(--line);background:#1c2127eb;border-radius:6px;padding:6px 10px;font-size:12px;display:none;position:absolute;bottom:10px;right:10px}.legend.show{display:block}.legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}footer{border-top:1px solid var(--line);background:var(--panel);font-family:var(--mono);color:var(--muted);grid-column:1/4;align-items:center;gap:16px;padding:0 12px;font-size:11.5px;display:flex}footer .coord{color:var(--text)}footer .warn{color:var(--warn);cursor:pointer}footer .spacer{flex:1}.model.hassel{border-color:var(--acc);box-shadow:inset 3px 0 0 var(--acc);background:var(--acc-bg)}.model .selcnt{font:11px var(--mono);color:var(--acc-text);background:var(--acc);cursor:pointer;border-radius:9px;padding:0 6px}.model .selcnt:empty{display:none}details.folder.hassel>summary .fname{color:var(--acc)}.gizmolabel{background:var(--panel);border:1px solid var(--acc);font:12px var(--mono);color:var(--text);pointer-events:none;white-space:nowrap;z-index:4;border-radius:5px;padding:4px 9px;position:absolute;transform:translate(-50%,-100%)}.split{cursor:col-resize;z-index:4;background:var(--line);width:6px;position:absolute;top:0;bottom:0}.split:hover,.split.drag{background:var(--acc)}.split.horiz{cursor:row-resize;width:auto;height:6px}.secbar{background:var(--panel);border:1px solid var(--line);z-index:4;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:flex;position:absolute;top:10px}.secbar #secTitle{font-weight:600}.secbar .grp2{border-left:1px solid var(--line);gap:2px;padding:0 4px;display:inline-flex}.overlay .dim{background:var(--panel);border:1px solid var(--line2);font:11.5px var(--mono);color:var(--text);pointer-events:auto;white-space:nowrap;border-radius:3px;padding:1px 5px;position:absolute;transform:translate(-50%,-50%)}.overlay .dim .x{color:var(--dim);cursor:pointer;background:0 0;border:0;font-size:12px;line-height:1;position:absolute;top:-8px;right:-10px}.overlay .dim .x:hover{color:var(--warn)}.cropframe{border:1.5px solid var(--acc);pointer-events:none;position:absolute;box-shadow:0 0 0 4000px #7882912e}.cropframe.drawing{box-shadow:none;border-style:dashed}.axismarker{border:1.5px solid var(--acc);pointer-events:auto;cursor:pointer;border-radius:50%;width:18px;height:18px;position:absolute;transform:translate(-50%,-50%)}.axismarker:before,.axismarker:after{content:"";background:var(--acc);position:absolute}.axismarker:before{width:1.5px;margin-left:-.75px;top:-6px;bottom:-6px;left:50%}.axismarker:after{height:1.5px;margin-top:-.75px;top:50%;left:-6px;right:-6px}.axismarker span{font:11px var(--mono);color:var(--acc);white-space:nowrap;position:absolute;top:12px;left:14px}.snapmarker{pointer-events:none;border:2px solid var(--acc);box-sizing:border-box;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%)}.snapmarker.Ecke{background:var(--acc)}.snapmarker.Mitte{border-radius:0;transform:translate(-50%,-50%)rotate(45deg)}.snapmarker.Kante{border-radius:50%}.snapmarker span{font:11px var(--mono);color:var(--acc);white-space:nowrap;background:var(--panel);border-radius:2px;padding:0 3px;position:absolute;top:-4px;left:14px}.snapmarker.Mitte span{top:-12px;left:12px;transform:rotate(-45deg)}.dimbanner{background:var(--acc);color:var(--acc-text);z-index:5;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;display:flex;position:absolute;bottom:0;left:0;right:0}.dimbanner .hint{color:#fffc}.dimbanner .mini{color:var(--acc-text);border-color:#ffffff80}.overlay.dimming{cursor:crosshair;box-shadow:inset 0 0 0 3px var(--acc)}.overlay.wand{cursor:cell;box-shadow:inset 0 0 0 3px var(--acc)}.dimrubber{border-top:1.5px dashed var(--acc);transform-origin:0 0;pointer-events:none;height:0;position:absolute}.dimrubber span{font:11px var(--mono);color:var(--acc);background:var(--panel);white-space:nowrap;border-radius:2px;padding:0 4px;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.toolbar .grp[data-title]{flex-direction:column;align-items:stretch;gap:0;padding:2px 3px 3px}.toolbar .grp[data-title] .ttl{letter-spacing:.5px;text-transform:uppercase;color:var(--muted);text-align:left;pointer-events:none;padding:0 4px 2px 5px;font-size:9px;line-height:1.2}.toolbar .grp[data-title] .row{gap:2px;display:flex}.toolbar .grp button.ico{color:var(--text);justify-content:center;align-items:center;padding:4px 6px;display:inline-flex}.toolbar .grp button.ico:hover{color:var(--acc)}.toolbar .grp button.ico.active{color:var(--acc);background:var(--acc-bg)}.tip{z-index:50;background:var(--panel);color:var(--text);border:1px solid var(--line2);box-shadow:0 4px 14px var(--shadow);pointer-events:none;white-space:nowrap;border-radius:5px;max-width:360px;padding:4px 8px;font-size:12px;position:fixed}.ctxmenu{z-index:6;background:var(--panel);border:1px solid var(--line2);min-width:200px;box-shadow:0 6px 24px var(--shadow);border-radius:6px;padding:4px 0;font-size:12.5px;position:absolute}.ctxmenu .hd{color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;max-width:260px;margin-bottom:3px;padding:4px 12px 6px;font-size:11px;overflow:hidden}.ctxmenu .it{cursor:pointer;padding:5px 12px}.ctxmenu .it:hover{background:var(--panel2);color:var(--acc)}details.comp{margin-top:4px}details.comp>summary{color:var(--muted);cursor:pointer;font-size:11px;list-style:none}details.comp>summary:before{content:"▸ ";font-size:10px}details.comp[open]>summary:before{content:"▾ "}.model.waiting{opacity:.7;border-style:dashed}.model.waiting .row .mini.load{color:var(--acc);border-color:var(--acc-dim)}.model.loading{opacity:.75}.model .prog{background:var(--line);border-radius:2px;height:3px;margin:6px 0 3px;overflow:hidden}.model .prog .bar{background:var(--acc);width:0;height:100%;transition:width .15s}.rubber{border:1px dashed var(--acc);background:var(--acc-bg);pointer-events:none;position:absolute}.help{z-index:5;background:#0a0c0eb3;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.help .box{background:var(--panel);border:1px solid var(--line2);border-radius:8px;min-width:360px;padding:16px 22px}.help h2{margin:0 0 10px;font-size:14px}.help table td{padding:3px 10px 3px 0;font-size:12.5px}.help table td:first-child{font-family:var(--mono);color:var(--acc);white-space:nowrap}.scalebar{font:11px var(--mono);color:var(--muted);display:none;position:absolute;bottom:10px;left:10px}.scalebar.show{display:block}.scalebar .bar{border:1px solid var(--muted);border-top:0;height:4px;margin-bottom:2px}.ampel{vertical-align:-1px;border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.ampel.ok{background:var(--ok)}.ampel.warn{background:var(--acc)}.ampel.fail{background:var(--warn)}.report{font-size:12px}.report div{border-bottom:1px solid var(--line);padding:2px 0}.report small{color:var(--muted);padding-left:15px;display:block}.rule{border:1px solid var(--line);background:var(--panel2);border-radius:6px;margin-bottom:8px;padding:8px}.rule .lg{flex-wrap:wrap;gap:4px 10px;margin-top:6px;font-size:11.5px;display:flex}.rule .lg span{cursor:pointer}.rule .lg i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.view{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:4px 6px;display:flex}.view .nm{cursor:pointer;flex:1}.dist{cursor:pointer}.dist div:hover{color:var(--acc)}.tree .leafrow{white-space:nowrap;cursor:pointer;border-radius:3px;align-items:center;gap:5px;padding:1px 2px;display:flex}.tree .leafrow:hover{background:var(--panel2)}.tree .leafrow.sel{background:var(--acc-bg);color:var(--acc)}.tree .more{color:var(--info);cursor:pointer;padding:2px 14px;font-size:11.5px}#loadState{margin-right:6px}.toolhint{color:var(--info);pointer-events:none;background:#1c2127e6;border-radius:4px;padding:3px 8px;font-size:12px;position:absolute;top:52px;left:10px}.toolhint:empty{display:none}.overlay{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.overlay .lbl{border:1px solid var(--acc);font:11.5px var(--mono);color:var(--text);white-space:pre;pointer-events:auto;background:#1c2127f0;border-radius:5px;flex-direction:column;gap:1px;padding:4px 22px 4px 8px;display:flex;position:absolute;transform:translate(-50%,-120%)}.overlay .lbl.pt{border-color:var(--info);transform:translate(8px,-50%)}.overlay .lbl b{color:var(--acc)}.overlay .lbl.pt b{color:var(--info)}.overlay .lbl span{color:var(--muted);font-size:10.5px}.overlay .lbl .x{color:var(--dim);background:0 0;border:0;padding:0 4px;font-size:13px;line-height:1;position:absolute;top:2px;right:2px}.overlay .lbl .x:hover{color:var(--warn)}.model{border:1px solid var(--line);background:var(--panel2);border-radius:6px;margin-bottom:6px;padding:7px 8px}.model .row{align-items:center;gap:6px;display:flex}.model .sw{border-radius:2px;flex:none;width:10px;height:10px}.model .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.model .meta{color:var(--muted);font-size:11px;font-family:var(--mono);margin-top:3px}.model .meta .g{color:var(--ok)}.model .meta .i{color:var(--info)}.model .meta .n{color:var(--warn)}.model .actions{gap:4px;margin-top:6px;display:flex}.model .actions button{padding:2px 6px;font-size:11.5px}.model .meta{margin-top:2px}.model.hid{opacity:.55}details.folder>summary{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:4px;font-weight:500;list-style:none;display:flex}details.folder>summary::-webkit-details-marker{display:none}details.folder>summary:before{content:"▸";color:var(--muted);width:12px;font-size:14px;line-height:1}details.folder[open]>summary:before{content:"▾"}details.folder>summary:hover{background:var(--panel2)}details.folder .fname{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}details.folder .cnt{color:var(--dim);font-family:var(--mono);font-size:10.5px}details.folder .fbody{border-left:1px solid var(--line);margin-left:10px;padding-left:8px}button.mini{border-color:var(--line);color:var(--muted);background:0 0;border-radius:3px;padding:1px 6px;font-size:10.5px}button.mini.icon{padding:1px 7px;font-size:14px;line-height:1}button.mini:hover{color:var(--text);border-color:var(--line2)}.model .nm{cursor:pointer}.model.open{border-color:var(--line2)}.model .row .mini{flex:none}#tree,#models,.tabs,.toolbar,.ctxmenu,.model .row,.tree summary,.tree .leafrow{-webkit-user-select:none;user-select:none}.tree{font-size:12.5px}.tree details{margin-left:0}.tree details details{margin-left:14px}.tree summary{cursor:pointer;white-space:nowrap;border-radius:3px;align-items:center;gap:5px;padding:1px 2px;list-style:none;display:flex}.tree summary::-webkit-details-marker{display:none}.tree summary:before{content:"▸";color:var(--muted);width:13px;font-size:14px;line-height:1;display:inline-block}.tree details[open]>summary:before{content:"▾"}.tree details.leaf>summary:before{content:""}.tree summary:hover{background:var(--panel2)}.tree summary.sel{background:var(--acc-bg);color:var(--acc)}.tree .t{color:var(--muted);font-family:var(--mono);font-size:10.5px}.tree .cnt{color:var(--dim);margin-left:auto;font-size:10.5px}.tree summary.hidden-node .lab{color:var(--dim);text-decoration:line-through}table.props{border-collapse:collapse;width:100%;font-size:12px}table.props td{border-bottom:1px solid var(--line);vertical-align:top;word-break:break-word;padding:3px 4px}table.props td:first-child{color:var(--muted);width:42%}table.props tr.hd td{background:var(--panel2);color:var(--text);border-bottom:1px solid var(--line2);padding-top:5px;font-weight:600}table.props tr.hd td small{color:var(--muted);margin-left:6px;font-weight:400}table.props .diff{color:var(--acc);cursor:pointer}table.props .dist{color:var(--muted);padding-left:10px;font-size:11px}.mono{font-family:var(--mono);font-size:11.5px}.kv{grid-template-columns:auto 1fr;gap:3px 10px;font-size:12px;display:grid}.kv div:nth-child(odd){color:var(--muted)}.badge{border:1px solid var(--line2);color:var(--muted);border-radius:10px;padding:1px 7px;font-size:11px;display:inline-block}.badge.ok{border-color:var(--ok);color:var(--ok)}.badge.warn{border-color:var(--warn);color:var(--warn)}.badge.info{border-color:var(--info);color:var(--info)}.warnline{color:var(--warn);border-left:2px solid var(--warn);margin:4px 0;padding:4px 0 4px 10px;font-size:12px}.empty{color:var(--dim);text-align:center;padding:20px 6px}.ctl{align-items:center;gap:8px;margin:6px 0;display:flex}.ctl label{color:var(--muted);min-width:82px}.ctl input[type=range]{flex:1}.sec{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.north{width:64px;height:64px}.log{font-family:var(--mono);color:var(--muted);white-space:pre-wrap;max-height:200px;font-size:11px;overflow:auto}.hint{color:var(--dim);font-size:11.5px}details.sect>summary{cursor:pointer;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:10px 0 4px;font-size:11px;font-weight:600}.fl{flex-wrap:wrap;align-items:center;gap:6px;display:flex}#progress{background:var(--acc);transform-origin:0;height:2px;transition:transform .2s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.help .box.settings{box-sizing:border-box;width:490px;max-width:calc(100vw - 40px)}.help .box.settings .ctl{grid-template-columns:150px 1fr;align-items:center;gap:10px;margin:8px 0;display:grid}.help .box.settings .ctl label{min-width:0}.help .box.settings select{box-sizing:border-box;width:100%;min-width:0}.help .box.settings .buttons{justify-content:flex-end;align-items:center;gap:8px;margin-top:14px;display:flex}.help .box.settings .version{color:var(--muted);margin-right:auto;font-size:12px}#btnSettings{line-height:inherit;padding:4px 8px}#btnSettings svg{vertical-align:-3px}
