/* Adaptum invoice, A4. A dark brand band with gold, ink on warm white, one gold
   accent line, tabular figures. Prints edge to edge with exact colours. */
.inv{--ink:#111A1F;--ink2:#46525A;--mut:#7E8784;--line:#E6E4DC;--gold:#B98B3E;--gold2:#D7AE63;--paper:#FFFEFB;--band:#0F1A1E;
  width:210mm;min-height:297mm;box-sizing:border-box;background:var(--paper);color:var(--ink);font:9.5pt/1.5 "IBM Plex Sans",Arial,sans-serif;display:flex;flex-direction:column;position:relative;overflow:hidden;
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
.inv *{box-sizing:border-box}
.inv p,.inv dl{margin:0}
.inv::before{content:"A";position:absolute;right:-18mm;bottom:20mm;font:900 150mm/1 "Archivo",Arial,sans-serif;color:rgba(46,156,134,.04);pointer-events:none}
.inv-band{background:radial-gradient(120% 140% at 50% 0%,#14302C 0%,var(--band) 60%);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:12mm 16mm 11mm;position:relative;overflow:hidden}
.inv-band>*:not(.inv-net){position:relative;z-index:1}
.inv-net{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.inv-total .inv-net{opacity:.4;left:35%;width:65%}
.inv-brand{display:flex;gap:4mm;align-items:center}
.inv-brand img{width:13mm;height:13mm;border-radius:3mm}
.inv-brand b{display:block;font:800 14pt/1 "Archivo",Arial,sans-serif;letter-spacing:.32em}
.inv-brand span{display:block;margin-top:1.5mm;font:500 7pt "IBM Plex Mono",monospace;letter-spacing:.22em;text-transform:uppercase;color:var(--gold2)}
.inv-title{text-align:right}
.inv-title span{display:block;font:500 7.5pt "IBM Plex Mono",monospace;letter-spacing:.4em;text-transform:uppercase;color:var(--gold2)}
.inv-title b{display:block;font:800 24pt/1.05 "Archivo",Arial,sans-serif;letter-spacing:.02em;margin-top:1mm}
.inv-title em{display:inline-block;margin-top:2mm;font:600 7.5pt "IBM Plex Mono",monospace;font-style:normal;letter-spacing:.12em;text-transform:uppercase;padding:1mm 3mm;border-radius:99px;border:1px solid currentColor}
.inv-title .st-paid{color:#7BD58C}.inv-title .st-cancelled{color:#F08A80}.inv-title .st-draft{color:#B7C3C0}
.inv-gold{height:1.4mm;background:linear-gradient(90deg,#2E9C86,#5ED3BA 22%,#B9D3A0 48%,#E2B467 72%,#B98B3E)}
.inv-ai{display:flex;justify-content:space-between;gap:6mm;padding:2.2mm 16mm;background:#F2F6F3;border-bottom:1px solid #E1E8E4;font:500 6.5pt "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:#4E6B64}
.inv-ai span:first-child{display:flex;align-items:center;gap:2mm;color:#2E7F6E}
.inv-ai i{width:1.8mm;height:1.8mm;border-radius:50%;background:radial-gradient(circle,#5ED3BA 35%,rgba(94,211,186,.25) 40%);box-shadow:0 0 0 .6mm rgba(94,211,186,.18)}
.inv-body{flex:1;display:flex;flex-direction:column;gap:7mm;padding:10mm 16mm 8mm;position:relative;background-image:radial-gradient(rgba(46,127,110,.11) .28mm,transparent .32mm);background-size:5mm 5mm;background-position:2.5mm 2.5mm}
.inv .lab{font:500 7pt "IBM Plex Mono",monospace;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:2.5mm;display:flex;align-items:center;gap:2mm}
.inv .lab::before{content:"";width:1.6mm;height:1.6mm;transform:rotate(45deg);background:linear-gradient(135deg,#5ED3BA,#E2B467)}
.inv-parties{display:grid;grid-template-columns:1fr 1fr;gap:8mm}
.pty b{display:block;font:700 12.5pt/1.25 "Archivo",Arial,sans-serif;margin-bottom:1.5mm}
.pty>p{color:var(--ink2);margin-bottom:2.5mm}
.pty dl{display:grid;grid-template-columns:auto 1fr;gap:.6mm 4mm;font-size:9pt}
.pty dt{color:var(--mut)}.pty dd{margin:0;font-variant-numeric:tabular-nums}
.pty-c{border-left:1px solid var(--line);padding-left:8mm}
.inv .muted{color:var(--mut);font-size:7.5pt;margin-top:2mm}
.inv-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:3mm}
.inv-meta div{background:#F6F5F0;border:1px solid #ECEAE2;border-radius:2.5mm;padding:3mm 3.5mm;display:grid;gap:.5mm}
.inv-meta div.hi{background:linear-gradient(#FBF4E6,#FBF4E6) padding-box,linear-gradient(120deg,#5ED3BA,#E2B467) border-box;border-color:transparent}
.inv-meta span{font-size:7.5pt;color:var(--mut)}
.inv-meta b{font:600 10.5pt "IBM Plex Sans",Arial,sans-serif;font-variant-numeric:tabular-nums}
.inv-items{width:100%;border-collapse:collapse}
.inv-items th{font:500 7pt "IBM Plex Mono",monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);text-align:left;padding:0 0 2.5mm;border-bottom:1.5px solid transparent;border-image:linear-gradient(90deg,var(--ink),var(--ink) 60%,#2E9C86) 1}
.inv-items tbody tr{background:rgba(255,254,251,.85)}
.inv-items td{padding:3.2mm 0;border-bottom:1px solid var(--line);vertical-align:top}
.inv-items .n{width:9mm;color:#2E9C86;font:500 8pt "IBM Plex Mono",monospace}
.inv-items .r{text-align:right;white-space:nowrap;padding-left:5mm;font-variant-numeric:tabular-nums}
.inv-items .b{font-weight:600}
.inv-items tfoot td{border-bottom:0;padding:1.5mm 0;color:var(--ink2);font-size:9pt}
.inv-items tfoot tr:first-child td{padding-top:3mm}
.inv-sum{display:grid;grid-template-columns:1fr 64mm;gap:6mm;margin-top:auto}
.inv-pay{display:flex;gap:5mm;align-items:center;border:1px solid var(--line);border-radius:3mm;padding:4.5mm;background:#fff}
.inv-pay .qr{width:30mm;flex:none;display:grid;gap:1.5mm;justify-items:center}
.inv-pay .qr svg{width:30mm;height:30mm}
.inv-pay .qrw{position:relative;width:30mm;height:30mm}
.inv-pay .qrw svg.bank{position:absolute;left:50%;top:50%;width:8.6mm;height:auto;transform:translate(-50%,-50%);background:#fff;padding:.8mm .9mm .5mm;border-radius:1.2mm;box-sizing:content-box}
.inv-pay .qr small{font:500 6.5pt "IBM Plex Mono",monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.inv-pay .noqr{font-size:7.5pt;color:var(--mut);text-align:center;border:1px dashed var(--line);border-radius:2mm;padding:3mm;line-height:1.3}
.inv-pay dl{display:grid;grid-template-columns:auto 1fr;gap:.8mm 4mm;font-size:9pt}
.inv-pay dt{color:var(--mut)}.inv-pay dd{margin:0;font-variant-numeric:tabular-nums}
.inv-total{background:radial-gradient(130% 120% at 100% 0%,#173A34,var(--band) 65%);color:#fff;border-radius:3mm;padding:6mm;display:flex;flex-direction:column;justify-content:center;gap:2mm;position:relative;overflow:hidden}
.inv-total::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.2mm;background:linear-gradient(90deg,#5ED3BA,#E2B467)}
.inv-total span,.inv-total b,.inv-total small{position:relative;z-index:1}
.inv-total span{font:500 7pt "IBM Plex Mono",monospace;letter-spacing:.26em;text-transform:uppercase;color:var(--gold2)}
.inv-total b{font:800 20pt/1.05 "Archivo",Arial,sans-serif;font-variant-numeric:tabular-nums;color:#F3D99E}
.inv-total small{font-size:7.5pt;color:#B7C3C0}
.inv-note{color:var(--ink2);font-size:9pt;border-left:2px solid var(--gold);padding-left:4mm}
.inv-end{display:flex;justify-content:space-between;align-items:flex-end;gap:6mm}
.inv-thanks{font:italic 400 11pt Georgia,"Times New Roman",serif;color:var(--ink2)}
.inv-verify{font:500 7pt "IBM Plex Mono",monospace;color:#2E7F6E;text-align:right}
.inv-verify a{color:inherit;text-decoration:none;font-size:6.5pt}
.inv-verify span{display:block;font-size:6pt;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);margin-bottom:.6mm}
.inv-f{display:flex;justify-content:space-between;gap:6mm;padding:4mm 16mm 8mm;border-top:1px solid var(--line);font-size:7.5pt;color:var(--mut)}
.inv.is-paid .inv-body::after,.inv.is-void .inv-body::after{position:absolute;top:58mm;right:18mm;transform:rotate(-12deg);font:800 28pt "Archivo",Arial,sans-serif;letter-spacing:.12em;border:3px solid;border-radius:4mm;padding:2mm 6mm;opacity:.2}
.inv.is-paid .inv-body::after{content:"UHRAZENO";color:#2F7D3A}
.inv.is-void .inv-body::after{content:"STORNO";color:#B0352B}
/* public page */
body.inv-public{margin:0;background:#E7E9E4;font-family:"IBM Plex Sans",Arial,sans-serif}
.inv-bar{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px max(16px,calc(50% - 105mm));background:#0F1A1E;color:#E8EEEC;font:600 14px "IBM Plex Sans",Arial,sans-serif;z-index:2}
.inv-bar button{font:600 14px "IBM Plex Sans",Arial,sans-serif;background:#D7AE63;color:#1a1205;border:0;border-radius:8px;padding:9px 14px;cursor:pointer}
body.inv-public #inv{display:flex;justify-content:center;padding:24px 0 48px;overflow-x:auto}
body.inv-public .inv{box-shadow:0 30px 80px -30px rgba(0,0,0,.4)}
@media print{@page{size:A4;margin:0}body.inv-public{background:#fff}.inv-bar{display:none}body.inv-public #inv{padding:0}body.inv-public .inv{box-shadow:none}}
