.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: var(--surface); 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; }
}

.catalogue-puzzle { min-width: 0; }
.catalogue-ranking-notice { margin: 16px 0 0; color: var(--muted); font-size: .875rem; overflow-wrap: anywhere; }
.catalogue-puzzle .leaderboard-table { font-size: .75rem; }
.catalogue-puzzle .leaderboard-table th:last-child, .catalogue-puzzle .leaderboard-table td:last-child { width: 5em; }

.guide.archive-page { max-width: none; }
.archive-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, 1fr); border-block: 1px solid var(--line); }
.archive-calendar { min-width: 0; padding: 24px; }
.archive-calendar .publication-calendar { margin-top: 24px; }
.archive-calendar .publication-calendar table { min-width: 0; }
.archive-calendar .publication-calendar-day { min-height: 80px; padding: 8px; }
.archive-calendar .publication-calendar-day.is-empty:hover { background: var(--paper); }
.archive-calendar a.publication-calendar-day { cursor: pointer; }
.archive-calendar .publication-calendar-day.is-selected { background: var(--accent); color: white; }
.archive-calendar .is-selected .publication-calendar-free { color: inherit; }
.archive-calendar td[aria-current=date] .publication-calendar-number { border-bottom: 2px solid currentColor; }
.archive-edition { min-width: 0; padding: 24px; border-left: 1px solid var(--line); background: var(--surface); }
.archive-edition > h2 { margin-top: 0; }
.archive-games { list-style: none; padding: 0; margin: 0; }
.archive-game { padding: 20px 0; border-top: 1px solid var(--line); }
.archive-game h3 { color: var(--ink); margin: 0 0 8px; }
.archive-game .puzzle-card-access { margin-bottom: 16px; }
.archive-game form { display: inline-block; }
.archive-game .publication-calendar-star { margin-left: 8px; }
@media (max-width: 760px) {
  .archive-layout { grid-template-columns: minmax(0, 1fr); }
  .archive-calendar { padding: 16px 0; }
  .archive-calendar .publication-calendar-day { min-height: 68px; padding: 6px 2px; }
  .archive-edition { border-left: 0; border-top: 1px solid var(--line); padding: 24px 16px; }
}

.content-icon { flex: none; vertical-align: middle; }
.archive-day-icons { display: flex; align-items: center; gap: 4px; color: var(--accent); }
.archive-calendar .is-selected .archive-day-icons { color: inherit; }
.archive-legend { display: flex; flex-wrap: wrap; gap: 12px 20px; padding-top: 16px; color: var(--muted); font-size: .75rem; }
.archive-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.archive-legend > span:last-child { color: var(--accent); }
.archive-calendar .publication-calendar-day { min-height: 100px; }
@media (max-width: 760px) {
  .archive-calendar .publication-calendar-day { min-height: 88px; }
  .archive-day-icons { gap: 2px; }
  .archive-day-icons .content-icon { width: 16px; height: 16px; }
}
