/* Arkusz zadan do druku.
 *
 * Diagramy to siatka 8x8 z bierkami wklejonymi jako SVG (scripts/lib/diagram.mjs,
 * ten sam komplet figur, co plansza w aplikacji): drukuja sie poprawnie bez
 * osobnych obrazkow i bez JavaScriptu, wiec strona dziala tak samo w
 * przegladarce i na papierze. Wczesniej byly tu glify Unicode — ich ksztalt
 * zalezal od fontu systemowego, wiec ten sam arkusz wygladal inaczej u kazdego.
 *
 * Na ekranie diagramy uzywaja tokenow motywu. W @media print wymuszamy czarne
 * na bialym, bo domyslny motyw jest ciemny i wydruk zjadlby cala kartridz. */

.print-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: var(--sp-5) var(--sp-4);
  margin: var(--sp-5) 0;
}

.print-puzzle { margin: 0; }

.print-puzzle figcaption {
  margin-top: var(--sp-2);
  font-size: .85rem;
  color: var(--text-dim);
  line-height: 1.35;
}

.print-board {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  /* OBIE osie musza byc minmax(0, 1fr), nie samo 1fr. `1fr` to skrot od
     minmax(auto, 1fr), wiec sciezka nie zejdzie ponizej min-content: pole z
     bierka jest wieksze od pustego (glif ma swoja szerokosc i wysokosc)
     i plansza rozjezdza sie — pola przestaja byc rowne, a bierka laduje
     wizualnie o pole obok. Zero jako minimum odbiera glifowi to prawo. */
  grid-template-rows: repeat(8, minmax(0, 1fr));
  aspect-ratio: 1;
  width: 100%;
  border: 1px solid var(--border);
}

.print-board .sq {
  position: relative;
  display: grid;
  place-items: center;
}

.print-board .sq.light { background: var(--sq-light, #d8d0bc); }
.print-board .sq.dark { background: var(--sq-dark, #8f8570); }

/* Bierki: ten sam autorski komplet SVG, co plansza w aplikacji. Kolor idzie
   przez --pc-fill/--pc-edge (jak w css/board.css), wiec bialy pionek na
   jasnym polu i czarny na ciemnym maja obrys i nie zlewaja sie z tlem. */
.print-board .pc {
  display: block;
  width: 92%;
  height: 92%;
}
.print-board .pc.w {
  --pc-fill: var(--pc-white-fill, #f7f5f0);
  --pc-edge: var(--pc-white-edge, #2a2d34);
}
.print-board .pc.b {
  --pc-fill: var(--pc-black-fill, #20272b);
  --pc-edge: var(--pc-black-edge, #c8c2b2);
}

.print-answers { columns: 2; gap: var(--sp-5); margin: var(--sp-3) 0; }
.print-answers li { break-inside: avoid; margin-bottom: var(--sp-1); }

@media print {
  /* Na papierze zostaja tylko tresc i diagramy. */
  .site-header,
  .landing-footer,
  .landing-cta,
  .landing-cta-note,
  .landing-cta-alt,
  .landing-related,
  /* Pasek zgody nazywa sie .consent-banner (css/consent.css) — regula pisana
     kiedys na .consent-bar nie trafiala w nic i baner wychodzil na wydruku
     w poprzek zadan. */
  .consent-banner,
  .consent-reopen { display: none !important; }

  html, body { background: #fff !important; color: #000 !important; }
  .landing-main { max-width: none; margin: 0; padding: 0; }
  .landing-main a { color: #000; text-decoration: none; }

  .print-grid { grid-template-columns: repeat(3, 1fr); gap: 14mm 8mm; }
  .print-puzzle { break-inside: avoid; }
  .print-puzzle figcaption { color: #000; font-size: 9pt; }

  .print-board { border-color: #000; }
  .print-board .sq.light { background: #fff; }
  .print-board .sq.dark { background: #c9c9c9; }
  /* Na papierze bierka bierze kolor z wypelnienia, a rysunek wewnetrzny
     (korona, grzywa, krzyz) z obrysu w kolorze przeciwnym — tak wygladaja
     diagramy w ksiazkach szachowych. */
  .print-board .pc.w { --pc-fill: #fff; --pc-edge: #000; }
  .print-board .pc.b { --pc-fill: #111; --pc-edge: #fff; }

  /* Klucz odpowiedzi na osobnej kartce, zeby nie podgladac go przy rozwiazywaniu. */
  .print-answers-head { break-before: page; }

  @page { margin: 14mm; }
}
