/* JavaScript Controller Related Styles */

/* File Upload Controller States */
.file-upload--uploading {
  opacity: 0.8;
  pointer-events: none;
  border-color: #4338ca;
  background: rgba(67, 56, 202, 0.08);
  animation: uploadPulse 1.5s ease-in-out infinite;
}

@keyframes uploadPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.8;
  }
  50% {
    transform: scale(1.02);
    opacity: 0.9;
  }
}

.file-upload--ready {
  opacity: 1;
  pointer-events: auto;
}

.file-upload--success {
  border-color: #059669;
  background: rgba(5, 150, 105, 0.08);
  color: #047857;
}

.file-upload--success .file-upload-icon {
  color: #059669;
}

.file-upload--success .file-upload-text {
  color: #047857;
  font-weight: 700;
}

.file-upload--error {
  border-color: #dc2626;
  background: rgba(220, 38, 38, 0.08);
  color: #7f1d1d;
}

.file-upload--error .file-upload-icon {
  color: #dc2626;
}

.file-upload--error .file-upload-text {
  color: #7f1d1d;
  font-weight: 700;
}

.file-upload--error .file-upload-hint {
  color: #b91c1c;
  font-weight: 600;
}

/* Preview Background Styles */
.preview-background {
  background-size: cover;
  background-position: center;
}

/* Share Notification */
.share-notification {
  position: fixed;
  top: 2rem;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(10px);
  color: white;
  padding: 1rem 2rem;
  border-radius: 25px;
  font-size: 1rem;
  font-weight: 600;
  z-index: 1000;
  animation: slideDown 0.3s ease-out;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}


@keyframes notificationSlideUp {
  from {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
  to {
    opacity: 0;
    transform: translateX(-50%) translateY(-20px);
  }
}