.checkbox {
  display: inline-block;
  position: relative;
}

.track {
  --thumb-size: 14px;
  background: var(--black);
  border-radius: 1000px;
  width: 24px;
  padding: 3px calc(var(--thumb-size) / 2 + 3px);
}

.thumb {
  position: relative;
  width: var(--thumb-size);
  height: var(--thumb-size);
  background: var(--less-light-gray);
  border-radius: 100%;
  transform: translateX(calc(var(--thumb-size) / -2));
  overflow: hidden;

  &::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--main-theme-color);
    opacity: 0;
    transition: opacity 200ms ease;
  }
}

.thumb-track {
  transition: transform 200ms ease;
}

.real-checkbox {
  top: 0;
  position: absolute;
  opacity: 0;
  pointer-events: none;

  &:checked + .track {
    .thumb-track {
      transform: translateX(100%);
    }

    .thumb::before {
      opacity: 1;
    }
  }
}
