.checkbox-wrapper {
  label {
    display: flex;
    align-items: center;
    cursor: pointer;
    color: var(--text-color-dark);
    font-size: var(--text-size-label);
    user-select: none;
    position: relative;

    &.disabled {
      cursor: not-allowed;
      opacity: 0.6;
    }

    input[type='checkbox'] {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
    }

    &:before {
      content: "";
      height: 22px;
      width: 22px;
      margin-right: 12px;
      flex-shrink: 0;
      border: 1px solid var(--color-line);
      display: block;
      position: relative;
      z-index: 0;
    }

    .checkbox-icon {
      display: none;
      width: 22px;
      height: 22px;
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      pointer-events: none;
      z-index: 1;
    }

    input:checked + .checkbox-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: var(--button-primary-background-color);
      color: var(--button-primary-border-color);
    }
  }

  .checkbox-label {
    flex: 1;
  }
}

