/* ============================================================================
   raetselgenerator24 · Print-CSS (Kernfeature)
   Ziel: Jedes Rätsel druckt sauber auf GENAU EINE A4-Seite; das Lösungsblatt
   liegt auf einer eigenen Seite. Am Bildschirm ist der Druckbaum (#print-root)
   verborgen und dient nur dem Druck / "Als PDF speichern".
   ========================================================================== */

/* margin:0 blendet die Browser-eigene Kopf-/Fußzeile (Titel, URL, Datum,
   Seitenzahl) aus. Unseren Seitenrand setzen wir als Innenabstand der Seite. */
@page{size:A4 portrait;margin:0}

/* Am Bildschirm: Druckbaum verborgen (die .sheet-Vorschau zeigt das Layout). */
#print-root{display:none}

@media print{
  /* Alles außer dem Druckbaum ausblenden */
  body{background:#fff !important}
  .site-header,.site-footer,.crumb,.no-print,.preview-actions,.panel,.type-chips,
  .page-head,.section,.hero,.cta-band,.faq,.prose,.sheet-wrap{display:none !important}

  #print-root{display:block !important}

  .print-page{
    box-sizing:border-box;
    width:210mm;
    /* Voller A4-Bogen; eigener Rand als Innenabstand (statt @page-margin) */
    min-height:295mm;
    padding:15mm 16mm 12mm;
    display:flex;flex-direction:column;
    page-break-after:always;break-after:page;
    page-break-inside:avoid;break-inside:avoid;
  }
  .print-page:last-child{page-break-after:auto;break-after:auto}

  /* Kopf: Marken-Logo + Wortmarke links, Meta rechts */
  .print-head{display:flex;align-items:center;justify-content:space-between;
    border-bottom:2.4pt solid #2b2440;padding-bottom:9px}
  .print-head .who{display:flex;align-items:center;gap:9px;font-family:'Fredoka',sans-serif;
    font-weight:700;font-size:17px;color:#2b2440;letter-spacing:-.3px}
  .print-head .who b{color:#ff6b6b;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-head .who .m{width:26px;height:26px;border-radius:7px;flex:none;background:#ff6b6b
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Crect x='8' y='8' width='11' height='11' rx='3' fill='%23ffffff'/%3E%3Crect x='21' y='8' width='11' height='11' rx='3' fill='%23ffd6d6'/%3E%3Crect x='8' y='21' width='11' height='11' rx='3' fill='%23ffd6d6'/%3E%3Crect x='21' y='21' width='11' height='11' rx='3' fill='%23ffffff'/%3E%3C/svg%3E") center/72% no-repeat;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-head .meta{font-family:'Fredoka',sans-serif;font-weight:700;font-size:12px;
    color:#fff;background:#2b2440;padding:3px 10px;border-radius:999px;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}

  .print-title{font-family:'Fredoka',sans-serif;font-weight:700;font-size:24px;
    text-align:center;margin-top:20px;color:#2b2440}
  .print-sub{text-align:center;color:#555;font-size:12px;margin-top:4px}

  /* Boards zentriert im verbleibenden Platz */
  .print-body{flex:1;display:grid;justify-items:center;align-content:center;gap:16mm}
  .print-body.n1{grid-template-columns:1fr}
  .print-body.n2{grid-template-columns:1fr;gap:12mm}
  .print-body.n4{grid-template-columns:1fr 1fr;gap:12mm}

  /* Board-Größen so gewählt, dass zwei bzw. vier Boards + Kopf/Fuß sicher
     auf EINE A4-Seite passen (geprüft: siehe research/testlog bzw. Messung). */
  .print-body.n1 .sudoku{--cell:19mm}
  .print-body.n2 .sudoku{--cell:11mm}
  .print-body.n4 .sudoku{--cell:9mm}

  .print-body .puzzle-tile .cap{font-family:'Fredoka',sans-serif;font-weight:600;
    font-size:11px;color:#6b6480;margin-top:6px}

  /* Sudoku-Board im Druck: Farben exakt, dünnere Hilfslinien */
  .print-page .sudoku{border:2.6pt solid #2b2440;border-radius:6px;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .sudoku .c{border-right:.5pt solid #b9b2a3;border-bottom:.5pt solid #b9b2a3}
  .print-page .sudoku .c.br{border-right:1.6pt solid #2b2440}
  .print-page .sudoku .c.bb{border-bottom:1.6pt solid #2b2440}
  .print-page .sudoku .c.edge-r{border-right:0}
  .print-page .sudoku .c.edge-b{border-bottom:0}
  /* Lösungszahlen im Druck ebenfalls in Akzentfarbe */
  .print-page .sudoku .c.sol{color:#d94f4f;-webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* — Kinder-Sudoku (4×4/6×6): größere Zellen, da weniger Spalten — */
  .print-body.n1 .sudoku.n4{--cell:30mm}
  .print-body.n2 .sudoku.n4{--cell:20mm}
  .print-body.n4 .sudoku.n4{--cell:15mm}
  .print-body.n1 .sudoku.n6{--cell:23mm}
  .print-body.n2 .sudoku.n6{--cell:14mm}
  .print-body.n4 .sudoku.n6{--cell:11mm}

  /* Fußzeile: Domain links, Werbezeile mittig (coral), Meta rechts */
  .print-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding-top:9px;border-top:1.2pt solid #e0d7c5;font-size:9.5px;
    font-family:'Fredoka',sans-serif;font-weight:700}
  .print-foot .pf-l{color:#2b2440;white-space:nowrap}
  .print-foot .pf-c{flex:1;text-align:center;color:#ff6b6b;font-size:10px;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-foot .pf-r{color:#a49dbb;white-space:nowrap}

  /* Lösungsseite: Titelakzent */
  .print-page.is-solution .print-title{color:#d94f4f;-webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* — Wortsuche im Druck — */
  .print-page .wortsuche{--ws-cell:min(13mm,calc(170mm / var(--cols)));
    border:2.4pt solid #2b2440;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .ws-cell{border-right:.4pt solid #cabfa9;border-bottom:.4pt solid #cabfa9}
  .print-page .ws-cell.ws-hit{background:#e4ecff;color:#2b5fff;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .ws-words{margin-top:6mm}
  .print-page .ws-words-list{gap:4px 10px}
  .print-page .ws-word{font-size:11pt;padding:2px 9px}

  /* — Labyrinth im Druck: SVG füllt die Breite (quadratisch) — */
  .print-page .labyrinth{width:min(168mm,100%);height:auto}

  /* — Malen nach Zahlen im Druck — */
  .print-page .malen{width:min(150mm,100%);height:auto}
  .print-page .malen .malen-line{stroke:#d94f4f;fill:#ffe0ee;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .malen .malen-dot.is-start{fill:#ff6b6b;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* — Rechenpyramide im Druck — */
  .print-page .zpy{--zc:19mm;gap:5mm}
  .print-page .zpy-row{gap:5mm}
  .print-page .zpy-cell{border:2pt solid #2b2440}
  .print-page .zpy-cell.zpy-blank{background:#eef7f0;border-color:#3fb96b;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* — Kreuzworträtsel im Druck: Gitter kompakt, Fragen klein in 2 Spalten — */
  .print-page .kwr-wrap{gap:8mm}
  .print-page .kwr{--kwr-cell:min(9mm,calc(120mm / var(--cols)));border:2.4pt solid #2b2440;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .kwr-cell{border-right:.4pt solid #b9b2a3;border-bottom:.4pt solid #b9b2a3}
  .print-page .kwr-block{background:#2b2440;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .kwr-clues{max-width:100%;gap:6px 16px}
  .print-page .kwr-clue-list{font-size:8.2pt;line-height:1.35}
  .print-page .kwr-clue-title{font-size:10pt}

  /* — Schul-Arbeitsblätter im Druck — */
  .print-page .sch-name{display:flex;gap:4mm;align-items:baseline;margin:5mm 0 0;
    font-family:'Fredoka',sans-serif;font-weight:600;font-size:10.5pt;color:#2b2440}
  .print-page .sch-name .line{flex:1;border-bottom:.9pt solid #2b2440;min-width:30mm}
  .print-page .sch-name .line.sm{flex:0 0 42mm}
  .print-body.sch-body{align-content:center}
  /* Lösungsteil kompakt: 2×2 bzw. 2×1 Kacheln pro Seite */
  .print-body.sch-sol{align-content:start;padding-top:6mm;gap:8mm}
  .print-body.sch-sol.n2{grid-template-columns:1fr 1fr}
  .print-body.sch-sol.n4{grid-template-columns:1fr 1fr}
  .print-body.sch-sol .cap{font-family:'Fredoka',sans-serif;font-weight:600;
    font-size:10px;color:#6b6480;margin-top:2mm}

  .print-page .zpy.sch-zpy{--zc:17mm;gap:4mm}
  .print-page .zpy.sch-zpy .zpy-row{gap:4mm}
  .print-body.sch-sol .zpy{--zc:8mm;gap:1.6mm}
  .print-body.sch-sol .zpy-row{gap:1.6mm}
  .print-body.sch-sol .zpy-cell{border-width:1pt;border-radius:1.6mm}
  .print-page .zpy-cell.zpy-blank{background:#eef7f9;border-color:#0b7285;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}

  .print-page .sdr-sheet{gap:10mm}
  .print-page .sdr-wrap{width:70mm}
  .print-body.sch-sol .sdr-wrap{width:34mm}
  .print-page .sdreieck .is-blank{fill:#d3f0f7;stroke:#0b7285;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .sdreieck .sdr-txt.is-sol{fill:#0b7285;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}

  .print-page .sket-sheet{max-width:100%;gap:11mm}
  .print-page .sket{gap:2.6mm}
  .print-page .sket-box{min-width:13mm;height:11mm;border-width:1.6pt;font-size:13pt}
  .print-body.sch-sol .sket-box{min-width:8mm;height:7mm;font-size:9pt;border-width:1pt;padding:0 1.6mm}
  .print-body.sch-sol .sket-sheet{gap:4mm}
  .print-body.sch-sol .sket-arrow i{font-size:8pt}
  .print-body.sch-sol .sket-arrow svg{width:5.5mm}
  .print-page .sket-box.is-blank,.print-page .sket-box.is-sol{background:#d3f0f7;border-color:#0b7285;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .sket-box.is-sol{color:#0b7285}

  .print-page .smq{--smqc:22mm;border:2.4pt solid #2b2440}
  .print-page .smq.n4{--smqc:19mm}
  .print-body.sch-sol .smq{--smqc:9mm;border-width:1.4pt}
  .print-page .smq-cell{border-right:.5pt solid #b9b2a3;border-bottom:.5pt solid #b9b2a3}
  .print-page .smq-cell.is-blank{background:#d3f0f7;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .smq-cell.is-sol{color:#0b7285;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .smq-magic{color:#fff;background:#0b7285;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .smq-sheet{gap:14mm}

  .print-page .semt th,.print-page .semt td{width:15mm;height:12mm;border:1pt solid #2b2440;font-size:12pt}
  .print-body.sch-sol .semt th,.print-body.sch-sol .semt td{width:7mm;height:6mm;font-size:7.5pt;border-width:.6pt}
  .print-page .semt thead th,.print-page .semt tbody th{background:#d3f0f7;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .semt th.x{background:#0b7285;color:#fff;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .semt td.is-blank{background:#f6f1e7;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .semt td.is-sol{color:#0b7285;-webkit-print-color-adjust:exact;print-color-adjust:exact}

  .print-page .semr-sheet{gap:8mm}
  .print-page .semr{width:80mm}
  .print-body.sch-sol .semr{width:38mm}
  .print-page .semr .semr-center{fill:#0b7285;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .semr .semr-f.is-sol{fill:#0b7285;-webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* — Logikrätsel im Druck — */
  .print-body.lgc-body{align-content:start;padding-top:8mm}
  .print-page .lgc{max-width:100%;gap:6mm}
  .print-page .lgc-intro{font-size:10.5pt;line-height:1.5}
  .print-page .lgc-clues{font-size:10.5pt;gap:2.4mm;padding-left:6mm}
  .print-page .lgc-table th,.print-page .lgc-table td{border:1pt solid #2b2440;
    padding:2.6mm 3mm;font-size:10.5pt}
  .print-page .lgc-table thead th{background:#f1ece1;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .lgc-table td{height:10mm}
  .print-page .lgc-table td{color:#d94f4f;-webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* — Silbenrätsel im Druck: textlastig, oben ausgerichtet — */
  .print-body.slb-body{align-content:start;padding-top:6mm}
  .print-page .slb{max-width:100%;gap:4.5mm}
  .print-page .slb-pool{border:1.2pt solid #b9b2a3;border-radius:3mm;padding:4mm 5mm}
  .print-page .slb-pool-list{font-size:10.5pt;line-height:1.7;margin-top:1.5mm}
  .print-page .slb-qs{gap:3.4mm}
  .print-page .slb-q{gap:1.6mm}
  .print-page .slb-q-text{font-size:10pt}
  .print-page .slb-q-meta{font-size:8.5pt}
  .print-page .slb-box{width:6.8mm;height:6.8mm;border:1.1pt solid #2b2440;border-radius:1.4mm;font-size:10.5pt}
  .print-page .slb-box.is-first{background:#ffe2e2;border-color:#d94f4f;color:#d94f4f;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .slb-sol{font-size:10pt;border:1.2pt solid #b9b2a3;border-radius:3mm}

  /* — Nonogramm im Druck — */
  .print-page .ngm{border:2.4pt solid #2b2440;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .ngm.s10{--ngm-cell:11mm}
  .print-page .ngm.s15{--ngm-cell:8.5mm}
  .print-page .ngm-cell{border-right:.4pt solid #cabfa9;border-bottom:.4pt solid #cabfa9}
  .print-page .ngm-cell.b5,.print-page .ngm-colclue.b5{border-right:1.2pt solid #6b6480}
  .print-page .ngm-cell.b5r,.print-page .ngm-rowclue.b5r{border-bottom:1.2pt solid #6b6480}
  .print-page .ngm-corner{border-right:1.6pt solid #2b2440;border-bottom:1.6pt solid #2b2440}
  .print-page .ngm-colclue{border-bottom:1.6pt solid #2b2440}
  .print-page .ngm-rowclue{border-right:1.6pt solid #2b2440}
  .print-page .ngm-cell.fill{background:#2b2440;-webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* — Gitterrätsel im Druck: Gitter + Wortliste auf einer Seite — */
  .print-page .gtr-words{margin-top:4mm;max-width:176mm}
  .print-page .gtr-len-row{margin-bottom:1.6mm;gap:6px}
  .print-page .gtr-len-label{font-size:9pt}
  .print-page .gtr-words .ws-word{font-size:9pt;padding:1px 7px}
  .print-page .gtr-words .ws-words-title{font-size:9pt;margin-bottom:2mm}
  .print-page .gtr-anchor{color:#d94f4f;-webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* — Schwedenrätsel im Druck: Zellgröße passt sich an die Spaltenzahl an — */
  .print-page .schweden{--sw-cell:min(15mm,calc(176mm / var(--cols)));
    border:2.4pt solid #2b2440;border-radius:5px;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .sw-cell{border:.4pt solid #b9b2a3}
  .print-page .sw-letter{background:#fff}
  .print-page .sw-block{background:repeating-linear-gradient(45deg,#eee 0 1.2mm,#ddd 1.2mm 2.4mm);
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .sw-clue{background:#e9e0cf;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .sw-arrow{color:#d94f4f;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-page .sw-pic{background:#ff6b6b;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
