/* the invoice, on screen and on paper — shared by the CRM and the partner portal */
.inv{background:#fff;color:#1C1B18;border:1px solid #E2E0D9;border-radius:10px;padding:22px 24px;font-size:13.5px;line-height:1.45;max-width:760px;margin:0 auto}
.invHead{display:flex;justify-content:space-between;gap:16px;border-bottom:2px solid #0E6E70;padding-bottom:12px;margin-bottom:12px}
.invFrom b{display:block;font-size:15px}
.invFrom div{color:#57544D;font-size:12.5px}
.invTitle{text-align:right}
.invWord{font-size:22px;font-weight:800;letter-spacing:.06em;color:#0E6E70}
.invNo{font-family:"IBM Plex Mono",Menlo,monospace;font-weight:700;font-size:14px}
.invStamp{display:inline-block;margin-top:6px;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.06em}
.invStamp.paid{background:#E1EFE6;color:#2C6D45}.invStamp.part,.invStamp.due{background:#FAEDD8;color:#8F5804}.invStamp.over{background:#F8E3E0;color:#AE3327}
.invMeta{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0 0 14px}
.invMeta .k,.invParties .k,.invPay .k{display:block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#75716A;font-weight:700}
.invMeta .v{display:block;font-size:13.5px}
.invParties{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
.invParties b{display:block;font-size:14px;margin-top:2px}
.invParties div div{font-size:13px;color:#57544D}
.invLines{width:100%;border-collapse:collapse;margin-bottom:8px}
.invLines th{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#75716A;text-align:left;padding:6px 6px;background:#F6F5F1;border-bottom:1px solid #E2E0D9}
.invLines td{padding:7px 6px;border-bottom:1px solid #E2E0D9;vertical-align:top}
.invLines .n,.invTotals .n{text-align:right;font-family:"IBM Plex Mono",Menlo,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}
.invLines em{font-style:normal;font-size:11px;color:#8F5804;font-weight:700;margin-left:6px}
.invTotals{margin-left:auto;max-width:340px;display:grid;gap:4px;margin-bottom:16px}
.invTotals > div{display:flex;justify-content:space-between;gap:12px;padding:2px 6px}
.invTotals .tot{font-weight:700;font-size:15px;border-top:1px solid #E2E0D9;padding-top:6px}
.invTotals .pay{color:#57544D;font-size:12.5px}
.invTotals .bal{font-weight:800;font-size:16px;border-top:2px solid #1C1B18;padding-top:6px}
.invTotals .bal.paid{color:#2C6D45}.invTotals .bal.over{color:#AE3327}
.invPay{background:#E6F1F1;border-left:4px solid #0E6E70;border-radius:0 8px 8px 0;padding:10px 14px;margin-bottom:14px}
.invPayGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 16px;margin-top:6px;font-size:12.5px}
.invPayGrid b{display:block;margin-bottom:2px}
.invPayNote{font-size:12.5px;color:#57544D;margin-top:8px}
.invFoot{font-size:12px;color:#75716A;border-top:1px solid #E2E0D9;padding-top:10px}
.invBtns{display:flex;gap:8px;flex-wrap:wrap;max-width:760px;margin:0 auto 14px}
.invBtns .btn{flex:1 1 140px}
@media(max-width:600px){.invParties{grid-template-columns:1fr}.invHead{flex-direction:column}.invTitle{text-align:left}}
@media print{
  body.printInvoice *{visibility:hidden}
  body.printInvoice .inv,body.printInvoice .inv *{visibility:visible}
  body.printInvoice .inv{position:absolute;left:0;top:0;width:100%;border:0;border-radius:0;padding:0;max-width:none}
}
/* a line's SKUs, under it (3 Nov 2026) */
.invLines tr.invSku td{padding:2px 6px 2px 18px;border-bottom:0;font-size:11.5px;color:#57544D}
.invLines tr.invSku td.n{padding-left:6px}
.invLines tr.invSku .code{font-family:"IBM Plex Mono",Menlo,monospace;font-size:10.5px;color:#75716A;margin-right:4px}
.invLines tr:has(+ tr.invSku) td{border-bottom:0}
.invLines tr.invSku:not(:has(+ tr.invSku)) td{border-bottom:1px solid #E2E0D9;padding-bottom:7px}
