/* Reusable Radio Input Component Styles */

.tb-radio-label {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 14px;
  color: var(--text-color-table, #333);
  user-select: none;
  margin: 0;
}

.tb-radio-label input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.tb-radio-custom {
  position: relative;
  width: 20px;
  height: 20px;
  border: 2px solid var(--label-background-color);
  background-color: var(--label-background-color);
  border-radius: 50%;
  transition: border-color 0.2s ease, background-color 0.2s ease;
  flex-shrink: 0;
}

.tb-radio-custom::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: white;
  transition: transform 0.2s ease;
}

.tb-radio-label input[type="radio"]:checked + .tb-radio-custom {
  border-color: var(--primary-color, #007bff);
  background-color: var(--primary-color, #007bff);
}

.tb-radio-label input[type="radio"]:checked + .tb-radio-custom::after {
  transform: translate(-50%, -50%) scale(1);
}

.tb-radio-label:hover .tb-radio-custom {
  border-color: var(--primary-color, #007bff);
}

.tb-radio-label input[type="radio"]:disabled + .tb-radio-custom {
  background-color: #f5f5f5;
  border-color: #ddd;
  cursor: not-allowed;
}

.tb-radio-label input[type="radio"]:disabled ~ .tb-radio-text {
  color: #999;
  cursor: not-allowed;
}

.tb-radio-label input[type="radio"]:focus + .tb-radio-custom {
  box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.tb-radio-text {
  flex: 1;
}
