.list {
  display: flex;
  flex-direction: column;
  row-gap: var(--list-gap, var(--size-4));
}

.list-row {
  background-color: var(--list-background, transparent);
  border: 1px solid var(--list-border-color, var(--color-border));
  border-radius: var(--rounded-xl);
  font-size: var(--text-sm);
  padding: var(--list-padding, .625rem .75rem);
}

/*
 * The wash a row takes when it is hovered, muted or checked is --surface-wash, and
 * it is declared once in theme.css. Read the note there for the mechanism (relative
 * colour syntax discards the origin token's own alpha, which is what made a hovered
 * row flash white at fifty percent over the navy) and for why round 3's name
 * --list-row-wash was generalised at F1: the identical wash paints a table row and a
 * dialog footer, so it was never a property of list rows.
 */
.list-row__media {
  align-self: start;
  block-size: var(--list-row-media-size, 2.5rem);
  border-radius: var(--rounded-md);
  flex-shrink: 0;
  inline-size: var(--list-row-media-size, 2.5rem);
  object-fit: cover;
}

.list-row--muted {
  --list-background: var(--surface-wash);
}

.list-row--borderless {
  --list-border-color: transparent;
}

.list-row--link:hover {
  --list-background: var(--surface-wash);
}

.list-row--link:focus-visible {
  outline: 2px solid var(--color-selected-dark);
}

.list-row--check:has(:checked) {
  --list-background: var(--surface-wash);
  --list-border-color: var(--color-primary);
}
