/* Fogli A4. Stampante a colori: lime solo in barre sottili e quadrati piccoli. */

@page { size: A4 portrait; margin: 0; }

@media print {
  html, body { background: #fff; }
  body > *:not(#stampa) { display: none !important; }
  #stampa { display: block !important; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.foglio {
  width: 210mm; min-height: 297mm; padding: 10mm 12mm; color: var(--forest); font-family: var(--font);
  page-break-after: always; break-after: page; position: relative;
}
.foglio:last-child { page-break-after: auto; break-after: auto; }

/* ---------- ricevuta ---------- */
.ricevuta { height: 297mm; display: flex; flex-direction: column; padding-top: 6mm; padding-bottom: 6mm; overflow: hidden; }
.r-parte { position: relative; }
.r-cliente1 { flex: 0 0 auto; }
.r-officina { flex: 0 0 auto; }
.r-cliente2 { flex: 1 1 auto; display: flex; flex-direction: column; }
.r-barra { height: 1.2mm; background: var(--lime); margin-bottom: 2.5mm; }
.r-testa { display: flex; justify-content: space-between; align-items: flex-start; }
.r-logo { height: 11mm; width: auto; }
.r-num { text-align: right; min-width: 52mm; }
.r-n { font-size: 21pt; font-weight: 800; line-height: 1; margin: .5mm 0; }
.r-del { font-size: 11pt; }
.r-et { font-size: 6.5pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.r-titolo { font-size: 15pt; font-weight: 400; margin: 1mm 0 2mm; }
.r-officina .r-titolo, .r-cliente2 .r-titolo { margin-top: 0; }
.r-griglia { display: grid; grid-template-columns: 1fr 1fr; gap: 2mm 9mm; }
.r-campo { border-bottom: .3mm solid var(--line); padding-bottom: .8mm; }
.r-val { font-size: 10.5pt; min-height: 5mm; white-space: pre-wrap; overflow-wrap: anywhere; }
.r-largo { grid-column: 1 / -1; }
.r-alto .r-val { min-height: 9mm; }
.r-alto2 .r-val { min-height: 13mm; }
.r-cond { font-size: 6.4pt; line-height: 1.3; color: var(--muted); margin: 2mm 0; }
.r-firme { display: grid; grid-template-columns: 1fr 1fr; gap: 9mm; margin-top: 8mm; }
.r-firma { border-top: .3mm solid var(--forest); padding-top: 1mm; font-size: 6.5pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.r-taglia { position: relative; border-top: .3mm dashed var(--muted); margin: 3.5mm 0; text-align: center; height: 0; }
.r-taglia span { position: relative; top: -2.2mm; background: #fff; padding: 0 2mm; font-size: 6pt; color: var(--muted); }
.r-conservi { font-size: 9.5pt; margin: 0 0 2mm; }
.r-piede { margin-top: auto; font-size: 6.5pt; color: var(--muted); line-height: 1.5; }
.r-motto { font-weight: 800; color: var(--forest); letter-spacing: .08em; text-transform: uppercase; font-size: 7pt; }

/* ---------- elenco (riparazioni, clienti) ---------- */
.elenco { font-size: 9.5pt; }
.e-testa { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: .3mm solid var(--forest); padding-bottom: 3mm; margin-bottom: 4mm; }
.e-testa img { height: 11mm; }
.e-titolo { font-size: 20pt; font-weight: 800; text-transform: uppercase; line-height: 1; }
.e-titolo .light { font-weight: 300; }
.e-sotto { color: var(--muted); font-size: 9pt; margin-top: 1mm; }
.e-cifre { display: flex; gap: 8mm; margin-bottom: 5mm; }
.e-cifra { display: flex; align-items: baseline; gap: 2mm; }
.e-cifra b { font-size: 18pt; font-weight: 800; position: relative; padding: 1mm 0 0 2mm; }
.e-cifra b::before { content: ''; position: absolute; left: 0; top: 0; width: 5mm; height: 5mm; background: var(--lime); z-index: -1; }
.e-cifra span { font-size: 7pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.elenco table { width: 100%; border-collapse: collapse; }
.elenco th { text-align: left; font-size: 6.5pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); border-bottom: .3mm solid var(--forest); padding: 1.5mm 1.5mm; }
.elenco td { padding: 1.8mm 1.5mm; border-bottom: .2mm solid var(--line); vertical-align: top; }
.elenco tr { break-inside: avoid; }
.elenco .num { font-weight: 800; white-space: nowrap; }
.elenco .lungo { font-weight: 800; }
.elenco .dx { text-align: right; }
.elenco .nowrap { white-space: nowrap; }
.elenco .lavoro { color: var(--muted); }
.elenco .box { display: inline-block; width: 3.2mm; height: 3.2mm; border: .3mm solid var(--forest); vertical-align: -0.4mm; }
.e-piede { margin-top: 5mm; color: var(--muted); font-size: 7pt; }
.elenco .chiamate-n { font-weight: 800; }
.elenco .chiamate-n.liv-arancione { color: #a84f00; }
.elenco .chiamate-n.liv-rosso { color: #b42318; }
