.erp-searchable-select {
    position: relative;
    width: 100%;
}

.erp-searchable-select__native {
    display: none !important;
}

.erp-searchable-select__control {
    position: relative;
}

.erp-searchable-select__input {
    display: block;
    width: 100%;
    min-height: 2.4rem;
    padding: 0.45rem 4.4rem 0.45rem 0.75rem;
    border: 1px solid var(--bs-border-color, #ced4da);
    border-radius: 0.45rem;
    background-color: var(--bs-body-bg, #fff);
    color: var(--bs-body-color, #212529);
    font: inherit;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236c757d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 0.8rem 0.8rem;
}

.erp-searchable-select__input::-webkit-search-cancel-button {
    appearance: none;
}

.erp-searchable-select__input[aria-expanded="true"] {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 0.2rem rgb(13 110 253 / 18%);
}

.erp-searchable-select__input:focus {
    border-color: var(--bs-primary, #0d6efd);
    outline: 0;
}

.erp-searchable-select__input:disabled {
    background-color: var(--bs-secondary-bg, #e9ecef);
}

.erp-searchable-select__clear {
    position: absolute;
    top: 50%;
    right: 2.2rem;
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    padding: 0;
    border: 0;
    border-radius: 0.35rem;
    background: transparent;
    color: var(--bs-secondary-color, #6c757d);
    font-size: 1.15rem;
    line-height: 1;
    place-items: center;
    transform: translateY(-50%);
}

.erp-searchable-select__clear:hover,
.erp-searchable-select__clear:focus-visible {
    background: var(--bs-tertiary-bg, #f1f3f5);
    color: var(--bs-body-color, #212529);
}

.erp-searchable-select__clear[hidden] {
    display: none;
}

.erp-searchable-select__panel {
    position: fixed;
    z-index: 2000;
    top: 0;
    left: 0;
    min-width: min(12rem, calc(100vw - 1rem));
    max-height: min(22rem, 52vh);
    overflow: auto;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.55rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 0.75rem 1.75rem rgb(15 23 42 / 16%);
}

.erp-searchable-select__panel[hidden] {
    display: none;
}

.erp-searchable-select__status {
    padding: 0.65rem 0.8rem;
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.75rem;
}

.erp-searchable-select__listbox {
    max-height: min(18rem, 45vh);
    overflow-y: auto;
    padding: 0.25rem;
}

.erp-searchable-select__option {
    display: flex;
    width: 100%;
    min-height: 2.4rem;
    padding: 0.55rem 0.65rem;
    border-radius: 0.4rem;
    color: var(--bs-body-color, #212529);
    cursor: pointer;
    flex-direction: column;
    font-size: 0.83rem;
    justify-content: center;
}

.erp-searchable-select__option small {
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.67rem;
}

.erp-searchable-select__option:hover,
.erp-searchable-select__option[aria-selected="true"] {
    background: var(--bs-primary, #0d6efd);
    color: #fff;
}

.erp-searchable-select__option:hover small,
.erp-searchable-select__option[aria-selected="true"] small {
    color: rgb(255 255 255 / 78%);
}

.erp-searchable-select:has(.erp-searchable-select__input:disabled) {
    cursor: not-allowed;
    opacity: 0.72;
}

@media (prefers-reduced-motion: reduce) {
    .erp-searchable-select__panel {
        scroll-behavior: auto;
    }
}
