/* Asset V Roads printed reports: brand palette from the logo (cyan → teal → deep teal on slate). */
#avPrintDocument{--avp-ink:#27353f;--avp-muted:#5d6b75;--avp-line:#dbe6e8;--avp-soft:#eefafa;--avp-teal:#03b6b9;--avp-deep:#006777;
 --avp-grad:linear-gradient(90deg,#04e6dc,#03b6b9 45%,#006777);display:none}
/* Running header and footer in the page margins, on every page. Header: the AV mark, report title, print
 * reference and the Capricorn District Municipality crest. Footer: a road line (slate with white centre
 * dashes), organisation and print time, product name and page count.
 * The title, reference and footer text are set per print by print-document.mjs. */
@page avp-landscape{size:A4 landscape;margin:16mm 11mm 15mm;
 @top-left{width:75%;padding-left:8mm;vertical-align:bottom;padding-bottom:3mm;font:7pt Inter,Arial,sans-serif;letter-spacing:.08em;color:#5d6b75;background:linear-gradient(#dbe6e8,#dbe6e8) 0 100%/100% .35mm no-repeat,url('../assets/brand/asset-v-roads-mark.svg') 0 calc(100% - 2.2mm)/auto 5.5mm no-repeat;color:#27353f;font-weight:700}
 @top-right{width:25%;text-align:right;vertical-align:bottom;padding-bottom:3mm;font:7pt Inter,Arial,sans-serif;letter-spacing:.08em;color:#5d6b75;padding-right:13.5mm;background:linear-gradient(#dbe6e8,#dbe6e8) 0 100%/100% .35mm no-repeat,url('../assets/brand/capricorn-district-municipality-crest.svg') 100% calc(100% - 1.8mm)/auto 8mm no-repeat;font-family:'JetBrains Mono',Consolas,monospace;letter-spacing:0}
 @bottom-left{width:72%;vertical-align:top;padding-top:4.5mm;font:7pt Inter,Arial,sans-serif;color:#5d6b75;background:repeating-linear-gradient(90deg,transparent 0 5mm,#fff 5mm 8mm) 0 1.6mm/100% .3mm no-repeat,linear-gradient(#27353f,#27353f) 0 1mm/100% 1.5mm no-repeat}
 @bottom-right{content:"Asset V Roads   ·   Page " counter(page) " of " counter(pages);vertical-align:top;padding-top:4.5mm;font:600 7pt Inter,Arial,sans-serif;color:#5d6b75;background:repeating-linear-gradient(90deg,transparent 0 5mm,#fff 5mm 8mm) 0 1.6mm/100% .3mm no-repeat,linear-gradient(#27353f,#27353f) 0 1mm/100% 1.5mm no-repeat}}
@page avp-portrait{size:A4 portrait;margin:17mm 12mm 16mm;
 @top-left{width:65%;padding-left:8mm;vertical-align:bottom;padding-bottom:3mm;font:7pt Inter,Arial,sans-serif;letter-spacing:.08em;color:#5d6b75;background:linear-gradient(#dbe6e8,#dbe6e8) 0 100%/100% .35mm no-repeat,url('../assets/brand/asset-v-roads-mark.svg') 0 calc(100% - 2.2mm)/auto 5.5mm no-repeat;color:#27353f;font-weight:700}
 @top-right{width:35%;text-align:right;vertical-align:bottom;padding-bottom:3mm;font:7pt Inter,Arial,sans-serif;letter-spacing:.08em;color:#5d6b75;padding-right:13.5mm;background:linear-gradient(#dbe6e8,#dbe6e8) 0 100%/100% .35mm no-repeat,url('../assets/brand/capricorn-district-municipality-crest.svg') 100% calc(100% - 1.8mm)/auto 8mm no-repeat;font-family:'JetBrains Mono',Consolas,monospace;letter-spacing:0}
 @bottom-left{width:62%;vertical-align:top;padding-top:4.5mm;font:7pt Inter,Arial,sans-serif;color:#5d6b75;background:repeating-linear-gradient(90deg,transparent 0 5mm,#fff 5mm 8mm) 0 1.6mm/100% .3mm no-repeat,linear-gradient(#27353f,#27353f) 0 1mm/100% 1.5mm no-repeat}
 @bottom-right{content:"Asset V Roads   ·   Page " counter(page) " of " counter(pages);vertical-align:top;padding-top:4.5mm;font:600 7pt Inter,Arial,sans-serif;color:#5d6b75;background:repeating-linear-gradient(90deg,transparent 0 5mm,#fff 5mm 8mm) 0 1.6mm/100% .3mm no-repeat,linear-gradient(#27353f,#27353f) 0 1mm/100% 1.5mm no-repeat}}
@media print{
 body[data-av-print]{margin:0!important;padding:0!important;background:#fff!important;min-height:0!important}
 body[data-av-print]>*:not(#avPrintDocument){display:none!important}
 #avPrintDocument{display:block!important;color:var(--avp-ink);font:9pt/1.45 Inter,'Segoe UI',Arial,sans-serif;
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
 #avPrintDocument.avp-landscape{page:avp-landscape}
 #avPrintDocument.avp-portrait{page:avp-portrait}
 #avPrintDocument *{box-sizing:border-box}
 /* Title block (first page only). */
 .avp-titleblock{margin:0 0 5mm;break-inside:avoid}
 .avp-titlebar{height:1.6mm;border-radius:1mm;background:var(--avp-grad);margin-bottom:5mm}
 .avp-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10mm}
 .avp-kicker{font-size:7.5pt;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--avp-deep)}
 .avp-titleblock h1{font:800 19pt/1.15 'Inter Display',Inter,Arial,sans-serif;margin:1.5mm 0 1.5mm;color:var(--avp-ink);letter-spacing:-.01em}
 .avp-sub{margin:0;color:var(--avp-muted);font-size:9.5pt;max-width:190mm}
 .avp-logos{display:flex;align-items:center;gap:4.5mm;flex:none;margin-top:-2mm}
 .avp-crest{height:17mm;width:auto}
 .avp-logo-rule{width:.35mm;height:13mm;background:var(--avp-line)}
 .avp-logo{height:18mm;width:auto}
 .avp-meta{display:flex;flex-wrap:wrap;gap:0;margin:4mm 0 0;background:var(--avp-soft);
  border:.3mm solid var(--avp-line);border-radius:2mm;overflow:hidden}
 .avp-meta div{flex:1 1 30mm;padding:2mm 3mm;border-right:.3mm solid var(--avp-line)}
 .avp-meta dt{font-size:6.5pt;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--avp-muted);margin:0}
 .avp-meta dd{margin:.6mm 0 0;font-weight:600;font-size:8.5pt;color:var(--avp-ink);overflow-wrap:anywhere}
 /* Body content: tables, charts, sections. */
 .avp-body{font-size:8.5pt}
 .avp-body h2{font:800 12pt/1.2 'Inter Display',Inter,Arial,sans-serif;margin:6mm 0 2.5mm;color:var(--avp-ink);break-after:avoid}
 .avp-body h2::before{content:'';display:inline-block;width:2.4mm;height:2.4mm;border-radius:50%;background:var(--avp-grad);margin-right:2mm;vertical-align:.3mm}
 .avp-body h3{font-size:10.5pt;margin:0 0 1.5mm;color:var(--avp-ink)}
 .avp-body p{margin:0 0 2mm;color:var(--avp-muted)}
 .avp-body table{width:100%;border-collapse:collapse;font-size:8pt;font-variant-numeric:tabular-nums;margin:0 0 4mm}
 .avp-body thead{display:table-header-group}
 .avp-body th{background:var(--avp-ink);color:#fff;text-align:left;font-weight:700;font-size:7pt;letter-spacing:.06em;text-transform:uppercase;
  padding:2.2mm 2.4mm;border:0;vertical-align:bottom}
 .avp-body th:first-child{border-top-left-radius:1.2mm}.avp-body th:last-child{border-top-right-radius:1.2mm}
 .avp-body td{padding:1.6mm 2.4mm;border:0;border-bottom:.25mm solid var(--avp-line);vertical-align:top;color:var(--avp-ink)}
 .avp-body tbody tr:nth-child(even) td{background:#f6fbfb}
 .avp-body tr{break-inside:avoid}
 .avp-body td.avp-num,.avp-body th.avp-num{text-align:right}
 .avp-body ul{margin:0 0 3mm;padding-left:4.5mm}.avp-body li{margin:0 0 1.2mm}
 .avp-callout{background:var(--avp-soft);border-left:1.2mm solid var(--avp-teal);border-radius:0 1.5mm 1.5mm 0;padding:3mm 4mm;margin:0 0 4mm;color:var(--avp-ink)!important;font-size:8.5pt}
 .avp-count{display:inline-block;font-size:7pt;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--avp-deep);
  background:#e1f7f6;border-radius:5mm;padding:.6mm 2.4mm;margin-bottom:3mm}
 /* Chart pages: one analysis per page, chart and breakdown side by side. */
 .avp-chart{break-inside:avoid;border:.3mm solid var(--avp-line);border-radius:2.5mm;padding:4.5mm 5.5mm;margin:0 0 4mm}
 .avp-chart+.avp-chart{break-before:page}
 .avp-chart .tender-chart-head{display:block;margin:0 0 3mm}
 .avp-chart .tender-eyebrow{font-size:7pt;font-weight:800;letter-spacing:.14em;color:var(--avp-deep)}
 .avp-chart .tender-chart-head h3{font-size:13pt;margin:1mm 0 0}
 .avp-chart .tender-card-grid{display:grid;grid-template-columns:minmax(0,2.6fr) minmax(52mm,1fr);gap:7mm;align-items:center}
 .avp-chart .tender-histogram{width:100%;height:auto;background:#fff}
 .avp-chart .tender-pie{width:100%;max-height:60mm}
 .avp-chart .tender-coverage p{font-size:7.5pt;text-align:center;color:var(--avp-muted)}
 .avp-chart .tender-pie-legend{max-height:none;overflow:visible}
 .avp-chart .tender-pie-legend-item{font-size:7.5pt;display:flex;gap:1.5mm;align-items:flex-start}
 .avp-chart .tender-pie-legend-item i{width:2.4mm;height:2.4mm;border-radius:.6mm;flex:none;margin-top:.7mm;display:inline-block}
 .avp-chart .tender-disclaimer{font-size:7.5pt;color:var(--avp-muted);border-top:.25mm solid var(--avp-line);padding-top:2.5mm;margin:4mm 0 0}
 .avp-chart .tender-no-data{border:.3mm dashed var(--avp-line);border-radius:2mm;padding:8mm 4mm;text-align:center;color:var(--avp-muted);background:#fafdfd}
 .avp-chart .tender-chart-actions,.avp-chart .tender-pin{display:none!important}
 /* Notes and sign-off, kept together. */
 .avp-close{break-inside:avoid}
 .avp-portrait .avp-meta div{flex-basis:40mm}
 .avp-notes{break-inside:avoid;margin:5mm 0 0;padding:3mm 4.5mm;border:.3mm solid var(--avp-line);border-radius:2mm;background:#fbfdfd}
 .avp-notes h2{font-size:8pt;letter-spacing:.12em;text-transform:uppercase;color:var(--avp-deep);margin:0 0 2mm}
 .avp-notes ul{margin:0;padding-left:4.5mm;color:var(--avp-muted);font-size:8pt}
 .avp-notes li{margin:0 0 1mm}
 .avp-signoff{break-inside:avoid;display:grid;grid-template-columns:1.2fr 1.2fr .8fr;gap:10mm;margin:9mm 0 0}
 .avp-signoff div{border-top:.35mm solid var(--avp-ink);padding-top:1.8mm;font-size:7.5pt;color:var(--avp-muted)}
}
