.required-indicator {
  color: var(--bs-danger);
  font-weight: 600;
}

.loop-occurrence-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.loop-occurrence-card {
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.loop-occurrence-input:checked + .loop-occurrence-card {
  border-color: var(--bs-primary) !important;
  background: rgba(var(--bs-primary-rgb), 0.08);
}

@media (hover: hover) and (pointer: fine) {
  .loop-occurrence-input:not(:disabled):not(:checked) + .loop-occurrence-card:hover {
    border-color: rgba(var(--bs-primary-rgb), 0.45);
    box-shadow: 0 0.25rem 0.75rem rgba(15, 23, 42, 0.08);
    transform: translateY(-1px);
  }
}
