*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-tertiary: #0f3460;--bg-input: #1e2a4a;--text-primary: #e8e8e8;--text-secondary: #a8a8a8;--accent: #e94560;--accent-hover: #ff6b6b;--accent-active: #c73850;--border: #333;--border-light: #444;--success: #4caf50;--warning: #ff9800}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);overflow:hidden;height:100vh}.app{display:flex;flex-direction:column;height:100vh}.toolbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap}.toolbar h1{font-size:16px;font-weight:600;color:var(--accent);margin-right:8px}.toolbar-group{display:flex;align-items:center;gap:6px}.toolbar-group label{font-size:12px;color:var(--text-secondary)}.toolbar-separator{width:1px;height:24px;background-color:var(--border);margin:0 4px}.file-btn{position:relative;display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.file-btn:hover{background-color:var(--accent);border-color:var(--accent)}.file-btn input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}button,.toolbar-btn{padding:6px 12px;background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}button:hover,.toolbar-btn:hover{background-color:var(--accent);border-color:var(--accent)}button:disabled,.toolbar-btn:disabled{opacity:.5;cursor:not-allowed}button:disabled:hover,.toolbar-btn:disabled:hover{background-color:var(--bg-tertiary);border-color:var(--border)}.mode-group{background-color:var(--bg-primary);border-radius:4px;padding:2px}.mode-btn{padding:5px 10px;border:none;background-color:transparent}.mode-btn:hover{background-color:var(--bg-tertiary);border:none}.mode-btn.active{background-color:var(--accent);color:#fff}.toggle-group{display:flex;align-items:center;gap:4px}.toggle-group input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent)}.main-content{display:flex;flex:1;overflow:hidden}#viewport{flex:1;position:relative;background-color:var(--bg-primary)}#viewport.drag-over{outline:3px dashed var(--accent);outline-offset:-3px}#viewport canvas{display:block}.side-panel{width:320px;background-color:var(--bg-secondary);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.panel-section{border-bottom:1px solid var(--border)}.panel-header{padding:10px 12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);background-color:var(--bg-primary);display:flex;align-items:center;gap:6px}.panel-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.panel-header.collapsible:hover{background-color:var(--bg-tertiary)}.collapse-icon{font-size:10px;transition:transform .2s}.panel-header.collapsed .collapse-icon{transform:rotate(-90deg)}.panel-content{padding:8px;max-height:400px;overflow-y:auto}.panel-content.collapsed{display:none}.hierarchy-tree{font-size:12px}.hierarchy-empty{color:var(--text-secondary);font-style:italic;text-align:center;padding:20px}.hierarchy-item{display:flex;align-items:center;padding:4px 6px;border-radius:3px;cursor:pointer;gap:4px}.hierarchy-item:hover{background-color:var(--bg-tertiary)}.hierarchy-item.selected{background-color:var(--accent);color:#fff}.hierarchy-indent{flex-shrink:0}.hierarchy-expander{width:14px;font-size:10px;text-align:center;flex-shrink:0;color:var(--text-secondary)}.hierarchy-icon{font-size:14px;flex-shrink:0}.hierarchy-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hierarchy-children{margin-left:0}.hierarchy-children.collapsed{display:none}.context-menu{position:fixed;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;box-shadow:0 4px 12px #0000004d;min-width:160px;z-index:1000;padding:4px 0}.context-menu-item{padding:8px 12px;font-size:12px;cursor:pointer}.context-menu-item:hover{background-color:var(--bg-tertiary)}.context-menu-danger{color:var(--accent)}.context-menu-separator{height:1px;background-color:var(--border);margin:4px 0}.property-section{margin-bottom:16px}.property-section .section-header{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border)}.property-row{display:flex;align-items:center;margin-bottom:6px;gap:8px}.property-row>label{font-size:11px;color:var(--text-secondary);width:70px;flex-shrink:0}.prop-input{flex:1;padding:4px 8px;background-color:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-primary);font-size:11px;font-family:SF Mono,Monaco,Consolas,monospace}.prop-input:focus{outline:none;border-color:var(--accent)}.prop-input.prop-text{font-family:inherit}.prop-readonly{font-size:11px;color:var(--text-secondary);font-style:italic}.prop-checkbox{width:14px;height:14px;accent-color:var(--accent)}.prop-select{flex:1;padding:4px 8px;background-color:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-primary);font-size:11px}.vec3-inputs{display:flex;gap:4px;flex:1}.vec3-inputs input{width:60px;text-align:center}.property-empty{text-align:center;padding:20px;color:var(--text-secondary);font-size:12px}.uv-editor-content{display:flex;flex-direction:column;gap:12px}.uv-editor-empty{text-align:center;padding:20px;color:var(--text-secondary);font-size:12px}.uv-face{background-color:var(--bg-primary);border-radius:4px;padding:8px}.uv-face-header{font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.uv-face-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}.uv-face-row>label:first-child{font-size:10px;color:var(--text-secondary);width:50px;flex-shrink:0}.uv-input{width:50px;padding:3px 6px;background-color:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-primary);font-size:10px;font-family:SF Mono,Monaco,Consolas,monospace;text-align:center}.uv-input:focus{outline:none;border-color:var(--accent)}.uv-checkbox{width:12px;height:12px;accent-color:var(--accent)}.uv-checkbox-label{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--text-secondary)}.uv-select{padding:3px 6px;background-color:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-primary);font-size:10px}.texture-panel{display:flex;flex-direction:column;gap:12px}.texture-preview-container{background-color:var(--bg-primary);border-radius:4px;padding:8px;display:flex;align-items:center;justify-content:center;min-height:100px}.texture-preview-placeholder{color:var(--text-secondary);font-size:12px;display:flex;align-items:center;justify-content:center}.texture-preview{max-width:100%;max-height:150px;image-rendering:pixelated;border:1px solid var(--border)}.texture-info{text-align:center;font-size:11px;color:var(--text-secondary)}.texture-actions{display:flex;gap:8px}.panel-btn{flex:1;padding:6px 12px;background-color:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:11px;cursor:pointer;transition:background-color .15s}.panel-btn:hover:not(:disabled){background-color:var(--bg-secondary)}.panel-btn:disabled{opacity:.5;cursor:not-allowed}.texture-mode-toggle{padding-bottom:8px;border-bottom:1px solid var(--border)}.toggle-label{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-secondary);cursor:pointer}.toggle-label input[type=checkbox]{cursor:pointer}.texture-slots-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.texture-slots-grid .texture-slot:last-child{grid-column:span 2}.texture-slot{display:flex;flex-direction:column;gap:4px}.texture-slot-header{display:flex;justify-content:space-between;align-items:center}.texture-slot-label{font-size:10px;color:var(--text-secondary);font-weight:500}.texture-load-btn{padding:2px 6px;background:var(--bg-input);border:1px solid var(--border);border-radius:3px;cursor:pointer;font-size:10px}.texture-load-btn:hover{background:var(--bg-secondary)}.texture-preview-container.small{min-height:60px;padding:4px}.texture-preview-container.small .texture-preview{max-height:80px}.texture-preview-container.small .texture-preview-placeholder{font-size:10px}.status-bar{display:flex;align-items:center;gap:16px;padding:6px 12px;background-color:var(--bg-secondary);border-top:1px solid var(--border);font-size:11px;color:var(--text-secondary)}.status-bar #status{flex:1}.status-bar #selection-info{color:var(--accent)}.status-bar #mode-info{padding:2px 8px;background-color:var(--bg-tertiary);border-radius:3px}.status-bar .shortcuts{display:flex;gap:12px}.status-bar kbd{padding:1px 4px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:2px;font-family:inherit;font-size:10px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@media(max-width:768px){.side-panel{display:none}.toolbar{padding:6px 10px}.toolbar h1{font-size:14px}.status-bar .shortcuts{display:none}}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.dialog{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 32px #0006;min-width:320px;max-width:420px;animation:dialog-appear .15s ease-out}@keyframes dialog-appear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.dialog-header{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border)}.dialog-icon{font-size:20px;color:var(--warning)}.dialog-title{font-size:14px;font-weight:600;color:var(--text-primary)}.dialog-body{padding:20px}.dialog-body p{font-size:13px;color:var(--text-secondary);line-height:1.5}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;background-color:var(--bg-primary);border-top:1px solid var(--border);border-radius:0 0 8px 8px}.dialog-btn{padding:8px 16px;font-size:12px;font-weight:500;border-radius:4px;cursor:pointer;transition:all .2s}.dialog-btn-cancel{background-color:transparent;border:1px solid var(--border);color:var(--text-secondary)}.dialog-btn-cancel:hover{background-color:var(--bg-tertiary);border-color:var(--border-light);color:var(--text-primary)}.dialog-btn-confirm{background-color:var(--accent);border:1px solid var(--accent);color:#fff}.dialog-btn-confirm:hover{background-color:var(--accent-hover);border-color:var(--accent-hover)}.debug-section{padding:8px}.debug-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.debug-row>label:first-child{min-width:90px;font-size:12px;color:var(--text-secondary)}.debug-select{flex:1;padding:6px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:12px;cursor:pointer}.debug-select:focus{border-color:var(--accent);outline:none}.debug-input{width:60px;padding:6px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:12px}.debug-input:focus{border-color:var(--accent);outline:none}.debug-checkbox-label{display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer}.debug-btn{flex:1;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:12px;cursor:pointer;transition:background-color .2s}.debug-btn:hover{background:var(--accent)}.debug-btn:active{background:var(--accent-active)}.debug-btn-small{padding:6px 10px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:14px;cursor:pointer;transition:background-color .2s;min-width:36px}.debug-btn-small:hover{background:var(--accent)}.debug-btn-small:active{background:var(--accent-active)}.debug-btn-small.active{background:var(--accent);border-color:var(--accent)}.debug-value{min-width:40px;text-align:center;font-size:12px;color:var(--text-primary)}.debug-info{margin-top:12px;padding:10px;background:var(--bg-input);border-radius:4px;font-size:11px;line-height:1.6;color:var(--text-secondary)}.brush-panel{display:flex;flex-direction:column;gap:12px}.brush-setting{display:flex;flex-direction:column;gap:4px}.brush-setting label{font-size:11px;color:var(--text-secondary)}.brush-color-row{display:flex;gap:8px;align-items:center}.brush-color-row input[type=color]{width:40px;height:28px;padding:0;border:1px solid var(--border);border-radius:3px;background:var(--bg-input);cursor:pointer}.brush-color-row input[type=text]{flex:1;padding:4px 8px;background-color:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-primary);font-size:11px;font-family:monospace}.brush-setting input[type=range]{width:100%;height:4px;background:var(--bg-input);border-radius:2px;outline:none;-webkit-appearance:none}.brush-setting input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--accent);border-radius:50%;cursor:pointer}.brush-setting input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border-radius:50%;cursor:pointer;border:none}.brush-info{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.brush-hint{font-size:11px;color:var(--text-secondary);text-align:center;margin:0}
