.envelo-control {
  display: block;
  position: relative;
  padding-left: 30px;
  margin: 15px 0 5px;
  padding-top: 2px;
  cursor: pointer;
  color: var(--on-surface);
}

.envelo-control input {
  position: absolute;
  z-index: -1;
  opacity: 0;
}

.envelo-control_indicator {
  position: absolute;
  top: 2px;
  left: 0;
  width: 15px;
  height: 15px;
  background: transparent;
  border: 2px solid var(--on-surface);
  border-radius: 2px;
}


.envelo-control:hover input ~ .envelo-control_indicator {
  background: transparent;
}

.envelo-control input:focus:checked ~ .envelo-control_indicator {
  background: var(--primary);
  border-color: var(--primary);
}


.envelo-control input:focus:not(:checked) ~ .envelo-control_indicator {
  background: transparent;
  border-color: var(--on-surface);
}


.envelo-control input:checked ~ .envelo-control_indicator {
  background: var(--primary);
  border-color: var(--primary);
}


.envelo-control:hover input:not([disabled]):checked ~ .envelo-control_indicator,
.envelo-control input:checked:focus ~ .envelo-control_indicator {
  background: var(--primary);
  border-color: var(--primary);
}


.envelo-control input:disabled ~ .envelo-control_indicator {
  opacity: 0.5;
  pointer-events: none;
}

.envelo-control_indicator:after {
  box-sizing: unset;
  content: '';
  position: absolute;
  display: none;
}


.envelo-control input:checked ~ .envelo-control_indicator:after {
  display: block;
}


.envelo-control-checkbox .envelo-control_indicator:after {
  left: 4px;
  top: 1px;
  width: 3px;
  height: 9px;
  border: solid var(--on-primary);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.envelo-control-checkbox input:disabled ~ .envelo-control_indicator:after {
  border: solid var(--on-primary);
}


label input.fieldError ~ .envelo-control_indicator {
  border: 2px solid var(--error);
}


label.envelo-control.envelo-control-checkbox > span.multipleRows {
  position: relative;
  top: -5px;
}