* {
  box-sizing: var(--air-box-sizing, border-box);
}

:host {
  display: var(--air-input-host-display, inline-flex);
  width: var(--air-input-width, var(--air-form-element-width, 576px));
  min-width: var(--air-input-min-width, var(--air-form-element-min-width, 260px));
  max-width: var(--air-input-max-width, var(--air-form-element-max-width, 100%));
}

.input-wrapper {
  position: relative;
  display: var(--air-input-display, block);
  width: var(--air-input-width, var(--air-form-element-width, 576px));
  min-width: var(--air-input-min-width, var(--air-form-element-min-width, 260px));
  max-width: var(--air-input-max-width, var(--air-form-element-max-width, 100%));
}
.input-wrapper.error .input-element {
  color: var(--air-input-error-color);
  border-color: var(--air-input-error-border-color, var(--air-color-error, var(--air-color-valencia, #e55451)));
}
.input-wrapper.error .input-label {
  color: var(--air-input-error-label-color, var(--air-color-error, var(--air-color-valencia, #e55451)));
}
.input-wrapper.error .status-text {
  color: var(--air-input-error-label-color, var(--air-color-error, var(--air-color-valencia, #e55451)));
}
.input-wrapper.success .input-element {
  color: var(--air-input-success-color);
  border-color: var(--air-input-success-border-color, var(--air-color-success, var(--air-color-fern, #5ec075)));
}
.input-wrapper.success .input-label {
  color: var(--air-input-success-label-color, var(--air-color-success, var(--air-color-fern, #5ec075)));
}
.input-wrapper.success .status-text {
  color: var(--air-input-success-label-color, var(--air-color-success, var(--air-color-fern, #5ec075)));
}
.input-wrapper:not(.with-status):hover .input-element:not([disabled]):not([readonly]) {
  color: var(--air-input-hover-color, var(--air-form-element-hover-color, var(--air-color-eclipse, #3a3a3a)));
  border-color: var(--air-input-hover-border-color, var(--air-form-element-hover-color, var(--air-color-eclipse, #3a3a3a)));
  background-color: var(--air-input-hover-background-color, var(--air-form-element-hover-background-color, rgba(58, 58, 58, 0.05)));
}
.input-wrapper .required-mark {
  color: var(--air-input-mark-required-color, var(--air-color-error, var(--air-color-valencia, #e55451)));
}
.input-wrapper .input-label {
  display: block;
  font-family: var(--air-input-font-family, var(--air-body-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));
  margin-top: var(--air-input-label-margin-top, 0);
  margin-right: var(--air-input-label-margin-right, 0);
  margin-bottom: var(--air-input-label-margin-bottom, var(--air-spacing-03, 1rem));
  margin-left: var(--air-input-label-margin-left, 0);
}
.input-wrapper .status-text {
  display: block;
  font-family: var(--air-input-font-family, var(--air-body-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));
  font-size: var(--air-input-status-text-font-size, var(--air-caption-font-size, 0.875rem));
  font-weight: var(--air-input-status-text-font-weight, var(--air-caption-font-weight, 400));
  font-family: var(--air-input-status-text-font-family, var(--air-caption-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));
  line-height: var(--air-input-status-text-line-height, var(--air-caption-line-height, 1.5));
  margin-top: var(--air-input-status-text-margin-top, var(--air-spacing-02, 0.5rem));
  margin-right: var(--air-input-status-text-margin-right, 0);
  margin-bottom: var(--air-input-status-text-margin-bottom, 0);
  margin-left: var(--air-input-status-text-margin-left, 0);
}

.input-element-wrapper {
  position: relative;
}

.input-element {
  display: var(--air-input-display, block);
  width: 100%;
  font-family: var(--air-input-font-family, var(--air-body-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));
  font-size: var(--air-input-font-size, var(--air-body-font-size, 1rem));
  line-height: var(--air-input-line-height, var(--air-body-line-height, 1.5));
  margin-top: var(--air-input-margin-top, 0);
  margin-left: var(--air-input-margin-left, 0);
  margin-bottom: var(--air-input-margin-bottom, 0);
  margin-right: var(--air-input-margin-right, 0);
  padding-top: var(--air-input-padding-top, var(--air-spacing-03, 1rem));
  padding-left: var(--air-input-padding-left, var(--air-spacing-03, 1rem));
  padding-bottom: var(--air-input-padding-bottom, var(--air-spacing-03, 1rem));
  padding-right: var(--air-input-padding-right, var(--air-spacing-03, 1rem));
  border-radius: var(--air-input-border-radius, var(--air-form-element-border-radius, var(--air-border-radius, 4px)));
  color: var(--air-input-color, var(--air-body-color, var(--air-color-eclipse, #3a3a3a)));
  border: var(--air-input-border-width, var(--air-form-element-border-width, 1px)) var(--air-input-border-style, var(--air-form-element-border-style, solid)) var(--air-input-border-color, var(--air-form-element-border-color, var(--air-color-gray, #b7b7b7)));
}
.input-element:focus {
  outline: none;
  box-shadow: 0 0 0 var(--air-input-focus-outline-width, var(--air-focus-outline-width, 2px)) var(--air-input-focus-outline-color, var(--air-focus-outline-color, var(--air-color-primary-outline, var(--air-color-denim, #2e71bd))));
}
.input-element[disabled] {
  background-color: var(--air-input-disabled-background-color, var(--air-form-element-disabled-background-color, var(--air-color-gainsboro, #d8d8d8)));
  color: var(--air-input-disabled-color, var(--air-form-element-disabled-color, var(--air-color-eclipse, #3a3a3a)));
  border-color: var(--air-input-disabled-border-color, var(--air-form-element-disabled-border-color, var(--air-color-eclipse, #3a3a3a)));
}
.input-element[readonly] {
  color: var(--air-input-readonly-color, var(--air-form-element-readonly-color, var(--air-color-dim-grey, #717171)));
  border-color: var(--air-input-readonly-border-color, var(--air-form-element-readonly-border-color, var(--air-color-gray, #b7b7b7)));
}
.input-element::placeholder {
  color: var(--air-input-placeholder-color, var(--air-form-element-placeholder-color, var(--air-color-gray, #b7b7b7)));
}

.input-icon-left {
  left: var(--air-input-padding-left, var(--air-spacing-03, 1rem));
}

.input-icon-right {
  right: var(--air-input-padding-right, var(--air-spacing-03, 1rem));
}

.input-icon-left,
.input-icon-right {
  display: inline-block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
}

.with-icon .input-element {
  padding-left: var(--air-input-with-icon-left-padding-left, var(--air-spacing-06, 3rem));
}

.has-value .input-element {
  padding-right: var(--air-input-with-icon-right-padding-right, var(--air-spacing-06, 3rem));
}

.hidden {
  display: none;
}

@media (max-width: 992px) {
  :host {
    --air-input-width: var(--air-mobile-input-width, var(--air-mobile-form-element-width, 100%));
    width: var(--air-mobile-input-width, var(--air-mobile-form-element-width, 100%));
  }
  .input-wrapper {
    --air-input-width: var(--air-mobile-input-width, var(--air-mobile-form-element-width, 100%));
    width: var(--air-mobile-input-width, var(--air-mobile-form-element-width, 100%));
  }
}