/* ============================================================
   PRINT STYLES FOR CROSSWORD PUZZLES
   Clean, printer-friendly layout
   ============================================================ */

@media print {
  /* Reset and base styles */
  * {
    background: transparent !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  /* Page setup */
  @page {
    margin: 0.5in;
    size: letter;
  }

  @page :first {
    margin-top: 0.25in;
  }

  /* Hide non-essential elements */
  .site-header,
  .site-footer,
  .puzzle-controls,
  .puzzle-actions,
  .completion-modal,
  .puzzle-tips,
  .yesterday-solution,
  .shortcuts-grid,
  .clues-tabs,
  .nav-toggle,
  #print-btn,
  #save-btn,
  .puzzle-timer {
    display: none !important;
  }

  /* Body and layout */
  body {
    font-family: Georgia, serif;
    font-size: 11pt;
    line-height: 1.4;
    color: black;
    background: white;
  }

  /* Puzzle header */
  .puzzle-header {
    text-align: center;
    margin-bottom: 20pt;
    padding: 0;
    border-bottom: 2pt solid black;
    page-break-after: avoid;
  }

  .puzzle-header h1,
  .puzzle-header h2 {
    font-size: 18pt;
    font-weight: bold;
    margin: 0 0 6pt 0;
  }

  .puzzle-date {
    font-size: 10pt;
    margin-bottom: 10pt;
  }

  /* Puzzle layout - two column */
  .puzzle-container {
    padding: 0;
  }

  .puzzle-layout {
    display: block;
    page-break-inside: avoid;
  }

  /* Grid positioning */
  .puzzle-grid-wrapper {
    width: 100%;
    max-width: 400pt;
    margin: 0 auto 20pt;
    page-break-inside: avoid;
  }

  /* Crossword grid */
  .puzzle-grid {
    display: grid !important;
    grid-template-columns: repeat(15, 24pt) !important;
    grid-template-rows: repeat(15, 24pt) !important;
    gap: 0 !important;
    border: 2pt solid black;
    margin: 0 auto;
    width: fit-content;
    background: white;
    page-break-inside: avoid;
  }

  /* Grid cells */
  .puzzle-cell {
    width: 24pt !important;
    height: 24pt !important;
    border: 0.5pt solid black !important;
    position: relative;
    padding: 0;
    box-sizing: border-box;
    background: white;
  }

  .puzzle-cell.black {
    background: black !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    color-adjust: exact;
  }

  /* Cell numbers */
  .cell-number {
    position: absolute;
    top: 1pt;
    left: 2pt;
    font-size: 6pt;
    line-height: 1;
    font-weight: bold;
  }

  /* Cell letters (for filled puzzles) */
  .cell-letter {
    display: block;
    width: 100%;
    height: 100%;
    text-align: center;
    line-height: 24pt;
    font-size: 14pt;
    font-weight: normal;
    text-transform: uppercase;
  }

  /* Hide letters for blank puzzle printing */
  .print-blank .cell-letter {
    display: none !important;
  }

  /* Remove interactive styling */
  .puzzle-cell.active,
  .puzzle-cell.highlighted,
  .puzzle-cell.correct,
  .puzzle-cell.error,
  .puzzle-cell.revealed {
    background: white !important;
    border-color: black !important;
  }

  /* Clues section */
  .clues-panel {
    margin-top: 30pt;
    width: 100%;
    page-break-inside: avoid;
  }

  .clues-list-wrapper {
    display: block !important;
    column-count: 2;
    column-gap: 20pt;
  }

  .clues-list {
    display: block !important;
    break-inside: avoid;
    margin-bottom: 15pt;
    visibility: visible !important;
    opacity: 1 !important;
  }

  /* Force both lists to show */
  #across-clues,
  #down-clues {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .clues-list h2,
  .clues-list h3 {
    font-size: 12pt;
    font-weight: bold;
    margin: 0 0 8pt 0;
    break-after: avoid;
    column-span: all;
  }

  /* Individual clues */
  .clue-item {
    display: block;
    margin-bottom: 4pt;
    break-inside: avoid;
    padding: 0;
    border: none;
    background: white;
  }

  .clue-number {
    font-weight: bold;
    display: inline;
    margin-right: 4pt;
  }

  .clue-text {
    display: inline;
    font-size: 9pt;
  }

  /* Print header with title */
  .print-header {
    display: block !important;
    text-align: center;
    margin-bottom: 20pt;
    border-bottom: 1pt solid black;
    padding-bottom: 10pt;
  }

  .print-header h1 {
    font-size: 16pt;
    margin: 0;
  }

  .print-header .puzzle-info {
    font-size: 9pt;
    margin-top: 4pt;
  }

  /* Ensure across and down are labeled */
  #across-clues::before {
    content: "ACROSS";
    display: block !important;
    font-weight: bold;
    font-size: 11pt;
    margin-bottom: 8pt;
    break-before: avoid;
    break-after: avoid;
  }

  #down-clues::before {
    content: "DOWN";
    display: block !important;
    font-weight: bold;
    font-size: 11pt;
    margin-bottom: 8pt;
    margin-top: 15pt;
    break-before: auto;
    break-after: avoid;
  }

  /* Ensure Down clues start in new column or continue properly */
  #down-clues {
    break-before: column;
  }

  /* Page breaks */
  .puzzle-grid-wrapper {
    page-break-after: always;
  }

  /* Two-page layout: Grid on first page, clues on second */
  @supports (break-after: page) {
    .puzzle-grid-wrapper {
      break-after: page;
    }
  }

  /* Copyright notice */
  .print-copyright {
    display: block !important;
    margin-top: 20pt;
    text-align: center;
    font-size: 9pt;
    padding: 10pt;
    border-top: 1pt solid #ccc;
  }

  /* Website header for print */
  .print-website-header {
    display: block !important;
    text-align: center;
    font-size: 10pt;
    font-weight: bold;
    margin-bottom: 15pt;
    padding-bottom: 8pt;
    border-bottom: 2pt solid black;
  }
}

/* Screen styles for print preview */
@media screen {
  .print-header,
  .print-copyright,
  .print-website-header {
    display: none;
  }

  /* Print button hover */
  #print-btn:hover {
    background-color: var(--paper);
  }
}

/* Specific print layouts */
@media print and (orientation: landscape) {
  .puzzle-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30pt;
  }

  .puzzle-grid-wrapper {
    page-break-after: avoid;
  }

  .clues-panel {
    margin-top: 0;
    column-count: 1;
  }
}