/* ── Menu primitive ─────────────────────────────────────────────── */ .ui-menu { /* Position is set by Radix via inline styles — declaring `position` here * (especially `fixed`) fights its anchored placement and can cause the * popover to render against the viewport edge instead of the trigger. */ z-index: var(--z-overlay); min-width: 160px; max-width: 320px; padding: 4px; background: linear-gradient(160deg, rgba(47, 41, 39, 0.98) 0%, rgba(32, 28, 27, 0.98) 100%); backdrop-filter: var(--glass-blur-md); -webkit-backdrop-filter: var(--glass-blur-md); border: 1px solid var(--color-border-strong); border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); display: flex; flex-direction: column; gap: 1px; animation-duration: var(--dur-fast); animation-timing-function: var(--ease-out); animation-fill-mode: both; } .ui-menu--below { animation-name: ui-menu-pop-down; transform-origin: top; } .ui-menu--above { animation-name: ui-menu-pop-up; transform-origin: bottom; } @keyframes ui-menu-pop-down { from { opacity: 0; transform: translateY(-4px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes ui-menu-pop-up { from { opacity: 0; transform: translateY( 4px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } .ui-menu__item { display: flex; align-items: center; gap: var(--space-3); padding: 6px 10px; background: transparent; border: 0; border-radius: var(--radius-sm); color: var(--color-fg); font-family: var(--font-sans); font-size: var(--text-md); font-weight: var(--weight-medium); cursor: pointer; text-align: left; white-space: nowrap; transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); } .ui-menu__item:focus { outline: none; background: rgba(211, 134, 155, 0.15); color: var(--color-fg); } .ui-menu__item:hover:not(.is-disabled):not(.is-destructive) { background: rgba(255, 255, 255, 0.06); } .ui-menu__item.is-destructive { color: var(--color-danger); } .ui-menu__item.is-destructive:focus, .ui-menu__item.is-destructive:hover { background: rgba(251, 73, 52, 0.15); } .ui-menu__item.is-disabled { opacity: 0.4; cursor: not-allowed; } .ui-menu__icon { color: var(--color-fg-muted); flex-shrink: 0; } .ui-menu__label { flex: 1; } .ui-menu__shortcut { margin-left: var(--space-5); font-size: var(--text-xs); color: var(--color-fg-subtle); font-family: var(--font-mono); letter-spacing: 0.04em; } .ui-menu__separator { height: 1px; margin: 4px 2px; background: var(--color-border); }