.pager {
  --pager-size: 44px;
  margin-top: var(--measure-3xl); padding-top: var(--measure-2xl); border-top: 1px solid var(--color-line);
}
.pager__nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--measure-md); }
.pager__pages { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--measure-xs); }
.pager__pages a {
  display: grid; place-items: center; min-width: var(--pager-size); height: var(--pager-size); padding-inline: var(--measure-xs);
  border: 1.5px solid var(--color-line); border-radius: var(--radius-round); background: var(--color-surface); color: var(--color-ink);
  font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; text-decoration: none;
}
.pager__pages a:hover { border-color: var(--color-ink); }
.pager__pages a[aria-current="page"] { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); }
.pager__pages a:focus-visible { border-radius: var(--radius-round); }
.pager__gap { display: grid; place-items: center; width: 24px; height: var(--pager-size); color: var(--color-muted); }
.pager__step {
  display: inline-flex; align-items: center; gap: var(--measure-xs); min-height: var(--pager-size); padding-inline: 4px;
  font-weight: var(--weight-semibold); color: var(--color-primary-text); text-decoration: none;
  background-image: linear-gradient(var(--color-accent), var(--color-accent));
  background-size: 0% 2px; background-repeat: no-repeat; background-position: 0 calc(100% - 8px); background-origin: content-box;
}
.pager__step:hover { background-size: 100% 2px; }
.pager__step--previous { justify-self: start; }
.pager__step--previous svg { transform: scaleX(-1); }
.pager__step--next { justify-self: end; flex-direction: row-reverse; }

@media (prefers-reduced-motion: no-preference) {
  .pager__pages a { transition: border-color 0.2s, background-color 0.2s; }
  .pager__step { transition: background-size 0.35s var(--ease); }
  .pager__step svg { transition: translate 0.3s var(--ease); }
  .pager__step--previous:hover svg { translate: -3px 0; }
  .pager__step--next:hover svg { translate: 3px 0; }
}

.pager--admin {
  --pager-size: 40px;
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--measure-sm) var(--measure-lg);
  margin-top: var(--measure-sm); padding: 10px 14px; border: 1px solid var(--color-line); border-radius: var(--radius);
  background: color-mix(in srgb, var(--color-tint) 45%, var(--color-surface));
}
.pager--admin .pager__nav { grid-template-columns: auto auto auto; gap: var(--measure-sm); }
.admin-table:has(+ .pager--admin) { border-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.admin-table + .pager--admin { margin-top: 0; border-radius: 0 0 var(--radius) var(--radius); }
.pager__summary { font-size: 15px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.pager__summary b { font-weight: var(--weight-semibold); color: var(--color-ink); }

@media (max-width: 640px) {
  .pager__nav, .pager--admin .pager__nav { grid-template-columns: 1fr 1fr; gap: var(--measure-sm) var(--measure-xs); }
  .pager__pages { grid-column: 1 / -1; grid-row: 1; gap: 6px; }
  .pager--admin { display: grid; grid-template-columns: minmax(0, 1fr); }
}
