/* Action Button Base Styles */
.actionButton {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  border: none;
  border-radius: 50%;
  font-size: 12px;
  font-family: var(--font-family);
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  position: relative;
  min-width: 28px;
  min-height: 28px;
  background: var(--color-secondary);
  color: var(--color-bg);
}

.actionButton:hover {
  background: var(--color-secondary-hover);
}

.actionButton:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none !important;
}

/* Disabled state class */
.actionButton.disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none !important;
  background: #ccc !important;
  color: #666 !important;
}

.actionButton.disabled:hover {
  background: #ccc !important;
  transform: none !important;
}

.actionButton:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(var(--color-secondary-rgb), 0.3);
}

.actionIcon {
  font-size: 16px;
  height: 16px;
  width: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Loading State */
.actionButton.loading {
  opacity: 0.7;
  cursor: not-allowed;
}

.actionButton.loading .actionIcon {
  animation: spin 1s linear infinite;
}

/* Delete button loading state - no animation for user-friendly experience */
.actionButton.delete.loading .actionIcon {
  animation: none;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Delete Confirmation Buttons */
.deleteConfirmButtons {
  display: flex;
  gap: 2px;
  justify-content: center;
  align-items: center;
  background: var(--color-secondary);
  border-radius: 25px;
  padding: 2px;
}

.confirmButton {
  background: transparent !important;
  color: white !important;
  min-width: 24px;
  min-height: 24px;
  padding: 4px;
}

.confirmButton:hover {
  background: rgba(255, 255, 255, 0.2) !important;
  transform: scale(1.05);
}

.cancelButton {
  background: transparent !important;
  color: white !important;
  min-width: 24px;
  min-height: 24px;
  padding: 4px;
}

.cancelButton:hover {
  background: rgba(255, 255, 255, 0.2) !important;
  transform: scale(1.05);
}

/* Action Button Container */
.actionButtons {
  display: flex;
  gap: 2px;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin: 0 auto;
}

/* Button Variants - All use same styling as delete button */
.actionButton.edit {
  background: var(--color-secondary);
  color: white;
}

.actionButton.edit:hover {
  background: var(--color-secondary-hover);
}

.actionButton.delete {
  background: var(--color-secondary);
  color: white;
}

.actionButton.delete:hover {
  background: var(--color-secondary-hover);
}

.actionButton.download {
  background: var(--color-secondary);
  color: white;
}

.actionButton.download:hover {
  background: var(--color-secondary-hover);
}

.actionButton.view {
  background: var(--color-secondary);
  color: white;
}

.actionButton.view:hover {
  background: var(--color-secondary-hover);
}

.actionButton.copy {
  background: var(--color-secondary);
  color: white;
}

.actionButton.copy:hover {
  background: var(--color-secondary-hover);
}

.actionButton.connect {
  background: var(--color-secondary);
  color: white;
}

.actionButton.connect:hover {
  background: var(--color-secondary-hover);
}

.actionButton.refresh {
  background: var(--color-secondary);
  color: white;
}

.actionButton.refresh:hover {
  background: var(--color-secondary-hover);
}

.actionButton.remove {
  background: var(--color-secondary);
  color: white;
}

.actionButton.remove:hover {
  background: var(--color-secondary-hover);
}

/* Generic Custom Action Button */
.actionButton.custom {
  background: var(--color-secondary);
  color: white;
}

.actionButton.custom:hover {
  background: var(--color-secondary-hover);
}

/* Success State */
.actionButton.success {
  background: #28a745 !important;
  color: white !important;
}

.actionButton.success:hover {
  background: #218838 !important;
}

/* Error State */
.actionButton.error {
  background: #dc3545 !important;
  color: white !important;
}

.actionButton.error:hover {
  background: #c82333 !important;
}

/* Responsive Design */
@media (max-width: 768px) {
  .actionButtons {
    flex-direction: column;
    gap: 4px;
  }

  .actionButton {
    padding: 4px 8px;
    font-size: 11px;
    min-width: 24px;
    min-height: 24px;
  }

  .actionIcon {
    font-size: 14px;
    height: 14px;
    width: 14px;
  }
}

/* Dark theme support - All use same styling as delete button */
@media (prefers-color-scheme: dark) {
  .actionButton.edit {
    background: var(--color-secondary);
  }

  .actionButton.edit:hover {
    background: var(--color-secondary-hover);
  }

  .actionButton.delete {
    background: var(--color-secondary);
  }

  .actionButton.delete:hover {
    background: var(--color-secondary-hover);
  }

  .actionButton.download {
    background: var(--color-secondary);
  }

  .actionButton.download:hover {
    background: var(--color-secondary-hover);
  }

  .actionButton.view {
    background: var(--color-secondary);
  }

  .actionButton.view:hover {
    background: var(--color-secondary-hover);
  }

  .actionButton.copy {
    background: var(--color-secondary);
  }

  .actionButton.copy:hover {
    background: var(--color-secondary-hover);
  }

  .actionButton.connect {
    background: var(--color-secondary);
  }

  .actionButton.connect:hover {
    background: var(--color-secondary-hover);
  }

  .actionButton.refresh {
    background: var(--color-secondary);
  }

  .actionButton.refresh:hover {
    background: var(--color-secondary-hover);
  }

  .actionButton.custom {
    background: var(--color-secondary);
  }

  .actionButton.custom:hover {
    background: var(--color-secondary-hover);
  }
}
