/* Image Upload Component Styles */

.image-upload-container {
  border: 2px solid #e5e7eb;
  border-radius: 0.5rem;
  transition: all 0.2s ease-in-out;
}

/* Base state - no file uploaded */
.image-upload-container.no-file .file-icon,
.image-upload-container.no-file .file-text {
  display: none;
}

.image-upload-container.no-file .upload-icon,
.image-upload-container.no-file .upload-text {
  display: block;
}

/* File uploaded state */
.image-upload-container.has-file {
  border-color: #10b981;
  background-color: #f0fdf4;
}

.image-upload-container.has-file .file-icon,
.image-upload-container.has-file .file-text {
  display: block;
}

.image-upload-container.has-file .upload-icon,
.image-upload-container.has-file .upload-text {
  display: none;
}

/* When preview image is visible, hide file icon and text */
.image-upload-container.has-preview .file-icon,
.image-upload-container.has-preview .file-text {
  display: none !important;
}

/* Error state */
.image-upload-container.has-error {
  border-color: #982C1C;
  background-color: #fef2f2;
}

.image-upload-container.has-error .error-text {
  display: block;
  color: #982C1C;
}

.image-upload-container.has-error .checkmark-indicator,
.image-upload-container.has-error .file-icon,
.image-upload-container.has-error .file-text {
  display: none;
}

.image-upload-container:not(.has-error) .error-text {
  display: none;
}

/* Uploading state */
.image-upload-container.uploading {
  border-color: #3b82f6;
  background-color: #eff6ff;
}

.image-upload-container.uploading::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(59, 130, 246, 0.1) 50%,
    transparent 100%
  );
  animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

/* Hover effects */
.image-upload-container:hover:not(.uploading) {
  border-color: #9ca3af;
  background-color: #f3f4f6;
  cursor: pointer;
}

.image-upload-container.has-file:hover {
  border-color: #059669;
}

.image-upload-container.has-error:hover {
  border-color: #dc2626;
}

/* Dual Image Upload - Drag and Drop */
.dual-image-upload [data-dual-image-upload-target="dropzone"].drag-over .image-upload-container {
  border-color: #3b82f6;
  background-color: #eff6ff;
  border-style: dashed;
}

/* Remove button - hidden by default, shown when image is uploaded */
.image-upload-container .remove-button {
  display: none;
}

.image-upload-container.has-file .remove-button {
  display: block;
}

.image-upload-container.uploading .remove-button {
  display: none;
}
