/* Shared dropdowns for catalog filters and sorting. */
.bootstrap-select {
    width: 100% !important;
    min-width: 0;
    font-family: inherit;
}

.bootstrap-select > .dropdown-toggle {
    height: 30px;
    padding: 4px 10px;
    border: 1px solid var(--bs-border-color);
    border-radius: 6px;
    background: var(--bs-neutral-0);
    color: var(--bs-neutral-1000) !important;
    font-family: inherit;
    font-size: 12px;
    line-height: 20px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.bootstrap-select > .dropdown-toggle:hover,
.bootstrap-select > .dropdown-toggle.show {
    border-color: var(--bs-neutral-500);
    background: var(--bs-neutral-100);
    color: var(--bs-neutral-1000) !important;
}

.bootstrap-select > .dropdown-toggle:focus-visible {
    outline: 2px solid var(--bs-brand-2) !important;
    outline-offset: 2px;
}

.bootstrap-select .filter-option,
.bootstrap-select .filter-option-inner,
.bootstrap-select .filter-option-inner-inner {
    color: inherit !important;
}

/* Cap the option viewport at five 36px rows; keep search outside the scroll area. */
.bootstrap-select.dropdown > .dropdown-menu {
    min-height: 0 !important;
    min-width: 100%;
    max-width: calc(100vw - 32px);
    padding: 6px;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    background: var(--bs-neutral-0);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    max-height: none !important;
    overflow: hidden !important;
}

.bootstrap-select.dropdown > .dropdown-menu > .inner {
    min-height: 0 !important;
    max-height: 180px !important;
    overflow-x: hidden;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--bs-neutral-300) transparent;
}

.bootstrap-select.dropdown .dropdown-menu.inner > li {
    margin: 0;
}

.bootstrap-select.dropdown .dropdown-menu.inner {
    /* Only the wrapping div.inner scrolls, never the nested option list. */
    max-height: none !important;
    overflow: visible !important;
    min-width: 0;
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.bootstrap-select.dropdown .dropdown-menu.show .dropdown-item {
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 6px;
    color: var(--bs-neutral-1000) !important;
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    white-space: normal;
    overflow-wrap: anywhere;
}

.bootstrap-select.dropdown .dropdown-menu.show .dropdown-item .text {
    color: inherit !important;
    margin-right: 0;
}

.bootstrap-select.dropdown .dropdown-menu.show .dropdown-item:hover,
.bootstrap-select.dropdown .dropdown-menu.show .dropdown-item:focus {
    background: var(--bs-neutral-100);
    color: var(--bs-neutral-1000) !important;
}

.bootstrap-select.dropdown .dropdown-menu.show .dropdown-item.active,
.bootstrap-select.dropdown .dropdown-menu.show .dropdown-item.selected,
.bootstrap-select.dropdown .dropdown-menu.show .dropdown-item:active {
    background: var(--bs-brand-2);
    color: #101010 !important;
}

.bootstrap-select.dropdown .dropdown-menu.show .dropdown-item.disabled {
    background: transparent;
    color: var(--bs-neutral-500);
}

.bootstrap-select .bs-searchbox {
    padding: 4px 4px 8px;
}

.bootstrap-select .bs-searchbox input.form-control {
    height: 34px;
    padding: 6px 10px;
    border: 1px solid var(--bs-border-color);
    border-radius: 6px;
    background: var(--bs-neutral-0);
    color: var(--bs-neutral-1000) !important;
    font-size: 12px;
}

.bootstrap-select .bs-searchbox input.form-control:focus {
    border-color: var(--bs-brand-2);
    box-shadow: 0 0 0 2px rgba(112, 244, 109, 0.2);
}

.bootstrap-select .no-results {
    padding: 8px 12px;
    background: var(--bs-neutral-100);
    color: var(--bs-neutral-1000) !important;
    font-size: 12px;
    white-space: normal;
}

/* Keep year controls joined; round only the outer right corners of "to". */
.box-bottom-search-grid .bootstrap-select > select[name="year_from"] ~ .dropdown-toggle {
    border-radius: 0;
}

.box-bottom-search-grid .bootstrap-select > select[name="year_to"] ~ .dropdown-toggle {
    border-radius: 0 6px 6px 0;
}

/* Year bounds share the available width inside a single range field. */
.box-bottom-search-grid .input-group > .bootstrap-select {
    flex: 1 1 0;
    width: 0 !important;
    min-width: 0;
}

/* Keep both range bounds on one row despite the global input width. */
.box-bottom-search-grid .input-group {
    display: flex;
    flex-wrap: nowrap;
}

.box-bottom-search-grid .input-group > input.form-control:not([type=checkbox]):not([type=radio]),
.box-bottom-search-grid .input-group > .form-select {
    flex: 1 1 0;
    width: 0;
    min-width: 0;
    padding: 0.3rem 0.5rem;
}

.box-bottom-search-grid .input-group > .form-select {
    padding-right: 1.25rem !important;
    background-position: right 0.4rem center;
}

.box-bottom-search-grid .input-group > .input-group-text {
    flex: 0 0 auto;
    padding: 0.1rem 0.4rem;
    font-size: 12px;
}

.box-bottom-search-grid .form-select,
.box-bottom-search-grid .bootstrap-select .btn,
.box-bottom-search-grid input.form-control::placeholder {
    font-size: 12px;
}

/* Sorting has room for full option labels, and shrinks on mobile. */
.item-sort {
    width: 440px;
    max-width: 100%;
    min-width: 0;
    flex-wrap: nowrap;
    padding: 0;
    border: 0;
    border-radius: 0;
}

.item-sort > label {
    flex-shrink: 0;
}

.item-sort .form-select-sort {
    flex: 1 1 0;
    width: 0 !important;
    min-width: 0;
    font-size: 12px;
    line-height: 20px;
}

.item-sort .bootstrap-select > .btn-sort {
    height: 44px;
    padding: 11px 12px;
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    background: transparent;
    box-shadow: none;
}

.item-sort .bootstrap-select.dropdown > .dropdown-menu {
    min-width: 320px;
    width: 100%;
    max-width: calc(100vw - 32px);
}

@media (max-width: 575.98px) {
    .item-sort {
        width: 100%;
        margin-left: 0;
        padding: 0;
    }

    .item-sort .bootstrap-select.dropdown > .dropdown-menu {
        min-width: 100%;
        width: min(320px, calc(100vw - 32px));
    }
}

