input {

  font-family: inherit !important;
  font-size: 1em;
  border: none;

  &:focus {
    outline: 0;
  }

  &[type="text"], &[type="email"], &[type="password"] {

    background-color: white;
    color: inherit;
    overflow-x: hidden;
    text-overflow: ellipsis;
    user-select: none;
    border-radius: 4px;

    &.input--center { text-align: center; }

    &:not(.input--inline) {
      width: 100%;
      box-sizing: border-box;
    }

    &.input--transparent {
      background-color: rgba(white, 0);
      color: inherit !important;
    }

    &.input--border { border: 1px solid #aaa; }

    &.input--sm, .input--container-sm & {
      line-height: 1.75;
      min-height: 1.75em;
      &:not(.input--center) { padding-left: .5em; }
    }

    // Default size (equivalent to input--md)
    line-height: 3;
    min-height: 3em;
    &:not(.input--center) { padding-left: 1.25em; }

    &.input--lg, .input--container-lg & {
      line-height: 5;
      min-height: 5em;
      &:not(.input--center) { padding-left: 2.5em; }
    }

  }
}

.input--container-sm {
  & > label {
    line-height: 1.75;
  }
}

.input--container {
  & > label {
    line-height: 3;
  }
}

.input--container-lg {
  & > label {
    line-height: 5;
  }
}
