/* Scrollbar hide */
.scrollbar-hide::-webkit-scrollbar { display: none; }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }

/* Pulse for active agents */
@keyframes activePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0.2); }
  50% { box-shadow: 0 0 12px 2px rgba(34,197,94,0.15); }
}
.agent-active { animation: activePulse 2s ease-in-out infinite; }

/* Urgent pulse */
@keyframes urgentPulse {
  0%, 100% { border-left-color: #ef4444; }
  50% { border-left-color: #f59e0b; }
}
.queue-urgent { animation: urgentPulse 1.5s ease-in-out infinite; }

/* Skeleton shimmer */
@keyframes shimmer {
  0% { background-position: -200px 0; }
  100% { background-position: calc(200px + 100%) 0; }
}
.skeleton {
  background: linear-gradient(90deg, #141414 0%, #1e1e1e 50%, #141414 100%);
  background-size: 200px 100%;
  animation: shimmer 1.5s infinite;
  border-radius: 4px;
}

/* Shake */
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }
  20%, 40%, 60%, 80% { transform: translateX(4px); }
}
.shake { animation: shake 0.5s ease-in-out; }

/* Fade in */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
.fade-in { animation: fadeIn 0.3s ease-out; }

/* Fade out */
@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; transform: translateY(-8px); }
}
.fade-out { animation: fadeOut 0.5s ease-out forwards; }

/* Slide down for expanded content */
.expand-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out, padding 0.3s ease-out;
}
.expand-content.open {
  max-height: 500px;
}

/* Progress bar transitions */
.progress-fill { transition: width 0.5s ease-out; }

/* Connection dot blink */
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
.fetching { animation: blink 0.8s ease-in-out infinite; }
