/* ── Dropdown component styles ── */
/* Requires Bootstrap 4 for utility classes used in the generated HTML */

/* Wrapper */
.cs-wrapper {
    position: relative;
    user-select: none;
}

/* Trigger: 3-column grid  [ name ] [ price ] [ arrow ] */
.cs-trigger {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 0.75rem;
    cursor: pointer;
    min-height: 2.45rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cs-trigger:focus,
.cs-wrapper[data-open="true"] .cs-trigger {
    outline: none;
    border-color: #80bdff !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25) !important;
}

/* Chevron icon */
.cs-arrow {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
    color: #6c757d;
    transition: transform 0.2s ease;
}

.cs-wrapper[data-open="true"] .cs-arrow {
    transform: rotate(180deg);
}

/* Dropdown list panel */
.cs-list {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 1050;
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
}

.cs-wrapper[data-open="true"] .cs-list {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

/* Each option row: 2-column grid  [ name ] [ price ] */
.cs-option {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 1rem;
    cursor: pointer;
}

/* Value span in the trigger participates in the trigger grid as two cells */
.cs-value {
    display: contents;
}

.col-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.col-price {
    white-space: nowrap;
}

/* Keep price readable on Bootstrap active (blue bg) rows */
.cs-option.active .col-price {
    color: rgba(255, 255, 255, 0.85) !important;
}

/* Mobile: cap list height and make it scrollable */
@media (max-width: 480px) {
    .cs-list {
        max-height: 60vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
}
