:root{--su-bg: #efefef;--su-toolbar-bg: rgba(255, 255, 255, .85);--su-border: #bbbbbb;--su-active-bg: #d0e1f3;--su-active-border: #2b79c2;--su-hover-bg: #e5eff9;--su-text: #333333;--su-shadow: 0 2px 10px rgba(0, 0, 0, .15);--toolbar-height: 40px;--footer-height: 30px}body{margin:0;padding:0;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--su-bg);color:var(--su-text);overflow:hidden}.dock-area{position:fixed;z-index:1000;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;box-shadow:none;display:flex;gap:8px;padding:6px;box-sizing:border-box}#top-dock{z-index:1200;top:4px;left:4px;right:4px;height:64px;padding:12px;border-radius:8px;flex-direction:row;align-items:center;transition:transform .3s cubic-bezier(.25,.8,.25,1);transform:translateY(0);overflow-x:auto;scrollbar-width:none}#top-dock::-webkit-scrollbar{display:none}#top-dock.collapsed{transform:translateY(-74px)}#left-dock{top:64px;left:4px;bottom:40px;width:64px;padding:6px 12px;border-radius:8px;flex-direction:column;align-items:center;justify-content:flex-start;transition:transform .3s cubic-bezier(.25,.8,.25,1);transform:translate(0);overflow-y:auto;scrollbar-width:none}#left-dock::-webkit-scrollbar{display:none}#left-dock.collapsed{transform:translate(-74px)}.edge-sensor{position:fixed;z-index:999;background:transparent}#top-sensor{top:0;left:0;right:0;height:10px}#left-sensor{top:0;left:0;bottom:0;width:10px}.toolbar-separator{width:1px;height:24px;background-color:var(--su-border);margin:0 8px}.tool-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer;transition:all .2s ease;padding:0}.tool-button:hover{background-color:var(--su-hover-bg);border-color:#a0c0e0}.tool-button.active{background-color:var(--su-active-bg);border-color:var(--su-active-border);box-shadow:inset 0 1px 3px #0000001a}.tool-button img{width:24px;height:24px;object-fit:contain}#status-bar-container{position:absolute;bottom:0;left:0;right:0;height:var(--footer-height);background:#f8f8f8;border-top:1px solid var(--su-border);display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:12px;z-index:2200}#status-message{color:#666}#vcb-container{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--su-border);padding:2px 8px;border-radius:3px}#vcb-label{font-weight:600;color:#444}#vcb-value{min-width:80px;max-width:120px;text-align:right;font-family:Consolas,monospace;font-size:13px;border:1px solid transparent;background:transparent;outline:none;padding:2px 4px;margin:0;color:inherit;box-sizing:border-box}#vcb-value:focus{background:#fff;border:1px solid var(--su-active-border);border-radius:2px;box-shadow:inset 0 1px 2px #00000014}#canvas-container{width:100vw;height:100vh;background:#e0e0e0}.su-text-overlay{position:absolute;inset:0;z-index:900;pointer-events:none;overflow:hidden}.su-text-label{position:absolute;max-width:280px;min-height:16px;padding:2px 4px;box-sizing:border-box;line-height:1.25;white-space:pre-wrap;overflow-wrap:anywhere;color:#111;text-shadow:0 1px 0 rgba(255,255,255,.7);pointer-events:auto;user-select:none;border-width:1px;z-index:901}.su-text-preview-label{border:1px dashed rgba(0,0,0,.65)!important;background:#ffffff59!important;pointer-events:none}.su-text-input{position:absolute;width:220px;min-height:24px;max-height:180px;padding:3px 5px;box-sizing:border-box;resize:both;outline:none;border:1px solid #2b79c2;border-radius:2px;box-shadow:0 2px 8px #0000002e;pointer-events:auto;z-index:902;line-height:1.3}#toolbar{display:none!important}.lil-gui{--background-color: var(--su-toolbar-bg);--backdrop-filter: blur(10px);--border-color: var(--su-border);--title-background-color: #e0e0e0;border-radius:6px;box-shadow:var(--su-shadow)}.panel-card{position:fixed;width:280px;background:#fffffff0;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid rgba(255,255,255,.45);border-radius:8px;box-shadow:0 4px 16px #00000014,0 2px 4px #0000000a,inset 0 1px #ffffff40;z-index:1100;display:flex;flex-direction:column;overflow:hidden;transition:top .3s cubic-bezier(.25,.8,.25,1),box-shadow .2s ease,transform .3s cubic-bezier(.25,.8,.25,1)}.panel-card.dragging{box-shadow:0 8px 28px #00000038;z-index:2100;transition:none;opacity:.96}.panel-card.snap-zone{box-shadow:0 0 0 2px #2b79c273,var(--su-shadow)}.panel-card.collapsed-right{transform:translate(296px)}.panel-right-sensor{position:fixed;top:0;right:0;width:12px;height:100vh;z-index:1099;pointer-events:auto}.panel-card-header{display:flex;align-items:center;padding:7px 10px;cursor:grab;background:#f0f0f073;border-bottom:1px solid rgba(0,0,0,.08);min-height:32px;gap:6px;user-select:none}.panel-card-header:active{cursor:grabbing}.panel-card-title{flex:1;font-size:12px;font-weight:600;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.panel-card-btn{background:none;border:none;color:#666;cursor:pointer;padding:3px 7px;font-size:14px;line-height:1;border-radius:4px;transition:color .15s,background .15s}.panel-card-btn:hover{color:#333;background:#0000000f}.panel-card-collapse{font-size:10px;padding:3px 6px}.panel-card-close:hover{color:#f44336;background:#f443361a}.panel-card-body{overflow-y:auto;overflow-x:hidden;max-height:420px;transition:max-height .3s cubic-bezier(.25,.8,.25,1)}.panel-card.collapsed .panel-card-body{max-height:0;overflow:hidden}#material-panel{display:flex;flex-direction:column;overflow:visible}.material-preview-area{padding:12px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(0,0,0,.08);background:#fff6}.material-preview-box{width:48px;height:48px;border-radius:6px;border:2px solid #fff;box-shadow:0 2px 8px #0000001a;background-size:cover;background-position:center;overflow:hidden;position:relative;flex-shrink:0}.material-preview-box.default-material-ball{background:linear-gradient(135deg,#fff 50%,#a4bac6 50%)}.material-preview-info{display:flex;flex-direction:column;gap:2px;flex-grow:1;overflow:hidden}.material-preview-name{font-size:12px;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-preview-meta{font-size:10px;color:#666}.material-restore-default-btn{padding:4px 8px;font-size:10px;border-radius:4px;border:1px solid #ccc;background:#fff;cursor:pointer;white-space:nowrap;transition:all .2s ease}.material-restore-default-btn:hover{background:#f0f0f0;border-color:#999}.material-category-select{width:calc(100% - 24px);margin:12px 12px 6px;padding:6px 10px;border-radius:6px;border:1px solid rgba(0,0,0,.12);background:#ffffffd9;font-size:12px;outline:none;cursor:pointer}.material-color-control{display:flex;gap:6px;padding:6px 12px;align-items:center;background:#ffffff4d;border-bottom:1px solid rgba(0,0,0,.08)}.material-color-control label{font-size:10px;color:#555;white-space:nowrap}.material-color-control input[type=color]{width:24px;height:22px;padding:0;border:1px solid #ccc;border-radius:4px;cursor:pointer;background:none}.material-color-control input[type=range]{width:52px;height:4px;cursor:pointer;accent-color:#555;vertical-align:middle}.material-color-control span{font-size:10px;color:#555;min-width:30px;text-align:right}.material-size-control{display:flex;gap:6px;padding:6px 12px;align-items:center;background:#ffffff4d;border-bottom:1px solid rgba(0,0,0,.08)}.material-size-control label{font-size:10px;color:#555;white-space:nowrap}.material-size-input{width:48px;padding:2px 4px;font-size:10px;border-radius:4px;border:1px solid #ccc;text-align:right;outline:none}.material-grid{overflow:visible;box-sizing:border-box;padding:12px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-content:start}.material-card{width:100%;max-width:56px;aspect-ratio:1;border-radius:6px;border:1px solid rgba(0,0,0,.1);background-size:100% 100%;background-position:center;background-repeat:no-repeat;cursor:pointer;position:relative;transition:all .2s cubic-bezier(.25,.8,.25,1);box-shadow:0 1px 3px #0000000d}.material-card:hover{transform:scale(1.1);border-color:var(--su-active-border);box-shadow:0 4px 12px #2b79c240;z-index:2}.material-card.active{border-color:var(--su-active-border);outline:2px solid var(--su-active-border);outline-offset:1px;z-index:2}#tag-panel{display:flex;flex-direction:column;overflow:visible}.tag-toolbar{padding:10px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(0,0,0,.08);background:#fff6;gap:8px}.tag-btn-add{padding:6px 12px;background:var(--su-active-border);color:#fff;border:none;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:background .2s}.tag-btn-add:hover{background:#1b5e9d}.tag-color-by-tag-container{display:flex;align-items:center;gap:6px;font-size:11px;color:#555;cursor:pointer}.tag-list{padding:8px 12px;display:flex;flex-direction:column;gap:6px}.tag-item{display:flex;align-items:center;padding:6px 10px;border-radius:6px;background:#ffffff80;border:1px solid rgba(0,0,0,.05);gap:8px;transition:all .2s ease}.tag-item:hover{background:#ffffffd9;border-color:#0000001f}.tag-item.active-tag{outline:2px solid var(--su-active-border);background:var(--su-hover-bg)}.tag-eye{font-size:14px;cursor:pointer;user-select:none;width:20px;text-align:center;flex-shrink:0}.tag-active-indicator{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;border:1px solid #ccc;border-radius:3px;background:#fff;color:var(--su-active-border);font-weight:700;flex-shrink:0}.tag-active-indicator.active{background:var(--su-active-bg);border-color:var(--su-active-border)}.tag-name-input{flex-grow:1;min-width:0;border:1px solid transparent;background:transparent;padding:2px 6px;font-size:12px;border-radius:4px;outline:none;color:#333;font-weight:500}.tag-name-input:focus{border-color:var(--su-border);background:#fff}.tag-name-input:disabled{color:#666;font-style:italic}.tag-color-picker-wrapper{position:relative;width:20px;height:20px;border-radius:4px;border:1px solid rgba(0,0,0,.15);cursor:pointer;overflow:hidden;box-shadow:0 1px 3px #0000001a;flex-shrink:0}.tag-color-input{position:absolute;top:-5px;left:-5px;width:30px;height:30px;border:none;padding:0;cursor:pointer;background:none}.tag-dash-select{font-size:11px;border:1px solid rgba(0,0,0,.1);background:#fff;border-radius:4px;padding:2px;outline:none;cursor:pointer;width:65px;flex-shrink:0}.tag-btn-delete{border:none;background:transparent;color:#999;cursor:pointer;font-size:13px;transition:color .2s;padding:2px 4px;flex-shrink:0}.tag-btn-delete:hover{color:#f44336}.tag-modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center}.tag-modal{width:380px;background:#fff;border-radius:12px;box-shadow:0 12px 40px #00000040;overflow:hidden;animation:tagModalShow .25s cubic-bezier(.25,.8,.25,1)}@keyframes tagModalShow{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.tag-modal-header{padding:16px;background:#f8f8f8;border-bottom:1px solid #eee;font-weight:600;font-size:14px;color:#333}.tag-modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:12px;font-size:13px;color:#555;line-height:1.5}.tag-modal-option{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px;border-radius:6px;transition:background .2s}.tag-modal-option:hover{background:#f0f7ff}.tag-modal-footer{padding:12px 16px;background:#f8f8f8;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:10px}.tag-modal-btn{padding:6px 14px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid #ccc;background:#fff;transition:all .2s}.tag-modal-btn-confirm{background:var(--su-active-border);color:#fff;border-color:var(--su-active-border)}.tag-modal-btn-confirm:hover{background:#1b5e9d}.tag-modal-btn:not(.tag-modal-btn-confirm):hover{background:#eee}#entity-info-panel{display:flex;flex-direction:column}.entity-info-body{padding:16px;display:flex;flex-direction:column;gap:12px;font-size:12px;color:#444}.entity-info-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.entity-info-label{font-weight:600;color:#666;min-width:60px}.entity-info-value{flex-grow:1;text-align:right;color:#222;font-weight:500}.entity-info-select{width:100%;padding:5px 8px;border-radius:6px;border:1px solid rgba(0,0,0,.12);background:#fff;font-size:12px;outline:none;cursor:pointer}.tag-toolbar-btn-pen{padding:6px 10px;background:#fff;color:#333;border:1px solid rgba(0,0,0,.15);border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:4px}.tag-toolbar-btn-pen:hover{background:#0000000d}.tag-toolbar-btn-pen.pen-active{background:#2196f326!important;border-color:#2196f366!important;color:#1976d2!important;box-shadow:0 2px 6px #2196f333}.toolbar-group{display:flex;align-items:center;background:#fffffff0;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid rgba(255,255,255,.45);border-radius:6px;padding:2px;box-sizing:border-box;position:relative;user-select:none;box-shadow:0 4px 16px #00000014,0 2px 4px #0000000a,inset 0 1px #ffffff40}.toolbar-group.floating{position:fixed!important;z-index:1050}.toolbar-group.horizontal{flex-direction:row}.toolbar-group.vertical{flex-direction:column}.drag-handle{cursor:move;display:flex;align-items:center;justify-content:center;opacity:.4;transition:opacity .2s;user-select:none}.drag-handle:hover{opacity:.8}.toolbar-group.horizontal .drag-handle{width:6px;height:18px;margin-right:4px;background-image:radial-gradient(circle,var(--su-text) .4px,transparent .7px);background-size:3px 3px;background-repeat:repeat}.toolbar-group.vertical .drag-handle{width:18px;height:6px;margin-bottom:4px;background-image:radial-gradient(circle,var(--su-text) .4px,transparent .7px);background-size:3px 3px;background-repeat:repeat}.group-content{display:flex;gap:2px}.toolbar-group.horizontal .group-content{flex-direction:row}.toolbar-group.vertical .group-content{flex-direction:column}.toolbar-group.dragging{position:fixed!important;z-index:10000!important;background:#fffffff2!important;border:1px solid var(--su-active-border)!important;box-shadow:0 10px 25px #00000040!important;opacity:.9!important;pointer-events:none!important}.group-placeholder{position:absolute;background:var(--su-active-border);z-index:10;pointer-events:none;box-sizing:border-box;transition:left .1s ease,top .1s ease}.group-placeholder.horizontal{width:2px;height:36px;transform:translate(-1px)}.group-placeholder.vertical{height:2px;width:36px;transform:translateY(-1px)}#scene-panel{display:flex;flex-direction:column;overflow:visible}.scene-toolbar{padding:10px 16px;display:flex;justify-content:flex-start;align-items:center;border-bottom:1px solid rgba(0,0,0,.08);background:#fff6;gap:8px}.scene-btn-add,.scene-btn-update-curr{padding:5px 10px;background:var(--su-active-border);color:#fff;border:none;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:background .2s}.scene-btn-add:hover,.scene-btn-update-curr:hover{background:#1b5e9d}.scene-btn-update-curr{background:#4caf50}.scene-btn-update-curr:hover{background:#388e3c}.scene-list{padding:8px 12px;display:flex;flex-direction:column;gap:6px}.scene-empty-tip{font-size:11px;color:#888;text-align:center;padding:20px 0;font-style:italic}.scene-item{display:flex;align-items:center;padding:6px 10px;border-radius:6px;background:#ffffff80;border:1px solid rgba(0,0,0,.05);gap:8px;cursor:pointer;transition:all .2s ease;position:relative;user-select:none}.scene-item:hover{background:#ffffffd9;border-color:#0000001f}.scene-item.active-scene{outline:2px solid var(--su-active-border);background:var(--su-hover-bg)}.scene-item-icon{font-size:16px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#0000000d;border-radius:4px;flex-shrink:0}.scene-item-info{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:2px}.scene-name-input{border:1px solid transparent;background:transparent;padding:2px 4px;font-size:12px;font-weight:600;color:#333;border-radius:4px;outline:none;cursor:text}.scene-name-input:focus{border-color:var(--su-border);background:#fff}.scene-desc{font-size:9px;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s ease;flex-shrink:0}.scene-item:hover .scene-actions{opacity:1}.scene-action-btn{border:none;background:transparent;cursor:pointer;font-size:12px;padding:2px 4px;border-radius:3px;color:#666;transition:all .2s}.scene-action-btn:hover{background:#0000000d;color:#333}.scene-action-btn.delete-btn:hover{color:#f44336;background:#f443361a}.scene-context-menu{position:fixed;z-index:3000;background:#fff;border:1px solid #ccc;box-shadow:0 4px 12px #00000026;border-radius:6px;padding:4px 0;min-width:110px;user-select:none}.scene-context-menu .menu-item{padding:6px 12px;font-size:12px;color:#333;cursor:pointer;display:flex;align-items:center;gap:6px;transition:background .15s}.scene-context-menu .menu-item:hover{background:#f0f0f0}.scene-context-menu .menu-item.delete-item{color:#f44336}.scene-context-menu .menu-item.delete-item:hover{background:#f443360d}.scene-tabs-bar{position:fixed;bottom:calc(var(--footer-height) + 4px);left:80px;right:310px;height:180px;background:transparent;border:none;display:none;align-items:flex-end;padding:0;gap:8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;z-index:2250;user-select:none;box-sizing:border-box;pointer-events:none;mask-image:linear-gradient(to right,#000 0%,#000 88%,transparent 98%);-webkit-mask-image:linear-gradient(to right,#000 0%,#000 88%,transparent 98%)}.scene-tabs-bar::-webkit-scrollbar{display:none!important}.scene-tab-line{width:100px;height:3px;background:#fff;opacity:.55;border-radius:1.5px;cursor:pointer;transition:all .25s cubic-bezier(.25,.8,.25,1);position:relative;box-shadow:0 1px 3px #0000001f;flex-shrink:0;pointer-events:auto;margin-bottom:8px}.scene-tab-line:before{content:"";position:absolute;inset:-12px 0}.scene-tab-line:hover{opacity:.95}.scene-tab-line.active{opacity:1;box-shadow:0 2px 6px #00000038}.scene-tab-name-label{position:absolute;bottom:8px;left:50%;transform:translate(-50%);font-size:10px;font-weight:500;color:#ffffffbf;text-align:center;white-space:nowrap;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.6);transition:all .22s ease-in-out}.scene-tab-line:hover .scene-tab-name-label{opacity:0;transform:translate(-50%) translateY(-4px)}.scene-tab-line.active .scene-tab-name-label{color:#fff;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.85)}.scene-tab-tooltip{position:absolute;bottom:24px;left:0;width:100%;background:#fffffff5;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:6px;border:1px solid rgba(0,0,0,.08);box-shadow:0 4px 12px #00000026;padding:6px;display:flex;flex-direction:column;gap:4px;opacity:0;pointer-events:none;transform:translateY(6px);transition:all .25s cubic-bezier(.25,.8,.25,1);z-index:2300;box-sizing:border-box}.scene-tab-line:hover .scene-tab-tooltip{opacity:1;transform:translateY(0)}.tooltip-thumbnail{width:100%;height:52px;border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;box-shadow:inset 0 0 6px #00000014}.tooltip-icon{font-size:15px;opacity:.8;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.15)}.tooltip-content{display:flex;flex-direction:column;gap:1px;padding:0}.tooltip-name{font-size:10px;font-weight:700;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip-coords{font-size:8px;color:#666;font-family:Consolas,monospace,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#shadow-panel{display:flex;flex-direction:column;padding:12px 16px;gap:12px}.shadow-row{display:flex;flex-direction:column;gap:4px}.shadow-row-inline{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.shadow-checkbox-label{display:flex;align-items:center;gap:6px;font-size:11px;color:#333;cursor:pointer;font-weight:500}.shadow-label-title{font-size:11px;font-weight:600;color:#444}.shadow-slider-container{display:flex;align-items:center;gap:10px}.shadow-slider-container input[type=range]{flex-grow:1;height:4px;cursor:pointer;accent-color:var(--su-active-border);background:#ccc;border-radius:2px;outline:none;margin:0}.shadow-val-display{font-size:11px;color:#555;min-width:65px;text-align:right;font-family:Consolas,monospace}.shadow-advanced-toggle{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--su-active-border);cursor:pointer;margin-top:6px;user-select:none}.shadow-advanced-content{display:flex;flex-direction:column;gap:8px;background:#00000008;border:1px solid rgba(0,0,0,.06);border-radius:6px;padding:10px;margin-top:4px;transition:all .2s ease}.shadow-advanced-content.collapsed{display:none}.shadow-geo-input{width:60px;font-size:11px;padding:2px 4px;border:1px solid var(--su-border);border-radius:4px;text-align:right;outline:none;background:#fff}.shadow-geo-input:focus{border-color:var(--su-active-border)}.shadow-select{font-size:11px;border:1px solid var(--su-border);background:#fff;border-radius:4px;padding:2px 4px;outline:none;cursor:pointer;flex-grow:1}#fog-panel{display:flex;flex-direction:column;padding:12px 16px;gap:12px}.fog-row{display:flex;flex-direction:column;gap:4px;transition:opacity .2s ease}.fog-row-inline{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.fog-checkbox-label{display:flex;align-items:center;gap:6px;font-size:11px;color:#333;cursor:pointer;font-weight:500}.fog-label-title{font-size:11px;font-weight:600;color:#444}.fog-double-slider-wrapper{position:relative;width:100%;height:24px;display:flex;align-items:center}.fog-slider-track{position:absolute;width:100%;height:4px;background:#ccc;border-radius:2px;pointer-events:none;z-index:1}.fog-double-slider-wrapper input[type=range]{position:absolute;width:100%;height:24px;background:none;pointer-events:none;-webkit-appearance:none;margin:0;outline:none}.fog-double-slider-wrapper input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:12px;height:12px;border-radius:50%;background:var(--su-active-border);cursor:pointer;border:1px solid #1e5a8f;box-shadow:0 1px 3px #0003;transition:transform .1s,background .1s;z-index:2}.fog-double-slider-wrapper input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2);background:#1e5a8f}.fog-double-slider-wrapper input[type=range]::-moz-range-thumb{pointer-events:auto;width:12px;height:12px;border-radius:50%;background:var(--su-active-border);cursor:pointer;border:1px solid #1e5a8f;box-shadow:0 1px 3px #0003;transition:transform .1s,background .1s;z-index:2}.fog-double-slider-wrapper input[type=range]::-moz-range-thumb:hover{transform:scale(1.2);background:#1e5a8f}.fog-double-slider-wrapper input[type=range]::-moz-range-track{background:none;border:none}.fog-val-display{font-size:11px;color:#555;min-width:65px;text-align:right;font-family:Consolas,monospace}.fog-color-picker-wrapper{width:48px;height:20px;overflow:hidden;position:relative;border:1px solid var(--su-border);border-radius:4px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.fog-color-input{position:absolute;width:60px;height:30px;border:none;padding:0;cursor:pointer;background:none;outline:none}.disabled-row{opacity:.45;pointer-events:none}#line-style-panel{display:flex;flex-direction:column;padding:12px 16px;gap:10px}.linestyle-row{display:flex;flex-direction:column;gap:4px}.linestyle-row-inline{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.linestyle-checkbox-label{display:flex;align-items:center;gap:6px;font-size:11px;color:#333;cursor:pointer;font-weight:500}.linestyle-label-title{font-size:11px;font-weight:600;color:#444}.linestyle-slider-container{display:flex;align-items:center;gap:10px}.linestyle-slider-container input[type=range]{flex-grow:1;height:4px;cursor:pointer;accent-color:var(--su-active-border);background:#ccc;border-radius:2px;outline:none;margin:0}.linestyle-val-display{font-size:11px;color:#555;min-width:24px;text-align:right;font-family:Consolas,monospace}.linestyle-color-picker-wrapper{width:48px;height:20px;overflow:hidden;position:relative;border:1px solid var(--su-border);border-radius:4px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.linestyle-color-input{position:absolute;width:60px;height:30px;border:none;padding:0;cursor:pointer;background:none;outline:none}.linestyle-divider{width:100%;height:1px;background:#00000014;margin:2px 0}#text3d-panel{display:flex;flex-direction:column;padding:12px 16px;gap:10px}.text3d-row{display:flex;flex-direction:column;gap:4px}.text3d-row-inline{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.text3d-label-title{font-size:11px;font-weight:600;color:#444}.text3d-textarea,.text3d-select,.text3d-number{border:1px solid var(--su-border);border-radius:4px;background:#fff;color:#222;font-size:11px;outline:none}.text3d-textarea{width:100%;box-sizing:border-box;min-height:58px;padding:6px 7px;resize:vertical;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif}.text3d-select{height:24px;padding:2px 6px;flex:1}.text3d-system-font-btn{height:24px;padding:2px 8px;font-size:11px;white-space:nowrap;cursor:pointer;border:1px solid #888;border-radius:3px;background:#f5f5f5;color:#333;flex-shrink:0}.text3d-system-font-btn:hover{background:#e0e0e0}.text3d-system-font-btn:disabled{opacity:.5;cursor:default}.text3d-number{width:72px;height:22px;padding:2px 5px;text-align:right}.text3d-number.compact{width:56px}.text3d-textarea:focus,.text3d-select:focus,.text3d-number:focus{border-color:var(--su-active-border)}#text3d-depth{width:100%;height:4px;cursor:pointer;accent-color:var(--su-active-border);margin:6px 0 2px}.text3d-val-display{font-size:11px;color:#555;min-width:45px;text-align:right;font-family:Consolas,monospace}.text3d-segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--su-border);border-radius:4px;overflow:hidden}.text3d-segmented button{height:24px;padding:0;border:0;border-right:1px solid var(--su-border);background:#fff;color:#333;font-size:11px}.text3d-segmented button:last-child{border-right:0}.text3d-segmented button.active{background:var(--su-active-border);color:#fff}.text3d-checkbox-label{display:flex;align-items:center;gap:6px;font-size:11px;color:#333;cursor:pointer;font-weight:500}.text3d-color-picker-wrapper{width:48px;height:22px;overflow:hidden;position:relative;border:1px solid var(--su-border);border-radius:4px;background:#fff;cursor:pointer}.text3d-color-input{position:absolute;width:60px;height:32px;border:none;padding:0;cursor:pointer;background:none;outline:none;left:-6px;top:-5px}#skp-loading-overlay{position:fixed;inset:0;z-index:99999;background:#ffffffe0;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}#skp-loading-overlay.active{opacity:1;pointer-events:all}.skp-loading-content{display:flex;flex-direction:column;align-items:center;gap:16px;user-select:none}.skp-loading-logo{width:64px;height:64px;perspective:200px}.skp-cube{width:100%;height:100%;position:relative;transform-style:preserve-3d;animation:skp-cube-spin 3s cubic-bezier(.45,.05,.55,.95) infinite}.skp-cube-face{position:absolute;width:64px;height:64px;border:2px solid #1976d2;background:#1976d21f;border-radius:4px}.skp-cube-face.front{transform:translateZ(32px)}.skp-cube-face.back{transform:rotateY(180deg) translateZ(32px)}.skp-cube-face.left{transform:rotateY(-90deg) translateZ(32px)}.skp-cube-face.right{transform:rotateY(90deg) translateZ(32px)}.skp-cube-face.top{transform:rotateX(90deg) translateZ(32px)}.skp-cube-face.bottom{transform:rotateX(-90deg) translateZ(32px)}@keyframes skp-cube-spin{0%{transform:rotateX(-25deg) rotateY(0)}50%{transform:rotateX(-25deg) rotateY(180deg)}to{transform:rotateX(-25deg) rotateY(360deg)}}.skp-loading-title{font-size:18px;font-weight:600;color:#333;letter-spacing:2px}.skp-loading-progress-track{width:260px;height:4px;background:#e0e0e0;border-radius:2px;overflow:hidden;position:relative}.skp-loading-progress-fill{height:100%;width:0%;background:#1976d2;border-radius:2px;transition:width .4s ease;position:relative}.skp-loading-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.5) 50%,transparent 100%);animation:skp-shimmer 1.4s ease-in-out infinite}@keyframes skp-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skp-loading-text{font-size:13px;color:#888;min-height:20px;text-align:center}
