* {
  border-color: hsl(214.3 31.8% 91.4%);
}

body {
  background-color: hsl(0 0% 100%);
  color: hsl(222.2 84% 4.9%);
}

.action-btn {
  opacity: 0;
  transition: opacity 0.15s ease-in-out;
}

tr:hover .action-btn {
  opacity: 1;
}

.action-btn.is-copied {
  opacity: 1 !important;
}

.sortable .sort-icon {
  transition: transform 0.2s, opacity 0.2s;
}

.sortable.active .sort-icon {
  opacity: 1 !important;
}

.sortable.asc .sort-icon {
  transform: rotate(180deg);
}

#dialog-overlay {
  backdrop-filter: blur(4px);
}

#dialog-content,
#export-dialog-content {
  animation: dialog-content-show 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes dialog-content-show {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

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

.animate-spin {
  animation: spin 1s linear infinite;
}

