.sort-col { width: 28px; text-align: center; }
.drag-handle { cursor: grab; display: inline-flex; align-items: center; justify-content: center; }
tr.dragging { opacity: 0.6; outline: 2px dashed rgba(0,0,0,0.2); }
tbody tr.js-sortable-row { transition: background-color 0.6s ease; }
tr.row-dropped { animation: rowFlash 1.2s ease-out; }
@keyframes rowFlash {
  0% { background-color: #fff7cc; }
  100% { background-color: transparent; }
}


/* Drop-line overlay to show insertion point above dragged element */
.drop-line {
  position: fixed;
  left: 0;
  top: 0;
  height: 0;
  border-top: 3px solid rgba(0,0,0,0.5);
  z-index: 9999;
  pointer-events: none;
}
/* Overlay standardmäßig ausblenden; JS blendet bei Drag ein */
.drop-line, .drop-line-label { display: none; }

.drop-line-label {
  position: fixed;
  font-size: 12px;
  line-height: 1;
  background: rgba(0,0,0,0.75);
  color: #fff;
  padding: 3px 6px;
  border-radius: 6px;
  z-index: 10000;
  pointer-events: none;
  transform: translateY(-100%);
  white-space: nowrap;
}
/* Make dragged row more transparent to avoid text blending */
tr.dragging { opacity: 0.35; outline: 2px dashed rgba(0,0,0,0.2); }


/* COLORS ONLY for active sort header */
.table th.sortable { position: relative; user-select: none; }
.table th.sortable.sorted[data-dir="asc"]  { background: #e9f7ef !important; color: #198754 !important; }
.table th.sortable.sorted[data-dir="desc"] { background: #fdecea !important; color: #dc3545 !important; }
/* Remove any decorative arrows */
.table th.sortable::after { content: "" !important; }
