.d-toggle-container {
  display: flex;
}

.d-toggle-content {
  display: flex;
  flex-direction: column;
  margin-left: 8px;
  font-family: var(--d-font-stacks);

  label {
    color: var(--d-color-neutral-80);
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    cursor: pointer;
    user-select: none;
  }
}

.d-toggle {
  appearance: none;
  width: 40px;
  height: 19px;
  border-radius: 16px;
  background-color: var(--d-color-neutral-40);
  position: relative;
  cursor: pointer;

  &::after {
    content: "";
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: var(--d-color-neutral-10);
    position: absolute;
    left: 2px;
    top: 50%;
    transform: translateY(-50%);
  }

  &:checked {
    background-color: var(--d-color-red-70);

    &::after {
      left: unset;
      right: 2px;
    }
  }

  &:disabled:not(:checked) {
    background-color: var(--d-color-neutral-10);
    cursor: not-allowed;

    &::after {
      background-color: var(--d-color-neutral-30);
    }

    + .d-toggle-content {
      label {
        cursor: not-allowed;
        color: var(--d-color-neutral-40);
      }
      doku-toggle-description {
        color: var(--d-color-neutral-30);
      }
    }
  }

  &:checked:disabled {
    background-color: var(--d-color-red-10);
    cursor: not-allowed;

    &::after {
      background-color: var(--d-color-neutral-00);
    }

    + .d-toggle-content label {
      cursor: not-allowed;
    }
  }
}

.d-toggle-description {
  color: var(--d-color-neutral-50);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
}

// Vertical Alignments

.d-toggle-v-alignment-top {
  align-items: flex-start;
}
.d-toggle-v-alignment-center {
  align-items: center;
}
.d-toggle-v-alignment-bottom {
  align-items: flex-end;
}
