.o-checkbox {
  color: var(--checkbox-color);
  font-size: var(--checkbox-text-size);
  line-height: var(--checkbox-text-height);
  cursor: pointer;
}
@media (hover: hover) {
  .o-checkbox:hover .o-checkbox-input {
    border-color: var(--checkbox-input-bd-color-hover);
  }
}
.o-checkbox:active .o-checkbox-input {
  border-color: var(--checkbox-input-bd-color-active);
}

.o-checkbox-wrap {
  display: flex;
  align-items: var(--checkbox-align);
  position: relative;
  height: 100%;
}
.o-checkbox-wrap input[type=checkbox] {
  position: absolute;
  outline: none;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
}

.o-checkbox-input-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  width: var(--checkbox-input-wrap-size);
  height: var(--checkbox-input-wrap-size);
}

.o-checkbox-input {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: var(--checkbox-input-size);
  height: var(--checkbox-input-size);
  background-color: var(--checkbox-input-bg-color);
  font-size: calc(var(--checkbox-input-icon-size) * 2);
  border: 1px solid var(--checkbox-input-bd-color);
  border-radius: var(--checkbox-radius);
  flex-shrink: 0;
  transition: border-color var(--o-duration-s) var(--o-easing-standard), background-color var(--o-duration-s) var(--o-easing-standard);
}
.o-checkbox-input svg {
  width: 24px;
  height: 24px;
  color: var(--checkbox-input-icon-color);
}

.o-checkbox-label {
  margin-left: var(--checkbox-label-gap);
}

.o-checkbox-checked .o-checkbox-input,
.o-checkbox-indeterminate .o-checkbox-input {
  background-color: var(--checkbox-input-bg-color-checked);
  border-color: var(--checkbox-input-bd-color-checked);
}
@media (hover: hover) {
  .o-checkbox-checked:hover .o-checkbox-input,
  .o-checkbox-indeterminate:hover .o-checkbox-input {
    background-color: var(--checkbox-input-bg-color-checked-hover);
    border-color: var(--checkbox-input-bd-color-checked-hover);
  }
}
.o-checkbox-checked:active .o-checkbox-input,
.o-checkbox-indeterminate:active .o-checkbox-input {
  background-color: var(--checkbox-input-bg-color-checked-active);
  border-color: var(--checkbox-input-bd-color-checked-active);
}

.o-checkbox-input-icon-indeterminate {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: var(--checkbox-input-icon-size);
  height: var(--checkbox-input-icon-size);
  background-color: var(--checkbox-input-icon-color);
  border-radius: calc(var(--checkbox-input-icon-size) / 4);
}

.o-checkbox-disabled, .o-checkbox-disabled:hover, .o-checkbox-disabled.active {
  cursor: not-allowed;
  color: var(--checkbox-color-disabled);
}
.o-checkbox-disabled .o-checkbox-input, .o-checkbox-disabled:hover .o-checkbox-input, .o-checkbox-disabled.active .o-checkbox-input {
  background-color: var(--checkbox-input-bg-color-disabled);
  border-color: var(--checkbox-input-bd-color-disabled);
}

.o-checkbox-checked.o-checkbox-disabled .o-checkbox-input, .o-checkbox-checked.o-checkbox-disabled:hover .o-checkbox-input, .o-checkbox-checked.o-checkbox-disabled.active .o-checkbox-input,
.o-checkbox-indeterminate.o-checkbox-disabled .o-checkbox-input,
.o-checkbox-indeterminate.o-checkbox-disabled:hover .o-checkbox-input,
.o-checkbox-indeterminate.o-checkbox-disabled.active .o-checkbox-input {
  background-color: var(--checkbox-input-bg-color-checked-disabled);
  border-color: var(--checkbox-input-bd-color-checked-disabled);
}

.o-checkbox {
  --checkbox-text-size: var(--o-font_size-text1);
  --checkbox-text-height: var(--o-line_height-text1);
  --checkbox-label-gap: 8px;
  --checkbox-align: center;
  --checkbox-color: var(--o-color-info1);
  --checkbox-color-disabled: var(--o-color-info4);
  --checkbox-radius: var(--o-radius_control-xs);
  --checkbox-input-wrap-size: var(--o-control_size-s);
  --checkbox-input-size: var(--o-control_size-xs);
  --checkbox-input-bg-color: var(--o-color-control5-light);
  --checkbox-input-bg-color-disabled: var(--o-color-control4-light);
  --checkbox-input-bg-color-checked: var(--o-color-primary1);
  --checkbox-input-bg-color-checked-hover: var(--o-color-primary2);
  --checkbox-input-bg-color-checked-active: var(--o-color-primary3);
  --checkbox-input-bg-color-checked-disabled: var(--o-color-primary4);
  --checkbox-input-bd-color: var(--o-color-control1);
  --checkbox-input-bd-color-hover: var(--o-color-primary2);
  --checkbox-input-bd-color-active: var(--o-color-primary3);
  --checkbox-input-bd-color-disabled: var(--o-color-control4);
  --checkbox-input-bd-color-checked: var(--o-color-primary1);
  --checkbox-input-bd-color-checked-hover: var(--o-color-primary2);
  --checkbox-input-bd-color-checked-active: var(--o-color-primary3);
  --checkbox-input-bd-color-checked-disabled: var(--o-color-primary4);
  --checkbox-input-icon-size: calc(var(--checkbox-input-size) / 2);
  --checkbox-input-icon-color: var(--o-color-fill2);
}

@media (max-width: 1680px) {
  .o-checkbox {
    --checkbox-text-size: var(--o-font_size-tip1);
    --checkbox-text-height: var(--o-line_height-tip1);
  }
}