input[type=text],
input[type=color],
input[type=email],
input[type=url],
input[type=datetime-local],
input[type=date],
input[type=time],
input[type=file],
input[type=number],
input[type=password],
input[type=submit],
input[type=button],
input[type=reset],
a.button, button, textarea, select, legend {
  max-width: 100%;
}
input[type=text],
input[type=color],
input[type=email],
input[type=url],
input[type=datetime-local],
input[type=date],
input[type=time],
input[type=file],
input[type=number],
input[type=password],
input[type=submit],
input[type=button],
input[type=reset],
a.button, button, textarea, legend {
  border-radius: 3px;
}
form {
  display: block;
  margin: 0;
  padding: 0;
}
fieldset {
  display: block;
  margin: 1em 0;
  padding: 1em 0.5em;
  border-width: 1px 0;
  border-style: solid;
  border-color: $fieldset-border;
  background: $fieldset-background;
  hr {
    background-color: $fieldset-border;
    border-width: 0;
    margin: 1em 0;
  }
  &:focus-within {
    background-color: $fieldset-focus-background;
  }
}
input[type=text],
input[type=color],
input[type=email],
input[type=url],
input[type=datetime-local],
input[type=date],
input[type=time],
input[type=file],
input[type=number],
textarea {
  font-family: $sans-serif-input;
  font-size: 100%;
}
legend {
  padding: 0.2em 0.6em;
  border-width: 1px;
  border-style: solid;
  border-color: $legend-border;
  background: $legend-background;
  margin-bottom: 0.5em;
}
label .maximal, textarea.maximal, input.maximal, select.maximal {
  width: 99%;
}
input[type=text],
input[type=password],
input[type=color],
input[type=email],
input[type=url],
input[type=datetime-local],
input[type=date],
input[type=time],
input[type=file],
input[type=number],
textarea, select, input:not([type=file]):invalid, input:not([type=file]):invalid:placeholder-shown {
//  color: $input-color;
  box-shadow: 1px 1px 2px $input-shadow inset;
  padding: 3px;
  vertical-align: top;
}
input[type=text],
input[type=password],
input[type=color],
input[type=email],
input[type=url],
input[type=datetime-local],
input[type=date],
input[type=time],
input[type=file],
input[type=number],
textarea, input:not([type=file]):invalid, input:not([type=file]):invalid:placeholder-shown {
//  background: $input-background;
  border-width: 1px;
  border-style: solid;
  border-color: $input-border;
}
input[type=file] {
//  color: $input-file-color;
//  background: $input-file-background;
}
// Special for invalid but not required fields
input:invalid:not(:required), textarea:invalid:not(:required), select:invalid:not(:required), input:not([type=file]):invalid:not(:focus):not(:required) {
  color: $invalid-input-color;
  box-shadow: 0 0 0 3px $invalid-input-shadow;
}
input:invalid:not(:required), textarea:invalid:not(:required), input:not([type=file]):invalid:not(:focus):not(:required) {
  border: 1px solid $invalid-input-border;
  background: $invalid-input-background;
}
//
input:focus, textarea:focus {
  border-color: $input-focus;
}
textarea {
  padding: 2px 0;
  &.maximal {
    resize: vertical;
  }
  .area & {
    display: block;
    width: 100%;
    resize: vertical;
  }
}
select {
  padding: 2px 0;
  vertical-align: middle;
}
@media not all and (min-resolution:.001dpcm) {
  @supports (-webkit-appearance: none) {
    /* Safari 10.1+ only (https://browserstrangeness.bitbucket.io/css_hacks.html#webkit) */
    select {
      font-size: initial;
    }
  }
}
select.l10n option {
  padding-left: 16px;
}
option.avail10n {
  background: transparent url(../images/check-on.png) no-repeat 0 50%;
}
input[type=text],
input[type=color],
input[type=email],
input[type=url],
input[type=datetime-local],
input[type=date],
input[type=time],
input[type=number],
input[type=password],
textarea {
  margin-right: .3em;
}
input[type=checkbox], input[type=radio], input[type=file] {
  border: none;
  margin: 0 .33em 0 0;
  padding: 0;
//  background: transparent;
}
input+input[type=checkbox] {
  // Used for js expand/hide (lists, options, ...)
  margin-left: .33em;
}
a input {
  // Used for js expand/hide (lists, options, ...)
  margin-right: .33em;
}
input[type=file] {
  margin-top: .3em;
  margin-bottom: .3em;
}
input[type=color] {
  width: 4em;
  height: 3em;
}
optgroup {
  font-weight: bold;
  font-style: normal;
}
option {
  font-weight: normal;
}
label, label span {
  display: block;
}
label.ib, input.ib {
  display: inline-block;
}
label.classic {
  display: inline;
}
label.classic input, label span input, label.classic select, label span select {
  display: inline;
}
label.required {
  font-weight: bold;
}
label.required abbr {
  color: $required;
  font-size: 1.3em;
  text-decoration: none;
}
label.bold {
  text-transform: uppercase;
  font-weight: bold;
  margin-top: 2em;
}
label.area, p.area, div.area {
  width: inherit !important;
}
div.area {
  margin-bottom: 1em;
}
p.field {
  position: relative;
  label {
    display: inline-block;
    width: 14em;
  }
  &.wide label {
    width: 21em;
  }
  input, select {
    display: inline-block;
  }
}
.form-note, .form-stats {
  font-style: italic;
  font-weight: normal;
  color: $form-note-color;
}
p.form-note, p.form-stats {
  margin-top: -.7em;
}
span.form-note, span.form-stats {
  text-transform: none;
}
.missing {
  background-color: inherit;
  animation-name: kf-missing;
  animation-duration: 1s;
}
@keyframes kf-missing {
  50% {
    background-color: $error-background;
  }
}
.focus {
  background-color: inherit;
  animation-name: kf-focus;
  animation-duration: 1s;
}
@keyframes kf-focus {
  50% {
    background-color: $input-focus;
  }
}
// .more-info Additional information on fieldset, field, … (may be hide from user-prefs)
.more-info {}
.no-more-info {
  display: none;
}
