/* ————— Vzhled faktury: designy a volby (Saldo.paper, Nastavení → Faktury) ————— */

.paper {
    --paper-on-accent: #ffffff;
    --paper-line-strong: #c9ced6;
    --paper-tint: color-mix(in srgb, var(--paper-accent) 7%, #ffffff);
    --p-radius: 3mm;
}

.paper.font-inter { --p-font: var(--font-text); }
.paper.font-plex { --p-font: 'IBM Plex Sans', var(--font-text); }
.paper.font-manrope { --p-font: 'Manrope', var(--font-text); }
.paper.font-dm { --p-font: 'DM Sans', var(--font-text); }
.paper.font-franklin { --p-font: 'Libre Franklin', var(--font-text); }
.paper.font-serif { --p-font: 'Source Serif 4', Georgia, 'Times New Roman', serif; font-variant-numeric: lining-nums; }
.paper.font-lora { --p-font: 'Lora', Georgia, 'Times New Roman', serif; font-variant-numeric: lining-nums; }

.paper.corners-sharp { --p-radius: 0; }
.paper.corners-round { --p-radius: 3mm; }

.paper.logo-s .p-logo { max-width: 30mm; max-height: 12mm; }
.paper.logo-l .p-logo { max-width: 64mm; max-height: 26mm; }

.paper.tuned .p-meta { grid-template-columns: repeat(auto-fit, minmax(27mm, 1fr)); }
.paper.tuned .p-title .p-number { font-variant-numeric: proportional-nums; }
.paper .p-items .p-no { width: 7mm; padding-right: 0; color: var(--paper-muted); font-variant-numeric: tabular-nums; }
.paper .p-head-due { display: grid; justify-items: end; gap: 0.5mm; margin-top: 5mm; }
.paper .p-head-due span { font-size: 8pt; opacity: 0.8; }
.paper .p-head-due strong { font-size: 20pt; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }

/* Stránka */
.paper:is(.m-hairline, .m-edge, .hd-tint, .hd-ink, .pt-cards, .mt-strip, .tot-box, .tot-tint, .pay-tint) { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.paper.m-hairline::before { content: ''; display: block; height: 1.8mm; margin: calc(-1 * var(--p-pad, 16mm)) calc(-1 * var(--p-pad, 16mm)) calc(var(--p-pad, 16mm) - 1.8mm); background: var(--paper-accent); }
.paper.m-edge::before { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 5mm; background: var(--paper-accent); }
.paper.m-frame { --p-pad: 15mm; }
.paper.m-frame::before { content: ''; position: absolute; inset: 6mm; border: 1.5pt solid var(--paper-accent); pointer-events: none; }
.paper.m-ink-top .p-head { padding-top: 5mm; border-top: 3pt solid var(--paper-ink); }
.paper.m-ink-top .p-rule { display: none; }
.paper.m-double .p-rule { height: 1.6mm; background: none; border-top: 0.75pt solid var(--paper-ink); border-bottom: 0.75pt solid var(--paper-ink); }
.paper.m-mono { --paper-accent: #101828 !important; --paper-accent-ink: #101828 !important; --paper-on-accent: #ffffff !important; --paper-tint: #f2f4f7 !important; }
.paper.m-airy { --p-gap: 9mm; --p-cell: 3mm; }
.paper.m-dense { --p-fs: 8.3pt; --p-gap: 4mm; --p-cell: 1.2mm; --p-pad: 11mm; }
.paper.m-dense .p-title h1 { font-size: 15pt; }
.paper.m-dense .p-total .grand strong { font-size: 14pt; }
.paper.m-dense .p-qr .qr { width: 22mm; height: 22mm; }

/* Záhlaví a nadpis */
.paper.hd-left .p-head { flex-direction: column; align-items: flex-start; gap: 7mm; }
.paper.hd-left .p-title { text-align: left; }
.paper.hd-left .p-head-due { justify-items: start; }
.paper.hd-center .p-head { flex-direction: column; align-items: center; gap: 5mm; text-align: center; }
.paper.hd-center .p-brand { flex-direction: column; justify-content: center; }
.paper.hd-center .p-title { text-align: center; }
.paper.hd-tint .p-head, .paper.hd-ink .p-head { margin: calc(-1 * var(--p-pad, 16mm)) calc(-1 * var(--p-pad, 16mm)) var(--p-gap, 7mm); padding: 13mm var(--p-pad, 16mm) 11mm; }
.paper.hd-tint .p-head { background: var(--paper-tint); }
.paper:is(.hd-tint, .hd-ink) .p-rule { display: none; }
.paper.hd-ink .p-head { background: var(--paper-ink); color: #ffffff; }
.paper.hd-ink .p-brand-name, .paper.hd-ink .p-title h1 { color: #ffffff; }
.paper.hd-ink .p-title .p-number { color: #ffffff; opacity: 0.8; }
.paper.hd-ink .p-title .p-kind { color: rgba(255, 255, 255, 0.7); }
.paper.hd-ink .p-logo { padding: 3mm 4mm; background: #ffffff; border-radius: 2mm; }
.paper.tt-light .p-title h1 { font-size: 30pt; font-weight: 300; line-height: 1; letter-spacing: -0.03em; }
.paper.tt-heavy .p-title h1 { font-size: 36pt; font-weight: 800; line-height: 0.95; letter-spacing: -0.045em; color: var(--paper-accent-ink, var(--paper-accent)); }
.paper.tt-heavy .p-title .p-number { font-size: 13pt; color: var(--paper-ink); }
.paper.tt-accent .p-title h1 { color: var(--paper-accent-ink, var(--paper-accent)); }
.paper.tt-small .p-title h1 { font-size: 10.5pt; font-weight: 600; letter-spacing: 0; color: var(--paper-muted); }
.paper.tt-small .p-title .p-number { margin-top: 1mm; font-size: 22pt; font-weight: 700; letter-spacing: -0.02em; color: var(--paper-ink); }
.paper.logo-hero .p-logo { max-width: 80mm; max-height: 28mm; }

/* Popisky */
.paper.lb-caps :is(.p-party h4, .p-meta div span, .p-items th, .p-recap th) { font-size: 6.8pt; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.paper.lb-accent :is(.p-party h4, .p-meta div span, .p-items th) { color: var(--paper-accent-ink, var(--paper-accent)); }
.paper.lb-italic :is(.p-party h4, .p-meta div span, .p-items th) { font-style: italic; font-weight: 400; letter-spacing: 0; }

/* Tabulka položek */
.paper:is(.tbl-zebra, .tbl-grid, .tbl-headfill) { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.paper.tbl-zebra .p-items td { border-bottom: 0; }
.paper.tbl-zebra .p-items tbody tr:nth-child(even) td { background: var(--paper-tint); }
.paper.tbl-zebra .p-items tbody tr:last-child td { border-bottom: 1px solid var(--paper-line); }
.paper.tbl-grid .p-items th, .paper.tbl-grid .p-items td { border: 1px solid var(--paper-line-strong); }
.paper.tbl-grid .p-items th { padding: 1.8mm 2mm; background: var(--paper-tint); color: var(--paper-ink); }
.paper.tbl-minimal .p-items td { border-bottom: 0; }
.paper.tbl-minimal .p-items tbody tr:last-child td { border-bottom: 1px solid var(--paper-line); }
.paper.tbl-headfill .p-items thead th { padding: 2mm; border-bottom: 0; background: var(--paper-accent); color: var(--paper-on-accent); }
.paper.tbl-headline .p-items th { color: var(--paper-accent-ink, var(--paper-accent)); border-bottom: 1.5pt solid var(--paper-accent); }

/* Strany, údaje, součet a platba */
.paper.pt-cards .p-parties, .paper.pt-outline .p-parties { gap: 5mm; }
.paper.pt-cards .p-party { padding: 5mm 6mm; background: var(--paper-tint); border-radius: var(--p-radius); }
.paper.pt-outline .p-party { padding: 5mm 6mm; border: 0.75pt solid color-mix(in srgb, var(--paper-accent) 40%, #ffffff); border-radius: var(--p-radius); }
.paper.pt-divided .p-parties { gap: 0; }
.paper.pt-divided .p-party:first-child { padding-right: 9mm; }
.paper.pt-divided .p-party + .p-party { padding-left: 9mm; border-left: 0.75pt solid var(--paper-line-strong); }
.paper.mt-plain .p-meta { padding: 0; border: 0; }
.paper.mt-strip .p-meta { padding: 3.5mm 5mm; border: 0; background: var(--paper-tint); border-radius: var(--p-radius); }
.paper.mt-boxes .p-meta { gap: 2.5mm; padding: 0; border: 0; }
.paper.mt-boxes .p-meta > div { padding: 2.2mm 3mm; border: 0.75pt solid var(--paper-line-strong); border-radius: var(--p-radius); }
.paper.tot-rule .p-total .grand { margin-top: 3mm; padding-top: 3mm; border-top: 2pt solid var(--paper-ink); }
.paper.m-double .p-total .grand { border-top: 2.2pt double var(--paper-ink); }
.paper.tot-accent .p-total .grand strong { color: var(--paper-accent-ink, var(--paper-accent)); }
.paper.tot-box .p-total .grand { margin-top: 3mm; padding: 3.5mm 5mm; border: 0; border-radius: var(--p-radius); background: var(--paper-accent); color: var(--paper-on-accent); }
.paper.tot-box .p-total .grand strong { color: var(--paper-on-accent); }
.paper.tot-tint .p-total .grand { margin-top: 3mm; padding: 3mm 4mm; border: 0; border-radius: var(--p-radius); background: var(--paper-tint); }
.paper.pay-tint .p-pay { border: 0; background: var(--paper-tint); }
.paper.pay-line .p-pay { padding: 4mm 0 0; border: 0; border-top: 0.75pt solid var(--paper-ink); border-radius: 0; }
.paper.pay-accent .p-pay { border: 1.2pt solid var(--paper-accent); }

/* Švýcarský: číslo faktury jako hlavní typografický prvek, přísné levé zarovnání */
.paper.d-swiss .p-head { flex-direction: column; gap: 7mm; margin-bottom: 7mm; }
.paper.d-swiss .p-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 2.5mm; text-align: left; }
.paper.d-swiss .p-title h1 { font-size: 10.5pt; font-weight: 600; line-height: 1.3; letter-spacing: 0; }
.paper.d-swiss .p-title h1::before { content: ''; display: inline-block; width: 2.2mm; height: 2.2mm; margin-right: 2.2mm; background: var(--paper-accent); }
.paper.d-swiss .p-title .p-kind { order: 1; margin: 0; font-size: 10.5pt; }
.paper.d-swiss .p-title .p-number { order: 2; flex-basis: 100%; margin-top: 1.5mm; font-size: 40pt; font-weight: 700; line-height: 1; letter-spacing: -0.04em; color: var(--paper-ink); }
.paper.d-swiss .p-rule { height: 0; background: none; border-top: 0.75pt solid var(--paper-ink); }
.paper.d-swiss .p-party h4 { letter-spacing: 0; font-size: 8pt; }
.paper.d-swiss .p-meta { padding-top: 0; border-top: 0; border-bottom: 0.75pt solid var(--paper-ink); }
.paper.d-swiss .p-items th { letter-spacing: 0; border-bottom: 0.75pt solid var(--paper-ink); }
.paper.d-swiss .p-total .grand { border-top: 0.75pt solid var(--paper-ink); }
.paper.d-swiss .p-total .grand strong { font-size: 20pt; color: var(--paper-accent-ink, var(--paper-accent)); }
.paper.d-swiss .p-pay { padding: 4mm 0 0; border: 0; border-top: 0.75pt solid var(--paper-ink); border-radius: 0; }

/* Souhrn k úhradě pod záhlavím (Na první pohled, Tmavý souhrn, Velkoobchod) */
.paper.lay-glance { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.paper.lay-glance .p-glance {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.8fr) minmax(0, 1.6fr) auto;
    gap: 5mm;
    align-items: center;
    margin: 0 0 var(--p-gap, 7mm);
    padding: 6mm;
    background: var(--paper-tint);
    border-radius: var(--p-radius);
}
.paper.lay-glance .p-glance > div > span:not(.g-sub) { display: block; margin-bottom: 1mm; font-size: 7.8pt; color: var(--paper-muted); }
.paper.lay-glance .p-glance strong + span:not(.g-sub) { margin-top: 3mm; }
.paper.lay-glance .g-amount strong { display: block; font-size: 21pt; font-weight: 700; line-height: 1.05; letter-spacing: -0.02em; color: var(--paper-accent-ink, var(--paper-accent)); font-variant-numeric: tabular-nums; }
.paper.lay-glance .g-cell strong { display: block; font-size: 11pt; font-weight: 600; font-variant-numeric: tabular-nums; }
.paper.lay-glance .g-sub { display: block; font-size: 7.8pt; color: var(--paper-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.paper.lay-glance .p-glance .p-qr { font-size: 6.8pt; }
.paper.lay-glance .p-glance .p-qr .qr { width: 25mm; height: 25mm; }
.paper.m-dense.lay-glance .p-glance { padding: 4mm 5mm; }
.paper.m-dense.lay-glance .g-amount strong { font-size: 17pt; }
.paper.m-dense.lay-glance .p-glance .p-qr .qr { width: 21mm; height: 21mm; }
.paper.gl-ink .p-glance { background: var(--paper-ink); color: #ffffff; }
.paper.gl-ink .p-glance > div > span:not(.g-sub), .paper.gl-ink .p-glance .g-sub, .paper.gl-ink .p-glance .p-qr { color: rgba(255, 255, 255, 0.68); }
.paper.gl-ink .g-amount strong { color: #ffffff; }
.paper.gl-ink .p-glance .p-qr .qr { padding: 1.5mm; background: #ffffff; }

/* Boční sloupec s dodavatelem, platbou a kontakty (Boční panel, Panel vpravo, Tmavý panel) */
.paper.lay-side { display: grid; grid-template-columns: 62mm minmax(0, 1fr); padding: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.paper.lay-side .p-side { display: flex; flex-direction: column; gap: 8mm; padding: var(--p-pad, 16mm) 8mm 14mm 11mm; background: var(--paper-tint); }
.paper.lay-side .p-main { position: relative; min-width: 0; padding: var(--p-pad, 16mm) var(--p-pad, 16mm) calc(var(--p-pad, 16mm) + 8mm) 10mm; }
.paper.lay-side .p-brand { flex-direction: column; align-items: flex-start; gap: 3mm; }
.paper.lay-side .p-logo { max-width: 43mm; }
.paper.lay-side .p-brand-name { font-size: 14pt; line-height: 1.2; }
.paper.lay-side .p-side .p-party .name { font-size: 10pt; }
.paper.lay-side .p-side .p-pay { display: block; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.paper.lay-side .p-side .p-pay .kv { display: block; font-size: 8.6pt; }
.paper.lay-side .p-side .p-pay .kv dt { margin-top: 2mm; font-size: 7.6pt; }
.paper.lay-side .p-side .p-pay .kv dd { margin: 0; }
.paper.lay-side .p-side .p-qr { margin-top: 5mm; text-align: left; }
.paper.lay-side .p-side .p-qr .qr { width: 32mm; height: 32mm; margin: 0 0 1.5mm; }
.paper.lay-side .p-side-contacts { display: grid; gap: 1mm; margin-top: auto; font-size: 8pt; color: var(--paper-muted); overflow-wrap: anywhere; }
.paper.lay-side .p-title { margin-bottom: 9mm; text-align: left; }
.paper.lay-side .p-main > .p-party { margin-bottom: var(--p-gap, 7mm); }
.paper.lay-side .p-meta { grid-template-columns: repeat(3, 1fr); }
.paper.lay-side .p-items { font-size: 0.95em; }
.paper.lay-side .p-items th.r { white-space: normal; }
.paper.lay-side .p-sum { flex-direction: column; align-items: stretch; gap: 5mm; }
.paper.lay-side .p-recap { align-self: flex-start; }
.paper.lay-side .p-total { align-self: flex-end; }
.paper.lay-side .p-foot { left: 10mm; right: var(--p-pad, 16mm); }
.paper.side-right { grid-template-columns: minmax(0, 1fr) 62mm; }
.paper.side-right .p-side { order: 2; padding: var(--p-pad, 16mm) 11mm 14mm 8mm; }
.paper.side-right .p-main { padding: var(--p-pad, 16mm) 10mm calc(var(--p-pad, 16mm) + 8mm) var(--p-pad, 16mm); }
.paper.side-right .p-foot { left: var(--p-pad, 16mm); right: 10mm; }
.paper.side-ink .p-side { background: var(--paper-ink); color: #ffffff; }
.paper.side-ink .p-side :is(.p-party h4, .kv dt, .reg, .p-qr), .paper.side-ink .p-side-contacts { color: rgba(255, 255, 255, 0.66); }
.paper.side-ink .p-side .p-brand-name { color: #ffffff; }
.paper.side-ink .p-side .p-logo { padding: 2.5mm 3mm; background: #ffffff; border-radius: 1.5mm; }
.paper.side-ink .p-side .p-qr .qr { padding: 1.5mm; background: #ffffff; }

/* Linka: silné linky nad nadpisem a částkou, dvojice údajů ve dvou sloupcích, QR vlevo dole */
.paper.lay-pairs { padding-bottom: calc(var(--p-pad, 16mm) + 12mm); }
.paper.lay-pairs .p-head { align-items: flex-start; margin-bottom: 12mm; }
.paper.lay-pairs .p-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 2.5mm; width: 50%; padding-top: 3.5mm; border-top: 2pt solid var(--paper-ink); text-align: left; }
.paper.lay-pairs .p-title h1 { font-size: 17pt; font-weight: 700; letter-spacing: -0.01em; }
.paper.lay-pairs .p-title .p-number { margin: 0; font-size: 17pt; font-weight: 700; letter-spacing: -0.01em; color: var(--paper-muted); }
.paper.lay-pairs .p-title .p-kind { flex-basis: 100%; margin-top: 1mm; }
.paper.lay-pairs .p-parties { gap: 12mm; margin-bottom: 11mm; }
.paper.lay-pairs .p-party h4 { margin-bottom: 3mm; font-size: 7.2pt; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--paper-ink); }
.paper.lay-pairs .p-party h4::before { content: ''; display: block; width: 5mm; height: 0.75pt; margin-bottom: 2.5mm; background: var(--paper-ink); }
.paper.lay-pairs .p-party .name { margin-bottom: 1mm; font-size: 10.5pt; font-weight: 500; }
.paper.lay-pairs .p-party .addr { font-size: 8.4pt; color: var(--paper-muted); }
.paper.lay-pairs .p-pairs { display: grid; grid-template-columns: auto auto; justify-content: space-between; gap: 0.8mm 5mm; margin: 5mm 0 0; font-size: 8.6pt; }
.paper.lay-pairs .p-pairs dt { color: var(--paper-muted); }
.paper.lay-pairs .p-pairs dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.paper.lay-pairs .p-items th { font-size: 7pt; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }
.paper.lay-pairs .p-items .p-qty { width: 9mm; padding-right: 1mm; }
.paper.lay-pairs .p-items .p-unit { width: 12mm; padding-left: 1mm; color: var(--paper-ink); }
.paper.lay-pairs .p-sum { align-items: flex-start; margin-top: 6mm; }
.paper.lay-pairs .p-sum-side { display: grid; gap: 6mm; justify-items: start; }
.paper.lay-pairs .p-qr { text-align: left; font-size: 7.4pt; }
.paper.lay-pairs .p-qr .qr { width: 30mm; height: 30mm; margin: 0 0 1mm; padding: 2mm; border: 0.75pt solid var(--paper-line-strong); }
.paper.lay-pairs .p-total { min-width: 88mm; }
.paper.lay-pairs .p-total .grand { margin-top: 2mm; padding-top: 3.5mm; border-top: 2pt solid var(--paper-ink); }
.paper.lay-pairs .p-total .grand:not(.grand-rest) span { visibility: hidden; }
.paper.lay-pairs .p-total .grand strong { font-size: 17pt; font-weight: 700; }
.paper.lay-pairs .p-foot { flex-direction: column; gap: 1.2mm; border-top: 0; }

/* Barevné záhlaví: plná barva firmy nahoře i s částkou k úhradě */
.paper.d-block { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.paper.d-block .p-head {
    align-items: flex-start;
    margin: calc(-1 * var(--p-pad, 16mm)) calc(-1 * var(--p-pad, 16mm)) var(--p-gap, 7mm);
    padding: 13mm var(--p-pad, 16mm) 11mm;
    background: var(--paper-accent);
    color: var(--paper-on-accent);
}
.paper.d-block .p-rule { display: none; }
.paper.d-block .p-brand-name { font-size: 15pt; color: var(--paper-on-accent); }
.paper.d-block .p-logo { padding: 3mm 4mm; background: #ffffff; border-radius: 2mm; }
.paper.d-block .p-title h1 { font-size: 18pt; font-weight: 600; color: var(--paper-on-accent); }
.paper.d-block .p-title .p-number { color: var(--paper-on-accent); font-weight: 500; opacity: 0.85; }
.paper.d-block .p-title .p-kind { color: var(--paper-on-accent); opacity: 0.75; }
.paper.d-block .p-items th { color: var(--paper-accent-ink, var(--paper-accent)); border-bottom: 1.5pt solid var(--paper-accent); }
.paper.d-block .p-total .grand { border-top-color: var(--paper-accent); }
.paper.d-block .p-total .grand strong { color: var(--paper-accent-ink, var(--paper-accent)); }
.paper.d-night .p-title h1 { font-size: 18pt; font-weight: 600; }

/* Klasický: patkové písmo, souměrné záhlaví a dvojitá linka jako na dopise */
.paper.d-classic .p-head { flex-direction: column; align-items: center; gap: 5mm; margin-bottom: 5mm; text-align: center; }
.paper.d-classic .p-brand { flex-direction: column; justify-content: center; }
.paper.d-classic .p-brand-name { font-size: 19pt; font-weight: 600; }
.paper.d-classic .p-title { text-align: center; }
.paper.d-classic .p-title h1 { font-size: 14pt; font-weight: 400; font-style: italic; letter-spacing: 0; }
.paper.d-classic .p-title .p-number { margin-top: 1mm; font-size: 12pt; }
.paper.d-classic .p-title .p-kind { font-style: italic; }
.paper.d-classic .p-rule { height: 1.6mm; background: none; border-top: 0.6pt solid var(--paper-ink); border-bottom: 0.6pt solid var(--paper-ink); }
.paper.d-classic .p-party h4 { font-size: 9pt; font-weight: 400; font-style: italic; letter-spacing: 0; }
.paper.d-classic .p-party .name { font-size: 12pt; }
.paper.d-classic .p-meta { border-top: 0.6pt solid var(--paper-ink); border-bottom: 0.6pt solid var(--paper-ink); }
.paper.d-classic .p-meta div span { font-size: 8.4pt; font-style: italic; }
.paper.d-classic .p-items th { font-size: 8.6pt; font-weight: 400; font-style: italic; letter-spacing: 0; color: var(--paper-ink); border-bottom: 0.6pt solid var(--paper-ink); }
.paper.d-classic .p-items td { border-bottom-color: var(--paper-line-strong); }
.paper.d-classic .p-total .grand { padding-bottom: 2.5mm; border-top: 0.6pt solid var(--paper-ink); border-bottom: 0.6pt solid var(--paper-ink); }
.paper.d-classic .p-total .grand strong { font-size: 19pt; font-weight: 600; letter-spacing: 0; }
.paper.d-classic .p-pay { border: 0.6pt solid var(--paper-ink); }
.paper.d-elegant .p-brand-name { font-size: 17pt; font-weight: 600; }
.paper.d-elegant .p-title h1 { font-size: 20pt; font-weight: 500; }
.paper.d-letter .p-brand-name { font-size: 17pt; font-weight: 600; }
.paper.d-heritage .p-party h4 { font-size: 9pt; }

/* Technický: rámeček a rohové razítko jako na výkresu, čísla neproporcionálním písmem */
.paper.d-technical { --p-pad: 15mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.paper.d-technical::before { content: ''; position: absolute; inset: 8mm; border: 0.75pt solid var(--paper-ink); pointer-events: none; }
.paper.d-technical .p-head { align-items: flex-end; }
.paper.d-technical .p-title h1 { font-size: 17pt; font-weight: 600; letter-spacing: -0.01em; }
.paper.d-technical .p-title .p-number, .paper.d-technical .p-items .r, .paper.d-technical .p-total, .paper.d-technical .kv dd,
.paper.d-technical .p-titleblock td, .paper.d-technical .p-party .ids, .paper.d-technical .p-recap td { font-family: 'IBM Plex Mono', ui-monospace, monospace; }
.paper.d-technical .p-rule { height: 0; background: none; border-top: 0.75pt solid var(--paper-ink); }
.paper.d-technical .p-parties { gap: 0; border: 0.75pt solid var(--paper-ink); }
.paper.d-technical .p-party { padding: 0 3.5mm 3.5mm; }
.paper.d-technical .p-party + .p-party { border-left: 0.75pt solid var(--paper-ink); }
.paper.d-technical .p-party h4 { margin: 0 -3.5mm 2.5mm; padding: 1.2mm 3.5mm; border-bottom: 0.75pt solid var(--paper-ink); background: var(--paper-tint); color: var(--paper-ink); letter-spacing: 0; }
.paper.d-technical.tbl-grid .p-items th, .paper.d-technical.tbl-grid .p-items td { border: 0.75pt solid var(--paper-ink); }
.paper.d-technical .p-total .grand { display: none; }
.paper.d-technical .p-pay { border: 0.75pt solid var(--paper-ink); border-radius: 0; }
.paper.d-technical .p-tech { display: grid; grid-template-columns: minmax(0, 1fr) 80mm; gap: 8mm; align-items: end; margin-top: calc(var(--p-gap, 7mm) + 1mm); }
.paper.d-technical .p-tech-notes > :first-child { margin-top: 0; }
.paper.d-technical .p-titleblock { grid-column: 2; width: 100%; border-collapse: collapse; font-size: 8.4pt; }
.paper.d-technical .p-titleblock th, .paper.d-technical .p-titleblock td { padding: 1.3mm 2.5mm; border: 0.75pt solid var(--paper-ink); text-align: left; vertical-align: top; }
.paper.d-technical .p-titleblock th { width: 40%; font-weight: 500; color: var(--paper-muted); }
.paper.d-technical .p-tb-title td { background: var(--paper-accent); color: var(--paper-on-accent); font-family: var(--p-font); font-size: 9.6pt; font-weight: 600; }
.paper.d-technical .p-tb-total th { color: var(--paper-ink); font-weight: 600; }
.paper.d-technical .p-tb-total td { font-size: 12pt; font-weight: 600; }
.paper.d-technical .p-foot { bottom: 11mm; border-top: 0; }

/* Kompaktní: menší písmo a těsnější řádky pro dlouhé faktury */
.paper.d-compact { --p-fs: 8.6pt; --p-gap: 4.5mm; --p-cell: 1.3mm; --p-pad: 12mm; }
.paper.d-compact .p-head { align-items: center; }
.paper.d-compact .p-title { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: baseline; gap: 0 3mm; }
.paper.d-compact .p-title h1 { font-size: 15pt; }
.paper.d-compact .p-title .p-number { margin: 0; font-size: 11pt; }
.paper.d-compact .p-title .p-kind { flex-basis: 100%; margin: 0; }
.paper.d-compact .p-brand-name { font-size: 11.5pt; }
.paper.d-compact .p-parties { gap: 8mm; }
.paper.d-compact .p-party .name { font-size: 9.8pt; }
.paper.d-compact .p-meta { gap: 2.5mm; padding: 2.5mm 0; }
.paper.d-compact .p-items th { padding-bottom: 1.4mm; }
.paper.d-compact .p-total .grand strong { font-size: 14pt; }
.paper.d-compact .p-pay { gap: 5mm; padding: 3mm 4mm; }
.paper.d-compact .p-pay .kv { font-size: 8.4pt; }
.paper.d-compact .p-qr .qr { width: 22mm; height: 22mm; }

.paper.dens-compact { --p-fs: 8.8pt; --p-gap: 5mm; --p-cell: 1.5mm; --p-pad: 13mm; }
.paper.dens-airy { --p-fs: 10.2pt; --p-gap: 9.5mm; --p-cell: 3.2mm; --p-pad: 18mm; }
