/* SearchableSelect Component Styles
 * BRS Frontend — Progressive enhancement wrapper for <select> elements
 */

/* Wrapper — inline-block so it naturally takes the space of the original select */
.ss-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
}

/* When the original select was a toolbar filter-select, auto-width */
.ss-wrapper.ss-wrapper-filter {
    width: auto;
}

/* Input display — matches .form-control */
.ss-input {
    display: block;
    width: 100%;
    padding: 7px 28px 7px 10px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-size: 13px;
    font-family: inherit;
    color: var(--text-primary);
    background: var(--card-bg);
    cursor: default;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ss-input:focus {
    border-color: var(--bright-cyan);
    box-shadow: 0 0 0 2px rgba(19, 181, 234, 0.15);
}

.ss-input:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Toolbar / filter-select variant — smaller padding and font */
.ss-input.ss-filter-select {
    padding: 6px 26px 6px 10px;
    font-size: 12px;
}

/* Chevron icon — positioned inside the input on the right */
.ss-chevron {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    width: 14px;
    height: 14px;
    color: var(--text-tertiary);
    transition: transform 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ss-chevron svg {
    width: 14px;
    height: 14px;
    display: block;
}

.ss-chevron.open {
    transform: translateY(-50%) rotate(180deg);
}

/* Dropdown — appended to body, positioned fixed */
.ss-dropdown {
    position: fixed;
    z-index: 1100;
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(4, 50, 91, 0.12);
    max-height: 240px;
    overflow-y: auto;
    min-width: 160px;
}

/* Individual items */
.ss-item {
    padding: 7px 10px;
    cursor: pointer;
    font-size: 13px;
    color: var(--text-primary);
    transition: background 0.1s;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ss-item:hover,
.ss-item.highlighted {
    background: rgba(19, 181, 234, 0.08);
}

.ss-item.selected {
    font-weight: 600;
}

/* Placeholder option styling */
.ss-item.ss-placeholder {
    color: var(--text-tertiary);
}

/* Smaller item variant for toolbar filter-select */
.ss-item.ss-item-sm {
    padding: 5px 10px;
    font-size: 12px;
}

/* No-match message */
.ss-no-match {
    padding: 10px;
    text-align: center;
    color: var(--text-tertiary);
    font-size: 12px;
    font-style: italic;
}
