.product-file-upload { margin-top: 8px; }
.product-file-upload .product-file-dropzone { display: flex; min-height: 132px; align-items: center; justify-content: center; padding: 24px; border: 2px dashed #aebdca; border-radius: 12px; background: linear-gradient(145deg, #fbfdff, #f2f7fb); color: #344454; text-align: center; cursor: pointer; transition: border-color .2s, background .2s, box-shadow .2s, transform .2s; }
.product-file-upload .product-file-dropzone:hover, .product-file-upload .product-file-dropzone:focus, .product-file-upload .product-file-dropzone.is-dragover { border-color: #1976d2; background: #edf6ff; box-shadow: 0 8px 24px rgba(25, 118, 210, .12); outline: 0; transform: translateY(-1px); }
.product-file-prompt { display: flex; flex-direction: column; gap: 5px; pointer-events: none; }
.product-file-prompt strong { font-size: 15px; }
.product-file-prompt small { color: #708090; }
.product-file-icon { color: #1976d2; font-size: 30px; line-height: 1; }
.product-file-prompt.is-uploading { opacity: .65; }
.product-file-list { display: grid; gap: 8px; margin-top: 12px; }
.product-file-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #dce5ec; border-radius: 8px; background: #fff; }
.product-file-item-icon { font-size: 20px; }
.product-file-item-info { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 2px; }
.product-file-item-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-file-item-info small { color: #708090; }
.product-file-item.is-error { border-color: #e6a4a4; background: #fff8f8; }
.product-file-remove { width: 28px; height: 28px; border: 0; border-radius: 50%; background: #f2f4f6; color: #66717b; font-size: 20px; line-height: 1; cursor: pointer; }
.product-file-remove:hover, .product-file-remove:focus { background: #fbe4e4; color: #b42318; outline: 0; }
.product-file-progress { height: 7px; margin-top: 12px; overflow: hidden; border-radius: 4px; background: #e7edf2; }
.product-file-progress[aria-hidden="true"] { display: none; }
.product-file-progress-bar { width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1976d2, #42a5f5); transition: width .15s ease; }
.product-file-progress-text { min-height: 20px; margin-top: 5px; color: #607080; font-size: 12px; text-align: right; }
