* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: Arial, sans-serif; background: #f5f5f5; padding: 20px; display: flex; align-items: center; justify-content: center; min-height: 100vh; }
.container { max-width: 600px; width: 100%; background: white; padding: 30px; border-radius: 8px; }
h1 { text-align: center; margin-bottom: 20px; }
.form-group { margin-bottom: 15px; }
.form-group label { display: block; margin-bottom: 5px; font-weight: bold; color: #333; }
.form-group input[type="text"] { width: 100%; padding: 8px 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; }
.upload-area { border: 2px dashed #ccc; padding: 40px; text-align: center; cursor: pointer; border-radius: 4px; }
.upload-area:hover { border-color: #999; background: #fafafa; }
.upload-area.dragover { border-color: #666; background: #f0f0f0; }
.hint { font-size: 12px; color: #999; margin-top: 5px; }
input[type="file"] { display: none; }
.file-info, .progress, .message { margin-top: 15px; padding: 10px; border-radius: 4px; display: none; }
.file-info.show, .progress.show, .message.show { display: block; }
.file-info { background: #f9f9f9; }
.progress { background: #e0e0e0; height: 30px; line-height: 30px; text-align: center; }
.message.success { background: #d4edda; color: #155724; }
.message.error { background: #f8d7da; color: #721c24; }
.message.info { background: #d1ecf1; color: #0c5460; }
