.label__file {
  display: inline-block;
  padding: var(--padding-input);
  background: var(--color-input);
  color: var(--color-input-text);
  border-color: var(--color-input-border);
  border-radius: var(--border-radius);
  text-align: center;
  position: relative;

  &:hover {
    border-color: var(--primary-color-active);
  }
}
.label__file > input[type='file'] {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

label + :is(input, textarea, select),
label > :is(input, textarea, select) {
  margin-top: .25em;
  margin-bottom: 1em;
}

input,
textarea,
select  {
  width: 100%;
  accent-color: var(--primary-color);
  caret-color: var(--primary-color);
}

select  {
  appearance: none;
  background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%207%207%22%20fill%3D%22none%22%20stroke%3D%22%23888%22%3E%3Cpolyline%20points%3D%222%202%204%204%206%202%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-position: right var(--padding-r) center;
  background-size: 1em;
  padding-right: 1.5em;
}

input[type=checkbox] {
  appearance: none;
  background: var(--color-input);
  width: 2em;
  height: 1em;
  transition: .2s all;
  border-radius: 1em;
  padding: 2px;
  margin: 0;
  box-sizing: content-box;
  vertical-align: middle;
  margin-top: -2px;
  line-height: 1.25;

  &:after {
    content: '';
    display: inline-block;
    width: 1em;
    height: 1em;
    background: #888;
    border-radius: 100%;
    transition: inherit;
  }
  &:checked {
    background: var(--primary-color);

    &:after {
      background: var(--primary-color-text);
      margin-left: 1em;
    }
  }
}

input[type=radio] {
  display: none;
}
input[type=radio] + label {
  padding: var(--padding-input);
  background: var(--color-input);
  color: var(--color-input-text);
}
input[type=radio]:checked + label {
  background: var(--primary-color) !important;
  color: var(--primary-color-text) !important;
}

input[type='file'] {
  background: var(--color-input);
  color: var(--color-text);
  border-color: var(--color-input-border);
  cursor: pointer;
}

input[type="color"] {
	appearance: none;
	border: none;
  border-radius: 100%;
	width: 1em;
	height: 1em;
  padding: 0;
  margin: 0;
  vertical-align: text-top;

  &::-webkit-color-swatch-wrapper {
    padding: 0;
  }
  &::-webkit-color-swatch {
    border: none;
    border-radius: 100%;
  }
}

input[type='range'] {
  appearance: none;
  height: .5em;
}
