/* Wydruk / PDF „Wycena orientacyjna” (Z30, specyfikacja układu 2026-10-05). Działa, gdy <body> ma klasę „tryb-druku”
   (ustawiana przed drukiem). 4 strony A4: 1) decyzja – założenia, polecany, porównanie, „Co dalej”; 2) polecany – szczegóły;
   3) pozostałe zestawy i warunki; 4) dla elektryka. Na każdej stronie pasek z numerem wyceny i stopka z danymi spółki.
   Typografia: tekst 10–10,5 pt, tabele 8,5–9 pt, minimum 8 pt (stopka). Złoto tylko na czarnym tle albo jako linia –
   nigdy jako tekst na białym. Polecany wyróżniony ramką i napisem „POLECAMY”, nie tylko kolorem (druk czarno-biały). */
#druk { display: none; }
@page { size: A4; margin: 12mm 14mm 10mm; }  /* treść 182 × 275 mm */
body.tryb-druku { background: #fff; font-size: 10pt; line-height: 1.38; }
body.tryb-druku > *:not(#druk) { display: none !important; }
.tryb-druku #druk { display: block; width: 182mm; color: #111; font-family: var(--font); }
/* tła (znaczek POLECAMY, ramki) drukują się także przy wyłączonej „grafice w tle” w przeglądarce */
.tryb-druku #druk, .tryb-druku #druk * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
/* strona = 275 mm (A4 minus marginesy), 1 mm zapasu; stopka na dole strony, gdy treść jest krótsza.
   Za wysoką stronę app.js (dopasujDruk) mierzy i oznacza „scisk-1/2”; #druk.mierz = pomiar bez min-height */
.tryb-druku .strona { break-after: page; page-break-after: always; display: flex; flex-direction: column; min-height: 274mm; box-sizing: border-box; }
.tryb-druku #druk.mierz .strona { min-height: 0; }
.tryb-druku .strona:last-child { break-after: auto; page-break-after: auto; }
.tryb-druku .d-tresc { flex: 1 0 auto; }
.tryb-druku h1, .tryb-druku h2, .tryb-druku h3 { break-after: avoid; page-break-after: avoid; }
.tryb-druku h1 { font-size: 17pt; line-height: 1.2; margin: 0 0 1mm; }
.tryb-druku h2 { font-size: 11.5pt; margin: 4mm 0 1.5mm; }
.tryb-druku p { margin: 0 0 1.5mm; }
.tryb-druku a { color: #111; text-decoration: underline; }
.tryb-druku svg { flex: none; }

/* pasek na górze: logo | numer wyceny, data, „ceny aktualne do” */
.tryb-druku .d-naglowek { display: flex; justify-content: space-between; align-items: flex-end; gap: 6mm; border-bottom: 1.5pt solid #111; padding-bottom: 2.5mm; margin-bottom: 5mm; }
.tryb-druku .d-logo-blok { display: grid; gap: 1mm; justify-items: start; }
.tryb-druku .d-logo { height: 8mm; width: auto; }
.tryb-druku .d-sprzedawca { font-size: 8.5pt; font-weight: 600; }
.tryb-druku .d-nr { display: grid; text-align: right; font-size: 9pt; line-height: 1.35; }
.tryb-druku .d-nr b { font-size: 10.5pt; }
.tryb-druku .d-podtytul { font-size: 10.5pt; color: #474747; margin-bottom: 3mm; }
.tryb-druku .d-mala { font-size: 8.5pt; color: #474747; display: flex; gap: 1.5mm; align-items: flex-start; }
.tryb-druku .d-mala svg, .tryb-druku .d-gw svg { width: 3.8mm; height: 3.8mm; }

/* założenia: krótkie pary „etykieta: wartość”, dwie pary w wierszu */
.tryb-druku .d-zal-blok h2 { margin: 0 0 1mm; font-size: 10pt; }
.tryb-druku .d-zalozenia { display: grid; grid-template-columns: auto 1fr auto 1fr; gap: 1mm 3mm; margin: 0 0 2mm; font-size: 9.5pt; }
.tryb-druku .d-zalozenia dt { font-weight: 600; }
.tryb-druku .d-zalozenia dt::after { content: ":"; }
.tryb-druku .d-zalozenia dd { margin: 0; }
.tryb-druku .d-dla-firmy { font-size: 9.5pt; margin: 0 0 2mm; }

/* znaczek POLECAMY: czarne tło, złoty napis (8,4:1) */
.tryb-druku .d-znaczek { display: inline-block; background: #111; color: var(--accent, #C9A96A); font-size: 8pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .5mm 2.5mm; border-radius: 9pt; vertical-align: middle; }

/* polecany zestaw na całą szerokość – ramka 2 pt */
.tryb-druku .d-pol { border: 2pt solid #111; border-radius: 2.5mm; padding: 3mm 5mm; margin: 2mm 0 1mm; break-inside: avoid; }
.tryb-druku .d-pol-glowa { display: flex; align-items: center; gap: 3mm; }
.tryb-druku .d-pol-glowa h2 { margin: 0; font-size: 14pt; }
.tryb-druku .d-pol-uklad { display: grid; grid-template-columns: 1fr 32mm; gap: 5mm; margin-top: 2mm; }
.tryb-druku .d-pol-uklad.bez-foto { grid-template-columns: 1fr; }
.tryb-druku .d-pol-foto { align-self: center; }
.tryb-druku .d-foto { display: block; width: 32mm; height: 32mm; object-fit: contain; }
.tryb-druku .d-foto.mala { width: 26mm; height: 26mm; }
.tryb-druku .d-dla { font-size: 10pt; margin-bottom: 1.5mm; }
.tryb-druku .d-lista { list-style: none; padding: 0; margin: 0; display: grid; gap: 1mm; font-size: 10pt; }
.tryb-druku .d-lista li { display: grid; grid-template-columns: 4.5mm 1fr; gap: 1.5mm; align-items: start; }
.tryb-druku .d-lista svg { width: 4.2mm; height: 4.2mm; margin-top: .3mm; }
.tryb-druku .d-pol-cena { display: grid; grid-template-columns: auto 1fr; gap: 6mm; border-top: 0.75pt solid #BDBDBD; margin-top: 3mm; padding-top: 2.5mm; align-items: start; }
.tryb-druku .d-kwota { display: flex; align-items: baseline; gap: 2mm; }
.tryb-druku .d-cena .k { font-size: 15pt; font-weight: 700; font-variant-numeric: tabular-nums; }
.tryb-druku .d-cena.duza .k { font-size: 24pt; line-height: 1.1; }
.tryb-druku .d-jedn { font-size: 10.5pt; font-weight: 600; }
.tryb-druku .d-pod { font-size: 9pt; color: #474747; }
.tryb-druku .d-gw { display: flex; align-items: center; gap: 1.5mm; font-size: 9pt; margin-top: 1.5mm; }
.tryb-druku .d-wcenie { font-size: 9pt; }
.tryb-druku .d-wcenie p { margin-bottom: 1mm; }
.tryb-druku .d-dopisek { font-size: 9pt; font-weight: 600; margin: 2mm 0 0; }

/* tabela porównania: kolumna polecanego w grubej ramce, pogrubione wiersze z różnicami */
.tryb-druku table.d-por { width: 100%; border-collapse: collapse; font-size: 9pt; table-layout: fixed; break-inside: avoid; }
.tryb-druku .d-por th, .tryb-druku .d-por td { text-align: left; vertical-align: top; padding: 1.2mm 2mm; border-bottom: 0.5pt solid #D6D6D6; }
.tryb-druku .d-por thead th { border-bottom: 1pt solid #111; font-size: 10pt; }
.tryb-druku .d-por thead th:first-child { width: 24mm; }
.tryb-druku .d-por tbody th { font-weight: 400; color: #474747; }
.tryb-druku .d-por tr.rozne td { font-weight: 600; }
.tryb-druku .d-por td small { display: block; font-weight: 400; font-size: 8pt; color: #474747; }
.tryb-druku .d-por .pol { border-left: 2pt solid #111; border-right: 2pt solid #111; }
.tryb-druku .d-por thead .pol { border-top: 2pt solid #111; }
.tryb-druku .d-por tbody tr:last-child .pol { border-bottom: 2pt solid #111; }
.tryb-druku .d-por-nazwa { display: block; margin-top: .8mm; }

/* ramka „Co dalej” – złota linia po lewej (linia, nie tekst) */
.tryb-druku .d-cta { margin-top: 4mm; border: 0.75pt solid #BDBDBD; border-left: 3pt solid var(--accent, #C9A96A); border-radius: 0 2mm 2mm 0; padding: 3mm 4mm; font-size: 10pt; break-inside: avoid; }
.tryb-druku .d-cta p { margin: 0 0 1mm; }
.tryb-druku .d-cta-t { font-weight: 700; font-size: 10.5pt; }
.tryb-druku .d-cta-tel { font-size: 10.5pt; font-weight: 600; }
.tryb-druku .d-cta-pisz { font-size: 9pt; color: #474747; }
.tryb-druku .d-bez-lamania { white-space: nowrap; }

/* str. 2 */
.tryb-druku .d-dwie { display: grid; grid-template-columns: 1fr 1fr; gap: 6mm; }
.tryb-druku .d-dwie > div { break-inside: avoid; }
.tryb-druku .d-jak { margin: 0; padding-left: 5mm; display: grid; gap: 1mm; font-size: 9.5pt; }
.tryb-druku table.d-rozb { width: 100%; border-collapse: collapse; font-size: 9.5pt; margin-bottom: 2mm; }
.tryb-druku .d-rozb th, .tryb-druku .d-rozb td { text-align: left; padding: 1mm 2mm; border-bottom: 0.5pt solid #D6D6D6; }
.tryb-druku .d-rozb .l { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tryb-druku .d-rozb tfoot td { font-weight: 700; border-bottom: 0; border-top: 1pt solid #111; }

/* „W zestawie” – zdjęcia (decyzja Michała 2026-10-05: „w PDF-ie muszą być podstawowe zdjęcia”) */
.tryb-druku .w-zestawie { break-inside: avoid; margin: 2mm 0 1mm; }
.tryb-druku .w-zestawie h2 { font-size: 11.5pt; margin: 0 0 1.5mm; }
.tryb-druku .w-zestawie ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.5mm; }
.tryb-druku .w-zestawie li { border: 0.5pt solid #D6D6D6; border-radius: 2mm; padding: 1.5mm; display: grid; gap: 1mm; align-content: start; }
.tryb-druku .wz-foto { width: 100%; height: 20mm; object-fit: contain; }
.tryb-druku .wz-nazwa { font-size: 8pt; line-height: 1.3; }
.tryb-druku .wz-ilosc { font-size: 8.5pt; font-weight: 600; }

/* str. 3 – pozostałe zestawy */
.tryb-druku .d-inny { border: 0.75pt solid #BDBDBD; border-radius: 2.5mm; padding: 3mm 4mm; margin-bottom: 3mm; break-inside: avoid; }
.tryb-druku .d-inny-glowa { display: flex; justify-content: space-between; align-items: flex-start; gap: 4mm; }
.tryb-druku .d-inny-glowa h2 { margin: 0; font-size: 13pt; }
.tryb-druku .d-inny-cena { text-align: right; }
.tryb-druku .d-inny-cena .d-kwota { justify-content: flex-end; }
.tryb-druku .d-roznica { font-size: 9pt; font-weight: 600; margin: .5mm 0 0; }
.tryb-druku .d-inny-uklad { display: grid; grid-template-columns: 26mm 1fr; gap: 4mm; margin-top: 1.5mm; }
.tryb-druku .d-inny-uklad.bez-foto { grid-template-columns: 1fr; }
.tryb-druku .d-inny .d-lista { font-size: 9.5pt; }
.tryb-druku .d-inny .d-uwazaj { margin-top: 1mm; }
.tryb-druku .d-kody { font-size: 8pt; color: #474747; margin: 1.5mm 0 0; }
.tryb-druku .d-dalej { margin: 0; padding-left: 5mm; display: grid; gap: 1mm; font-size: 10pt; }
.tryb-druku .d-warunki { font-size: 8pt; color: #474747; margin-top: 3mm; }

/* str. 4 – dla elektryka */
.tryb-druku table.lista-el { width: 100%; border-collapse: collapse; font-size: 8.5pt; }
.tryb-druku .lista-el th { text-align: left; border-bottom: 1pt solid #111; padding: 1mm; }
.tryb-druku .lista-el td { border-bottom: 0.5pt solid #D6D6D6; padding: .45mm 1mm; vertical-align: top; }
.tryb-druku .lista-el tr { break-inside: avoid; }
.tryb-druku .lista-el .kod { white-space: nowrap; font-weight: 600; }
.tryb-druku .lista-el .l { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tryb-druku .lista-el tfoot td { font-weight: 700; border-bottom: 0; }
.tryb-druku .d-przypis { font-weight: 400; color: #474747; }
.tryb-druku .poz-uwaga { font-style: italic; }
.tryb-druku .d-schemat { break-inside: avoid; }
.tryb-druku .d-schemat h2 { margin-top: 3mm; }
.tryb-druku .d-schemat-rys svg { width: 100%; max-height: 42mm; height: auto; display: block; }
.tryb-druku .blad-ramka { font-size: 9.5pt; border: 1pt solid #111; border-left-width: 3pt; padding: 2mm 3mm; margin: 2mm 0; break-inside: avoid; }
.tryb-druku .kroki-m { margin: 0; padding-left: 5mm; font-size: 9.5pt; display: grid; gap: .8mm; }
.tryb-druku .d-montaz { break-inside: avoid; }
.tryb-druku .d-montaz h2 { margin-top: 3mm; }
.tryb-druku .d-kontakt-tech { font-size: 9.5pt; font-weight: 600; margin-top: 3mm; }
.tryb-druku .d-sep { margin-top: 2mm; }

/* stopka: dane spółki (art. 206 KSH), numer strony i wyceny – min. 8 pt */
.tryb-druku .d-stopka { display: grid; grid-template-columns: 1fr auto; gap: 5mm; font-size: 7.5pt; line-height: 1.3; color: #474747; border-top: 0.5pt solid #BDBDBD; padding-top: 1mm; margin-top: 2mm; }
.tryb-druku .d-strona { white-space: nowrap; }

/* podgląd stron na ekranie (kontrola układu): body.tryb-druku.podglad-druku */
.podglad-druku { background: #888 !important; }
.podglad-druku .strona { width: 210mm; min-height: 297mm; padding: 12mm 14mm 10mm; margin: 8mm auto; background: #fff; box-sizing: border-box; }
.podglad-druku #druk { width: auto; }

/* ścisk – tylko na stronie, która się nie mieści (dopasujDruk); najpierw odstępy, potem drobniejsze elementy */
.tryb-druku .scisk-1 h2 { margin: 2.5mm 0 1mm; }
.tryb-druku .scisk-1 .d-naglowek { margin-bottom: 3mm; padding-bottom: 1.5mm; }
.tryb-druku .scisk-1 .d-pol { padding: 2.5mm 4mm; }
.tryb-druku .scisk-1 .d-pol-uklad { grid-template-columns: 1fr 26mm; }
.tryb-druku .scisk-1 .d-foto { width: 26mm; height: 26mm; }
.tryb-druku .scisk-1 .d-por th, .tryb-druku .scisk-1 .d-por td { padding: .8mm 1.5mm; }
.tryb-druku .scisk-1 .d-cta { margin-top: 2.5mm; padding: 2mm 3mm; }
.tryb-druku .scisk-1 .d-lista { gap: .5mm; }
.tryb-druku .scisk-1 .wz-foto { height: 16mm; }
.tryb-druku .scisk-1 .d-schemat-rys svg { max-height: 34mm; }
.tryb-druku .scisk-1 .blad-ramka { margin: 1.5mm 0; padding: 1.5mm 2.5mm; }
.tryb-druku .scisk-2 { font-size: 9.5pt; }
.tryb-druku .scisk-2 .d-lista, .tryb-druku .scisk-2 .d-jak, .tryb-druku .scisk-2 .kroki-m, .tryb-druku .scisk-2 .blad-ramka { font-size: 9pt; }
.tryb-druku .scisk-2 .lista-el td { padding: .2mm 1mm; }
.tryb-druku .scisk-2 .d-schemat-rys svg { max-height: 28mm; }
.tryb-druku .scisk-2 .wz-foto { height: 13mm; }

/* Z32 (przegląd PDF): proste nazwy w „W zestawie”, zdanie od doradcy, mała różnica cen */
.tryb-druku .w-zestawie h2 { text-transform: none; letter-spacing: 0; color: #111; }
.tryb-druku .w-zestawie ul { grid-template-columns: repeat(auto-fill, minmax(27mm, 1fr)); gap: 2mm; }
.tryb-druku .wz-nazwa b { display: block; font-size: 8.5pt; }
.tryb-druku .wz-kod { display: block; color: #474747; font-size: 7.5pt; }
.tryb-druku .wz-foto { height: 17mm; }
.tryb-druku .d-od-doradcy { font-size: 9.5pt; font-style: italic; margin: 0 0 1.5mm; }
.tryb-druku .d-podpis { font-style: normal; white-space: nowrap; }
.tryb-druku .d-mala-roznica { margin-top: 1.5mm; }
.tryb-druku .d-schemat-opis { display: grid; gap: .8mm; } .tryb-druku .d-schemat-opis p { margin: 0; }
