/* Session card */
.session-card {
  position: absolute !important;
  top: 0;
  left: 0;
  width: var(--tt-cell-width);
  padding: 0.5em;
  margin-bottom: 0.5em;
  background: var(--color-card-bg);
  border-left: 4px solid var(--color-card-border-left);
  color: var(--color-card-text);
  border-radius: var(--radius-card);
  font-size: var(--card-font-size);
  cursor: move;
  z-index: 999;
  text-align: start;
  border-bottom: 2px dotted var(--color-border);
}
/* Status */
.session-card.status-confirmed {
  border-left-color: var(--color-speaker-confirmed);
}
.session-card.status-requested {
  border-left-color: var(--color-speaker-requested);
}
.session-card.status-denied {
  border-left-color: var(--color-speaker-denied);
}
/* Conflict */
.session-card.conflict {
  border: 1px solid #e74c3c;
  background: rgba(231, 76, 60, 0.1);
  animation: pulse 1.5s infinite;
}
@keyframes pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);
  }
  50% {
    box-shadow: 0 0 10px 5px rgba(231, 76, 60, 0);
  }
}
.session-card:hover {
  background: var(--color-card-hover);
  z-index: 1000 !important;
  box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);
}
/* Smooth revert & shake */
.session-card.reverting {
  transition: top 0.2s ease, left 0.2s ease;
}
@keyframes shake {
  0%,
  100% {
    transform: translateX(0);
  }
  20%,
  60% {
    transform: translateX(-8px);
  }
  40%,
  80% {
    transform: translateX(8px);
  }
}
.session-card.shake-revert {
  animation: shake 0.4s ease;
}
