md-input-container.md-THEME_NAME-theme {
  .md-input {
    @include input-placeholder-color('{{foreground-3}}');
    color: '{{foreground-1}}';
    border-color: '{{foreground-4}}';
    text-shadow: '{{foreground-shadow}}';
  }

  > md-icon {
    color: '{{foreground-1}}';
  }

  label,
  .md-placeholder {
    text-shadow: '{{foreground-shadow}}';
    color: '{{foreground-3}}';
  }

  ng-messages, [ng-messages],
  ng-message, data-ng-message, x-ng-message,
  [ng-message], [data-ng-message], [x-ng-message],
  [ng-message-exp], [data-ng-message-exp], [x-ng-message-exp] {
    :not(.md-char-counter) {
      color: '{{warn-500}}';
    }
  }

  &:not(.md-input-invalid) {
    &.md-input-has-value {
      label {
        color: '{{foreground-2}}';
      }
    }
    &.md-input-focused {
      .md-input {
        border-color: '{{primary-500}}';
      }
      label {
        color: '{{primary-500}}';
      }
      md-icon {
        color: '{{primary-500}}';
      }
      &.md-accent {
        .md-input {
          border-color: '{{accent-500}}';
        }
        label {
          color: '{{accent-500}}';
        }
      }
      &.md-warn {
        .md-input {
          border-color: '{{warn-500}}';
        }
        label {
          color: '{{warn-500}}';
        }
      }
    }
  }
  &.md-input-invalid {
    .md-input {
      border-color: '{{warn-500}}';
    }
    &.md-input-focused label {
      color: '{{warn-500}}';
    }
    ng-message, data-ng-message, x-ng-message,
    [ng-message], [data-ng-message], [x-ng-message],
    [ng-message-exp], [data-ng-message-exp], [x-ng-message-exp],
    .md-char-counter {
      color: '{{warn-500}}';
    }
  }
  .md-input {
    &[disabled],
    [disabled] & {
      border-bottom-color: transparent;
      color: '{{foreground-3}}';
      background-image: linear-gradient(to right, '{{foreground-3}}' 0%, '{{foreground-3}}' 33%, transparent 0%);
      background-image: -ms-linear-gradient(left, transparent 0%, '{{foreground-3}}' 100%);
    }
  }
}
