body { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Microsoft YaHei', sans-serif; background: transparent; overflow: hidden; } .export-container { width: 100%; height: 100vh; display: flex; flex-direction: column; background: white; border-radius: 16px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); max-width: 900px; max-height: 80vh; margin: 0 auto; } .export-header { padding: 24px 32px; border-bottom: 1px solid #e5e7eb; } .export-header h2 { margin: 0; font-size: 20px; font-weight: 600; color: #1f2937; } .export-content { flex: 1; padding: 24px 32px; overflow-y: auto; display: flex; flex-direction: column; gap: 24px; } .export-section h3 { margin: 0 0 12px 0; font-size: 15px; font-weight: 600; color: #374151; } /* Spritesheet 预览 */ .preview-box { width: 100%; min-height: 300px; background: repeating-conic-gradient(#f3f4f6 0% 25%, white 0% 50%) 50% / 20px 20px; border: 2px solid #e5e7eb; border-radius: 8px; display: flex; align-items: center; justify-content: center; position: relative; overflow: auto; } #spritesheetCanvas { max-width: 100%; max-height: 100%; display: none; } #spritesheetCanvas.show { display: block; } .preview-placeholder { position: absolute; color: #9ca3af; font-size: 15px; } .preview-placeholder.hide { display: none; } /* 参考图上传 */ .reference-upload { width: 100%; } .reference-preview { width: 100%; height: 200px; border: 2px dashed #d1d5db; border-radius: 8px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; background: #f9fafb; } .reference-preview:hover { border-color: #9ca3af; background: #f3f4f6; } .reference-preview.has-image { border-style: solid; border-color: #667eea; background: white; } .upload-hint { display: flex; flex-direction: column; align-items: center; gap: 8px; color: #9ca3af; } .upload-hint svg { color: #d1d5db; } .upload-hint p { margin: 0; font-size: 14px; } .reference-preview img { max-width: 100%; max-height: 100%; object-fit: contain; } /* 操作按钮 */ .export-actions { padding: 20px 32px; border-top: 1px solid #e5e7eb; display: flex; gap: 12px; justify-content: flex-end; } .export-btn { padding: 12px 28px; border: none; border-radius: 8px; font-size: 15px; cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); font-weight: 500; letter-spacing: 0.3px; min-width: 100px; } .export-cancel { background: #f3f4f6; color: #6b7280; border: 1px solid #e5e7eb; } .export-cancel:hover { background: #e5e7eb; color: #4b5563; border-color: #d1d5db; } .export-cancel:active { transform: scale(0.98); } .export-confirm { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4); } .export-confirm:hover { box-shadow: 0 6px 16px rgba(102, 126, 234, 0.5); transform: translateY(-1px); } .export-confirm:active { transform: translateY(0) scale(0.98); } .export-confirm:disabled { background: #d1d5db; color: #9ca3af; box-shadow: none; cursor: not-allowed; transform: none; }