.puzzle-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; list-style: none; padding: 0; margin-block: 24px; }
.puzzle-card { display: flex; flex-direction: column; gap: 16px; min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: #fff; overflow-wrap: anywhere; }
.puzzle-card .puzzle-card-title { display: grid; place-items: center; margin: 0; text-align: center; }
.puzzle-card .puzzle-card-title .puzzle-card-link { color: var(--ink); text-decoration: none; border: 0; padding: 0; background: transparent; font: inherit; cursor: pointer; }
.puzzle-card .puzzle-card-title .puzzle-card-link:hover { color: var(--accent); text-decoration: underline; }
.puzzle-card-access { margin: 0; color: var(--muted); font-size: .875rem; }
.puzzle-card .puzzle-entry { display: flex; flex-direction: column; gap: 16px; }
.puzzle-card .puzzle-entry p { margin: 0; }
.puzzle-card .button_to, .puzzle-card > .public-button { margin: auto 0 0; }
.puzzle-card .public-button { width: 100%; }
.puzzle-card .leaderboard-table { font-size: .75rem; }
.puzzle-card .leaderboard-table th:last-child, .puzzle-card .leaderboard-table td:last-child { width: 5em; }
@media (max-width: 640px) {
  .puzzle-cards { grid-template-columns: minmax(0, 1fr); }
}

.publication-calendar-play { margin: 0; font: inherit; }
.publication-calendar-games { display: flex; flex-direction: column; align-items: flex-start; width: 100%; min-width: 0; margin: 0; padding: 0; list-style: none; }
.publication-calendar-game { display: flex; align-items: center; gap: .25em; max-width: 100%; font-size: .75rem; line-height: 1.3; }
/* Equal vertical padding keeps a 24px single-line target and even gaps when labels wrap. */
.publication-calendar-game .publication-calendar-puzzle { display: block; min-width: 0; max-width: 100%; padding: .35em 0; border: 0; background: transparent; color: var(--accent); font: inherit; text-align: left; text-decoration: underline; text-underline-offset: .25em; overflow-wrap: normal; cursor: pointer; }
@media (max-width: 1000px) {
  .publication-calendar { overflow-x: auto; }
  .publication-calendar table { min-width: 840px; }
}
