﻿/* Vertailukuvan mukainen asiakaslomake. Kaikki pistekoot tässä. */
.pc-commercial.a4-page { width:210mm; min-height:297mm; padding:5mm 15mm 7mm; box-sizing:border-box; background:#fff; color:#000; font-family:'Segoe UI',Arial,sans-serif; }
.pc-commercial .commercial-view { display:flex!important; flex-direction:column; min-height:285mm; height:auto!important; font-family:'Segoe UI',Arial,sans-serif; font-size:10pt!important; line-height:1.08; }
.pc-commercial .commercial-view :is(div,p,span,table,td,th,b,strong) { font-family:inherit; line-height:1.08; }
.pc-commercial .doc-header { display:flex; justify-content:space-between; align-items:flex-start; margin:0 0 7mm!important; padding:0!important; gap:8mm; }
.pc-commercial .doc-header .company-info { flex:0 1 45%; min-width:0; }
.pc-commercial .doc-header .company-info img { max-width:55mm!important; max-height:15mm!important; object-fit:contain; }
.pc-commercial .doc-header .doc-meta { flex:0 1 55%; min-width:0; text-align:right; }
.pc-commercial .commercial-title { font-size:16pt!important; font-weight:400!important; line-height:1.1!important; letter-spacing:0!important; margin:0 0 2mm!important; }
.pc-commercial .doc-meta h2 { font-size:9pt!important; font-weight:400!important; margin:0 0 1mm!important; }
.pc-commercial .meta-table { width:auto!important; margin-left:auto; border-collapse:collapse; font-size:9pt!important; }
.pc-commercial .meta-table th { font-size:8pt!important; font-weight:400!important; text-align:right!important; padding:0.25mm 3mm 0.25mm 0!important; }
.pc-commercial .meta-table td { font-size:9pt!important; font-weight:400!important; text-align:right!important; padding:0.25mm 0!important; }
.pc-commercial .meta-table { width:75mm!important; table-layout:fixed; }
.pc-commercial .meta-table th { width:40mm; }
.pc-commercial .meta-table td { width:35mm; }
.pc-commercial .address-section { margin:0 0 7mm!important; font-size:9pt!important; }
.pc-commercial .address-section * { font-family:inherit!important; font-size:9pt!important; }
.pc-commercial .address-label { font-size:10pt!important; font-weight:700!important; letter-spacing:0!important; padding:0!important; margin-bottom:3mm!important; }
.pc-commercial .address-section > div { margin-bottom:5mm; }
/* Tarjouksen osoitteet mahtuvat ylätunnisteen vasemmalle puolelle.
   Negatiivinen marginaali vapauttaa saman 30 mm myös tarjousosalle. */
.pc-commercial.pc-offer .address-section { margin-top:-30mm!important; width:85mm; max-width:100%; }
.pc-commercial .content-section { margin:1mm 0 0!important; }
.pc-commercial .items-table { width:100%; border-collapse:collapse; table-layout:fixed; border-top:0.5pt solid #000; border-bottom:0.5pt solid #000; }
.pc-commercial .items-table th, .pc-commercial .items-table th * { font-size:7pt!important; font-weight:400!important; white-space:normal!important; }
.pc-commercial .items-table td, .pc-commercial .items-table td * { font-size:9pt!important; font-weight:400!important; line-height:1.05!important; }
.pc-commercial .items-table :is(td,th) { padding:1mm 1.5mm!important; vertical-align:top; border-bottom:0.5pt solid #000!important; }
.pc-commercial .items-table td div { margin:0!important; }
.pc-commercial .totals-section { display:flex; justify-content:flex-end; align-items:flex-start; gap:5mm; margin:3mm 0 0!important; }
.pc-commercial .totals-section > :last-child { width:63mm!important; flex:0 0 63mm; }
.pc-commercial .totals-section .bank-payment-zone { width:112mm!important; flex:0 1 112mm; }
.pc-commercial .totals-section table, .pc-commercial .totals-section td { font-size:9pt!important; font-weight:400!important; padding:0.7mm 0!important; border:0!important; }
.pc-commercial .offer-terms { margin:10mm 5mm 0!important; padding:0; font-size:9pt; }
.pc-commercial .terms-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.pc-commercial .terms-table td { padding:0.3mm 0!important; font-size:9pt!important; font-weight:700!important; vertical-align:top; }
.pc-commercial .terms-table td:first-child { width:27mm; padding-right:2mm!important; }
.pc-commercial .attachments-note { margin-top:2mm; }
.pc-commercial .signature-block { margin:14mm 0 0!important; padding:0!important; font-size:9pt!important; break-inside:avoid; }
.pc-commercial .signature-block > div { margin:0!important; font-size:9pt!important; }
.pc-commercial .signature-block > .signature-name { margin-top:4mm!important; font-weight:700!important; }
.pc-commercial .document-ending { margin-top:auto!important; padding-top:8mm; display:block; break-inside:avoid; }
.pc-commercial .doc-footer { position:static!important; width:100%!important; margin:0!important; padding:1.5mm 0 0!important; border-top:0.5pt solid #000; }
.pc-commercial .doc-footer .row { display:flex; flex-wrap:nowrap; margin:0; }
.pc-commercial .doc-footer .row > div { width:33.333333%; padding:0 2mm; text-align:left; }
.pc-commercial .doc-footer .row > div+div { border-left:0.5pt solid #000; }
.pc-commercial .doc-footer .row > div:nth-child(2) { text-align:center; }
.pc-commercial .doc-footer .row > div:last-child { text-align:right; }
.pc-commercial .doc-footer, .pc-commercial .doc-footer * { font-size:8pt!important; font-weight:400!important; line-height:1.08!important; }
.pc-commercial .sertifikaatit-print-block { position:static!important; display:flex; justify-content:flex-end; align-items:center; gap:5mm!important; margin:2mm 0 0!important; padding:0!important; }
.pc-commercial .sertifikaatit-print-block img { height:10mm!important; width:auto!important; max-height:none!important; max-width:none!important; object-fit:contain; }
/* Tarjouksen kolme palstaa samalla alatasolla: yritys, pankki/maksuehto, logot. */
.pc-commercial .pc-offer-footer > .row { align-items:flex-end; }
.pc-commercial .pc-offer-footer .footer-payment { margin-top:1mm; }
.pc-commercial .pc-offer-footer .sertifikaatit-print-block { margin:0!important; gap:3mm!important; align-items:flex-end; }
.pc-commercial .pc-offer-footer .sertifikaatit-print-block img {
 height:auto!important; max-height:10mm!important; min-width:0;
 max-width:calc((100% - var(--certificate-gaps, 0mm)) / var(--certificate-count, 1))!important;
}
@media print {
 @page commercial { size:A4; margin:0; }
 .no-print,.d-print-none,[data-export-ignore] { display:none!important; }
 body:has(.pc-commercial) { margin:0!important; padding:0!important; }
 body:has(.pc-commercial) *:not(:has(.pc-commercial)):not(.pc-commercial):not(.pc-commercial *) { display:none!important; }
 body:has(.pc-commercial) *:has(.pc-commercial) { display:block!important; position:static!important; margin:0!important; padding:0!important; width:auto!important; height:auto!important; overflow:visible!important; }
 .pc-commercial.a4-page { page:commercial; height:auto!important; min-height:297mm!important; width:210mm!important; margin:0!important; padding:5mm 15mm 7mm!important; box-shadow:none!important; }
 .pc-commercial .commercial-view { min-height:285mm!important; }
 .pc-commercial .items-table { break-inside:avoid!important; page-break-inside:avoid!important; }
 .pc-commercial tr { break-inside:avoid; }
 .pc-commercial thead { display:table-header-group; }
}

/* Lasku: samat mitat näytöllä, tiedostoviennissä ja selaintulosteessa. */
.pc-commercial.pc-invoice .commercial-view, .pc-commercial.pc-invoice .commercial-view * {
 font-size:9pt!important; font-weight:400!important; line-height:1.12!important;
}
.pc-commercial.pc-invoice .commercial-title { font-size:14pt!important; margin-bottom:2mm!important; }
.pc-invoice .doc-header { margin-bottom:4mm!important; padding-bottom:0!important; }
.pc-invoice .meta-table th, .pc-invoice .meta-table td { text-align:right!important; font-size:9pt!important; padding-top:.3mm!important; padding-bottom:.3mm!important; }
.pc-invoice .address-section { margin-bottom:4mm!important; }
.pc-invoice .address-section > div { margin-bottom:2mm!important; }
.pc-invoice .address-label { margin-bottom:1mm!important; }
.pc-invoice .items-table, .pc-invoice .items-table :is(th,td) { border:0!important; }
.pc-invoice .items-table :is(th,td) { padding:1mm!important; }
.pc-invoice .totals-section { margin-top:3mm!important; margin-bottom:2mm!important; gap:3mm!important; }
.pc-invoice .bank-payment-zone { padding:0!important; }
.pc-invoice .document-ending { padding-top:4mm!important; }
.pc-invoice .commercial-view { min-height:0!important; }
@media print {
 .pc-invoice.a4-page { min-height:0!important; height:auto!important; }
}

.pc-invoice .doc-meta { width:75mm!important; flex:0 0 75mm!important; }
.pc-invoice .meta-table { width:75mm!important; table-layout:fixed; }
.pc-invoice .meta-table th { width:40mm!important; }
.pc-invoice .meta-table td { width:35mm!important; white-space:nowrap; }

.pc-invoice .items-table thead th { border-bottom:.5pt solid #000!important; }
.pc-invoice .totals-section table tr:first-child td { border-top:.5pt solid #000!important; padding-top:2mm!important; }
.pc-invoice .invoice-payment { break-inside:avoid; margin-bottom:3mm; }
.pc-invoice .invoice-payment .bank-payment-zone { width:100%!important; margin:0 0 3mm!important; }
.pc-invoice .commercial-view { min-height:285mm!important; }
@media print { .pc-invoice.a4-page { min-height:297mm!important; } }
/* Each customer-facing basket product begins with its own heading and ends in its subtotal. */
.pc-commercial .pc-product-section { margin:3mm 0 0!important; break-inside:avoid; page-break-inside:avoid; }
.pc-commercial .pc-product-section:first-of-type { margin-top:1mm!important; }
.pc-commercial .pc-product-section .items-table thead { display:table-header-group; background:#eeeeee; }
.pc-commercial .pc-product-section .items-table tbody tr:last-child { break-before:avoid; page-break-before:avoid; }
.pc-commercial .pc-product-section .items-table th { background-color:#eeeeee!important; }

/* Four columns: existing text columns retain their relative proportions. */
.pc-commercial .pc-four-footer > .row > div { box-sizing:border-box;min-width:0;overflow-wrap:anywhere; }
.pc-commercial .pc-four-footer > .row > div:nth-child(1) { width:26.4%; }
.pc-commercial .pc-four-footer > .row > div:nth-child(2) { width:27.2%; }
.pc-commercial .pc-four-footer > .row > div:nth-child(3) { width:26.4%;text-align:right; }
.pc-commercial .pc-four-footer > .row > div:nth-child(4) { width:20%; }
