/* RowActions: a row's verbs on one line (17 Oct 2026, the polish round). The one or two the row's
   state calls for, then *More…*, which opens a short list under itself: the browser's <details>,
   its menu laid over what is below rather than pushing the row taller. */
.row-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: var(--space-3);
  white-space: nowrap;
}

.row-actions-more {
  position: relative;
}

.row-actions-summary {
  color: var(--color-muted);
  font-size: var(--text-label);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  cursor: pointer;
  list-style: none;
}

.row-actions-summary::-webkit-details-marker {
  display: none;
}

.row-actions-summary:hover,
.row-actions-more[open] > .row-actions-summary {
  color: var(--color-ink);
}

.row-actions-summary:focus-visible {
  outline: var(--focus-width) solid var(--color-ink);
  outline-offset: var(--focus-offset);
}

/* The list: under the summary, right-aligned to it, on the surface with a hairline and the raised
   card's shadow, one verb a line. */
.row-actions-menu {
  position: absolute;
  top: calc(100% + var(--space-1));
  right: 0;
  z-index: 1;
  display: grid;
  justify-items: start;
  gap: var(--space-2);
  min-width: max-content;
  padding: var(--space-3);
  border: var(--hairline) solid var(--color-line);
  border-radius: var(--radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-raised);
}

/* Where the list would be cut off below (the last rows of a table whose wrap scrolls sideways and so
   clips), RowActions opens it upward. */
.row-actions-up > .row-actions-menu {
  top: auto;
  bottom: calc(100% + var(--space-1));
}
