.form-control-validation(@text-color: @input-color; @border-color: @input-border-color; @background-color: @input-bg) {
  .ant-form-explain,
  .ant-form-split {
    color: @text-color;
  }
  // 输入框的不同校验状态
  .ant-input {
    border-color: @border-color;
    box-shadow: 0 0 0 2px fade(@border-color, 20%);

    &:not([disabled]):hover {
      border-color: @border-color;
    }
  }

  .ant-calendar-picker-open .ant-calendar-picker-input {
    box-shadow: 0 0 0 2px fade(@border-color, 20%);
  }

  .ant-input-group-addon {
    color: @text-color;
    border-color: @border-color;
    background-color: @background-color;
  }

  .has-feedback {
    color: @text-color;
  }
}

// Reset form styles
// -----------------------------
// Based on Bootstrap framework
.reset-form() {
  fieldset {
    padding: 0;
    margin: 0;
    border: 0;
    min-width: 0;
  }

  legend {
    display: block;
    width: 100%;
    padding: 0;
    margin-bottom: 20px;
    font-size: 14px;
    line-height: inherit;
    color: @legend-color;
    border: 0;
    border-bottom: 1px solid @legend-border-color;
  }

  label {
    font-size: @font-size-base;
  }

  input[type="search"] {
    box-sizing: border-box;
  }

  // Position radios and checkboxes better
  input[type="radio"],
  input[type="checkbox"] {
    line-height: normal;
  }

  input[type="file"] {
    display: block;
  }

  // Make range inputs behave like textual form controls
  input[type="range"] {
    display: block;
    width: 100%;
  }

  // Make multiple select elements height not fixed
  select[multiple],
  select[size] {
    height: auto;
  }

  // Focus for file, radio, and checkbox
  input[type="file"]:focus,
  input[type="radio"]:focus,
  input[type="checkbox"]:focus {
    outline: thin dotted;
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px;
  }

  // Adjust output element
  output {
    display: block;
    padding-top: 15px;
    font-size: @font-size-base;
    line-height: @line-height-base;
    color: @input-color;
  }
}
