:host {
  display: inline-flex;
  flex-direction: column;
  vertical-align: top;
  --r-label--margin-bottom: 0;
}
:host slot {
  display: contents;
}

:host([readonly]:not([readonly=false])) {
  --r-input--container--background-color: var(--r-background-soft, #f3f1f0);
  --r-input--container--border-color: transparent transparent var(--r-border-soft, #686868) transparent;
  --r-input--container--cursor: text;
}

:host(:hover:not([disabled]:not([disabled=false])):not([readonly]:not([readonly=false]))) {
  --r-input--container--background-color: var(--r-background-interactive-hovered, rgba(40, 40, 40, 0.04));
}

:host(.focused) {
  --r-input--container--box-shadow: 0 0 0 6px var(--r-border-focused-outlined);
  --r-input--container--outline: 2px solid var(--r-border-focused);
  --r-input--container--outline-offset: 2px;
}

:host(:active:not([disabled]:not([disabled=false])):not([readonly]:not([readonly=false]))) {
  --r-input--container--background-color: var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12));
}

/* _DEPRECATED_ way (of providing full width): */
:host([expanded]:not([expanded=false])),
:host([full-width]:not([full-width=false])) {
  display: block;
}

:host([disabled]:not([disabled=false])) {
  --r-input--container--opacity: 0.4;
  --r-input--container--cursor: not-allowed;
  --r-input--container--pointer-events: none;
  --r-input--container--background-color: transparent;
}

:host([invalid]:not([invalid=false])) {
  --r-input--container--border-color: var(--r-status-error-regular, #b00c15);
  --r-input--container--background-color: var(--r-status-error-soft, #fef6f6);
}

:host([size]) {
  --r-input--width: auto;
  --r-input--input--width: auto;
  --r-input--container--display: inline-flex;
}

.r-input {
  display: var(--r-input--display, flex);
  flex: var(--r-input--flex, 1);
  flex-direction: var(--r-input--flex-direction, column);
  width: var(--r-input--width, auto);
  font-family: var(--r-input--font-family, system-ui);
  position: var(--r-input--position, relative);
  border-radius: var(--r-input--border-radius, 0);
  cursor: var(--r-input--cursor, inherit);
}
.r-input--label-container {
  display: var(--r-input--label-container--display, flex);
  gap: var(--r-input--label-container--gap, var(--r-spacing-100, 1rem));
  align-items: var(--r-input--label-container--align-items, center);
  justify-content: var(--r-input--label-container--align-items, space-between);
}
.r-input--label-container ::slotted([slot=popover]) {
  display: var(--r-input--popover--display, inline-flex);
  height: var(--r-input--popover--height, var(--r-spacing-150, 1.5));
  align-items: var(--r-input--popover--align-items, center);
  justify-content: var(--r-input--popover--justify-content, center);
  margin-right: var(--r-input--popover--margin-right, -0.25rem);
  --r-popover--trigger--min-width: var(--r-input--popover-trigger--min-width, var(--r-spacing-150, 1.5));
  --r-popover--trigger--min-height: var(--r-input--popover--trigger--min-height, var(--r-spacing-150, 1.5));
}
.r-input--label {
  cursor: var(--r-input--label--cursor, inherit);
}
.r-input--input {
  font-family: var(--r-input--input--font-family, system-ui);
  font-size: var(--r-input--input--font-size, 1em);
  width: var(--r-input--input--width, 100%);
  max-width: var(--r-input--input--max-width, 100%);
  height: var(--r-input--input--height, var(--r-spacing-275, 2.75rem));
  border-radius: var(--r-input--input--border-radius, 0);
  border: var(--r-input--input--border, none);
  color: var(--r-input--input--color, var(--r-text-regular, #282828));
  background-color: var(--r-input--input--background-color, none);
  appearance: var(--r-input--input--appearance, none);
  box-sizing: var(--r-input--input--box-sizing, border-box);
  outline: var(--r-input--input--outline, none);
  cursor: var(--r-input--input--cursor, inherit);
  pointer-events: var(--r-input--input--pointer-events, auto);
}
.r-input--input:autofill, .r-input--input:-webkit-autofill {
  -webkit-background-clip: text !important;
}
.r-input--input::-ms-reveal {
  display: var(--r-input--input--ms-reveal--display, none);
}
.r-input--input::placeholder {
  color: var(--r-input--input--placeholder--color, var(--r-text-soft, #686868));
}
.r-input--input[type=search]::-webkit-search-cancel-button {
  cursor: var(--r-input--input-clear--cursor, pointer);
  display: var(--r-input--input-clear--display, block);
  height: var(--r-input--input-clear--height, 0.875rem);
  width: var(--r-input--input-clear--width, 0.875rem);
  appearance: var(--r-input--input-clear--appearance, none);
  background-repeat: var(--r-input--input-clear--background-repeat, no-repeat);
  background-image: var(--r-input--input-clear--background-image, url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20stroke-width%3D%221.5%22%20viewBox%3D%220.75%200.75%2022.5%2022.5%22%3E%3Cpath%20id%3D%22Vector%202269%22%20stroke%3D%22currentColor%22%20d%3D%22M1.5%201.5L22.5%2022.5%22%2F%3E%3Cpath%20id%3D%22Vector%202270%22%20stroke%3D%22currentColor%22%20d%3D%22M22.5%201.5L1.5%2022.5%22%2F%3E%3C%2Fsvg%3E"));
  background-size: var(--r-input--input-clear--background-size, contain);
  margin-inline: var(--r-input--input-clear--margin-inline, 0);
  color: var(--r-input--input-clear--color, currentColor);
}
.r-input--button {
  position: var(--r-input--icon-button--position, absolute);
  width: var(--r-input--icon-button--width, calc(1.125em + var(--r-input--icon--width)));
  height: var(--r-input--icon-button--height, 100%);
  top: var(--r-input--icon-button--top, 0);
  right: var(--r-input--icon-button--right, auto);
  bottom: var(--r-input--icon-button--bottom, auto);
  left: var(--r-input--icon-button--left, 0);
  cursor: var(--r-input--icon-button--cursor, inherit);
}
.r-input--container {
  position: var(--r-input--container--position, relative);
  display: var(--r-input--container--display, flex);
  align-items: var(--r-input--container--align-items, center);
  gap: var(--r-input--container--gap, 0.625rem);
  height: var(--r-input--container--height, var(--r-spacing-275, 2.75rem));
  background-color: var(--r-input--container--background-color, var(--r-background-softest, #fff));
  border-width: var(--r-input--container--border-width, 1px);
  border-style: var(--r-input--container--border-style, solid);
  border-color: var(--r-input--container--border-color, var(--r-border-soft, #686868));
  box-sizing: var(--r-input--container--box-sizing, border-box);
  box-shadow: var(--r-input--container--box-shadow, none);
  outline: var(--r-input--container--outline, none);
  outline-offset: var(--r-input--container--outline-offset, 0);
  padding-top: var(--r-input--container--padding-top, 0.6875rem);
  padding-right: var(--r-input--container--padding-right, var(--r-spacing-075, 0.75rem));
  padding-bottom: var(--r-input--container--padding-bottom, 0.6875rem);
  padding-left: var(--r-input--container--padding-left, var(--r-spacing-0275, 0.75rem));
  opacity: var(--r-input--container--opacity, 1);
  pointer-events: var(--r-input--container--pointer-events, auto);
  line-height: var(--r-input--container--line-height, 1);
  cursor: var(--r-input--container--cursor, inherit);
  margin-top: var(--r-input--container--margin-top, var(--r-spacing-025, 0.25rem));
}
.r-input--container slot[name=leading] {
  color: var(--r-input--container-leading--color, var(--r-icon-soft, #686868));
}
.r-input--message:has(r-hint),
.r-input--message ::slotted([slot=message]) {
  margin-top: var(--r-input--message--margin-top, var(--r-spacing-025, 0.25rem));
}
.r-input--trailing {
  display: var(--r-input--trailing--display, flex);
  margin-left: var(--r-input--trailing--margin-left, auto);
  align-items: var(--r-input--trailing--align-items, center);
  gap: var(--r-input--trailing--gap, 0.625rem);
}
.r-input--trailing:empty {
  --r-input--trailing--display: none;
}
.r-input--validation-icon {
  display: var(--r-input--validation-icon--display, inline-block);
}
.r-input--readonly-icon {
  color: var(--r-input--readonly-icon--color, var(--r-icon-soft, #686868));
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
