.beat-animation,
.tabulator-cell .beat-animation,
.tabulator-cell i.beat-animation {
  animation: beat 1s ease-in-out infinite !important;
  display: inline-block;
  transform-origin: center center;
}

@keyframes beat {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.5);
  }
}

.tabulator .form-switch .form-check-input.switch-on:checked {
  background-color: #198754;
  border-color: #198754;
}
.tabulator .form-switch .form-check-input.switch-off {
  background-color: #dc3545;
  border-color: #dc3545;
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

.emails-column {
  background-color: rgba(255, 255, 0, 0.1) !important;
}

/* List editor hover/active: gray instead of Tabulator blue (avoids clashing with status colors) */
.tabulator-edit-list .tabulator-edit-list-item.active {
  background: #e9ecef;
  color: inherit;
}

/* List editor focused: gray outline instead of Tabulator blue */
.tabulator-edit-list .tabulator-edit-list-item.focused {
  outline: 1px solid #adb5bd;
}

@media (hover: hover) and (pointer: fine) {
  .tabulator-edit-list .tabulator-edit-list-item:hover {
    background: #e9efe9;
    color: inherit;
    cursor: pointer;
  }
}

/* Notes column formatter (notesBlink) */
@keyframes blink-red {
  0%, 50% { color: #dc3545; }
  51%, 100% { color: transparent; }
}

.notes-blink {
  animation: blink-red 1s infinite;
  font-weight: bold;
}

.notes-highlight {
  background: red;
  font-weight: bold;
  color: #ffffff;
}

.notes-flip {
  height: 28px;
  overflow: hidden;
  line-height: 1;
}

.notes-with-alert {
  display: flex;
  align-items: center;
  gap: 0;
}

.notes-alert-icon {
  display: inline-block;
  color: #dc3545;
  animation: notes-alert-pulse 0.9s ease-in-out infinite;
  transform-origin: center;
  font-size: 1rem;
  line-height: 1;
  margin-right: 6px;
}

.notes-alert-text {
  color: #dc3545;
}

.notes-flip > div > div {
  color: #fff;
  padding: 4px 8px;
  height: 24px;
  margin-bottom: 24px;
  display: block;
  border-radius: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.notes-flip > div:first-child {
  animation: notes-flip-show 10s linear infinite;
}

.notes-flip > div div {
  background: #42c58a;
}

.notes-flip > div:first-child div {
  background: #d39c27;
}

.notes-flip > div:last-child div {
  background: #dc143c;
}

@keyframes notes-flip-show {
  0% { margin-top: -144px; }
  5% { margin-top: -96px; }
  33% { margin-top: -96px; }
  38% { margin-top: -48px; }
  66% { margin-top: -48px; }
  71% { margin-top: 0; }
  99.99% { margin-top: 0; }
  100% { margin-top: -144px; }
}

@keyframes notes-alert-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.2); opacity: 0.75; }
}