.list { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 6px 8px 0; } /* Focused programmatically for keyboard nav / aria-activedescendant; selection is shown by the roving row highlight, so suppress the container outline. */ .list:focus { outline: none; } .row { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 5px 8px; border: 0; border-radius: 6px; background: transparent; color: var(--foreground); cursor: pointer; font: inherit; text-align: left; } .row:hover, .selected { background: var(--secondary); } /* Keyboard mode: the pointer yields to the keyboard, so a cursor resting on a row must not paint a second highlight. Only the keyboard-selected row keeps its background. */ .keyboardOnly .row:hover { background: transparent; } .keyboardOnly .row.selected:hover { background: var(--secondary); } .selected .modeName { color: var(--agent-blue-500); } .modeIcon { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; flex: 0 0 auto; color: var(--muted-foreground); } .modeIcon svg { display: block; width: 16px; height: 16px; } .modeText { display: flex; min-width: 0; flex: 1 1 auto; flex-direction: column; gap: 2px; } .modeName { overflow: hidden; color: var(--foreground); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; } .modeDesc { overflow: hidden; color: var(--muted-foreground); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }