@layer page {
  /* Shared action list styles — used by reviews, pending payments, and similar list pages */
  .action-list {
    padding: 0;
  }

  .action-list-item {
    border-bottom: 1px solid var(--color-border);
  }

  .action-list-info {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px var(--content-padding) 8px;
    text-decoration: none;
    color: var(--color-text);

    > svg {
      width: 18px;
      height: 18px;
      color: var(--color-muted);
      flex-shrink: 0;
    }

    &:active {
      background: var(--color-bg-secondary);
    }
  }

  .action-list-datetime {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 48px;
  }

  .action-list-date {
    font-size: var(--text-caption);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    white-space: nowrap;
  }

  .action-list-time {
    font-size: var(--text-label);
    color: var(--color-muted);
    font-variant-numeric: tabular-nums;
  }

  .action-list-details {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .action-list-name {
    font-weight: var(--font-weight-medium);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .action-list-meta {
    font-size: var(--text-caption);
    color: var(--color-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    /* Reminded but still unpaid past the follow-up window — nudge a re-send. */
    &.action-list-meta--followup {
      color: var(--color-warning-text);
      font-weight: var(--font-weight-medium);
    }
  }

  .action-list-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 4px var(--content-padding) 14px;
  }

  .action-list-empty {
    padding: 40px var(--content-padding);
    text-align: center;
    color: var(--color-muted);
  }
}
