/*!
 * VILLAGE v0.0.3 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
 */
@charset "UTF-8";

/* ¯¯¯¯¯¯¯¯¯ *\
  INPUT
\* ˍˍˍˍˍˍˍˍˍ */
.village-input {
  display: block;
  width: 100%;
  border-radius: 0.25rem 0.25rem 0 0;
  font-size: 1rem;
  line-height: 1.5rem;
  padding: 0.5rem 1rem;
  color: var(--text-default-grey);
  background-color: var(--background-contrast-grey);

  --idle: transparent;
  --hover: var(--background-contrast-grey-hover);
  --active: var(--background-contrast-grey-active);
  box-shadow: inset 0 -2px 0 0 var(--border-plain-grey);
}

.village-input:not(textarea) {
  max-height: 2.5rem;
}

.village-input::placeholder {
  opacity: 1;
  font-style: italic;
  color: var(--text-mention-grey);
}

.village-input::-webkit-contacts-auto-fill-button {
  cursor: pointer;
  background-color: var(--text-label-grey);

  --idle: transparent;
  --hover: var(--text-label-grey-hover);
  --active: var(--text-label-grey-active);
}

.village-input[type=date] {
  min-height: 2.5rem;
}
@supports selector(::-webkit-calendar-picker-indicator) {
  .village-input[type=date] {
    background-repeat: no-repeat;
    background-position: calc(100% - 1rem) 50%;
    background-size: 1rem 1rem;
    padding-right: 3rem;
    --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23161616' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
    background-image: var(--data-uri-svg);
  }

  .village-input[type=date]::-webkit-calendar-picker-indicator {
    display: block;
    padding: 1rem;
    margin-right: -2.5rem;
    opacity: 0;
  }
}

.village-input-wrap {
  position: relative;
  display: block;
}

.village-input-wrap[class^=village-icon-] .village-input,
.village-input-wrap[class*=" village-icon-"] .village-input,
.village-input-wrap[class^=village-fi-] .village-input,
.village-input-wrap[class*=" village-fi-"] .village-input {
  padding-right: 3rem;
}

.village-input-wrap[class^=village-icon-]::before,
.village-input-wrap[class*=" village-icon-"]::before,
.village-input-wrap[class^=village-fi-]::before,
.village-input-wrap[class*=" village-fi-"]::before {
  --icon-size: 1rem;
  position: absolute;
  top: 0.75rem;
  right: 1rem;
  bottom: 0.75rem;
  margin: auto;
  pointer-events: none;
}

.village-input-wrap--addon,
.village-input-wrap--action {
  display: flex;
  flex-direction: row;
  width: 100%;
}

.village-input-wrap--addon > *:first-child:not(:last-child) {
  border-radius: 0.25rem 0 0 0;
}

.village-input-wrap--addon > *:last-child:not(:first-child) {
  border-radius: 0 0.25rem 0 0;
}

.village-input-wrap--action .village-btn {
  margin-left: 1rem;
}

.village-input-wrap + .village-hint-text {
  margin-top: 1rem;
}

.village-input-group {
  position: relative;
}

.village-input-group .village-message:first-child {
  margin-top: 1rem;
}

.village-input-group--valid::before,
.village-input-group--error::before,
.village-input-group--info::before {
  content: "";
  display: block;
  pointer-events: none;
  position: absolute;
  top: 0;
  right: -0.75rem;
  bottom: 0;
  left: -0.75rem;
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 0.125rem 100%;
}

textarea.village-input {
  min-height: 3.75rem;
}

.village-input:disabled {
  color: var(--text-disabled-grey);
  box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
}

.village-input:autofill,
.village-input:autofill:hover,
.village-input:autofill:focus,
.village-input:-webkit-autofill,
.village-input:-webkit-autofill:hover,
.village-input:-webkit-autofill:focus {
  box-shadow: inset 0 -2px 0 0 var(--border-plain-grey), inset 0 0 0 1000px var(--background-contrast-info);
  -webkit-text-fill-color: var(--text-label-grey);
}
@supports selector(::-webkit-calendar-picker-indicator) {

  :root[data-village-theme=dark] .village-input[type=date] {
    --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23fff' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
  }

  .village-input[type=date]:disabled {
    color: var(--text-disabled-grey);
    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);

    --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23929292' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
    background-image: var(--data-uri-svg);
  }

  :root[data-village-theme=dark] .village-input[type=date]:disabled {
    --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23666' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
  }
}

.village-input-wrap--addon > .village-input:not(:last-child) {
  box-shadow: inset 0 -2px 0 0 var(--border-action-high-village-primary);
}

.village-fieldset--valid .village-input,
.village-fieldset--valid .village-input-wrap--addon > .village-input:not(:last-child),
.village-input-group--valid .village-input,
.village-input-group--valid .village-input-wrap--addon > .village-input:not(:last-child) {
  box-shadow: inset 0 -2px 0 0 var(--border-plain-success);
}

.village-fieldset--error .village-input,
.village-fieldset--error .village-input-wrap--addon > .village-input:not(:last-child),
.village-input-group--error .village-input,
.village-input-group--error .village-input-wrap--addon > .village-input:not(:last-child) {
  box-shadow: inset 0 -2px 0 0 var(--border-plain-error);
}

.village-input-group--error::before {
  background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
}

.village-input-group--valid::before {
  background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
}

.village-input-group--info::before {
  background-image: linear-gradient(0deg, var(--border-plain-info), var(--border-plain-info));
}
@media (min-width: 36em) {
  /*! media sm */

  /*! media sm */
}
@media (min-width: 48em) {
  /*! media md */

  /*! media md */
}
@media (min-width: 62em) {
  /*! media lg */

  /*! media lg */
}
@media (min-width: 78em) {
  /*! media xl */

  /*! media xl */
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .village-input-wrap--addon .village-btn {
    flex-shrink: 0;
  }

  .village-input {
    color: #3a3a3a;
    background-color: #eee;
    box-shadow: inset 0 -2px 0 0 #3a3a3a;
  }

  .village-input::placeholder {
    color: #666;
  }

  .village-input::-webkit-contacts-auto-fill-button {
    background-color: #161616;
  }

  .village-input::-webkit-contacts-auto-fill-button:hover {
    background-color: #343434;
  }

  .village-input::-webkit-contacts-auto-fill-button:active {
    background-color: #474747;
  }

  .village-input:autofill,
  .village-input:autofill:hover,
  .village-input:autofill:focus,
  .village-input:-webkit-autofill,
  .village-input:-webkit-autofill:hover,
  .village-input:-webkit-autofill:focus {
    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px hsl(180, 80%, 96%);
    -webkit-text-fill-color: #161616;
  }

  .village-input-wrap--addon > .village-input:not(:last-child) {
    box-shadow: inset 0 -2px 0 0 hsl(180, 75%, 25%);
  }

  .village-fieldset--valid .village-input,
  .village-fieldset--valid .village-input-wrap--addon > .village-input:not(:last-child),
  .village-input-group--valid .village-input,
  .village-input-group--valid .village-input-wrap--addon > .village-input:not(:last-child) {
    box-shadow: inset 0 -2px 0 0 hsl(90, 45%, 43%);
  }

  .village-fieldset--error .village-input,
  .village-fieldset--error .village-input-wrap--addon > .village-input:not(:last-child),
  .village-input-group--error .village-input,
  .village-input-group--error .village-input-wrap--addon > .village-input:not(:last-child) {
    box-shadow: inset 0 -2px 0 0 hsl(0, 45%, 43%);
  }

  .village-input-group--error::before {
    background-image: linear-gradient(0deg, hsl(0, 45%, 43%), hsl(0, 45%, 43%));
  }

  .village-input-group--valid::before {
    background-image: linear-gradient(0deg, hsl(90, 45%, 43%), hsl(90, 45%, 43%));
  }

  .village-input-group--info::before {
    background-image: linear-gradient(0deg, hsl(180, 45%, 43%), hsl(180, 45%, 43%));
  }
}
@media print {
  .village-input {
    color: #3a3a3a;
    background-color: #eee;
    box-shadow: inset 0 -2px 0 0 #3a3a3a;
  }

  .village-input::placeholder {
    color: #666;
  }

  .village-input::-webkit-contacts-auto-fill-button {
    background-color: #161616;
  }

  .village-input::-webkit-contacts-auto-fill-button:hover {
    background-color: #343434;
  }

  .village-input::-webkit-contacts-auto-fill-button:active {
    background-color: #474747;
  }

  .village-input:disabled {
    color: var(--text-disabled-grey);
    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
  }

  .village-input:autofill,
  .village-input:autofill:hover,
  .village-input:autofill:focus,
  .village-input:-webkit-autofill,
  .village-input:-webkit-autofill:hover,
  .village-input:-webkit-autofill:focus {
    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px hsl(180, 80%, 96%);
    -webkit-text-fill-color: #161616;
  }

  .village-input-wrap--addon > .village-input:not(:last-child) {
    box-shadow: inset 0 -2px 0 0 hsl(180, 75%, 25%);
  }

  .village-fieldset--valid .village-input,
  .village-fieldset--valid .village-input-wrap--addon > .village-input:not(:last-child),
  .village-input-group--valid .village-input,
  .village-input-group--valid .village-input-wrap--addon > .village-input:not(:last-child) {
    box-shadow: inset 0 -2px 0 0 hsl(90, 45%, 43%);
  }

  .village-fieldset--error .village-input,
  .village-fieldset--error .village-input-wrap--addon > .village-input:not(:last-child),
  .village-input-group--error .village-input,
  .village-input-group--error .village-input-wrap--addon > .village-input:not(:last-child) {
    box-shadow: inset 0 -2px 0 0 hsl(0, 45%, 43%);
  }

  .village-input-group--error::before {
    background-image: linear-gradient(0deg, hsl(0, 45%, 43%), hsl(0, 45%, 43%));
  }

  .village-input-group--valid::before {
    background-image: linear-gradient(0deg, hsl(90, 45%, 43%), hsl(90, 45%, 43%));
  }

  .village-input-group--info::before {
    background-image: linear-gradient(0deg, hsl(180, 45%, 43%), hsl(180, 45%, 43%));
  }
}
