src/components/card-list/card-grid.module.css
.scroller {
  flex: 1 1 auto;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
}

.group {
  position: relative;
  padding-top: 1rem;
}

.group > * + * {
  margin-top: 1rem;
}

.group-header {
  position: sticky;
  top: 0;
  z-index: 2;
}

.group-items {
  display: grid;
  gap: 1rem;
  align-items: flex-end;

  align-items: start;
  padding-inline: 1rem;

  @container (min-width: 20rem) {
    grid-template-columns: repeat(2, 1fr);
  }

  @container (min-width: 33rem) {
    grid-template-columns: repeat(3, 1fr);
  }

  @container (min-width: 45rem) {
    grid-template-columns: repeat(4, 1fr);
  }

  @container (min-width: 60rem) {
    grid-template-columns: repeat(5, 1fr);
  }

  @container (min-width: 72rem) {
    grid-template-columns: repeat(var(--grid-max-columns, 6), 1fr);
  }
}

.group-item {
  --card-spacing-x: 0.125rem;
  position: relative;
  width: 100%;
}

.group-item-scan {
  display: block;
  width: 100%;
  background: transparent;
  cursor: pointer;

  &:focus-visible {
    outline: 1px solid var(--focus);
  }
}

.group-item-scan img {
  box-shadow: var(--shadow-md);
}

.group-item-actions {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
}
