.ui-checkbox {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.ui-checkbox__option {
  display: inline-flex;
  align-items: flex-start;
  gap: var(--space-2);
  width: fit-content;
  font-family: var(--font-family-sans);
  color: var(--text-default);
  cursor: pointer;
}

.ui-checkbox__control {
  flex: 0 0 auto;
  width: calc(var(--control-height-md) / 2);
  height: calc(var(--control-height-md) / 2);
  margin: 0;
  margin-top: var(--space-1);
  accent-color: var(--border-focus);
  cursor: pointer;
}

.ui-checkbox__control:focus {
  outline: none;
}

.ui-checkbox__control:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.ui-checkbox__control:disabled {
  cursor: not-allowed;
}

.ui-checkbox__control:disabled + .ui-checkbox__label {
  color: var(--text-disabled);
  cursor: not-allowed;
}

.ui-checkbox__option:has(.ui-checkbox__control:disabled) {
  cursor: not-allowed;
}

.ui-checkbox__label {
  font-size: var(--font-size-md);
  line-height: var(--line-height-normal);
  cursor: pointer;
}

.ui-checkbox__required {
  color: var(--state-error);
}

.ui-checkbox__help,
.ui-checkbox__error {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-normal);
}

.ui-checkbox__help {
  color: var(--text-muted);
}

.ui-checkbox__error {
  color: var(--state-error);
}

.ui-checkbox--error .ui-checkbox__control {
  outline: 1px solid var(--state-error);
  outline-offset: var(--space-1);
}

.ui-checkbox--valid .ui-checkbox__control {
  outline: 1px solid var(--state-ok);
  outline-offset: var(--space-1);
}

.ui-checkbox--sm .ui-checkbox__control {
  width: calc(var(--control-height-sm) / 2);
  height: calc(var(--control-height-sm) / 2);
}

.ui-checkbox--sm .ui-checkbox__label {
  font-size: var(--font-size-sm);
}

.ui-checkbox--lg .ui-checkbox__control {
  width: calc(var(--control-height-lg) / 2);
  height: calc(var(--control-height-lg) / 2);
}

.ui-checkbox__group {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.ui-checkbox--block,
.ui-checkbox--block .ui-checkbox__option {
  width: 100%;
}
