/* Estilos adicionales y animaciones para ImageHub */

/* Scrollbar personalizada */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #090d16;
}

::-webkit-scrollbar-thumb {
  background: #1e293b;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #334155;
}

/* Transición suave para modales */
.animate-in {
  animation: modalFadeIn 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes modalFadeIn {
  from {
    opacity: 0;
    transform: scale(0.96) translateY(8px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

/* Tarjeta de imagen con hover y selección */
.image-card {
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.image-card:hover {
  transform: translateY(-2px);
}

.image-card.selected {
  border-color: #6366f1 !important;
  background-color: rgba(99, 102, 241, 0.08) !important;
}

/* Checkbox flotante visible cuando la tarjeta está seleccionada o en hover */
.image-card .card-checkbox {
  opacity: 0;
  transition: opacity 0.15s ease;
}

.image-card:hover .card-checkbox,
.image-card.selected .card-checkbox {
  opacity: 1;
}

/* Botones de acción flotantes en hover */
.image-card .card-actions {
  opacity: 0;
  transform: translateY(4px);
  transition: all 0.2s ease;
}

.image-card:hover .card-actions {
  opacity: 1;
  transform: translateY(0);
}

/* Toast animations */
.toast {
  animation: toastSlideIn 0.25s ease-out forwards;
}

.toast.hiding {
  animation: toastSlideOut 0.2s ease-in forwards;
}

@keyframes toastSlideIn {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes toastSlideOut {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(20px);
  }
}
