.px-checkbox {
  --checkbox-size: var(--px-medium-compat-size);
  --text-color: var(--px-neutral-10);
  color: var(--text-color);
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  transition: 0.25s all;
}
.px-checkbox.px-checkbox {
  font-size: 14px;
}
.px-checkbox__large {
  --checkbox-size: var(--px-large-compat-size);
  font-size: 15px;
}
.px-checkbox__large .px-checkbox-box {
  margin-right: 12px;
}
.px-checkbox__small {
  --checkbox-size: var(--px-small-compat-size);
  font-size: 12px;
}
.px-checkbox__small .px-checkbox-box {
  margin-right: 4px;
}
.px-checkbox-box {
  width: var(--checkbox-size);
  height: var(--checkbox-size);
  border: var(--px-bit) solid transparent;
  background-color: transparent;
  position: relative;
  box-sizing: border-box;
  flex-shrink: 0;
  flex-grow: 0;
  margin-right: 8px;
  transition: 0.25s;
  z-index: 0;
}
.px-checkbox-box > .px-checkbox-checked-mark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  fill: var(--px-primary-6);
  width: 100%;
  height: 100%;
}
.px-checkbox-canvas {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: -1;
}
.px-checkbox-input {
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  position: absolute;
}
.px-checkbox:hover .px-checkbox-checked-mark {
  fill: var(--px-primary-5);
}
.px-checkbox__checked {
  --text-color: var(--px-primary-6);
}
.px-checkbox__readonly {
  cursor: default;
}
.px-checkbox__disabled {
  cursor: not-allowed;
  --text-color: var(--px-neutral-8);
}
.px-checkbox__disabled .px-checkbox-checked-mark {
  fill: var(--px-neutral-8);
}
.px-checkbox__disabled.px-checkbox__checked {
  --text-color: var(--px-primary-2);
}
.px-checkbox__disabled.px-checkbox__checked .px-checkbox-checked-mark {
  fill: var(--px-primary-2);
}
