:root {
  --form-input-display: flex;
  --form-input-flex-direction: column;
  --form-input-position: relative;
  --form-input-width: 100%;
  --form-input-control-display: flex;
  --form-input-control-bg: transparent;
  --form-input-control-radius: 2px;
  --form-input-control-border-width: 1px;
  --form-input-control-border-color: var(--border-color);
  --form-input-control-font-size: 1em;
  --form-input-control-padding: 0.563em 0.75em 0.625em 0.75em;
  --form-input-control-text-transform: none;
  --form-input-control-font-weight: 600;
  --form-input-control-letter-spacing: 0.05em;
  --form-input-control-text-align: left;
  --form-input-control-transition-property: color, background-color, box-shadow, border-color, transform;
  --form-input-control-color: var(--text-light);
  --form-input-control-border-box: border-box;
  --form-input-control-position: relative;
  --form-input-control-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
  --form-input-control-font-weight: normal;
  --form-input-control-input-border: 0px;
  --form-input-control-input-outline: none;
  --form-input-control-input-min-height: 1.5em;
  --form-input-control-padding-small: 0.5em 0.813em 0.375em 0.813em;
  --form-input-control-small-font-size: 0.875em;
  --form-input-control-padding-large: 0.75em 1em 0.688em 1em;
  --form-input-control-large-font-size: 1.25em;
  --form-input-control-border-color-hover: var(--primary-hover);
  --form-input-control-box-shadow-hover: 0px 0px 1px var(--primary-hover);
  --form-input-control-success-border-color: var(--success);
  --form-input-control-success-box-shadow-hover: 0px 0px 1px var(--success-hover);
  --form-input-control-warning-border-color: var(--warning);
  --form-input-control-warning-box-shadow-hover: 0px 0px 1px var(--warning-hover);
  --form-input-control-danger-border-color: var(--danger);
  --form-input-control-danger-box-shadow-hover: 0px 0px 1px var(--danger-hover);
  --form-input-label-font-size: 0.875em;
  --form-input-label-padding-bottom: 0.475em;
  --form-input-label-position: relative;
  --form-input-label-color: var(--text-base);
  --form-input-details-message-font-size: 0.875em;
  --form-input-details-message-margin-top: 0.5em;
  --form-input-details-message-position: relative;
  --form-input-details-message-color: var(--details-message-color);
  --form-input-details-message-line-height: 1.2em;
  --form-input-success-details-message-color: var(--success);
  --form-input-warning-details-message-color: var(--warning);
  --form-input-danger-details-message-color: var(--danger);
  --form-input-control-inline-display: flex;
  --form-input-control-inline-align-items: center;
  --form-input-control-inline-padding-left: 0.188em;
  --form-input-control-inline-padding-right: 0.188em;
  --form-input-min-width: 1.875em;
  --form-input-margin-top: -1px;
}

.dh-form-input {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  display: var(--form-input-display);
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  flex-direction: var(--form-input-flex-direction);
  position: relative;
  position: var(--form-input-position);
  width: 100%;
  width: var(--form-input-width);
}

.dh-form-input-control {
  background-color: var(--form-control-bg);
  display: inline-block;
  vertical-align: middle;
  border: 0;
  font: inherit;
  padding: 0;
  width: auto;
  white-space: nowrap;
  color: inherit;
  line-height: normal;
  border-radius: var(--control-radius);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  display: var(--form-input-control-display);
  border-radius: 2px;
  border-radius: var(--form-input-control-radius);
  border: 1px solid var(--border-color);
  border: var(--form-input-control-border-width) solid var(--form-input-control-border-color);
  font-size: 1em;
  font-size: var(--form-input-control-font-size);
  font-weight: normal;
  font-weight: var(--form-input-control-font-weight);
  text-transform: none;
  text-transform: var(--form-input-control-text-transform);
  letter-spacing: 0.05em;
  letter-spacing: var(--form-input-control-letter-spacing);
  text-align: left;
  text-align: var(--form-input-control-text-align);
  background-color: transparent;
  background-color: var(--form-input-control-bg);
  color: var(--text-light);
  color: var(--form-input-control-color);
  position: relative;
  position: var(--form-input-control-position);
}

.dh-form-input-control:focus {
  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
}

.dh-form-input-control.is-disabled, .dh-form-input-control[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}

.dh-form-input-control.is-block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
}

.dh-form-input-control:hover {
  border-color: var(--primary-hover);
  border-color: var(--form-input-control-border-color-hover);
  -webkit-box-shadow: 0px 0px 1px var(--primary-hover);
          box-shadow: 0px 0px 1px var(--primary-hover);
  -webkit-box-shadow: var(--form-input-control-box-shadow-hover);
          box-shadow: var(--form-input-control-box-shadow-hover);
}

.dh-form-input-control:focus {
  border-color: var(--primary-hover);
  border-color: var(--form-input-control-border-color-hover);
  -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
          box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
  -webkit-box-shadow: var(--form-input-control-box-shadow);
          box-shadow: var(--form-input-control-box-shadow);
}

.dh-form-input-control:focus-within {
  border-color: var(--primary-hover);
  border-color: var(--form-input-control-border-color-hover);
  -webkit-box-shadow: 0px 0px 1px var(--primary-hover);
          box-shadow: 0px 0px 1px var(--primary-hover);
  -webkit-box-shadow: var(--form-input-control-box-shadow-hover);
          box-shadow: var(--form-input-control-box-shadow-hover);
}

.dh-form-input-control.is-success {
  border-color: var(--success);
  border-color: var(--form-input-control-success-border-color);
}

.dh-form-input-control.is-success:hover {
  border-color: var(--success);
  border-color: var(--form-input-control-success-border-color);
  -webkit-box-shadow: 0px 0px 1px var(--success-hover);
          box-shadow: 0px 0px 1px var(--success-hover);
  -webkit-box-shadow: var(--form-input-control-success-box-shadow-hover);
          box-shadow: var(--form-input-control-success-box-shadow-hover);
}

.dh-form-input-control.is-success:focus {
  border-color: var(--success);
  border-color: var(--form-input-control-success-border-color);
}

.dh-form-input-control.is-warning {
  border-color: var(--warning);
  border-color: var(--form-input-control-warning-border-color);
}

.dh-form-input-control.is-warning:hover {
  border-color: var(--warning);
  border-color: var(--form-input-control-warning-border-color);
  -webkit-box-shadow: 0px 0px 1px var(--warning-hover);
          box-shadow: 0px 0px 1px var(--warning-hover);
  -webkit-box-shadow: var(--form-input-control-warning-box-shadow-hover);
          box-shadow: var(--form-input-control-warning-box-shadow-hover);
}

.dh-form-input-control.is-warning:focus {
  border-color: var(--warning);
  border-color: var(--form-input-control-warning-border-color);
}

.dh-form-input-control.is-danger {
  border-color: var(--danger);
  border-color: var(--form-input-control-danger-border-color);
}

.dh-form-input-control.is-danger:hover {
  border-color: var(--danger);
  border-color: var(--form-input-control-danger-border-color);
  -webkit-box-shadow: 0px 0px 1px var(--danger-hover);
          box-shadow: 0px 0px 1px var(--danger-hover);
  -webkit-box-shadow: var(--form-input-control-danger-box-shadow-hover);
          box-shadow: var(--form-input-control-danger-box-shadow-hover);
}

.dh-form-input-control.is-danger:focus {
  border-color: var(--danger);
  border-color: var(--form-input-control-danger-border-color);
}

.dh-form-input-control.is-hideMessage .dh-form-input-message {
  display: block;
}

.dh-form-input-control-input {
  border: 0px;
  border: var(--form-input-control-input-border);
  padding: 0.563em 0.75em 0.625em 0.75em;
  padding: var(--form-input-control-padding);
  width: 100%;
  width: var(--form-input-width);
  min-height: 1.5em;
  min-height: var(--form-input-control-input-min-height);
}

.dh-form-input-control-input:focus {
  outline: none;
  outline: var(--form-input-control-input-outline);
}

.dh-form-input-control-input.is-small {
  padding: 0.5em 0.813em 0.375em 0.813em;
  padding: var(--form-input-control-padding-small);
  font-size: 0.875em;
  font-size: var(--form-input-control-small-font-size);
}

.dh-form-input-control-input.is-large {
  padding: 0.75em 1em 0.688em 1em;
  padding: var(--form-input-control-padding-large);
  font-size: 1.25em;
  font-size: var(--form-input-control-large-font-size);
}

.dh-form-input-control-input.is-disabled, .dh-form-input-control-input[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}

.dh-form-input .dh-form-input-before,
.dh-form-input .dh-form-input-after {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  display: var(--form-input-control-inline-display);
}

.dh-form-input .dh-form-input-before *,
.dh-form-input .dh-form-input-after * {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  display: var(--form-input-control-inline-display);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-align: var(--form-input-control-inline-align-items);
      -ms-flex-align: var(--form-input-control-inline-align-items);
          align-items: var(--form-input-control-inline-align-items);
  padding-left: 0.188em;
  padding-left: var(--form-input-control-inline-padding-left);
}

.dh-form-input .dh-form-input-after * {
  padding-right: 0.188em;
  padding-right: var(--form-input-control-inline-padding-right);
}

.dh-form-input .dh-form-input-label {
  position: relative;
  position: var(--form-input-label-position);
  padding-bottom: 0.475em;
  padding-bottom: var(--form-input-label-padding-bottom);
  font-size: 0.875em;
  font-size: var(--form-input-label-font-size);
  color: var(--text-base);
  color: var(--form-input-label-color);
}

.dh-form-input .dh-form-input-message {
  position: relative;
  position: var(--form-input-details-message-position);
  margin-top: 0.5em;
  margin-top: var(--form-input-details-message-margin-top);
  font-size: 0.875em;
  font-size: var(--form-input-details-message-font-size);
  color: var(--details-message-color);
  color: var(--form-input-details-message-color);
  line-height: 1.2em;
  line-height: var(--form-input-details-message-line-height);
  width: var(--form-input-control-width);
}

.dh-form-input .dh-form-input-message.is-success {
  color: var(--success);
  color: var(--form-input-success-details-message-color);
}

.dh-form-input .dh-form-input-message.is-warning {
  color: var(--warning);
  color: var(--form-input-warning-details-message-color);
}

.dh-form-input .dh-form-input-message.is-danger {
  color: var(--danger);
  color: var(--form-input-danger-details-message-color);
}
