/* ------------------------------------------------------------------
   UTILITIES – вспомогательные классы, сортировка, кликабельные строки
------------------------------------------------------------------ */

/* Строки с рисками (должники, истекающие, низкая оплата) */
.debtor-row,
.expiring-row,
.low-payment-row {
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.debtor-row:hover,
.expiring-row:hover,
.low-payment-row:hover {
  background-color: #fff3cd !important;
}

/* Универсальный класс для кликабельных строк таблиц */
.clickable-row {
  cursor: pointer;
}
.clickable-row:hover {
  background-color: #f8fafc;
}

/* Стили для сортируемых заголовков таблиц */
.sortable {
  cursor: pointer;
  user-select: none;
  position: relative;
  padding-right: 20px;
}
.sortable:after {
  content: "↕️";
  position: absolute;
  right: 5px;
  opacity: 0.5;
  font-size: 0.75rem;
}
.sortable.asc:after {
  content: "↑";
  opacity: 1;
}
.sortable.desc:after {
  content: "↓";
  opacity: 1;
}

/* Поле поиска (для фильтрации) */
.search-docs input {
  border-radius: 40px;
  padding: 0.5rem 1rem;
}

/* Анимация тряски для невалидных полей */
.is-invalid {
  animation: shake 0.2s ease-in-out 0s 2;
}
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-4px); }
  75% { transform: translateX(4px); }
}

/* Скрыть чекбокс "Тип" в модалке настройки колонок */
#columnSettingsModal .form-check:has(label:contains("Тип")) {
  display: none;
}

/* Дополнительные бекграунды (из modern-design.css) */
.bg-primary {
  background: var(--primary-gradient) !important;
}
.bg-success {
  background: #10b981 !important;
}
.bg-warning {
  background: #f59e0b !important;
}
.bg-danger {
  background: #ef4444 !important;
}
.list-group-item {
  border-radius: 12px !important;
  margin-bottom: 4px !important;
  border: none !important;
  transition: var(--transition-fast) !important;
}
.list-group-item:hover {
  background: #f1f5f9 !important;
  transform: translateX(4px) !important;
}