@layer components {
  .action-menu {
    position: relative;
    min-width: 0;
  }

  .action-menu > summary {
    list-style: none;
  }

  .action-menu > summary::-webkit-details-marker {
    display: none;
  }

  .action-menu-trigger {
    min-height: var(--touch-target);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    cursor: pointer;
  }

  .action-menu-trigger.is-icon-only {
    width: var(--touch-target);
    min-height: var(--touch-target);
  }

  .action-menu-trigger:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
  }

  .action-menu-trigger .ui-icon {
    width: var(--space-4);
    height: var(--space-4);
  }

  .action-menu-popover {
    position: absolute;
    z-index: 100;
    top: calc(100% + var(--space-1));
    width: min(var(--action-menu-width), calc(100vw - var(--space-6)));
    display: grid;
    gap: var(--space-1);
    padding: var(--space-1);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-control);
    background: var(--bg-elevated);
    box-shadow: 0 var(--space-2) var(--space-5) var(--shadow-ambient);
  }

  .action-menu.is-end .action-menu-popover {
    right: 0;
  }

  .action-menu.is-start .action-menu-popover {
    left: 0;
  }

  .action-menu:not([open]) .action-menu-popover {
    display: none;
  }

  .action-menu .menu-item {
    min-height: var(--touch-target);
  }
}
