/* Printed stationery. Page and card dimensions remain in styles.css. */
@media print {
  .print-page {
    --card-ink: #202321;
    --card-accent: #fe7141;
    --card-sage: #d1ddd3;
    --card-rule: #a3a8a3;
    color: var(--card-ink);
    background: #fff;
    font-family: "DM Sans", Arial, sans-serif;
  }

  .print-page .bingo-card {
    border: 1pt solid var(--card-ink);
    border-top: 2mm solid var(--card-accent);
    padding: 4mm 6mm;
    color: var(--card-ink);
    background: #fff;
  }

  .bingo-card .bingo-card-header {
    flex: 0 0 auto;
    gap: 1.6mm;
  }

  .bingo-card .card-topline,
  .host-page .guide-topline {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 4mm;
  }

  .bingo-card .card-brand,
  .host-page .guide-brand {
    font: 700 7pt/1.15 "DM Sans", Arial, sans-serif;
    text-transform: uppercase;
    letter-spacing: .13em;
  }

  .bingo-card .card-number {
    font: 500 7pt/1.15 "DM Sans", Arial, sans-serif;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }

  .bingo-card .card-identity {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .82fr);
    align-items: center;
    gap: 5mm;
  }

  .bingo-card .card-game-title {
    margin: 0;
    font: 600 24pt/.97 "Fraunces", Georgia, serif;
    letter-spacing: -.035em;
    white-space: nowrap;
  }

  .bingo-card .bingo-card-header .card-title {
    margin: 0;
    font: 500 10pt/1.14 "DM Sans", Arial, sans-serif;
    text-align: right;
    text-wrap: pretty;
    overflow-wrap: anywhere;
  }

  .bingo-card .bingo-card-header .card-instruction {
    margin: 0;
    color: var(--card-ink);
    font: 400 8pt/1.15 "DM Sans", Arial, sans-serif;
  }

  .bingo-card .bingo-grid {
    margin-top: 2.3mm;
    border: .9pt solid var(--card-ink);
    border-right: 0;
    border-bottom: 0;
    background: #fff;
  }

  .bingo-card .bingo-grid .bingo-cell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) 3.3mm;
    align-items: center;
    justify-items: center;
    gap: .6mm;
    min-height: 0;
    padding: 1.2mm 1.6mm;
    border-right: .55pt solid var(--card-rule);
    border-bottom: .55pt solid var(--card-rule);
    color: var(--card-ink);
    background: #fff;
    font: 400 8.5pt/1.18 "DM Sans", Arial, sans-serif;
  }

  .bingo-card .bingo-grid[data-size="5"] .bingo-cell {
    font-size: 7.5pt;
  }

  .bingo-card .bingo-grid .bingo-cell:nth-child(4n):last-child,
  .bingo-card .bingo-grid[data-size="4"] .bingo-cell:nth-child(4n),
  .bingo-card .bingo-grid[data-size="5"] .bingo-cell:nth-child(5n) {
    border-right: .9pt solid var(--card-ink);
  }

  .bingo-card .bingo-grid[data-size="4"] .bingo-cell:nth-last-child(-n + 4),
  .bingo-card .bingo-grid[data-size="5"] .bingo-cell:nth-last-child(-n + 5) {
    border-bottom: .9pt solid var(--card-ink);
  }

  .bingo-card .cell-prompt {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .bingo-card .name-line {
    display: block;
    align-self: end;
    width: 84%;
    height: 3.3mm;
    margin: 0;
    border-bottom: .55pt solid #777f78;
    font-size: 0;
  }

  .bingo-card .bingo-grid .free-space {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: var(--card-sage);
  }

  .bingo-card .free-space .cell-prompt {
    width: 6ch;
    max-width: 100%;
    font: 600 15pt/.97 "Fraunces", Georgia, serif;
    text-transform: uppercase;
    letter-spacing: -.035em;
  }

  .bingo-card .card-footer {
    flex: 0 0 auto;
    align-items: baseline;
    margin: 2mm 0 0;
    color: var(--card-ink);
    font: 400 7pt/1.15 "DM Sans", Arial, sans-serif;
  }

  .bingo-card .card-footer-rule {
    font-weight: 700;
  }

  .bingo-card .card-footer-note {
    text-align: right;
  }

  .print-page[data-layout="large"] .bingo-card {
    border-top-width: 2.5mm;
    padding: 7mm 8mm;
  }

  .print-page[data-layout="large"] .bingo-card-header {
    gap: 3mm;
  }

  .print-page[data-layout="large"] .card-brand,
  .print-page[data-layout="large"] .card-number {
    font-size: 9pt;
  }

  .print-page[data-layout="large"] .card-identity {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    gap: 6mm;
  }

  .print-page[data-layout="large"] .card-game-title {
    font-size: 34pt;
  }

  .print-page[data-layout="large"] .bingo-card .card-title {
    font-size: 14pt;
    line-height: 1.18;
  }

  .print-page[data-layout="large"] .bingo-card .card-instruction {
    font-size: 10pt;
  }

  .print-page[data-layout="large"] .bingo-card .bingo-grid {
    margin-top: 4mm;
  }

  .print-page[data-layout="large"] .bingo-card .bingo-grid .bingo-cell {
    grid-template-rows: minmax(0, 1fr) 6mm;
    gap: 1.3mm;
    padding: 2.8mm 2.4mm;
    font-size: 14pt;
    line-height: 1.22;
  }

  .print-page[data-layout="large"] .bingo-card .bingo-grid[data-size="5"] .bingo-cell {
    font-size: 12pt;
  }

  .print-page[data-layout="large"] .bingo-card .bingo-grid .long-prompt,
  .print-page[data-layout="large"] .bingo-card .bingo-grid[data-size="5"] .long-prompt {
    font-size: 10pt;
    line-height: 1.18;
    padding: 2mm;
  }

  .print-page[data-layout="large"] .name-line {
    height: 6mm;
  }

  .print-page[data-layout="large"] .free-space .cell-prompt {
    font-size: 23pt;
  }

  .print-page[data-layout="large"] .card-footer {
    margin-top: 3mm;
    font-size: 8pt;
  }

  /* The guide shares the stationery masthead without expanding its page. */
  .print-page.host-page {
    padding: 5mm 6mm;
  }

  .host-page .guide-topline {
    border-top: 2mm solid var(--card-accent);
    border-bottom: .6pt solid var(--card-ink);
    padding: 3mm 0 2.5mm;
    margin-bottom: 4mm;
  }

  .host-page .guide-brand,
  .host-page .print-kicker {
    margin: 0;
    color: var(--card-ink);
    font-size: 8pt;
    line-height: 1.1;
  }

  .host-page .print-kicker {
    text-align: right;
    font-weight: 500;
    letter-spacing: .08em;
  }

  .host-page .pack-title {
    margin: 0 0 3mm;
    font: 600 25pt/1.08 "Fraunces", Georgia, serif;
    letter-spacing: -.035em;
  }

  .host-page .guide-meta {
    font-size: 9pt;
    margin: 0 0 4mm;
  }

  .host-page .guide-rules {
    margin: 0;
    padding-left: 5mm;
  }

  .host-page .guide-rules li {
    padding-left: 1.2mm;
    margin-bottom: 1.5mm;
    font-size: 10pt;
    line-height: 1.4;
  }

  .host-page .guide-rules li::marker {
    font-weight: 700;
  }

  .host-page .checklist-title {
    border-top: .6pt solid var(--card-ink);
    padding-top: 4mm;
    margin: 5mm 0 2mm;
    font: 600 17pt/1.08 "Fraunces", Georgia, serif;
  }

  .host-page .checklist-intro {
    font-size: 9pt;
    line-height: 1.35;
    margin: 0 0 3mm;
  }

  .host-page .prompt-checklist {
    margin: 0;
    column-gap: 8mm;
  }

  .host-page .checklist-item {
    display: flex;
    align-items: baseline;
    gap: 2mm;
    margin: 0 0 2.1mm;
    font-size: 9.5pt;
    line-height: 1.3;
  }

  .host-page .check-box {
    flex: 0 0 2.7mm;
    width: 2.7mm;
    height: 2.7mm;
    margin: 0;
    border: .6pt solid var(--card-ink);
    font-size: 0;
  }

  /* Ink-light keeps the hierarchy but uses no colored backgrounds or ink. */
  .print-page[data-theme="ink"] {
    --card-ink: #202321;
    --card-accent: #202321;
    --card-sage: #fff;
    --card-rule: #777;
  }

  .print-page[data-theme="ink"] .bingo-card,
  .print-page[data-theme="ink"] .bingo-grid .bingo-cell,
  .print-page[data-theme="ink"] .bingo-grid .free-space {
    color: #202321;
    background: #fff;
  }

  .print-page[data-theme="ink"] .bingo-card {
    border-color: #202321;
  }
}

@media print {
 .print-page[data-palette="neighborhood"]:not([data-theme="ink"]){--card-accent:#9ab7fb;--card-sage:#e1e8fb}
 .print-page[data-palette="celebration"]:not([data-theme="ink"]){--card-accent:#ef9cb6;--card-sage:#f7dce4}
}
