/*
 * Copyright (c) 2026, Salesforce, Inc.,
 * All rights reserved.
 * For full license text, see the LICENSE.txt file
 */

.slds-radio {
  display: inline-block;
}
.slds-radio .slds-radio_faux {
  width: var(--slds-g-sizing-5);
  height: var(--slds-g-sizing-5);
  display: inline-block;
  position: relative;
  flex-shrink: 0;
  vertical-align: middle;
  border-radius: var(--slds-g-radius-border-circle);
  border-width: var(--slds-s-input-sizing-border, var(--slds-g-sizing-border-1));
  border-style: solid;
  border-color: var(
    --slds-c-radio-color-border,
    var(--slds-s-input-color-border, var(--slds-g-color-border-2))
  );
  background: none;
  background-color: var(--slds-c-radio-color-background, var(--slds-g-color-surface-container-1));
  box-shadow: var(--slds-c-radio-shadow, var(--slds-s-input-shadow));
  transition:
    border 0.1s linear,
    background-color 0.1s linear;
}

.slds-radio .slds-radio__label {
  cursor: pointer;
}

.slds-radio .slds-form-element__label {
  display: inline;
  vertical-align: middle;
  font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
  font-weight: normal;
  color: var(--slds-g-color-on-surface-2);
}

.slds-radio [type='radio'] {
  width: 1px;
  height: 1px;
  border: 0;
  clip: rect(0 0 0 0);
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  pointer-events: auto;
}

.slds-radio [type='radio']:checked + .slds-radio_faux,
.slds-radio [type='radio']:checked ~ .slds-radio_faux,
.slds-radio [type='radio']:checked + .slds-radio__label .slds-radio_faux {
  --slds-c-radio-color-background: var(
    --slds-c-radio-color-background-checked,
    var(--slds-s-mark-color-background-checked, var(--slds-g-color-surface-container-1))
  );
  --slds-c-radio-shadow: var(--slds-s-mark-shadow-checked);
}

.slds-radio [type='radio']:checked + .slds-radio_faux::after,
.slds-radio [type='radio']:checked ~ .slds-radio_faux::after,
.slds-radio [type='radio']:checked + .slds-radio__label .slds-radio_faux::after {
  width: var(--slds-g-sizing-3);
  height: var(--slds-g-sizing-3);
  content: '';
  position: absolute;
  inset-block-start: 50%;

  /* RTL: physical (mirrors SLDS1 @noflip) — centering paired with translate */
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  border-radius: var(--slds-g-radius-border-circle);
  background: none;
  background-color: var(
    --slds-c-radio-color-background-checked,
    var(--slds-s-mark-color-foreground-checked, var(--slds-g-color-border-accent-2))
  );
  outline: var(--slds-g-sizing-2) solid transparent;
}

.slds-radio [type='radio']:focus-visible + .slds-radio_faux,
.slds-radio [type='radio']:focus-visible ~ .slds-radio_faux,
.slds-radio [type='radio']:focus-visible + .slds-radio__label .slds-radio_faux {
  border-color: var(
    --slds-c-radio-color-border-focus,
    var(--slds-s-input-color-border-focus, var(--slds-g-color-border-accent-1))
  );
  --slds-c-radio-shadow: var(
    --slds-c-radio-shadow-focus,
    var(--slds-g-shadow-outset-focus-1, 0 0 3px var(--slds-g-color-accent-2))
  );

  outline: var(--slds-g-sizing-1) solid transparent;
  outline-offset: var(--slds-g-sizing-1);
}

.slds-radio [type='radio'][disabled] {
  cursor: not-allowed;
  user-select: none;
}
.slds-radio [type='radio'][disabled] ~ .slds-radio_faux,
.slds-radio [type='radio'][disabled] + .slds-radio__label .slds-radio_faux {
  border-color: var(--slds-g-color-border-disabled-1);
  background-color: var(--slds-g-color-disabled-container-2);
}

.slds-radio [type='radio'][disabled] ~ .slds-radio_faux::after,
.slds-radio [type='radio'][disabled] + .slds-radio__label .slds-radio_faux::after {
  background-color: var(--slds-g-color-on-disabled-2);
}
.slds-radio [type='radio'][disabled]:checked + .slds-radio_faux,
.slds-radio [type='radio'][disabled]:checked ~ .slds-radio_faux,
.slds-radio [type='radio'][disabled]:checked + .slds-radio__label .slds-radio_faux {
  border-color: var(--slds-g-color-border-disabled-1);
  background-color: var(--slds-g-color-disabled-container-2);
}

.slds-has-error .slds-radio [type='radio'] + .slds-radio_faux,
.slds-has-error .slds-radio [type='radio'] ~ .slds-radio_faux,
.slds-has-error .slds-radio [type='radio'] + .slds-radio__label .slds-radio_faux {
  border-color: var(--slds-s-input-color-border-invalid, var(--slds-g-color-border-error-1));
  border-width: var(--slds-g-sizing-border-2);
}

.slds-has-error .slds-radio [type='radio']:checked + .slds-radio_faux,
.slds-has-error .slds-radio [type='radio']:checked ~ .slds-radio_faux,
.slds-has-error .slds-radio [type='radio']:checked + .slds-radio__label .slds-radio_faux {
  border-color: var(--slds-s-input-color-border-invalid, var(--slds-g-color-border-error-1));
  background-color: var(--slds-s-mark-color-background-invalid);
  --slds-c-radio-shadow: var(--slds-s-mark-shadow-checked);
}

.slds-has-error .slds-radio [type='radio']:focus-visible:checked + .slds-radio_faux,
.slds-has-error .slds-radio [type='radio']:focus-visible:checked ~ .slds-radio_faux,
.slds-has-error .slds-radio [type='radio']:focus-visible:checked + .slds-radio__label .slds-radio_faux {
  --slds-c-radio-shadow: var(--slds-g-shadow-outset-focus-1);
}

.slds-has-error .slds-radio [type='radio']:checked + .slds-radio_faux::after,
.slds-has-error .slds-radio [type='radio']:checked ~ .slds-radio_faux::after,
.slds-has-error .slds-radio [type='radio']:checked + .slds-radio__label .slds-radio_faux::after {
  background-color: var(--slds-s-mark-color-foreground-invalid, var(--slds-g-color-error-1));
}

.slds-form-element .slds-radio [type='radio'] + .slds-radio_faux,
.slds-form-element .slds-radio [type='radio'] ~ .slds-radio_faux,
.slds-radio [type='radio'] + .slds-radio__label .slds-radio_faux {
  margin-inline-end: var(--slds-g-spacing-2);
}
