.nut-radio {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  min-height: scale-px(32px);

  &.nut-radio-reverse {
    flex-direction: row-reverse;

    .nut-radio-label {
      margin-right: $radio-label-margin-left;
      margin-left: 0;
    }
  }

  &.nut-radio-nolabel {
    min-width: scale-px(32px);
    justify-content: center;
  }

  &-label {
    margin-left: $radio-label-margin-left;
    font-size: $radio-label-font-size;
    color: $radio-label-color;

    &-disabled {
      color: $radio-label-disable-color;
    }
  }

  &-icon {
    color: $color-text-disabled;
    background-color: $color-background-overlay;
    transition-duration: 0.3s;
    transition-property: color, border-color, background-color;
    font-size: $radio-icon-font-size;
    border-radius: 50%;
  }

  &-icon {
    &-checked {
      color: $color-primary;
      background-color: $white;
      box-shadow: none;
      border-radius: 50%;

      &.nut-radio-icon-disabled {
        color: $color-primary-disabled-special;
        background-color: $color-background-overlay;
        box-shadow: none;
        border-radius: 50%;
      }
    }

    &-disabled {
      color: $color-text-disabled;
    }
  }

  &-button {
    /* #ifdef dynamic*/
    display: flex;
    /* #endif */
    /* #ifndef dynamic*/
    display: inline-flex;
    /* #endif */
    align-items: center;
    min-height: scale-px(30px);
    padding: $radio-button-padding;
    font-size: $radio-button-font-size;
    background: $radio-button-background;
    border-radius: $radio-button-border-radius;
    color: $radio-label-color;
    box-sizing: border-box;
    border: scale-px(1px) solid $radio-button-background;

    &-active {
      background: $color-primary-light-pressed;
      color: $color-primary;
      border: $radio-button-active-border;
    }

    &-disabled {
      color: $color-text-disabled;
      border: scale-px(1px) solid $radio-button-background;
    }
  }

  .nut-radio-button-active.nut-radio-button-disabled {
    background: $color-text-disabled;
    color: $white;
    border: scale-px(1px) solid $color-text-disabled;
  }
}

[dir='rtl'] .nut-radio,
.nut-rtl .nut-radio {
  &:last-child {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  &.nut-radio-reverse {
    .nut-radio-label {
      margin-left: $radio-label-margin-left;
      margin-right: 0;
    }
  }

  &-label {
    margin-left: 0;
    margin-right: $radio-label-margin-left;
  }
}
