@use '../../styles/mixins' as *; @use '../../styles/variables' as *; .wrap { position: relative; display: inline-flex; align-items: center; } .wrapFullWidth { width: 100%; } .trigger { display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; height: 40px; padding: 0 12px; border: 1px solid var(--border-color); border-radius: $radius-md; background-color: var(--bg-primary); box-shadow: var(--shadow); color: var(--text-primary); font-size: 13px; font-weight: 500; cursor: pointer; appearance: none; text-align: left; box-sizing: border-box; &:hover { border-color: var(--border-hover); } &:focus { outline: none; box-shadow: var(--shadow), 0 0 0 3px rgba($primary-color, 0.18); } &[aria-expanded='true'] { border-color: var(--primary-color); box-shadow: var(--shadow), 0 0 0 3px rgba($primary-color, 0.18); } } .triggerText { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .placeholder { color: var(--text-tertiary); } .triggerIcon { display: inline-flex; color: var(--text-secondary); flex-shrink: 0; transition: transform 0.2s ease; [aria-expanded='true'] > & { transform: rotate(180deg); } } .dropdown { position: fixed; background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: $radius-lg; padding: 6px; box-shadow: var(--shadow-lg); display: flex; flex-direction: column; gap: 4px; max-height: 240px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; } .option { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; border-radius: $radius-md; border: 1px solid transparent; background: transparent; color: var(--text-primary); cursor: pointer; text-align: left; font-size: 13px; font-weight: 500; transition: background-color 0.15s ease, border-color 0.15s ease; flex-shrink: 0; &:hover { background: var(--bg-secondary); } } .optionLabel { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .optionSuffix { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 999px; background: rgba($success-color, 0.12); color: var(--success-color); flex: 0 0 auto; } .optionActive { border-color: rgba($primary-color, 0.5); background: rgba($primary-color, 0.1); font-weight: 600; } .optionHighlighted { background: var(--bg-secondary); }