*{box-sizing:border-box;margin:0;padding:0}body{color:#e0e0e0;background:#0f0f1a;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}#app{height:100vh;display:flex}#sidebar{background:#16162a;border-right:1px solid #2a2a4a;flex-direction:column;gap:16px;width:280px;min-width:280px;padding:20px;display:flex;overflow-y:auto}#sidebar h1{color:#fff;border-bottom:1px solid #2a2a4a;padding-bottom:12px;font-size:18px;font-weight:700}.panel{flex-direction:column;gap:8px;display:flex}.panel h2{text-transform:uppercase;letter-spacing:.5px;color:#88a;font-size:13px;font-weight:600}.hint{color:#668;font-size:11px}.upload-btn{text-align:center;cursor:pointer;color:#aac;background:#2a2a5a;border:1px dashed #4a4a8a;border-radius:8px;padding:10px 16px;font-size:13px;transition:all .2s;display:block}.upload-btn:hover{color:#fff;background:#3a3a6a;border-color:#6a6aaa}.upload-btn input[type=file]{display:none}.option{color:#ccd;align-items:center;gap:8px;font-size:13px;display:flex}.option input[type=checkbox]{accent-color:#6a6aff}.option input[type=color]{cursor:pointer;background:0 0;border:1px solid #4a4a8a;border-radius:4px;width:32px;height:24px}.info-text{color:#66a;font-size:12px;line-height:1.6}#texture-preview-container{border:1px solid #2a2a4a;border-radius:8px;overflow:hidden}#texture-preview-container.hidden{display:none}#texture-preview{width:100%;display:block}#viewport{flex:1;position:relative}#canvas{width:100%;height:100%;display:block}#drop-overlay{z-index:10;background:#6a6aff26;border:3px dashed #6a6aff;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#drop-overlay.hidden{display:none}.drop-message{color:#6a6aff;font-size:24px;font-weight:600}#loading{z-index:20;background:#0f0f1ad9;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}#loading.hidden{display:none}.spinner{border:3px solid #2a2a5a;border-top-color:#6a6aff;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#loading p{color:#88a;font-size:14px}
