/*
  Forms
*/

form {
  .fields {
    > .field_with_errors:first-child,
    > label {
      padding: 11px 0;
      line-height: 16px;
    }

    > .field_with_errors {

      input,
      textarea {
        border: $input-border-width solid $flash-error;

        &:hover,
        &:focus {
          border-color: $flash-error;
        }

        &:focus {
          color: $input-text;
        }
      }
    }

    input,
    textarea {
      background-color: $input-primary;
      color: $input-text;
      font-size: em(16);
      padding: $input-padding;
      height: em(40);
      border: none;

      &:hover {
        border: $input-border-width solid lighten($input-secondary, 20%);
        padding: $input-padding ($input-padding - $input-border-width);
      }

      &:focus {
        border: $input-border-width solid $input-secondary;
        padding: $input-padding ($input-padding - $input-border-width);
        color: $input-secondary;
        outline: none;
        background: transparent;
      }
    }
  }

  .controls {
    margin-bottom: 20px;

    button,
    input {
      @include button($button-secondary);
      margin-bottom: 0;
      outline: none;
    }
  }
}

form.dark {
  .fields {
    input {
      color: white;
      background: $input-dark-background-colour;
      border: $input-dark-border-colour solid $input-dark-border-width;

      &:hover {
        border: $input-dark-border-width solid $input-dark-border-hover-colour;
        padding: $input-padding ($input-padding - $input-dark-border-width);
      }

      &:focus {
        border: $input-dark-border-width solid $input-dark-border-focus-colour;
        padding: $input-padding ($input-padding - $input-dark-border-width);
      }

      &:-webkit-autofill {
        -webkit-text-fill-color: white !important;
        -webkit-box-shadow: 0 0 0px 1000px $input-dark-background-colour inset;
      }
    }
  }


  .controls {
    margin-bottom: 20px;

    button,
    input {
      background-color: $purple;
    }
  }
}

form.square {
  @include span-columns(12);

  &.small {
    @include span-columns(6);
  }

  &.medium {
    @include span-columns(9);
  }

  &.large {
    @include span-columns(12);
  }

  > .field_with_errors:first-child,
  > label {
    @include span-columns(3);
  }

  input {
    @include span-columns(9);
  }

  .controls {
    @include span-columns(9);
    @include shift(3);
  }
}
