.progress-bar {
  transition: width 0.3s ease;
}

.card-hover:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

.card-hover {
  transition: all 0.3s ease;
}

.flashing-animation {
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% { opacity: 1; }
  50% { opacity: 0.6; }
  100% { opacity: 1; }
}

.tab-button.active {
  background-color: rgb(219 234 254);
  color: rgb(29 78 216);
}

.tab-button:not(.active) {
  background-color: rgb(243 244 246);
  color: rgb(55 65 81);
}

.tab-button:hover {
  background-color: rgb(229 231 235);
}

.os-image-card {
  transition: all 0.2s ease;
}

.os-image-card:hover {
  border-color: rgb(147 197 253);
  background-color: rgb(248 250 252);
}

.os-image-card.selected {
  border-color: rgb(59 130 246);
  background-color: rgb(239 246 255);
}

.device-card {
  transition: all 0.2s ease;
}

.device-card:hover {
  background-color: rgb(243 244 246);
}

.device-card.selected {
  background-color: rgb(219 234 254);
  border-color: rgb(59 130 246);
}

.rotate-animation {
  animation: rotate 1s linear infinite;
}

@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.bounce-animation {
  animation: bounce 1s ease-in-out infinite;
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-10px);
  }
  60% {
    transform: translateY(-5px);
  }
}

/* Custom scrollbar for OS list */
.overflow-y-auto::-webkit-scrollbar {
  width: 6px;
}

.overflow-y-auto::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 3px;
}

.overflow-y-auto::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 3px;
}

.overflow-y-auto::-webkit-scrollbar-thumb:hover {
  background: #a8a8a8;
}

/* Loading skeleton animations */
.skeleton {
  animation: skeleton-loading 1s linear infinite alternate;
}

@keyframes skeleton-loading {
  0% {
    background-color: hsl(200, 20%, 80%);
  }
  100% {
    background-color: hsl(200, 20%, 95%);
  }
}

.fade-in {
  animation: fadeIn 0.5s ease-in;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.slide-up {
  animation: slideUp 0.3s ease-out;
}

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