:host {
  display: inline-flex;
  flex-direction: column;
  vertical-align: top;
  --r-label--margin-bottom: 0;
}
:host slot {
  display: contents;
}
:host slot[name=trailing] {
  display: flex;
  margin-left: auto;
}
:host .r-form-field {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 1rem;
}

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

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

:host(:not([disabled]:not([disabled=false]))) .r-input-code--container:focus-within {
  --r-input-code--container--box-shadow: 0 0 0 6px var(--r-border-focused-outlined);
  --r-input-code--container--outline: 2px solid var(--r-border-focused);
  --r-input-code--container--outline-offset: 2px;
}

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

:host([full-width]:not([full-width=false])) {
  display: flex;
}

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

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

.r-input-code--label-container {
  display: var(--r-input-code--label-container--display, flex);
  gap: var(--r-input-code--label-container--gap, var(--r-spacing-100, 1rem));
  align-items: var(--r-input-code--label-container--align-items, center);
  justify-content: var(--r-input-code--label-container--align-items, space-between);
}
.r-input-code--label-container ::slotted([slot=popover]) {
  display: var(--r-input-code--popover--display, inline-flex);
  height: var(--r-input-code--popover--height, var(--r-spacing-150, 1.5));
  align-items: var(--r-input-code--popover--align-items, center);
  justify-content: var(--r-input-code--popover--justify-content, center);
  margin-right: var(--r-input-code--popover--margin-right, -0.25rem);
  --r-popover--trigger--min-width: var(--r-input-code--popover-trigger--min-width, var(--r-spacing-150, 1.5));
  --r-popover--trigger--min-height: var(--r-input-code--popover--trigger--min-height, var(--r-spacing-150, 1.5));
}
.r-input-code--container {
  position: var(--r-input-code--container--position, relative);
  display: var(--r-input-code--container--display, flex);
  align-items: var(--r-input-code--container--align-items, center);
  flex: var(--r-input-code--container--flex, 1);
  gap: var(--r-input-code--container--gap, 0.625em);
  height: var(--r-input-code--container--height, var(--r-spacing-275, 2.75rem));
  background-color: var(--r-input-code--container--background-color, var(--r-background-softest, #fff));
  border-width: var(--r-input-code--container--border-width, 1px);
  border-style: var(--r-input-code--container--border-style, solid);
  border-color: var(--r-input-code--container--border-color, var(--r-border-soft, #686868));
  box-sizing: var(--r-input-code--container--box-sizing, border-box);
  box-shadow: var(--r-input-code--container--box-shadow, none);
  outline: var(--r-input-code--container--outline, none);
  outline-offset: var(--r-input-code--container--outline-offset, 0);
  padding-top: var(--r-input-code--container--padding-top, 0.8em);
  padding-right: var(--r-input-code--container--padding-right, 0.7em);
  padding-bottom: var(--r-input-code--container--padding-bottom, 0.8em);
  padding-left: var(--r-input-code--container--padding-left, 0.7em);
  opacity: var(--r-input-code--container--opacity, 1);
  pointer-events: var(--r-input-code--container--pointer-events, auto);
  line-height: var(--r-input-code--container--line-height, 1);
  cursor: var(--r-input-code--container--cursor, inherit);
  margin-top: var(--r-input-code--container--margin-top, var(--r-spacing-025, 0.25rem));
  margin-bottom: var(--r-input-code--container--margin-bottom, var(--r-spacing-025, 0.25rem));
}
.r-input-code--input {
  width: var(--r-input-code--input--width, 0.725rem);
  outline: var(--r-input-code--input--outline, none);
  font-size: var(--r-input-code--input--font-size, 1rem);
  text-align: var(--r-input-code--input--text-align, center);
  background-color: var(--r-input-code--input--background-color, transparent);
  border-width: var(--r-input-code--input--border-width, 0 0 1px 0);
  border-style: var(--r-input-code--input--border-style, solid);
  border-color: var(--r-input-code--input--border-color, var(--r-text-soft));
}
.r-input-code--trailing {
  display: var(--r-input-code--trailing--display, flex);
  margin-left: var(--r-input-code--trailing--margin-left, auto);
  align-items: var(--r-input-code--trailing--align-items, center);
  gap: var(--r-input-code--trailing--gap, 0.625rem);
}
.r-input-code--readonly-icon {
  color: var(--r-input-code--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;
}
