/**
 * Input
 */
.input-wrapper {
  display: block;
  vertical-align: middle;
  position: relative;
  flex-grow: 1;
  flex-shrink: 1;
}
.input-wrapper .input {
  position: relative;
  display: flex;
  flex: 1 0 auto;
  align-items: center;
  flex-direction: row;
  background-clip: padding-box;
  border-width: var(--input--border-width, var(--input--border-top-width, var(--border-top-width)) var(--input--border-right-width, var(--border-right-width)) var(--input--border-bottom-width, var(--border-bottom-width)) var(--input--border-left-width, var(--border-left-width)));
  border-style: var(--input--border-style, var(--input--border-top-style, var(--border-top-style)) var(--input--border-right-style, var(--border-right-style)) var(--input--border-bottom-style, var(--border-bottom-style)) var(--input--border-left-style, var(--border-left-style)));
  border-color: var(--input--border-color, var(--input--border-top-color, var(--border-top-color)) var(--input--border-right-color, var(--border-right-color)) var(--input--border-bottom-color, var(--border-bottom-color)) var(--input--border-left-color, var(--border-left-color)));
  border-radius: var(--input--border-radius, var(--input--border-top-left-radius, var(--border-top-left-radius)) var(--input--border-top-right-radius, var(--border-top-right-radius)) var(--input--border-bottom-right-radius, var(--border-bottom-right-radius)) var(--input--border-bottom-left-radius, var(--border-bottom-left-radius)));
  box-shadow: var(--input--box-shadow, var(--input--box-shadow-x-offset, var(--box-shadow-offset-x)) var(--input--box-shadow-y-offset, var(--box-shadow-offset-y)) var(--input--box-shadow-blur-radius, var(--box-shadow-blur-radius)) var(--input--box-shadow-spread-radius, var(--box-shadow-spread-radius)) var(--input--box-shadow-color, var(--box-shadow-color)));
  transition-property: var(--input--transition-property, background-color, color, border-color, box-shadow);
  transition-duration: var(--input--transition-duration, var(--transition-duration));
  transition-timing-function: var(--input--transition-timing-function, var(--transition-timing-function));
  color: var(--input--color);
  background-color: var(--input--background);
  font-size: var(--input--font-size, var(--font-size));
}
.input-wrapper .input:hover {
  border-color: var(--input--hover--border-color);
}
.input-wrapper .input:focus-within {
  outline: 0;
  box-shadow: var(--input--box-shadow, var(--input--box-shadow-x-offset, var(--box-shadow-offset-x)) var(--input--box-shadow-y-offset, var(--box-shadow-offset-y)) var(--input--box-shadow-blur-radius, var(--box-shadow-blur-radius)) var(--input--box-shadow-spread-radius, var(--box-shadow-spread-radius)) var(--input--box-shadow-color, var(--box-shadow-color)));
  border-color: var(--input--focus--border-color);
}
.input-wrapper .input > input,
.input-wrapper .input > select,
.input-wrapper .input > textarea {
  position: relative;
  flex: 1 0 auto;
  width: 1%;
  background: transparent;
  border: 0;
  margin: 0;
  outline: 0;
  line-height: var(--input--line-height, var(--line-height));
  color: var(--input--color);
  padding: var(--input--padding, var(--input--padding-top, var(--padding-top)) var(--input--padding-right, var(--padding-right)) var(--input--padding-bottom, var(--padding-bottom)) var(--input--padding-left, var(--padding-left)));
  /**
   * Select
   */
}
.input-wrapper .input > input::-ms-expand,
.input-wrapper .input > select::-ms-expand,
.input-wrapper .input > textarea::-ms-expand {
  background-color: transparent;
  border: 0;
}
.input-wrapper .input > input::placeholder,
.input-wrapper .input > select::placeholder,
.input-wrapper .input > textarea::placeholder {
  opacity: 1;
  color: var(--input--placeholder--color);
}
.input-wrapper .input > input:disabled, .input-wrapper .input > input[readonly],
.input-wrapper .input > select:disabled,
.input-wrapper .input > select[readonly],
.input-wrapper .input > textarea:disabled,
.input-wrapper .input > textarea[readonly] {
  opacity: 1;
  cursor: default;
}
.input-wrapper .input > input[readonly]:focus,
.input-wrapper .input > select[readonly]:focus,
.input-wrapper .input > textarea[readonly]:focus {
  outline: 0;
}
.input-wrapper .input .input-prefix,
.input-wrapper .input .input-suffix {
  display: inline-flex;
  align-items: center;
  z-index: 1;
  font-style: normal;
  transition-property: var(--input--transition-property, border-color);
  transition-duration: var(--input--transition-duration, var(--transition-duration));
  transition-timing-function: var(--input--transition-timing-function, var(--transition-timing-function));
  border-color: var(--input--border-color, var(--input--border-top-color, var(--border-top-color)) var(--input--border-right-color, var(--border-right-color)) var(--input--border-bottom-color, var(--border-bottom-color)) var(--input--border-left-color, var(--border-left-color)));
  color: var(--input--prefix-suffix--color);
  padding-right: var(--input--prefix-suffix--padding-right, var(--input--padding-right, var(--padding-right)));
  padding-left: var(--input--prefix-suffix--padding-left, var(--input--padding-left, var(--padding-left)));
}
.input-wrapper .input .input-prefix > button:not(.button):not(.select-caret),
.input-wrapper .input .input-suffix > button:not(.button):not(.select-caret) {
  background: transparent;
  border: 0;
  color: inherit;
}
.input-wrapper .input .input-prefix {
  border-right-width: var(--input--prefix--border-right-width, var(--input--border-right-width, var(--border-right-width)));
  border-right-style: var(--input--prefix--border-right-style, var(--input--border-right-style, var(--border-right-style)));
}
.input-wrapper .input .input-suffix {
  border-left-width: var(--input--suffix--border-left-width, var(--input--border-left-width, var(--border-left-width)));
  border-left-style: var(--input--prefix--border-left-style, var(--input--border-left-style, var(--border-left-style)));
}
.input-wrapper .input .input-icon {
  transition-property: var(--input--transition-property, color);
  transition-duration: var(--input--transition-duration, var(--transition-duration));
  transition-timing-function: var(--input--transition-timing-function, var(--transition-timing-function));
  cursor: pointer;
  width: auto;
  height: var(--input--icon--size);
  color: var(--input--icon--color);
}
.input-wrapper .input .input-icon:hover, .input-wrapper .input .input-icon:focus {
  color: var(--input--icon--hover--color, var(--input--icon--color));
}
.input-wrapper .input-prepend,
.input-wrapper .input-append {
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  padding: 0;
  line-height: var(--input-line-height, var(--line-height));
  transition-property: var(--input--transition-property, background-color);
  transition-duration: var(--input--transition-duration, var(--transition-duration));
  transition-timing-function: var(--input--transition-timing-function, var(--transition-timing-function));
  background-color: var(--input--prepend-append--background);
  font-size: var(--input--font-size, var(--font-size));
}
.input-wrapper .input-prepend > *,
.input-wrapper .input-append > * {
  display: flex;
  flex: auto 1 0;
  align-self: stretch;
  align-items: center;
  border-radius: 0;
  padding-left: var(--input--prepend-append--padding-left, var(--input--padding-left, var(--padding-left)));
  padding-right: var(--input--prepend-append--padding-right, var(--input--padding-right, var(--padding-right)));
}
.input-wrapper .input-prepend > [class$=-wrapper],
.input-wrapper .input-append > [class$=-wrapper] {
  padding-left: 0;
  padding-right: 0;
}
.input-wrapper .input-prepend > [class$=-wrapper] > [class$=-trigger],
.input-wrapper .input-append > [class$=-wrapper] > [class$=-trigger] {
  display: flex;
  align-self: stretch;
}
.input-wrapper .input-value-overlay {
  position: absolute;
  padding-left: var(--input--value-overlay--padding-left, var(--input--padding-left, var(--padding-left)));
  padding-right: var(--input--value-overlay--padding-right, var(--input--padding-left, var(--padding-left)));
}
.input-wrapper .input-value-overlay,
.input-wrapper .input-value-overlay > * {
  cursor: default;
}
.input-wrapper .input-prepend,
.input-wrapper .input-prepend > *:first-child {
  border-top-left-radius: var(--input--border-top-left-radius, var(--border-top-left-radius));
  border-bottom-left-radius: var(--input--border-bottom-left-radius, var(--border-bottom-left-radius));
}
.input-wrapper .input-append,
.input-wrapper .input-append > *:last-child {
  border-top-right-radius: var(--input--border-top-right-radius, var(--border-top-right-radius));
  border-bottom-right-radius: var(--input--border-bottom-right-radius, var(--border-bottom-right-radius));
}
.input-wrapper.-prepended, .input-wrapper.-appended {
  display: flex;
  flex-wrap: nowrap;
}
.input-wrapper.-prepended > .input, .input-wrapper.-appended > .input {
  flex-shrink: 1;
}
.input-wrapper.-prepended > .input {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-wrapper.-appended > .input {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-wrapper.-error > .input {
  border-color: var(--input--error--border-color, var(--color-danger));
}
.input-wrapper.-disabled > .input, .input-wrapper.-readonly > .input {
  color: var(--input--disabled--color, var(--input--color));
  background: var(--input--disabled--background, var(--input--background));
}
.input-wrapper.-disabled > .input:hover, .input-wrapper.-readonly > .input:hover {
  border-color: var(--input--border-color, var(--input--border-top-color, var(--border-top-color)) var(--input--border-right-color, var(--border-right-color)) var(--input--border-bottom-color, var(--border-bottom-color)) var(--input--border-left-color, var(--border-left-color)));
}
.input-wrapper.-disabled > .input > input:disabled, .input-wrapper.-disabled > .input > input[readonly],
.input-wrapper.-disabled > .input > select:disabled,
.input-wrapper.-disabled > .input > select[readonly],
.input-wrapper.-disabled > .input > textarea:disabled,
.input-wrapper.-disabled > .input > textarea[readonly], .input-wrapper.-readonly > .input > input:disabled, .input-wrapper.-readonly > .input > input[readonly],
.input-wrapper.-readonly > .input > select:disabled,
.input-wrapper.-readonly > .input > select[readonly],
.input-wrapper.-readonly > .input > textarea:disabled,
.input-wrapper.-readonly > .input > textarea[readonly] {
  color: var(--input--disabled--color);
}
.input-wrapper.-readonly > .input:focus-within {
  outline: 0;
  border-color: var(--input--focus--border-color);
}

/**
 * Color variants
 */
.input-wrapper.-light {
  --input--background: var(--input--light--background, var(--color-white));
  --input--color: var(--input--light--color, var(--contrast-text-color-white));
  --input--border-color: var(--input--light--border-color, var(--color-light-shade-50));
  --input--disabled--background: var(
      --input--light--disabled--background,
      var(--color-light)
  );
  --input--disabled--color: var(--input--light--disabled--color, var(--text-color-weak));
  --input--hover--border-color: var(
      --input--light--hover--border-color,
      var(--color-light-shade-100)
  );
  --input--focus--border-color: var(
      --input--light--focus--border-color,
      var(--color-primary)
  );
  --input--icon--color: var(--input--light--icon--color, var(--text-color-weak));
  --input--icon--hover--color: var(
      --input--light--icon--color,
      var(--contrast-text-color-light)
  );
  --input--placeholder--color: var(--input--light--placeholder--color, var(--color-gray-300));
  --input--prefix-suffix--color: var(
      --input--light--prefix-suffix--color,
      var(--color-gray-700)
  );
  --input--prepend-append--background: var(
      --input--light--prepend-append--background,
      var(--color-light)
  );
}
.input-wrapper.-dark {
  --input--background: var(--input--dark--background, var(--color-dark));
  --input--color: var(--input--dark--color, var(--contrast-text-color-dark));
  --input--border-color: var(--input--dark--border-color, var(--color-dark-tint-50));
  --input--disabled--background: var(
      --input--dark--disabled--background,
      var(--color-dark-tint-50)
  );
  --input--disabled--color: var(--input--dark--disabled--color, var(--text-color-weak));
  --input--hover--border-color: var(
      --input--dark--hover--border-color,
      var(--color-dark-tint-100)
  );
  --input--focus--border-color: var(--input--dark--focus--border-color, var(--color-primary));
  --input--icon--color: var(--input--dark--icon--color, var(--text-color-weak));
  --input--icon--hover--color: var(
      --input--dark--icon--color,
      var(--contrast-text-color-dark)
  );
  --input--placeholder--color: var(--input--dark--placeholder--color, var(--color-gray-600));
  --input--prefix-suffix--color: var(
      --input--dark--prefix-suffix--color,
      var(--color-dark-250)
  );
  --input--prepend-append--background: var(
      --input--dark--prepend-append--background,
      var(--color-dark)
  );
}

/**
 * Size variants
 */
.input-wrapper.-sm {
  --input--border-top-left-radius: var(
      --input--sm--border-top-left-radius,
      calc(var(--border-top-left-radius) * var(--size-multiplier-sm))
  );
  --input--border-top-right-radius: var(
      --input--sm--border-top-right-radius,
      calc(var(--border-top-right-radius) * var(--size-multiplier-sm))
  );
  --input--border-bottom-right-radius: var(
      --input--sm--border-bottom-right-radius,
      calc(var(--border-bottom-right-radius) * var(--size-multiplier-sm))
  );
  --input--border-bottom-left-radius: var(
      --input--sm--border-bottom-left-radius,
      calc(var(--border-bottom-left-radius) * var(--size-multiplier-sm))
  );
  --input--font-size: var(
      --input--sm--font-size,
      calc(var(--font-size) * var(--size-multiplier-sm))
  );
  --input--padding-top: var(
      --input--sm--padding-top,
      calc(var(--padding-top) * 0.5 * var(--size-multiplier-sm))
  );
  --input--padding-right: var(
      --input--sm--padding-right,
      calc(var(--padding-right) * var(--size-multiplier-sm))
  );
  --input--padding-bottom: var(
      --input--sm--padding-bottom,
      calc(var(--padding-bottom) * 0.5 * var(--size-multiplier-sm))
  );
  --input--padding-left: var(
      --input--sm--padding-left,
      calc(var(--padding-left) * var(--size-multiplier-sm))
  );
  --input--icon--size: calc(1rem * var(--size-multiplier-sm));
}
.input-wrapper.-md {
  --input--border-top-left-radius: var(
      --input--md--border-top-left-radius,
      calc(var(--border-top-left-radius) * var(--size-multiplier-md))
  );
  --input--border-top-right-radius: var(
      --input--md--border-top-right-radius,
      calc(var(--border-top-right-radius) * var(--size-multiplier-md))
  );
  --input--border-bottom-right-radius: var(
      --input--md--border-bottom-right-radius,
      calc(var(--border-bottom-right-radius) * var(--size-multiplier-md))
  );
  --input--border-bottom-left-radius: var(
      --input--md--border-bottom-left-radius,
      calc(var(--border-bottom-left-radius) * var(--size-multiplier-md))
  );
  --input--font-size: var(
      --input--md--font-size,
      calc(var(--font-size) * var(--size-multiplier-md))
  );
  --input--padding-top: var(
      --input--md--padding-top,
      calc(var(--padding-top) * 0.5 * var(--size-multiplier-md))
  );
  --input--padding-right: var(
      --input--md--padding-right,
      calc(var(--padding-right) * var(--size-multiplier-md))
  );
  --input--padding-bottom: var(
      --input--md--padding-bottom,
      calc(var(--padding-bottom) * 0.5 * var(--size-multiplier-md))
  );
  --input--padding-left: var(
      --input--md--padding-left,
      calc(var(--padding-left) * var(--size-multiplier-md))
  );
  --input--icon--size: calc(1rem * var(--size-multiplier-md));
}
.input-wrapper.-lg {
  --input--border-top-left-radius: var(
      --input--lg--border-top-left-radius,
      calc(var(--border-top-left-radius) * var(--size-multiplier-lg))
  );
  --input--border-top-right-radius: var(
      --input--lg--border-top-right-radius,
      calc(var(--border-top-right-radius) * var(--size-multiplier-lg))
  );
  --input--border-bottom-right-radius: var(
      --input--lg--border-bottom-right-radius,
      calc(var(--border-bottom-right-radius) * var(--size-multiplier-lg))
  );
  --input--border-bottom-left-radius: var(
      --input--lg--border-bottom-left-radius,
      calc(var(--border-bottom-left-radius) * var(--size-multiplier-lg))
  );
  --input--font-size: var(
      --input--lg--font-size,
      calc(var(--font-size) * var(--size-multiplier-lg))
  );
  --input--padding-top: var(
      --input--lg--padding-top,
      calc(var(--padding-top) * 0.5 * var(--size-multiplier-lg))
  );
  --input--padding-right: var(
      --input--lg--padding-right,
      calc(var(--padding-right) * var(--size-multiplier-lg))
  );
  --input--padding-bottom: var(
      --input--lg--padding-bottom,
      calc(var(--padding-bottom) * 0.5 * var(--size-multiplier-lg))
  );
  --input--padding-left: var(
      --input--lg--padding-left,
      calc(var(--padding-left) * var(--size-multiplier-lg))
  );
  --input--icon--size: calc(1rem * var(--size-multiplier-lg));
}