:host {
  display: inline-flex;
  flex-direction: column;
  width: var(--width, auto);
  transition: width 0.2s ease-out;
  max-width: none;
  opacity: 1;
  outline: none;
}
:host slot {
  display: contents;
}

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

:host([expanded]:not([expanded=false])) {
  --r-select--options--visibility: visible;
  --r-select--options--z-index: 1;
  --r-select--background-color: var(--r-background-interactive-softest, #fff);
  --r-select--value--border-color: var(--r-border-soft, #686868);
  --r-select--value--background-color: var(--r-background-interactive-softest, #fff);
  --r-select--trailing-icon--transform: rotate(180deg);
}

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

:host([disabled]:not([disabled=false])) {
  --r-select--opacity: 0.4;
  --r-select--pointer-events: none;
  --r-select--cursor: not-allowed;
}

:host([data-is-placeholder=true]) {
  --r-select--value-diplay--color: var(--r-text-soft, #686868);
}

:host([data-max-width=set]) {
  width: 100%;
  --r-select--options--right: 0;
}

:host([full-width]) {
  width: 100%;
}

:host([data-listbox-position=top]) {
  --r-select--options--top: auto;
  --r-select--options--bottom: 2.875em;
  --r-select--options--border-width: 1px 1px 0 1px;
}

:host([data-listbox-position=bottom]) {
  --r-select--options--top: 100%;
  --r-select--options--bottom: auto;
  --r-select--options--border-width: 0 1px 1px 1px;
}

:host([data-readonly=true]) {
  --r-select--color: var(--r-text-soft, #686868);
  --r-select--value--background-color: var(--r-background-soft, #f3f1f0);
  --r-select--value--border-color: transparent transparent var(--r-border-soft, #686868) transparent;
  --r-select--value--cursor: text;
  --r-select--value-arrow--visiblility: hidden;
}

.r-select {
  display: var(--r-select--display, flex);
  flex-grow: var(--r-select--flex-grow, 1);
  flex-direction: var(--r-select--flex-direction, column);
  position: var(--r-select--position, relative);
  box-sizing: var(--r-select--box-sizing, border-box);
  max-width: var(--r-select--max-width, 100%);
  min-width: var(--r-select--min-width, fit-content);
  font-family: var(--r-select--font-family, var(--r-font-family-text, system-ui));
  font-weight: var(--r-select--font-weight, var(--r-font-weight-regular, 400));
  font-size: var(--r-select--font-size, var(--r-font-size-400, 1rem));
  text-align: var(--r-select--text-align, left);
  color: var(--r-select--color, var(--r-text-regular, #282828));
  opacity: var(--r-select--opacity, 1);
  pointer-events: var(--r-select--pointer-events, auto);
  cursor: var(--r-select--cursor, pointer);
}
.r-select--label__margin-bottom {
  margin-bottom: var(--r-select--label--margin-bottom, var(--r-spacing-025, 0.25rem));
}
.r-select--label-container {
  display: var(--r-select--label-container--display, flex);
  gap: var(--r-select--label-container--gap, var(--r-spacing-100, 1rem));
  align-items: var(--r-select--label-container--align-items, center);
  justify-content: var(--r-select--label-container--align-items, space-between);
}
.r-select--label-container ::slotted([slot=popover]) {
  display: var(--r-select--popover--display, inline-flex);
  height: var(--r-select--popover--height, var(--r-spacing-150, 1.5));
  align-items: var(--r-select--popover--align-items, center);
  justify-content: var(--r-select--popover--justify-content, center);
  margin-right: var(--r-select--popover--margin-right, -0.25rem);
  --r-popover--trigger--min-width: var(--r-select--popover-trigger--min-width, var(--r-spacing-150, 1.5));
  --r-popover--trigger--min-height: var(--r-select--popover--trigger--min-height, var(--r-spacing-150, 1.5));
}
.r-select--trailing-icon {
  transform: var(--r-select--trailing-icon--transform, rotate(0deg));
  transition: var(--r-select--trailing-icon--transition, transform 0.15s);
}
.r-select ::slotted([name=leading]) {
  display: var(--r-select--value--leading-icon--display, flex);
  align-items: var(--r-select--value--leading-icon--align-items, center);
  color: var(--r-select--value--leading-icon--color, var(--r-icon-soft, #686868));
}
.r-select--container {
  background-color: var(--r-select--container--background-color, var(--r-background-softest, #fff));
  opacity: var(--r-select--container--opacity, 1);
  pointer-events: var(--r-select--container--pointer-events, auto);
}
.r-select--input {
  height: var(--r-select--input--height, 100%);
  width: var(--r-select--input--width, 100%);
  border: var(--r-select--input--border, none);
  outline: var(--r-select--input--outline, none);
  background-color: var(--r-select--input--background-color, inherit);
  color: var(--r-select--input--color, inherit);
  font-family: var(--r-select--input--font-family, inherit);
  font-size: var(--r-select--input--font-size, inherit);
  font-weight: var(--r-select--input--font-weight, inherit);
  padding: var(--r-select--input--padding, 0);
}
.r-select--native {
  position: var(--r-select--native--position, fixed);
  top: var(--r-select--native--top, -100vh);
  z-index: var(--r-select--native--z-index, -1);
  opacity: var(--r-select--native--opacity, 0);
  font-size: var(--r-select--native--font-size, 1rem);
  padding: var(--r-select--native--padding, 0 calc(48px + 0.75em) 0 0.75em);
}
.r-select--value:not([aria-readonly=true]):not(:has(input:read-only)):not(:has(input:disabled)):active {
  --r-select--value--background-color: var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12));
}
.r-select--value[aria-disabled=false]:focus, .r-select--value:has(input:focus) {
  outline: var(--r-select--value--outline, none);
  --r-select--value--z-index: 2;
  --r-select--value--box-shadow: 0 0 0 6px var(--r-border-focused-outlined, #fff);
  --r-select--value--outline: 2px solid var(--r-border-focused, #0071e3);
  --r-select--value--outline-offset: 2px;
}
.r-select--value {
  position: var(--r-select--value--position, relative);
  display: var(--r-select--value--display, inline-grid);
  grid-template-columns: var(--r-select--value--grid-template-columns, 1fr 1.75rem);
  box-sizing: var(--r-select--value--box-sizing, border-box);
  align-items: var(--r-select--value--align-items, center);
  justify-content: var(--r-select--value--justify-content, space-between);
  text-align: var(--r-select--value--text-align, left);
  min-width: var(--r-select--value--min-width, 100%);
  min-height: var(--r-select--value--min-height, var(--r-spacing-275, 2.75rem));
  padding: var(--r-select--value--padding, 0);
  white-space: var(--r-select--value--white-space, nowrap);
  background-color: var(--r-select--value--background-color, transparent);
  border-width: var(--r-select--value--border-width, 1px);
  border-style: var(--r-select--value--border-style, solid);
  border-color: var(--r-select--value--border-color, var(--r-border-soft, #686868));
  box-shadow: var(--r-select--value--box-shadow, none);
  outline: var(--r-select--value--outline, none);
  outline-offset: var(--r-select--value--outline-offset, 0);
  z-index: var(--r-select--value--z-index, 0);
  cursor: var(--r-select--value--cursor, inherit);
}
.r-select--value-display {
  display: var(--r-select--value-diplay--display, flex);
  gap: var(--r-select--value-diplay--gap, 0.5em);
  align-items: var(--r-select--value-diplay--align-tems, center);
  flex: var(--r-select--value-diplay--flex, 1);
  padding: var(--r-select--value-diplay--padding, 0 0.75em);
  overflow: var(--r-select--value-diplay--overflow, hidden);
  text-overflow: var(--r-select--value-diplay--text-overflow, ellipsis);
  color: var(--r-select--value-diplay--color, inherit);
  min-width: var(--r-select--value-diplay--min-width, fit-content);
  height: var(--r-select--value-diplay--height, 100%);
}
.r-select--value-selected {
  display: var(--r-select--value-diplay--display, flex);
  gap: var(--r-select--value-diplay--gap, 0.75em);
  align-items: var(--r-select--value-diplay--align-items, center);
}
.r-select--value-arrow {
  display: var(--r-select--value-arrow--display, flex);
  align-items: var(--r-select--value-arrow--align-items, center);
  justify-content: var(--r-select--value-arrow--justify-content, center);
  padding: var(--r-select--value-arrow--padding, 0 0.75em 0 0);
  visibility: var(--r-select--value-arrow--visiblility, visible);
}
.r-select--value-arrow-button {
  height: var(--r-select--value-arrow-button--height, 100%);
  background-color: var(--r-select--value-arrow-button--background-color, transparent);
  color: var(--r-select--value-arrow-button--color, inherit);
  border: var(--r-select--value-arrow-button--border, none);
  outline: var(--r-select--value-arrow-button--outline, none);
  cursor: var(--r-select--value-arrow-button--cursor, inherit);
}
.r-select--options {
  visibility: var(--r-select--options--visibility, hidden);
  position: var(--r-select--options--position, absolute);
  top: var(--r-select--options--top, 100%);
  right: var(--r-select--options--right, 0);
  bottom: var(--r-select--options--bottom, auto);
  left: var(--r-select--options--left, 0);
  margin: var(--r-select--options--margin, 0);
  padding: var(--r-select--options--padding, 0);
  list-style: var(--r-select--options--list-style, none);
  max-height: var(--r-select--options--max-height, 14.375em);
  min-width: var(--r-select--options--min-width, fit-content);
  overflow-y: var(--r-select--options--overflow-y, auto);
  background-color: var(--r-select--options--background-color, var(--r-background-interactive-softest, #fff));
  border-style: var(--r-select--options--border-style, solid);
  border-color: var(--r-select--options--border-color, var(--r-border-soft, #686868));
  border-width: var(--r-select--options--border-width, 0 1px 1px 1px);
  z-index: var(--r-select--options--z-index, -1);
}
.r-select--message {
  margin-top: var(--r-select--message--margin-top, var(--r-spacing-025, 0.25rem));
}

.hidden {
  display: none;
}

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

@media (prefers-reduced-motion) {
  :host {
    transition: none;
  }
}
