:root{--bg:#1c1c1c;--panel:#212121f0;--panel-2:#2f2f2f;--surface:#212121;--surface-muted:#171717;--surface-hover:#3a3a3a;--line-strong:#ffffff2e;--shadow:#00000070;--accent-soft:#ffffff1f;--danger-soft:#ef444424;--line:#ffffff1a;--text:#ececec;--muted:#b4b4b4;--accent:#8e8e8e;--accent-2:#d4d4d4;--danger:#ff6b6b;--success:#d4d4d4}*{box-sizing:border-box}html,body{background:var(--bg);width:100%;height:100%;color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:12px;padding:10px 12px;transition:transform .14s,border-color .14s,background .14s}button:hover{border-color:var(--line-strong);background:var(--surface-hover);transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.45;transform:none}input[type=number]{border:1px solid var(--line);background:var(--panel-2);width:90px;color:var(--text);border-radius:10px;padding:8px 10px}input[type=file]{width:100%;color:var(--muted)}.section{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.drawingViewsSection{border:1px solid var(--line);background:var(--panel-2);border-radius:16px;margin-bottom:20px;padding:14px}.moduleControlSection{border:1px solid var(--line);background:var(--panel-2);border-radius:16px;padding:14px}.lowerControlPanel{border:1px solid var(--line-strong);background:var(--panel-2);border-radius:18px;margin-top:18px;padding:14px}.lowerControlGroup+.lowerControlGroup{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.lowerControlPanel .moduleControlSection,.uiPanelBottom .moduleControlSection{background:0 0;border:0;border-radius:0;padding:0}.moduleActionGrid{grid-template-columns:repeat(2,minmax(0,1fr));justify-items:stretch;gap:8px;margin-top:10px;display:grid}.moduleActionGrid button{text-align:center;justify-content:center;align-items:center;width:100%;min-height:44px;display:inline-flex}.blockQuickActions{gap:7px;padding:0;display:inline-flex}.blockQuickActions button{border-color:var(--line);background:var(--surface);width:26px;height:26px;min-height:26px;color:var(--text);box-shadow:0 8px 18px var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:7px;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex}.blockQuickActions button:hover{background:var(--surface);border-color:#ffffff47}.blockQuickActions button[data-tooltip]{position:relative}.blockQuickActions button[data-tooltip]:after{z-index:3;border:1px solid var(--line-strong);width:max-content;max-width:220px;box-shadow:0 8px 18px var(--shadow);color:var(--text);content:attr(data-tooltip);opacity:0;pointer-events:none;white-space:nowrap;background:#212121f5;border-radius:8px;padding:6px 8px;font-size:12px;line-height:1.2;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.blockQuickActions button[data-tooltip]:hover:after,.blockQuickActions button[data-tooltip]:focus-visible:after{opacity:1;transform:translate(-50%)}.blockQuickActions button.danger{color:var(--danger);background:var(--danger-soft);border-color:#be123c38}.sideDirectionBox{border:1px solid var(--line);background:var(--panel-2);border-radius:14px;margin-bottom:10px;padding:12px}.sideDirectionBox p{margin-bottom:10px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rowBetween{justify-content:space-between;align-items:center;gap:8px;display:flex}.primary{color:#fff;background:linear-gradient(135deg,#525252f5,#737373e0);border-color:#ffffff38;font-weight:700}.activeButton{border-color:var(--accent);background:#ffffff1a}.danger{color:var(--danger);background:var(--danger-soft);border-color:#ef444459}.blockList{gap:8px;display:grid}.blockItem{text-align:left;grid-template-columns:1fr auto;align-items:center;gap:10px;width:100%;padding:10px 12px;display:grid}.blockItem strong{font-size:14px;display:block}.blockItem span{color:var(--muted);margin-top:3px;font-size:12px;display:block}.badge{color:var(--accent-2);background:#ffffff14;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font-size:12px;display:inline-flex}.help{z-index:5;border:1px solid var(--line);background:var(--panel);max-width:420px;color:var(--muted);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;padding:12px 14px;font-size:13px;line-height:1.45;position:absolute;bottom:18px;right:18px}.hotkey{color:var(--text);border:1px solid var(--line);background:var(--panel-2);border-radius:7px;padding:2px 6px}@media (max-width:760px){.help{display:none}}.moduleLibrary{gap:8px;display:grid}.moduleDropdownDetails{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;grid-template-columns:18px 1fr;align-items:start;gap:10px;padding:10px 12px;display:grid}.moduleDropdownDetails strong,.moduleDropdownDetails span:not(.moduleColor){display:block}.moduleDropdownDetails strong{font-size:14px}.moduleDropdownDetails span:not(.moduleColor){color:var(--muted);margin-top:3px;font-size:12px}.moduleCard{text-align:left;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;width:100%;padding:10px 12px;display:grid}.moduleCard strong{font-size:14px;display:block}.moduleCard span:not(.moduleColor){color:var(--muted);margin-top:3px;font-size:12px;display:block}.moduleColor{border:1px solid var(--line-strong);border-radius:7px;width:18px;height:18px}.note{color:var(--muted)!important;margin-top:8px!important;font-size:12px!important}.note code{color:var(--text);font-size:11px}.snapLabel,.objectLabel{color:#fff;white-space:nowrap;background:#212121e6;border:1px solid #ffffff47;border-radius:999px;padding:4px 8px;font-size:11px}.objectLabel{border-color:#ffffff5c;font-size:12px}.objectLabelSnapped{background:var(--accent-soft);color:var(--accent-2);border-color:#ffffff70}.uploadLog{border:1px solid var(--line);background:var(--panel-2);max-height:120px;color:var(--muted);white-space:pre-wrap;border-radius:12px;margin:10px 0 0;padding:10px;font-size:12px;line-height:1.45;overflow:auto}.moduleCardStatic{background:0 0;border:none;grid-template-columns:1fr auto;gap:8px;padding:0;display:grid;position:relative}.moduleCardStatic:hover{border-color:#0000;transform:none}.moduleAddButton{text-align:left;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;width:100%;display:grid}.modulePreviewPanel{z-index:12;visibility:hidden;opacity:0;pointer-events:none;border:1px solid var(--line-strong);background:var(--panel);box-shadow:0 16px 36px var(--shadow);border-radius:14px;padding:8px;transition:opacity .16s,transform .16s,visibility .16s;position:absolute;bottom:calc(100% + 6px);left:0;right:0;transform:translateY(8px)}.moduleCardStatic:hover .modulePreviewPanel{visibility:visible;opacity:1;transform:translateY(0)}.modulePreviewPanel img{border-radius:10px;width:100%;height:auto;display:block}.smallDanger{width:42px;min-height:42px;color:var(--danger);background:var(--danger-soft);border-color:#ef444459;font-size:20px;line-height:1}.fileLabel{color:var(--muted);gap:6px;margin-top:10px;font-size:12px;display:grid}.fileLabel span{color:var(--text);font-size:13px}.objectLabelBlocked{background:var(--danger-soft);color:var(--danger);border-color:#ef444494}.mutedBadge{background:var(--panel-2);color:var(--muted)}.successNote{color:var(--success)!important}.sceneActionRow{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.sceneActionRow button{min-height:44px}.dangerText{color:var(--danger)!important}@media (max-width:1199px){html,body{min-width:900px}button{border-radius:10px;padding:8px 10px;font-size:12px}input[type=number]{width:78px;padding:7px 9px;font-size:12px}.section{margin-top:10px;padding-top:10px}.drawingViewsSection,.moduleControlSection,.lowerControlPanel{border-radius:14px;padding:10px}.row,.rowBetween{align-items:stretch}.row{flex-direction:column;gap:7px}.rowBetween{grid-template-columns:1fr;gap:7px;display:grid}.rowBetween .row{grid-template-columns:1fr;display:grid}.badge{justify-content:center;width:100%;font-size:11px}.sideDirectionBox{border-radius:12px;padding:10px}.blockList{gap:6px}.blockItem{grid-template-columns:1fr;gap:6px;padding:8px 10px}.blockItem strong{font-size:12px}.blockItem span{font-size:11px}.moduleActionGrid{grid-template-columns:1fr}}
