body { font-family: Georgia, "Times New Roman", serif; max-width: 900px; margin: 0 auto; padding: 1rem 1.2rem; color: #111; background: #fff; line-height: 1.5; }
h1 { font-size: 2rem; margin-bottom: 0.2rem; }
h2 { margin-top: 2.2rem; border-bottom: 1px solid #bbb; padding-bottom: 0.2rem; }
a { color: #0b4f9c; }
.buy { display: inline-block; background: #111; color: #fff; padding: 0.6rem 1.2rem; text-decoration: none; font-weight: bold; border-radius: 4px; }
.puzzles { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.puzzle { width: 330px; }
.puzzle h3 { margin: 0 0 0.3rem 0; font-size: 1rem; }
table.grid { border-collapse: collapse; border: 3px solid #000; font-family: Arial, Helvetica, sans-serif; }
table.grid td { width: 36px; height: 36px; text-align: center; vertical-align: middle; font-size: 20px; font-weight: bold; border: 1px solid #888; padding: 0; }
table.grid td.bl { border-left: 3px solid #000; }
table.grid td.bt { border-top: 3px solid #000; }
table.grid td.br { border-right: 3px solid #000; }
table.grid td.bb { border-bottom: 3px solid #000; }
table.grid td.dg { background: #e6e6e6; }
table.sol td { font-weight: normal; font-size: 18px; width: 30px; height: 30px; }
table.sol { margin: 0; }
.puzzle.small { width: 290px; }
.note { font-size: 0.9rem; color: #444; }
footer { margin-top: 3rem; font-size: 0.85rem; color: #444; }
@media print {
  body { max-width: none; padding: 0; color: #000; background: #fff; font-size: 11pt; }
  a { color: #000; text-decoration: none; }
  nav, .buy, .nonprint { display: none; }
  h2 { break-after: avoid; page-break-after: avoid; }
  .puzzles { display: block; }
  .puzzle, .puzzle.small { display: inline-block; vertical-align: top; width: 46%; margin: 0 2% 1.2cm 0; break-inside: avoid; page-break-inside: avoid; }
  table.grid { border-color: #000; }
  table.grid td { color: #000; border-color: #000; }
  table.grid td.dg { background: #ddd; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
