/*
 * DNS Manager Styles
 */

/* Smooth transitions for flash messages */
.flash-message {
  transition: opacity 0.3s ease, transform 0.3s ease;
}

/* Custom scrollbar for sidebar */
.sidebar::-webkit-scrollbar {
  width: 4px;
}

.sidebar::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 2px;
}

/* Turbo frame loading indicator */
turbo-frame[busy] {
  opacity: 0.5;
  pointer-events: none;
}

/* Table row hover animation */
.table-row-hover {
  transition: background-color 0.15s ease;
}

/* Sortable drag-and-drop */
.sortable-item {
  transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.sortable-handle {
  opacity: 0;
  transition: opacity 0.15s ease, color 0.15s ease;
  cursor: grab;
}

.sortable-item:hover .sortable-handle {
  opacity: 1;
}

.sortable-handle:active {
  cursor: grabbing;
}

.sortable-dragging {
  opacity: 0.4;
  transform: scale(0.98);
}

.sortable-placeholder {
  height: 3px;
  background: #3b82f6;
  border-radius: 2px;
  margin: 0 12px;
  transition: opacity 0.15s ease;
}

.sortable-toast {
  position: absolute;
  bottom: 60px;
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  background: #065f46;
  color: #d1fae5;
  font-size: 11px;
  font-weight: 500;
  border-radius: 6px;
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
  white-space: nowrap;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.sortable-toast-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
