*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden;background:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{width:100vw;height:100vh}.canvas-container{width:100vw;height:100vh;position:fixed;top:0;left:0}.drop-overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000d9;z-index:100;transition:opacity .3s}.drop-overlay.hidden{opacity:0;pointer-events:none}.drop-overlay.drag-over{background:#3b82f64d}.drop-zone{border:3px dashed #666;padding:60px 80px;text-align:center;transition:all .3s}.drop-overlay.drag-over .drop-zone{border-color:#3b82f6;background:#3b82f61a}.drop-zone h2{color:#fff;font-size:24px;margin-bottom:10px}.drop-zone p{color:#888;font-size:14px}.drop-icon{font-size:48px;margin-bottom:20px}.browse-btn{margin-top:20px;padding:12px 24px;background:#3b82f6;color:#fff;border:none;font-size:14px;cursor:pointer;transition:background .2s}.browse-btn:hover{background:#2563eb}.hidden-input{display:none}.controls-hint{position:fixed;bottom:20px;left:50%;transform:translate(-50%);color:#fff;background:#000000b3;padding:10px 20px;font-size:13px;z-index:50;opacity:0;transition:opacity .3s;text-align:center;max-width:90%;pointer-events:none}.controls-hint.visible{opacity:1}.side-panel{position:fixed;top:0;right:0;bottom:0;width:240px;background:#000000d9;padding:16px;z-index:50;opacity:0;pointer-events:none;transition:opacity .3s;display:flex;flex-direction:column}.side-panel.visible{opacity:1;pointer-events:auto}.side-panel .panel-btn{width:100%;padding:10px 16px;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);font-size:13px;cursor:pointer;transition:background .2s;margin-bottom:8px;flex:0 0 auto}.side-panel .panel-btn:hover{background:#fff3}.export-section{margin-top:auto;display:flex;flex-direction:column}.export-section .color-picker-row{margin-bottom:8px}.export-section .export-btn{margin-bottom:0}.color-picker-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;margin-bottom:8px}.color-picker-label{color:#aaa;font-size:13px}.color-picker-input{width:40px;height:28px;padding:0;border:1px solid rgba(255,255,255,.2);background:transparent;cursor:pointer}.color-picker-input::-webkit-color-swatch-wrapper{padding:2px}.color-picker-input::-webkit-color-swatch{border:none}.logo-panel{display:none;width:100%;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px;flex:0 0 auto}.logo-panel.visible{display:block}.logo-panel h3{color:#fff;font-size:14px;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}.panel-preview{margin-bottom:15px;display:flex;justify-content:center;background:#0000004d;border-radius:4px;padding:10px}.panel-preview img{max-width:100%;max-height:80px;object-fit:contain}.panel-control{margin-bottom:14px}.panel-control input[type=range]{width:100%;margin-top:8px;accent-color:#3b82f6}.panel-row{display:flex;align-items:center}.panel-row label{color:#aaa;font-size:12px;width:50px;flex-shrink:0}.number-input{display:flex;align-items:center;flex:1}.number-input input[type=number]{width:60px;padding:6px 8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:13px;text-align:center;-moz-appearance:textfield}.number-input input[type=number]::-webkit-outer-spin-button,.number-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num-btn{width:28px;height:28px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:16px;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}.num-btn:hover{background:#fff3}.num-btn.minus{border-right:none}.num-btn.plus{border-left:none}.panel-actions{display:flex;gap:8px;margin-top:15px;padding-top:15px;border-top:1px solid rgba(255,255,255,.1)}.panel-btn{flex:1;padding:8px 12px;border:none;font-size:12px;cursor:pointer;transition:background .2s}.panel-btn.delete{background:#dc2626;color:#fff}.panel-btn.delete:hover{background:#b91c1c}.logo-library{padding:16px 0;border-top:1px solid rgba(255,255,255,.1);margin-top:16px}.library-header{display:flex;align-items:center;margin-bottom:12px}.library-header h3{color:#fff;font-size:14px;flex:1;margin:0}.library-add-btn{width:24px;height:24px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:18px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .2s}.library-add-btn:hover{background:#fff3}.library-empty{color:#666;font-size:12px;text-align:center;padding:20px 0}.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.library-item{position:relative;aspect-ratio:1;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:4px;transition:border-color .2s}.library-item:hover{border-color:#ffffff4d}.library-item img{max-width:100%;max-height:100%;object-fit:contain}.library-item-delete{position:absolute;top:2px;right:2px;width:18px;height:18px;background:#dc2626e6;border:none;color:#fff;font-size:14px;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;opacity:0;transition:opacity .2s}.library-item:hover .library-item-delete{opacity:1}.library-item-delete:hover{background:#b91c1c}.logo-drag-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#3b82f633;display:flex;align-items:center;justify-content:center;z-index:90;opacity:0;pointer-events:none;transition:opacity .2s}.logo-drag-overlay.visible{opacity:1}.logo-drag-overlay .drag-message{background:#000c;color:#fff;padding:20px 40px;font-size:16px}.export-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:200;opacity:0;pointer-events:none;transition:opacity .3s}.export-overlay.visible{opacity:1;pointer-events:auto}.export-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.export-text{color:#fff;font-size:18px;margin-top:20px}.debug-hint{position:fixed;top:60px;left:20px;background:#ff6400e6;color:#fff;padding:10px 15px;border-radius:6px;font-family:monospace;font-size:12px;z-index:1000;line-height:1.6}
