input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border: 2px solid var(--color-primary);
  border-radius: 50%;
  cursor: pointer;
  outline: none;
  position: relative;
  /* Needed for inner circle */
  vertical-align: middle;
  transition: background-color 0.2s, border-color 0.2s;
}

/* Inner dot for selected state */
input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  background-color: var(--color-primary);
  border-radius: 50%;
}

input[type="radio"]+span {
  padding-left: 8px;
}

label:has(input[type="radio"]) {
  cursor: pointer;
  padding: 8px 12px;
  border-radius: var(--radius-xl)
}

label:has(input[type="radio"]:checked) {
  background: color-mix(in srgb, var(--color-primary-content) 10%, white);

  span {
    font-weight: var(--font-weight-semibold);
  }
}

input[type="radio"]:disabled {
  cursor: not-allowed;
  opacity: 0.5;
  border-color: var(--color-primary);
}

label:has(input[type="radio"]:disabled) {
  cursor: not-allowed;
}

input[type="radio"]:checked::after {
  background-color: var(--color-primary);
}