.pfu-uploader { margin: 0 0 22px; }
.single_add_to_cart_button.pfu-locked { opacity: .5 !important; pointer-events: none; }
.pfu-slots { display: flex; flex-wrap: wrap; gap: 14px; }
.pfu-slot { flex: 1 1 150px; max-width: 190px; border: 1px solid #e3e3e3; border-radius: 12px; padding: 12px; text-align: center; background: #fff; }
.pfu-thumb { width: 100%; aspect-ratio: 3 / 4; border-radius: 8px; background: #f3f3f3; display: flex; align-items: center; justify-content: center; cursor: pointer; overflow: hidden; border: 2px dashed #cfcfcf; }
.pfu-thumb.done { border-style: solid; border-color: #7aa37a; }
.pfu-thumb span { font-size: 34px; color: #999; line-height: 1; }
.pfu-thumb img { width: 100%; height: 100%; object-fit: cover; }
.pfu-meta { margin-top: 8px; font-size: 14px; line-height: 1.35; }
.pfu-meta small { color: #777; }
.pfu-modal { position: fixed; inset: 0; background: rgba(0, 0, 0, .75); z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; }
.pfu-modal-inner { background: #fff; border-radius: 12px; padding: 16px; max-width: 520px; width: 100%; }
.pfu-crop-area { height: 60vh; max-height: 520px; background: #f2f2f2; }
.pfu-crop-area img { max-width: 100%; display: block; }
.pfu-controls { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 12px; }
.pfu-btn { border: 1px solid #4b5563; background: #eceff1; color: #1f2937; border-radius: 6px; padding: .55em 1.15em; cursor: pointer; font-size: 14px; font-weight: 600; }
.pfu-btn:hover { background: #dbe0e4; }
.pfu-use { background: #2271b1; border-color: #1c5d92; color: #fff; }
.pfu-use:hover { background: #185a8f; }
.pfu-hint { text-align: center; color: #777; font-size: 13px; margin-top: 10px; }
.pfu-warn { margin-top: 8px; padding: 6px 8px; border-radius: 6px; font-size: 12px; font-weight: 700; line-height: 1.3; color: #fff; animation: pfu-blink 1s steps(1, end) infinite; }
@keyframes pfu-blink {
	0%, 49% { background: #c0392b; color: #fff; }
	50%, 100% { background: #1a1a1a; color: #ffd400; }
}
