/* form input */
input {
  overflow: visible;
  background-position: var(--icon-pos-end);
  background-size: var(--icon-size) var(--icon-size);
  background-image: var(--input-icon);
	&[type=number] {
		padding-left: 1ch;
		padding-right: var(--border-width);
		border-top-right-radius: var(--border-width);
		border-bottom-right-radius: var(--border-width);
	}
}

legend {
  max-width: 100%;
  padding: 0;
  font-size: var(--font-size-3);
  white-space: normal;
  margin-top: var(--spacing);
  margin-bottom: var(--spacing);
}
textarea {
  overflow: auto;
}
::-moz-focus-inner {
  padding: 0;
  border-style: none;
}
:-moz-focusring {
  outline: none;
}
:-moz-ui-invalid {
  box-shadow: none;
}

input,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: var(--form-element-spacing-block) var(--form-element-spacing-inline);
	--border-radius: 3px;

	small {
		display: inline;
		width: 100%;
		margin-top: calc(var(--spacing) * -0.75);
		margin-bottom: var(--spacing);
		color: var(--form-element-color);
	}
}

input:where(:not([type=range], [type=color])),
select,
textarea {
  border: var(--border-width) solid var(--border-color, inherit);
	border-radius: var(--border-radius);
  color: currentColor;
  background-color: var(--form-element-background-color);
  font-weight: inherit;
}

label {
  display: inline-block;
  position: relative;
}
label > b {
  font-weight: var(--font-weight-strong);
  margin-bottom: calc(var(--spacing) * 0.5);
}
label > b:first-child {
  display: block;
}
label > b:first-child ~ *,
label > b:first-child ~ * + * {
  display: block;
}
label > input:not([type=checkbox], [type=radio]),
label > select {
  width: 100%;
  max-width: var(--form-element-max-width);
}
label > textarea {
  width: 100%;
}

/* forms.checkbox-radio */

/* forms.alt-input */

/* forms.switches */

/* Cosmetics */
legend {
  color: var(--color-2);
}

input,
select,
option,
textarea {
	color: var(--form-element-color);
	background-color: var(--form-element-bg);
	&:focus {
		background-color: var(--form-element-focus-bg);
	}
}
