input {
  display: inline-block;
  padding: 4px 10px;
  margin-bottom: 9px;
  font-size: 1em;
  line-height: 1;
  color: var(--primary);
  background-color: var(--secondary);
  border: 1px solid var(--primary-medium);
  border-radius: 0;
  box-sizing: border-box;
}

textarea {
  height: auto;
  background-color: var(--secondary);
  border: 1px solid var(--primary-medium);

  &:focus {
    border-color: var(--tertiary);
    box-shadow: shadow("focus");
    outline: 0;
  }
}

input,
select,
textarea {
  color: var(--primary);
  caret-color: currentColor;

  &[class*="span"] {
    float: none;
    margin-left: 0;
  }

  &[disabled],
  &[readonly] {
    cursor: not-allowed;
    background-color: var(--primary-low);
    border-color: var(--primary-low);
  }

  &:focus:required:invalid {
    color: var(--danger);
    border-color: var(--danger);
  }

  &:focus:required:invalid:focus {
    border-color: var(--danger);
    box-shadow: shadow("focus-danger");
  }

  &[type="checkbox"] {
    margin-bottom: 0;
    margin-right: 10px;
  }
}

.spinner {
  margin: 20px auto 20px auto;
  position: relative;
  -webkit-animation: rotate-forever 1s infinite linear;
  animation: rotate-forever 1s infinite linear;
  height: 30px;
  width: 30px;
  border: 4px solid var(--primary-low-mid);
  border-right-color: transparent;
  border-radius: 50%;

  &.small {
    width: 10px;
    height: 10px;
    margin: 0;
    display: inline-block;
  }
}

@keyframes rotate-forever {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.body-length {
  text-align: right;
}