:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.options-menu{width:280px;height:100%;background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;box-shadow:2px 0 4px #0000001a}.options-menu-header{padding:1rem;border-bottom:1px solid #e0e0e0;background:#f8f9fa}.options-menu-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#333}.options-menu-content{flex:1;overflow-y:auto;padding:1rem}.option-section{margin-bottom:1.5rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e0e0e0}.option-header{margin-bottom:.75rem}.option-header h3{margin:0;font-size:1rem;font-weight:600;color:#333;text-transform:capitalize}.option-group-selector{margin-bottom:.75rem}.option-group-selector label{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:#666}.option-group-selector select{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.875rem;background:#fff;color:#333;cursor:pointer;transition:border-color .2s}.option-group-selector select:hover{border-color:#646cff}.option-group-selector select:focus{outline:none;border-color:#646cff;box-shadow:0 0 0 2px #646cff33}.option-color-picker{margin-bottom:.75rem}.option-color-picker label{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:#666}.option-color-picker input[type=color]{width:100%;height:40px;border:1px solid #ccc;border-radius:4px;cursor:pointer;padding:0;background:none}.option-color-picker input[type=color]::-webkit-color-swatch-wrapper{padding:0}.option-color-picker input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}.option-visibility-toggle{margin-bottom:.75rem}.option-visibility-toggle label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:#666;cursor:pointer}.option-visibility-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#646cff}.option-visibility-toggle span{-webkit-user-select:none;user-select:none}.options-menu-content::-webkit-scrollbar{width:8px}.options-menu-content::-webkit-scrollbar-track{background:#f1f1f1}.options-menu-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.options-menu-content::-webkit-scrollbar-thumb:hover{background:#aaa}.model3d-preview-wrapper{display:flex;width:100%;height:100%;min-height:500px}.model3d-preview-container{position:relative;flex:1;height:100%;min-height:500px;background:#f5f5f5;border:2px dashed transparent;border-radius:8px;overflow:hidden;transition:border-color .2s}.model3d-preview-container.dragging{border-color:#646cff;background:#e8e8e8}.model3d-canvas{display:block;width:100%;height:100%;outline:none}.model3d-overlay{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;background:#f5f5f5b3;transition:opacity .2s;z-index:1}.model3d-instructions{text-align:center;color:#333;pointer-events:all}.model3d-instructions p{margin:0 0 1rem;font-size:1.1rem;font-weight:500}.model3d-file-input-label{display:inline-block;padding:.5rem 1rem;background:#646cff;color:#fff;border-radius:4px;cursor:pointer;transition:background .2s}.model3d-file-input-label:hover{background:#535bf2}.model3d-error{position:absolute;top:1rem;left:50%;transform:translate(-50%);background:#f44;color:#fff;padding:.75rem 1rem;border-radius:4px;display:flex;align-items:center;gap:1rem;z-index:10;pointer-events:all}.model3d-error button{background:transparent;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.model3d-error button:hover{background:#fff3}.app-container{width:100%;height:100vh;display:flex;flex-direction:column}.app-main{flex:1;padding:0;display:flex;min-height:0}
