/* Wzory dokumentów — skład kartki A4 („Cicha Kancelaria", design/wzory/FILOZOFIA-SKLAD.md).
   Jeden arkusz: podgląd w panelu, edytor i wydruk używają tych samych reguł.
   Jednostka rytmu: interlinia tekstu podstawowego (11.5pt × 1.55 ≈ 6.3mm). */

.doc-sheet {
  --doc-ink: #161616;
  --doc-ink-soft: #4a4a4a;
  --doc-ink-faint: #8a8a8a;
  --doc-rule: #b9b9b9;
  --doc-hole: #fbefc4;
  --doc-serif: "Crimson Pro", "Georgia", "Times New Roman", serif;
  --doc-sans: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
  --doc-unit: 6.3mm;
  width: 210mm;
  min-height: 297mm;
  box-sizing: border-box;
  padding: 22mm 20mm 26mm;
  margin: 0 auto;
  background: #fff;
  color: var(--doc-ink);
  font-family: var(--doc-serif);
  font-size: 11.5pt;
  line-height: 1.55;
  font-kerning: normal;
  font-variant-numeric: oldstyle-nums proportional-nums;
  position: relative;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
@media screen {
  .doc-sheet { box-shadow: 0 1px 2px rgba(0,0,0,.08), 0 14px 36px -18px rgba(7,18,38,.35); }
}

/* ---------- nagłówek: logotyp i dane biura ---------- */
.doc-head {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 12mm;
  padding-bottom: 3mm; margin-bottom: calc(var(--doc-unit) * 2);
  border-bottom: .5pt solid var(--doc-rule);
}
.doc-logo { max-height: 16mm; max-width: 58mm; object-fit: contain; object-position: left bottom; display: block; }
.doc-logo--text { font-family: var(--doc-sans); font-weight: 700; font-size: 13pt; letter-spacing: -.01em; color: var(--doc-ink); }
.doc-office { text-align: right; font-family: var(--doc-sans); font-size: 8.5pt; line-height: 1.45; color: var(--doc-ink-soft); font-variant-numeric: tabular-nums; }
.doc-office__name { font-weight: 600; color: var(--doc-ink); font-size: 9.5pt; letter-spacing: .01em; }

/* ---------- tytuł ---------- */
.doc-body .doc-kind, .doc-editor .doc-kind {
  font-family: var(--doc-sans); font-size: 8pt; letter-spacing: .18em; text-transform: uppercase;
  color: var(--doc-ink-faint); margin: 0 0 1.5mm;
}
.doc-body h1, .doc-editor h1 {
  font-family: var(--doc-serif); font-weight: 600; font-size: 21pt; line-height: 1.15; letter-spacing: -.012em;
  margin: 0 0 2mm; text-align: left; color: var(--doc-ink);
}
.doc-body .doc-meta, .doc-editor .doc-meta {
  font-family: var(--doc-sans); font-size: 9pt; color: var(--doc-ink-soft); font-style: normal; text-align: left;
  margin: 0 0 calc(var(--doc-unit) * 1.5); letter-spacing: .01em;
}

/* ---------- strony umowy ---------- */
.doc-body .doc-parties, .doc-editor .doc-parties {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8mm;
  padding: 3mm 0; margin: 0 0 calc(var(--doc-unit) * 1.5);
  border-top: .5pt solid var(--doc-rule); border-bottom: .5pt solid var(--doc-rule);
}
.doc-body .doc-party__role, .doc-editor .doc-party__role {
  font-family: var(--doc-sans); font-size: 7.5pt; letter-spacing: .16em; text-transform: uppercase; color: var(--doc-ink-faint); margin: 0 0 1mm;
}
.doc-body .doc-parties p, .doc-editor .doc-parties p { text-align: left; hyphens: manual; -webkit-hyphens: manual; }
.doc-body .doc-party__name, .doc-editor .doc-party__name { font-weight: 600; font-size: 12pt; margin: 0 0 .5mm; }
.doc-body .doc-party__meta, .doc-editor .doc-party__meta { font-family: var(--doc-sans); font-size: 8.5pt; line-height: 1.5; color: var(--doc-ink-soft); margin: 0; font-variant-numeric: tabular-nums; }

/* ---------- treść ---------- */
.doc-body p, .doc-editor p { margin: 0 0 2.2mm; text-align: justify; hyphens: auto; -webkit-hyphens: auto; orphans: 3; widows: 3; }
.doc-body h2, .doc-editor h2 {
  font-family: var(--doc-serif); font-weight: 600; font-size: 11.5pt; letter-spacing: .01em;
  margin: calc(var(--doc-unit) * 1.2) 0 1.5mm; break-after: avoid; page-break-after: avoid;
  font-variant-numeric: tabular-nums lining-nums;
}
.doc-body h2 + p, .doc-editor h2 + p { margin-top: 0; }
.doc-body ol, .doc-editor ol { margin: 0 0 2.2mm; padding-left: 7mm; }
.doc-body ol li, .doc-editor ol li { margin: 0 0 1.4mm; padding-left: 1mm; text-align: justify; hyphens: auto; }
.doc-body ol li::marker, .doc-editor ol li::marker { font-variant-numeric: tabular-nums lining-nums; color: var(--doc-ink-soft); }
.doc-body ul, .doc-editor ul { margin: 0 0 2.2mm; padding-left: 5mm; list-style: none; }
.doc-body ul li, .doc-editor ul li { position: relative; padding-left: 5mm; margin: 0 0 1.2mm; }
.doc-body ul li::before, .doc-editor ul li::before { content: "–"; position: absolute; left: .5mm; color: var(--doc-ink-faint); }
.doc-body .doc-pre, .doc-editor .doc-pre { white-space: pre-wrap; text-align: left; }
.doc-body .doc-address, .doc-editor .doc-address { margin: 0 0 calc(var(--doc-unit) * 1.5); line-height: 1.45; }
.doc-body .doc-address b, .doc-editor .doc-address b { font-weight: 600; }
.doc-body .doc-closing, .doc-editor .doc-closing { margin-top: calc(var(--doc-unit) * 1.5); text-align: left; }

/* ---------- tabela: poziome linie, bez krat ---------- */
.doc-body .doc-table, .doc-editor .doc-table { border-collapse: collapse; width: 100%; margin: 1mm 0 calc(var(--doc-unit) * 1.2); font-size: 10.5pt; }
.doc-body .doc-table th, .doc-editor .doc-table th {
  text-align: left; vertical-align: top; padding: 2mm 3mm 2mm 0; width: 34mm;
  font-family: var(--doc-sans); font-weight: 600; font-size: 7.5pt; letter-spacing: .14em; text-transform: uppercase; color: var(--doc-ink-faint);
  border-bottom: .5pt solid var(--doc-rule);
}
.doc-body .doc-table td, .doc-editor .doc-table td { vertical-align: top; padding: 2mm 0; border-bottom: .5pt solid var(--doc-rule); }
.doc-body .doc-table tr:last-child th, .doc-body .doc-table tr:last-child td,
.doc-editor .doc-table tr:last-child th, .doc-editor .doc-table tr:last-child td { border-bottom: .5pt solid var(--doc-ink-soft); }

/* ---------- podpisy ---------- */
.doc-body .doc-sign, .doc-editor .doc-sign {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(60mm, 1fr)); gap: 14mm;
  margin-top: calc(var(--doc-unit) * 4); break-inside: avoid; page-break-inside: avoid;
}
.doc-body .doc-sign div, .doc-editor .doc-sign div { padding-top: 2.2mm; border-top: .5pt solid var(--doc-ink); }   /* miejsce na podpis jest nad kreską */
.doc-body .doc-sign span, .doc-editor .doc-sign span {
  display: block; font-family: var(--doc-sans); font-size: 7.5pt; letter-spacing: .16em; text-transform: uppercase; color: var(--doc-ink-soft);
}
.doc-body .doc-sign small, .doc-editor .doc-sign small { display: block; font-family: var(--doc-sans); font-size: 7.5pt; color: var(--doc-ink-faint); margin-top: .8mm; letter-spacing: .02em; }
/* stary układ tabelaryczny (wzory sprzed składu) */
.doc-body table.doc-sign, .doc-editor table.doc-sign { display: table; width: 100%; text-align: center; font-family: var(--doc-sans); font-size: 8pt; letter-spacing: .1em; text-transform: uppercase; color: var(--doc-ink-soft); }
.doc-body table.doc-sign td, .doc-editor table.doc-sign td { padding: 0 8mm; border: 0; }

/* ---------- pola do uzupełnienia ---------- */
mark.doc-hole { background: var(--doc-hole); color: #6b5300; padding: 0 1mm; border-radius: 1px; box-decoration-break: clone; }

/* ---------- stopka ---------- */
.doc-foot {
  position: absolute; left: 20mm; right: 20mm; bottom: 12mm;
  display: flex; justify-content: space-between; gap: 8mm; align-items: baseline;
  padding-top: 2mm; border-top: .5pt solid var(--doc-rule);
  font-family: var(--doc-sans); font-size: 7.5pt; letter-spacing: .04em; color: var(--doc-ink-faint);
}
.doc-foot__ok { color: var(--doc-ink-faint); }
.doc-foot__warn { color: #9a2c1f; font-weight: 600; }
.doc-foot__office { color: var(--doc-ink-faint); white-space: nowrap; }

/* ---------- wydruk: marginesy z @page, stopka na każdej stronie ---------- */
@media print {
  /* stopkę na każdej stronie rysuje pole marginesu @bottom-left/@bottom-right
     (treść wstawia okno wydruku), więc element .doc-foot znika */
  @page { size: A4; margin: 22mm 20mm 24mm; }
  html, body { margin: 0; padding: 0; background: #fff; }
  .doc-sheet { width: auto; min-height: 0; padding: 0 !important; margin: 0; box-shadow: none; }
  .doc-foot { display: none; }
  mark.doc-hole { background: var(--doc-hole); }
}

/* tło pod logotypem na dokumencie: jasny znak dostaje granatową płytkę, ciemny idzie bez tła */
.doc-logo--plate-dark { background: #071226; padding: 2.5mm 3.5mm; border-radius: 1.5mm; }
.doc-logo--plate-light { background: #fff; padding: 2.5mm 3.5mm; border-radius: 1.5mm; box-shadow: 0 0 0 .3pt #d0d0d0; }
