/* Ported from Pollnexa_UAE_2026_* HTML reports — fonts = website (DubaiW23 / Cairo) */
body.is-report {
  --font-report-body: var(--font-latin, "DubaiW23", "Dubai Font", system-ui, sans-serif);
  --font-report-display: var(--font-latin, "DubaiW23", "Dubai Font", system-ui, sans-serif);
  --navy-deep: #0B111A;
  --navy: #1F2C3F;
  --panel: #1F2C3F;
  --peri: #45D3D3;
  --blue: #237274;
  --blue-tint: #E3F1F1;
  --gold: #45D3D3;
  --gold-text: #237274;
  --gold-tint: #E6F5F5;
  --ink: #0B111A;
  --body: #2A3442;
  --muted: #5B6676;
  --faint: #8A94A3;
  --rule: #D8DDE5;
  --hair: #E8EBF0;
  --paper: #FFFFFF;
  --wash: #F6F8FA;
  --red: #A8473A;
  --teal: #45D3D3;
  --teal-mid: #37A4A6;
  --teal-text: #237274;
  --teal-dark: #285563;
  --teal-tint: #E3F1F1;
  --hair-dark: #2A3644;
  --red-tint: #F7E7E3;
  --green: #1E7A4E;
  --amber: #B7791F;
  --f-body: var(--font-report-body);
  --f-display: var(--font-report-display);
  --col: 920px;
  --gut: 32px;
  background: #EEF1F4;
  color: var(--body);
}
html.is-ar body.is-report,
html[lang="ar"] body.is-report,
html[dir="rtl"] body.is-report {
  --font-report-body: var(--font-arabic, "Cairo", "Tajawal", system-ui, sans-serif);
  --font-report-display: var(--font-arabic, "Cairo", "Tajawal", system-ui, sans-serif);
}
body.is-report .gio-doc {
  font-family: var(--font-report-body);
  font-size: 15px;
  line-height: 1.78;
  color: var(--body);
  background: transparent;
}
body.is-report .gio-doc h1,
body.is-report .gio-doc h2,
body.is-report .gio-doc h3,
body.is-report .gio-doc h4 {
  font-family: var(--font-report-display);
}


/* ==========================================================================
   Pollnexa · Global Indices Observatory — A4 report stylesheet (RTL, print)
   Rendered by Chromium (Playwright). Page masters via named @page rules.
   Per-section running headers are generated in report.html.j2 (<style> block).
   ========================================================================== */

:root {
  --navy-deep: #0B111A;
  --navy: #1F2C3F;
  --panel: #1F2C3F;
  --peri: #45D3D3;
  --blue: #237274;
  --blue-tint: #E3F1F1;
  --gold: #45D3D3;
  --gold-text: #237274;
  --gold-tint: #E6F5F5;
  --ink: #0B111A;
  --body: #2A3442;
  --muted: #5B6676;
  --faint: #8A94A3;
  --rule: #D8DDE5;
  --hair: #E8EBF0;
  --paper: #FFFFFF;
  --wash: #F6F8FA;
  --red: #A8473A;
  --teal: #45D3D3;
  --teal-mid: #37A4A6;
  --teal-text: #237274;
  --teal-dark: #285563;
  --teal-tint: #E3F1F1;
  --hair-dark: #2A3644;
  --red-tint: #F7E7E3;
  --green: #1E7A4E;
  --amber: #B7791F;

  /* Fall back to website fonts if report vars unset */
  --font-report-body: var(--font-latin, "DubaiW23", "Dubai Font", system-ui, sans-serif);
  --font-report-display: var(--font-latin, "DubaiW23", "Dubai Font", system-ui, sans-serif);
  --f-body: var(--font-report-body);
  --f-display: var(--font-report-display);
}
html.is-ar,
html[lang="ar"],
html[dir="rtl"] {
  --font-report-body: var(--font-arabic, "Cairo", "Tajawal", system-ui, sans-serif);
  --font-report-display: var(--font-arabic, "Cairo", "Tajawal", system-ui, sans-serif);
  --f-body: var(--font-report-body);
  --f-display: var(--font-report-display);
}

/* ------------------------------------------------------------------ pages */
@page {
  size: A4;
  margin: 25mm 17mm 21mm 17mm;
}
@page cover    { margin: 0; }
@page backcover{ margin: 0; }
@page opener   { margin: 0 0 21mm 0; }

/* ------------------------------------------------------------------ base */
* { box-sizing: border-box; }
html { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body.is-report .gio-doc {
  margin: 0;
  font-family: var(--f-body);
  font-size: 9.4pt;
  line-height: 1.78;
  color: var(--body);
  background: var(--paper);
  font-variant-numeric: lining-nums tabular-nums;
  text-rendering: optimizeLegibility;
}
p { margin: 0 0 3.2mm; text-align: justify; text-justify: inter-word; }
h1, h2, h3, h4 { font-family: var(--f-display); color: var(--ink); margin: 0; line-height: 1.45; font-weight: 700; }
h2 { font-size: 15pt; margin: 0 0 4mm; break-after: avoid; }
h3 { font-size: 11pt; margin: 6mm 0 2.5mm; break-after: avoid; }
h4 { font-size: 9.6pt; margin: 0 0 1.5mm; break-after: avoid; }
.en, [dir="ltr"] { font-family: var(--f-body); unicode-bidi: isolate; }
.muted { color: var(--muted); }
.faint { color: var(--faint); }
.num { font-variant-numeric: tabular-nums lining-nums; }
span.num, div.num, b.num { unicode-bidi: isolate; direction: ltr; display: inline-block; }
.nowrap { white-space: nowrap; }
.mk { width: 3.1mm; height: 3.1mm; vertical-align: -0.6mm; }
a { color: inherit; text-decoration: none; }

.section-body { }
.block { margin-bottom: 7mm; }
.keep { break-inside: avoid; }
.page-break { break-before: page; }

/* section heading inside content pages */
.h-sec {
  display: flex; align-items: baseline; gap: 3mm;
  border-bottom: 0.35mm solid var(--ink);
  padding-bottom: 2mm; margin-bottom: 5mm;
}
.h-sec .no { font-family: var(--f-body); font-weight: 600; font-size: 10pt; color: var(--blue); }
.h-sec h2 { margin: 0; font-size: 14pt; }
.h-sec .en { margin-inline-start: auto; font-size: 7.6pt; letter-spacing: .08em; text-transform: uppercase; color: var(--faint); }
.lead { font-size: 10.4pt; line-height: 1.85; color: var(--ink); }
.eyebrow {
  font-size: 7.2pt; font-weight: 600; letter-spacing: .02em; color: var(--blue);
  margin-bottom: 1.5mm;
}
.note { font-size: 7.6pt; color: var(--muted); line-height: 1.6; }

/* ------------------------------------------------------------------ sample watermark */
.sample-mark {
  position: fixed; inset: 0; display: flex; align-items: center; justify-content: center;
  pointer-events: none; z-index: 50;
}
.sample-mark span {
  transform: rotate(-32deg); font-family: var(--f-display); font-weight: 800;
  font-size: 54pt; color: rgba(155, 59, 46, .10); white-space: nowrap;
}
.sample-banner {
  background: var(--red); color: #fff; font-weight: 600; font-size: 9pt; text-align: center;
  padding: 2mm; letter-spacing: .02em;
}

/* ==================================================================== COVER */
.cover {
  page: cover; position: relative; width: 210mm; height: 296.8mm; overflow: hidden;
  background: var(--ink); color: #fff; break-after: page;
}
.cover .rings, .opener .rings, .back .rings { position: absolute; inset: 0; width: 100%; height: 100%; }
.cover .top { position: absolute; top: 16mm; right: 18mm; left: 18mm; display: flex; justify-content: space-between; align-items: center; }
.cover .top .wm { width: 52mm; display: block; }
.cover .top .wm svg { width: 52mm; height: auto; display: block; }
.cover .top .obs { font-size: 8.6pt; color: var(--faint); }
.cover .top .obs b { color: #fff; font-weight: 500; }
.cover .pill { position: absolute; top: 44mm; right: 18mm; display: inline-flex; align-items: center; gap: 2.4mm;
  font-size: 8.4pt; color: #C9D3E3; }
.cover .pill .n { border: 0.25mm solid var(--teal-dark); background: rgba(69,211,211,.08); color: var(--teal);
  border-radius: 3mm; padding: .4mm 2.4mm; font-size: 7.6pt; font-weight: 600; }
.cover .flag { position: absolute; top: 43mm; left: 18mm; width: 16mm; }
.cover .flag svg { display: block; width: 16mm; height: 8mm; }
.cover .titles { position: absolute; top: 64mm; right: 18mm; left: 18mm; }
.cover h1 { font-family: var(--f-display); color: #fff; font-weight: 700; font-size: 35pt; line-height: 1.38; letter-spacing: 0; }
.cover h1 .accent { color: var(--teal); }
.cover .subtitle { font-family: var(--f-display); font-weight: 400; font-size: 15pt; color: #E6EBF2; margin-top: 4mm; }
.cover .subtitle .sub2 { display: block; font-family: var(--f-body); font-size: 10pt; color: var(--faint); margin-top: 1.5mm; }
.cover .edition { margin-top: 5mm; font-size: 9.4pt; color: #C9D3E3; }
.cover .edition .sep { color: var(--teal); padding: 0 1.5mm; }
.cover .stats { position: absolute; right: 18mm; left: 18mm; top: 158mm; background: var(--ink); }
.cover .note-k { position: absolute; right: 18mm; top: 193mm; font-size: 7.8pt; color: var(--faint); }
.cover .bottom { position: absolute; right: 18mm; left: 18mm; bottom: 16mm; display: grid;
  grid-template-columns: 1fr 44mm; gap: 9mm; align-items: end; }
.cover .seal svg { width: 44mm; height: 44mm; display: block; }
.cover .foot { font-size: 7.8pt; color: var(--faint); line-height: 1.7; margin-top: 5mm; }
.cover .foot .ref { color: #fff; letter-spacing: .05em; font-size: 8.2pt; }

/* stat row (site style: big white numerals, small muted labels, thin vertical rules) */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 0.25mm solid var(--hair-dark);
  border-bottom: 0.25mm solid var(--hair-dark); }
.stats .st { padding: 5mm 4mm 5mm 0; border-left: 0.25mm solid var(--hair-dark); }
.stats .st:last-child { border-left: 0; }
.stats .v { font-family: var(--f-body); font-weight: 600; font-size: 32pt; line-height: 1; color: #fff; }
.stats .st.hl .v { color: var(--teal); }
.stats .l { margin-top: 2.6mm; font-size: 8.4pt; color: var(--faint); line-height: 1.45; }
.stats.light { border-color: var(--rule); }
.stats.light .st { border-color: var(--hair); }
.stats.light .v { color: var(--ink); font-size: 26pt; }
.stats.light .st.hl .v { color: var(--teal-text); }
.stats.light .l { color: var(--muted); }

/* accreditation strip (single component; badges may carry official image files) */
.accr .accr-h { font-size: 7.6pt; color: var(--faint); margin-bottom: 2mm; font-weight: 500; }
.accr .row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.4mm; }
.accr .bd { border: 0.3mm solid var(--teal); border-radius: 1.4mm; padding: 2.2mm 1.5mm 2mm; text-align: center;
  display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 13mm; }
.accr .bd .lt { font-family: var(--f-body); font-weight: 600; font-size: 8.2pt; letter-spacing: .08em; white-space: nowrap; color: #fff;
  text-transform: uppercase; direction: ltr; font-variant: small-caps; line-height: 1.2; }
.accr .bd .ar { font-size: 6.4pt; color: var(--faint); margin-top: 1mm; line-height: 1.35; }
.accr .bd img { max-height: 9mm; max-width: 100%; }
.accr.sm .bd { min-height: 10mm; padding: 1.5mm 1mm; }
.accr.sm .bd .lt { font-size: 7.2pt; }
.accr.sm .bd .ar { font-size: 5.8pt; }
.accr.light .bd { border-color: var(--teal-text); }
.accr.light .bd .lt { color: var(--ink); }
.accr.light .bd .ar, .accr.light .accr-h { color: var(--muted); }

/* ==================================================================== SECTION OPENER */
.opener { page: opener; height: 275.5mm; position: relative; overflow: hidden; break-before: page; break-after: page; }
.opener .band { background: var(--ink); color: #fff; height: 150mm; position: relative; padding: 20mm 17mm 0 17mm; overflow: hidden; }
.opener .band .meta { position: relative; display: flex; justify-content: space-between; align-items: center; font-size: 8pt; color: var(--faint); }
.opener .band .meta .wm svg { height: 5.6mm; width: auto; display: block; }
.opener .band .no { position: absolute; right: 15mm; top: 40mm; font-family: var(--f-body); font-weight: 200;
  font-size: 140pt; line-height: .8; color: var(--teal); letter-spacing: -0.04em; }
.opener .band .tt { position: absolute; right: 17mm; left: 17mm; bottom: 10mm; border-top: 0.25mm solid var(--hair-dark);
  padding-top: 5mm; display: flex; justify-content: space-between; align-items: baseline; }
.opener .band h1 { color: #fff; font-size: 25pt; font-weight: 700; max-width: 135mm; }
.opener .band .tt .en { text-align: left; max-width: 45mm; line-height: 1.6; font-size: 8pt; letter-spacing: .14em;
  text-transform: uppercase; color: var(--teal); }
.opener .body { padding: 12mm 17mm 0 17mm; display: grid; grid-template-columns: 1.35fr 1fr; gap: 12mm; }
.opener .body .intro { font-size: 10.6pt; line-height: 1.9; color: var(--ink); }
.opener .body .inside .h4 { font-size: 8pt; color: var(--blue); font-family: var(--f-body); font-weight: 600; margin-bottom: 2mm; }
.opener .body .inside ol { list-style: none; margin: 0; padding: 0; counter-reset: ins; }
.opener .body .inside ol.many { columns: 2; column-gap: 5mm; }
.opener .body .inside ol.many li { break-inside: avoid; font-size: 8.2pt; padding: 1.4mm 0; }
.opener .body .inside li {
  counter-increment: ins; font-size: 9pt; padding: 2mm 0; border-bottom: 0.2mm solid var(--hair);
  display: flex; gap: 3mm;
}
.opener .body .inside li::before { content: counter(ins, decimal-leading-zero); color: var(--faint); font-size: 8pt; min-width: 6mm; }

/* ==================================================================== ABOUT / APPROVAL */
.about { page: front; }
.about .cols { display: grid; grid-template-columns: 1fr 1fr; gap: 9mm; }
.factsheet { width: 100%; border-collapse: collapse; font-size: 8.6pt; }
.factsheet th { text-align: right; font-weight: 500; color: var(--muted); width: 32%; padding: 2mm 0; border-bottom: 0.2mm solid var(--hair); vertical-align: top; }
.factsheet td { padding: 2mm 0; border-bottom: 0.2mm solid var(--hair); color: var(--ink); }
.cite {
  background: var(--wash); border-right: 0.8mm solid var(--blue);
  padding: 4mm 5mm; font-size: 8.6pt; line-height: 1.75; color: var(--ink);
}
.cite .lbl { font-weight: 600; color: var(--blue); font-size: 7.6pt; display: block; margin-bottom: 1mm; }
.disclaimer {
  border: 0.3mm solid var(--rule); border-right: 1.2mm solid var(--gold);
  padding: 4mm 5mm; font-size: 8.4pt; line-height: 1.75; color: var(--ink);
  break-inside: avoid; background: #fff;
}
.disclaimer .lbl { font-family: var(--f-display); font-weight: 700; font-size: 8.6pt; display: block; margin-bottom: 1mm; color: var(--ink); }

/* ==================================================================== TOC */
.toc { page: front; }
.toc .list { margin-top: 4mm; }
.toc .row {
  display: grid; grid-template-columns: 13mm 1fr auto; align-items: baseline; gap: 2mm;
  padding: 2mm 0; border-bottom: 0.25mm solid var(--rule);
}
.toc .row .no { font-weight: 300; font-size: 16pt; color: var(--blue); line-height: 1; }
.toc .row .t { font-family: var(--f-display); font-weight: 700; font-size: 11.6pt; color: var(--ink); }
.toc .row .t .en { display: inline; margin-inline-start: 3mm; font-family: var(--f-body); font-weight: 400; font-size: 7.2pt; letter-spacing: .1em; text-transform: uppercase; color: var(--faint); margin-top: .5mm; }
.toc .row .p { font-size: 11pt; font-weight: 600; color: var(--ink); min-width: 10mm; text-align: left; }
.toc .subs { grid-column: 2 / 4; margin-top: .8mm; }
.toc .sub { display: flex; align-items: baseline; gap: 2mm; font-size: 8pt; color: var(--muted); line-height: 1.6; }
.toc .sub .dots { flex: 1; border-bottom: 0.3mm dotted #C3C9D3; transform: translateY(-1mm); }
.toc .sub .p { font-size: 8.4pt; min-width: 7mm; text-align: left; }
.toc .row.front .no { color: var(--faint); font-size: 12pt; }

/* ==================================================================== KPI tiles */
.kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 0.6mm solid var(--ink); border-bottom: 0.25mm solid var(--rule); margin: 2mm 0 5mm; break-inside: avoid; }
.kpi-tile { padding: 4mm 4mm 4mm 2mm; border-left: 0.25mm solid var(--hair); }
.kpi-tile:last-child { border-left: 0; }
.kpi-tile .v { font-weight: 600; font-size: 27pt; line-height: 1.05; color: var(--ink); }
.kpi-tile.hl .v { color: var(--gold-text); }
.kpi-tile .l { font-size: 8.4pt; color: var(--ink); font-weight: 500; margin-top: 1.5mm; }
.kpi-tile .s { font-size: 7.2pt; color: var(--faint); line-height: 1.5; margin-top: .6mm; }

/* ==================================================================== EXEC SUMMARY */
.exec { display: grid; grid-template-columns: 1fr 50mm; gap: 8mm; align-items: start; }
.exec .text p:first-child { font-size: 10.6pt; line-height: 1.9; color: var(--ink); }
.pull {
  border-top: 0.6mm solid var(--gold); padding-top: 3mm;
}
.pull .big { font-weight: 300; font-size: 64pt; line-height: .95; color: var(--ink); }
.pull .big small { font-size: 18pt; color: var(--faint); font-weight: 400; }
.pull .cap { font-size: 8.8pt; color: var(--ink); font-weight: 500; line-height: 1.6; margin-top: 2mm; }
.pull .sub { font-size: 7.4pt; color: var(--muted); line-height: 1.6; margin-top: 2mm; border-top: 0.2mm solid var(--hair); padding-top: 2mm; }
.pull + .pull { margin-top: 6mm; }

.findings { list-style: none; margin: 0; padding: 0; counter-reset: f; }
.findings li {
  counter-increment: f; display: grid; grid-template-columns: 9mm 1fr; gap: 2mm;
  padding: 2mm 0; border-bottom: 0.2mm solid var(--hair); break-inside: avoid;
}
.findings li::before { content: counter(f, decimal-leading-zero); font-weight: 600; font-size: 10pt; color: var(--blue); line-height: 1.6; }
.findings .t { font-weight: 600; color: var(--ink); }
.findings .d { color: var(--body); font-size: 8.8pt; }

/* ==================================================================== priority list */
.prio { list-style: none; margin: 0; padding: 0; counter-reset: p; }
.prio li {
  counter-increment: p; position: relative; padding: 3.2mm 13mm 3.2mm 0;
  border-bottom: 0.2mm solid var(--hair); break-inside: avoid; color: var(--ink);
}
.prio li::before {
  content: counter(p); position: absolute; right: 0; top: 3mm;
  width: 8.4mm; height: 8.4mm; border-radius: 50%; background: var(--navy-deep); color: #fff;
  font-weight: 600; font-size: 10pt; display: flex; align-items: center; justify-content: center; line-height: 1;
}

/* ==================================================================== tables */
table.data {
  width: 100%; border-collapse: collapse; font-size: 7.9pt; line-height: 1.5;
  margin-bottom: 4mm;
}
table.data thead { display: table-header-group; }
table.data th {
  text-align: right; font-weight: 600; color: var(--ink); font-size: 7.1pt;
  padding: 2mm 1.6mm; border-bottom: 0.45mm solid var(--ink); vertical-align: bottom; background: #fff;
}
table.data td { padding: 2mm 1.6mm; border-bottom: 0.2mm solid var(--hair); vertical-align: middle; color: var(--ink); }
table.data tr { break-inside: avoid; }
table.data td.n, table.data th.n { text-align: center; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.data td.rank { font-weight: 700; font-size: 9.5pt; }
table.data .idx { font-weight: 600; }
table.data .idx .en { display: block; font-weight: 400; font-size: 6.6pt; color: var(--faint); line-height: 1.35; direction: ltr; text-align: right; }
table.data .pub { font-size: 7.2pt; color: var(--muted); direction: ltr; text-align: right; }
table.data tbody tr:last-child td { border-bottom: 0.35mm solid var(--rule); }
table.data td.st { white-space: nowrap; }
table.data caption { caption-side: bottom; text-align: right; font-size: 7pt; color: var(--faint); padding-top: 1.5mm; }

/* tier chips */
.chip {
  display: inline-block; font-size: 6.6pt; font-weight: 600; line-height: 1;
  padding: 1.2mm 2mm 1.3mm; border-radius: 0.8mm; white-space: nowrap;
}
.chip.first  { background: var(--teal); color: var(--ink); }
.chip.top10  { background: var(--navy-deep); color: #fff; }
.chip.top25  { background: var(--teal-tint); color: #1F6B6D; }
.chip.mid    { background: #EEF0F3; color: #4A5464; }
.chip.lower  { background: var(--red-tint); color: var(--red); }
.chip.na     { background: transparent; color: var(--faint); border: 0.2mm solid var(--rule); }
.vstat { font-size: 6.6pt; color: var(--muted); display: inline-flex; gap: .8mm; align-items: center; margin-inline-start: 1.5mm; }
.vstat.ok { color: var(--green); }
.vstat.warn { color: var(--amber); }

/* percentile mini bars */
.pbar { display: inline-flex; align-items: center; gap: 1.6mm; direction: rtl; }
.pbar svg { width: 20mm; height: 3mm; display: block; }
.pbar .pv { font-size: 7.4pt; min-width: 7mm; text-align: left; color: var(--ink); }

/* ==================================================================== scorecard */
table.score td.sec { font-weight: 700; font-family: var(--f-display); font-size: 8.4pt; }
table.score td.sec .en { display: block; font-family: var(--f-body); font-weight: 400; font-size: 6.4pt; color: var(--faint); direction: ltr; text-align: right; }
table.score td.small { font-size: 7.2pt; color: var(--body); }
table.score td.verdict { font-size: 7.2pt; font-weight: 400; color: var(--body); line-height: 1.55; }
table.score .bw { display: flex; gap: 1.2mm; line-height: 1.45; margin: .4mm 0; }
table.score .bw i { display: inline-block; flex: none; width: 0; height: 0; margin-top: 1.5mm; border-left: .9mm solid transparent; border-right: .9mm solid transparent; }
table.score .bw i.up { border-bottom: 1.4mm solid var(--green); } table.score .bw i.dn { border-top: 1.4mm solid var(--red); }

/* ==================================================================== percentile chart (all rankings) */
table.pchart { width: 100%; border-collapse: collapse; font-size: 7.4pt; }
table.pchart thead { display: table-header-group; }
table.pchart th { font-weight: 500; font-size: 6.6pt; color: var(--muted); padding: 0 1mm 1.5mm; border-bottom: 0.35mm solid var(--ink); text-align: right; }
table.pchart td { padding: 0 1mm; height: 6mm; border-bottom: 0.15mm solid var(--hair); vertical-align: middle; color: var(--ink); }
table.pchart tr { break-inside: avoid; }
table.pchart td.lbl { width: 70mm; line-height: 1.25; }
table.pchart td.lbl .e { color: var(--muted); font-size: 6.8pt; }
table.pchart td.bar { padding: 0; }
table.pchart td.bar svg { display: block; width: 100%; height: 6mm; }
table.pchart td.rk { width: 16mm; text-align: left; white-space: nowrap; font-size: 7.2pt; }
table.pchart tr.grp td { height: auto; padding: 3mm 1mm 1mm; border-bottom: 0.25mm solid var(--rule); font-family: var(--f-display); font-weight: 700; font-size: 7.8pt; color: var(--blue); }
table.pchart th.axis { padding: 0; }
table.pchart th.axis svg { display: block; width: 100%; height: 5mm; }
.legend { display: flex; flex-wrap: wrap; gap: 4mm; font-size: 7pt; color: var(--muted); margin: 0 0 3mm; align-items: center; }
.legend i { display: inline-block; width: 3mm; height: 3mm; border-radius: 50%; vertical-align: -0.5mm; margin-inline-end: 1mm; }

/* ==================================================================== first places */
.firsts { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm; margin-bottom: 6mm; }
.first-card {
  border: 0.25mm solid var(--rule); border-top: 1mm solid var(--gold);
  padding: 3mm 4mm; break-inside: avoid; display: grid; grid-template-columns: 1fr auto; gap: 2mm; align-items: start;
}
.first-card .i { font-weight: 600; color: var(--ink); line-height: 1.5; }
.first-card .e { font-size: 7.4pt; color: var(--muted); }
.first-card .r { font-weight: 600; font-size: 20pt; line-height: 1; color: var(--gold-text); text-align: left; }
.first-card .r small { display: block; font-size: 6.6pt; color: var(--faint); font-weight: 400; margin-top: 1mm; }

/* ==================================================================== strengths / gaps panel */
.sg { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 0.25mm solid var(--rule); break-inside: avoid; margin-bottom: 7mm; }
.sg .col { padding: 4mm 5mm; }
.sg .col + .col { border-right: 0.25mm solid var(--rule); background: var(--wash); }
.sg .hd { display: flex; align-items: center; gap: 2mm; margin-bottom: 2.5mm; padding-bottom: 2mm; border-bottom: 0.3mm solid var(--ink); }
.sg .hd .h4 { margin: 0; font-size: 9.6pt; }
.sg .hd .dot { width: 2.6mm; height: 2.6mm; border-radius: 50%; }
.sg ul { list-style: none; margin: 0; padding: 0; }
.sg li { padding: 1.2mm 0; border-bottom: 0.2mm solid var(--hair); font-size: 8.4pt; line-height: 1.6; break-inside: avoid; }
.sg li:last-child { border-bottom: 0; }
.sg li b { color: var(--ink); font-weight: 600; display: block; }
.sg li span { color: var(--muted); font-size: 7.8pt; }

.cards-list { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm 6mm; }
.cards-list .it { min-width: 0; overflow-wrap: anywhere; break-inside: avoid; border-top: 0.3mm solid var(--ink); padding-top: 2mm; }
.cards-list .it b { display: block; color: var(--ink); }
.cards-list .it span { font-size: 8.2pt; color: var(--muted); }

/* ==================================================================== priority matrix */
.matrix-wrap { display: grid; grid-template-columns: 82mm 1fr; gap: 7mm; align-items: start; break-inside: avoid; margin-bottom: 6mm; }
.matrix-wrap svg { width: 82mm; height: auto; display: block; direction: ltr; }
.matrix-key { font-size: 7.8pt; }
.matrix-key .k { display: grid; grid-template-columns: 6.5mm 1fr; gap: 2mm; padding: 1.6mm 0; border-bottom: 0.2mm solid var(--hair); break-inside: avoid; line-height: 1.5; }
.matrix-key .k .d { width: 5.4mm; height: 5.4mm; border-radius: 50%; background: var(--navy-deep); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 7.2pt; font-weight: 600; }
.matrix-key .k.q .d { background: var(--gold); color: var(--navy-deep); }
.matrix-key .k b { color: var(--ink); font-weight: 600; }
.matrix-key .k span { color: var(--muted); font-size: 7.2pt; display: block; }

/* ==================================================================== sector blocks */
.sector { margin-bottom: 8mm; }
.sector-hd {
  display: grid; grid-template-columns: auto auto 1fr auto; align-items: baseline; gap: 3mm;
  border-bottom: 0.45mm solid var(--ink); padding-bottom: 2mm; margin-bottom: 3mm; break-after: avoid;
}
.sector-hd .sn { font-size: 8pt; color: var(--blue); font-weight: 600; }
.sector-hd h3 { margin: 0; font-size: 12pt; }
.sector-hd .en { font-family: var(--f-body); font-weight: 400; font-size: 7.2pt; letter-spacing: .08em; text-transform: uppercase; color: var(--faint); margin-inline-start: 2mm; }
.sector-hd .stats { display: flex; gap: 4mm; font-size: 7.2pt; color: var(--muted); }
.sector-hd .stats b { color: var(--ink); font-weight: 600; font-size: 9pt; margin-inline-end: 1mm; }
.sector .narr { font-size: 8.8pt; color: var(--body); break-after: avoid; }

/* ==================================================================== reads (قراءة بولنيكسا) */
.read {
  border: 0.25mm solid var(--rule); margin-bottom: 6mm; break-inside: avoid; background: #fff;
}
.read .rh {
  display: grid; grid-template-columns: 1fr auto; gap: 4mm; align-items: center;
  padding: 3.5mm 5mm; border-bottom: 0.25mm solid var(--rule); background: var(--wash);
}
.read .rh .tag { font-size: 6.8pt; color: var(--blue); font-weight: 600; letter-spacing: .02em; }
.read .rh .h3 { margin: .5mm 0 0; font-size: 10.6pt; line-height: 1.5; }
.read .rh .meta { font-size: 7.2pt; color: var(--muted); }
.read .rh .meta .en { direction: ltr; display: inline-block; }
.badge {
  width: 19mm; height: 19mm; border-radius: 50%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; background: var(--navy-deep); color: #fff; line-height: 1;
}
.badge .r { font-weight: 600; font-size: 17pt; }
.badge .o { font-size: 6.2pt; color: #AEB9CA; margin-top: 1mm; }
.badge.first { background: var(--teal); color: var(--ink); }
.badge.first .o { color: #0B111A; }
.badge.lower { background: #fff; color: var(--red); border: 0.4mm solid var(--red); }
.badge.lower .o { color: var(--red); }
.badge.mid, .badge.top25 { background: #fff; color: var(--ink); border: 0.4mm solid var(--ink); }
.badge.mid .o, .badge.top25 .o { color: var(--muted); }
.read .rb { padding: 4mm 5mm 4.5mm; }
.read .sum { font-size: 8.8pt; color: var(--ink); margin-bottom: 3mm; }
.read .three { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4mm; }
.read .three.two { grid-template-columns: 1fr 1fr; }
.read .three .h4 { font-family: var(--f-body); font-size: 7.6pt; font-weight: 600; padding-bottom: 1.2mm; border-bottom: 0.4mm solid currentColor; margin-bottom: 1.5mm; }
.read .three .s h4 { color: var(--green); }
.read .three .g h4 { color: var(--red); }
.read .three .a h4 { color: var(--blue); }
.read .three ul { margin: 0; padding: 0; list-style: none; }
.read .three li { font-size: 7.8pt; line-height: 1.6; padding: 1mm 0; border-bottom: 0.15mm solid var(--hair); color: var(--body); }
.read .three li:last-child { border-bottom: 0; }
.read .bench {
  margin-top: 3mm; padding: 2.5mm 4mm; background: var(--gold-tint); border-right: 0.9mm solid var(--gold);
  font-size: 7.8pt; line-height: 1.65; color: var(--ink);
}
.read .bench b { font-weight: 600; }

/* ==================================================================== methodology */
.method-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7mm; }
.tier-def { width: 100%; border-collapse: collapse; font-size: 7.8pt; }
.tier-def td { padding: 1.6mm 1mm; border-bottom: 0.2mm solid var(--hair); vertical-align: middle; }
.formula { font-family: var(--f-body); direction: ltr; text-align: center; background: var(--wash); padding: 3mm; font-size: 8.6pt; color: var(--ink); margin: 2mm 0 3mm; }
.caveats { margin: 0; padding: 0 4.5mm 0 0; font-size: 8.2pt; }
.caveats li { margin-bottom: 1.6mm; break-inside: avoid; }
.sources { columns: 2; column-gap: 7mm; font-size: 7.6pt; line-height: 1.55; }
.sources .src { break-inside: avoid; padding: 1.2mm 0; border-bottom: 0.15mm solid var(--hair); }
.sources .src b { direction: ltr; display: inline-block; color: var(--ink); font-weight: 600; }
.sources .src span { display: block; color: var(--muted); }

.approval {
  display: grid; grid-template-columns: 38mm 1fr; gap: 7mm; align-items: center;
  border: 0.3mm solid var(--ink); padding: 5mm 6mm; break-inside: avoid; margin-top: 6mm;
}
.approval svg { width: 38mm; height: 38mm; }
.approval h4 { font-size: 10.5pt; margin-bottom: 2mm; }
.approval table { width: 100%; border-collapse: collapse; font-size: 8pt; }
.approval th { text-align: right; font-weight: 500; color: var(--muted); padding: 1.3mm 0; width: 30%; border-bottom: 0.2mm solid var(--hair); }
.approval td { padding: 1.3mm 0; border-bottom: 0.2mm solid var(--hair); color: var(--ink); font-weight: 500; }
.approval .sig { margin-top: 3mm; display: flex; gap: 8mm; font-size: 7.2pt; color: var(--muted); }
.approval .sig div { flex: 1; border-top: 0.25mm solid var(--ink); padding-top: 1.2mm; }

/* ==================================================================== BACK COVER */
.back { page: backcover; break-before: page; width: 210mm; height: 296.8mm; overflow: hidden; position: relative;
  background: var(--ink); color: #fff; }
.back .inner { position: absolute; top: 28mm; right: 18mm; left: 18mm; }
.back .wm svg { height: 12mm; width: auto; display: block; }
.back .obs { margin-top: 5mm; color: #C9D3E3; font-size: 11pt; }
.back .rule-t { width: 24mm; height: .6mm; background: var(--teal); margin: 9mm 0; }
.back .about-pnx { font-size: 9.6pt; color: #C9D3E3; line-height: 1.9; max-width: 140mm; }
.back .seal { position: absolute; left: 18mm; top: 112mm; }
.back .seal svg { width: 46mm; height: 46mm; display: block; }
.back .accr { position: absolute; right: 18mm; width: 112mm; top: 118mm; }
.back .contact { position: absolute; bottom: 28mm; right: 18mm; left: 18mm; display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 0.25mm solid var(--hair-dark); }
.back .contact div { padding: 4mm 0 0 3mm; }
.back .contact .k { font-size: 7.4pt; color: var(--teal); margin-bottom: 1mm; }
.back .contact .v { font-size: 9pt; color: #fff; direction: ltr; text-align: right; }
.back .contact .v.ar { direction: rtl; }
.back .lic { position: absolute; bottom: 14mm; right: 18mm; left: 18mm; display: flex; justify-content: space-between;
  font-size: 7.2pt; color: var(--faint); letter-spacing: .1em; }

.vstat.fix { color: var(--blue); }
sup.fn { font-size: 6pt; color: var(--blue); font-weight: 700; margin-inline-start: .6mm; vertical-align: super; line-height: 0; }
.footnote { font-size: 7pt; color: var(--muted); line-height: 1.6; margin-top: -2mm; margin-bottom: 3mm; }
.cards-list .it .metric, .sg .metric { display: block; font-weight: 600; color: var(--red); font-size: 7.6pt; margin: .3mm 0 .5mm; }
.cards-list .it .metric.pos { color: var(--green); }
table.data .idx .sub { display: block; font-weight: 400; font-size: 7pt; color: var(--muted); line-height: 1.45; margin-top: .5mm; }

/* ==================================================================== v2 components */
.chip.na { white-space: nowrap; }
/* tier band rows inside sector tables */
table.data tr.band td { padding: 1.6mm 1.6mm 1.2mm; background: var(--wash); border-bottom: 0.25mm solid var(--rule);
  font-size: 7pt; font-weight: 600; color: var(--muted); letter-spacing: .01em; }
table.data tr.band td .dot { display: inline-block; width: 2.2mm; height: 2.2mm; border-radius: 50%; margin-inline-end: 1.6mm; vertical-align: -.2mm; }
table.data tr.band td .cnt { color: var(--faint); font-weight: 400; margin-inline-start: 1.5mm; }
table.data tr.band { break-after: avoid; }
table.pchart tr.tband td { height: auto; padding: 1.4mm 1mm .8mm; font-size: 6.6pt; color: var(--muted); font-weight: 600; border-bottom: 0.15mm solid var(--hair); background: var(--wash); }

/* sector header with position + class */
.sector-hd { grid-template-columns: auto auto 1fr auto; }
.sector-hd .pos { font-weight: 300; font-size: 18pt; line-height: 1; color: var(--teal-text); min-width: 9mm; }
.cls { display: inline-block; font-size: 6.8pt; font-weight: 600; padding: .9mm 2mm 1mm; border-radius: 3mm; white-space: nowrap; line-height: 1.2; }
.cls.lead { background: var(--ink); color: var(--teal); }
.cls.adv  { background: var(--teal-tint); color: #1F6B6D; }
.cls.prom { background: #EEF0F3; color: #4A5464; }
.cls.weak { background: var(--red-tint); color: var(--red); }
.cls sup { font-size: 5.6pt; }
.sector-hd .meta { display: flex; gap: 3mm; align-items: center; justify-self: end; font-size: 7.2pt; color: var(--muted); }
.sector-hd .meta b { color: var(--ink); font-weight: 600; font-size: 9pt; margin-inline-end: .8mm; }

/* scorecard rank column */
table.score td.pos { font-weight: 300; font-size: 14pt; color: var(--teal-text); text-align: center; width: 7%; }
table.score .scorev { font-weight: 600; }

/* hero cards (first places) */
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4mm; margin-bottom: 6mm; }
.hero { background: var(--ink); color: #fff; border-radius: 2mm; padding: 5mm 5.5mm 4.5mm; break-inside: avoid; position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; left: -22mm; bottom: -22mm; width: 44mm; height: 44mm; border-radius: 50%;
  border: 0.3mm solid rgba(69,211,211,.22); }
.hero .hx { display: flex; flex-direction: column; gap: 3.5mm; position: relative; }
.hero .tag { display: inline-block; font-size: 6.6pt; font-weight: 600; color: var(--teal); border: 0.25mm solid var(--teal-dark);
  border-radius: 3mm; padding: .4mm 2mm .6mm; margin-bottom: 2mm; }
.hero .ent { font-family: var(--f-display); font-weight: 700; font-size: 12.5pt; line-height: 1.4; }
.hero .ent .one { display: inline-block; background: var(--teal); color: var(--ink); font-family: var(--f-body); font-size: 7pt;
  font-weight: 600; border-radius: 1mm; padding: .5mm 1.6mm .7mm; margin-inline-end: 2mm; vertical-align: 1mm; }
.hero .idx { font-size: 8.6pt; color: #DCE3EC; line-height: 1.5; }
.hero .pub { font-size: 7pt; color: var(--faint); margin-top: .6mm; }
.hero .num { border-top: 0.25mm solid var(--hair-dark); padding-top: 3mm; }
.hero .num .v { font-weight: 600; font-size: 24pt; line-height: 1; color: var(--teal); direction: ltr; unicode-bidi: isolate; display: inline-block; }
.hero .num .u { font-size: 8pt; color: #C9D3E3; margin-top: 1.4mm; line-height: 1.45; }
.hero .ctx { font-size: 7.4pt; color: var(--faint); margin-top: 1mm; line-height: 1.5; }
.hero .gap { margin-top: 2.6mm; font-size: 7.6pt; color: var(--teal); font-weight: 600; }
.hero .sum { margin-top: 3mm; padding-top: 3mm; border-top: 0.25mm solid var(--hair-dark); color: #C9D3E3; font-size: 7.8pt; line-height: 1.75; }
.hero-grid.one { grid-template-columns: 1fr; gap: 5mm; }
.hero.wide { padding: 7mm 7mm 6mm; }
.hero-grid.one .hero { min-height: 68mm; }
.hero.wide .hx { flex-direction: row; align-items: stretch; gap: 0; }
.hero.wide .who { flex: 1; padding-inline-end: 6mm; }
.hero.wide .ent { font-size: 15pt; }
.hero.wide .num { width: 66mm; border-top: 0; border-right: 0.25mm solid var(--hair-dark); padding: 1mm 6mm 0 0; }
.hero.wide .num .v { font-size: 30pt; }

/* compact first-place strip (summary one-pager) */
.fstrip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5mm; }
.fstrip .f { border: 0.25mm solid var(--rule); border-top: 0.9mm solid var(--teal); padding: 2.4mm 3mm; break-inside: avoid; }
.fstrip .f .e { font-family: var(--f-display); font-weight: 700; font-size: 8.6pt; color: var(--ink); }
.fstrip .f .i { font-size: 7.2pt; color: var(--body); line-height: 1.45; }
.fstrip .f .k { font-size: 7pt; color: var(--teal-text); font-weight: 600; margin-top: .6mm; }

/* summary: sector ladder */
.ladder { width: 100%; border-collapse: collapse; font-size: 8pt; }
.ladder th { text-align: right; font-size: 6.8pt; font-weight: 600; color: var(--ink); padding: 1.6mm 1.4mm; border-bottom: 0.45mm solid var(--ink); }
.ladder td { padding: 1.5mm 1.4mm; border-bottom: 0.2mm solid var(--hair); vertical-align: middle; }
.ladder td.p { font-weight: 300; font-size: 13pt; color: var(--teal-text); width: 9mm; text-align: center; }
.ladder td.s { font-family: var(--f-display); font-weight: 700; color: var(--ink); }
.ladder td.n { text-align: center; }
.ladder tr { break-inside: avoid; }
.ladder .sbar { display: flex; align-items: center; gap: 2mm; }
.ladder .sbar svg { width: 34mm; height: 3.2mm; display: block; }
.secblk { break-inside: avoid; border-top: 0.35mm solid var(--ink); padding-top: 2mm; margin-bottom: 4mm; }
.secblk .hd { display: flex; align-items: baseline; gap: 2.4mm; }
.secblk .hd .p { font-weight: 300; font-size: 14pt; color: var(--teal-text); line-height: 1; }
.secblk .hd .t { font-family: var(--f-display); font-weight: 700; font-size: 10pt; color: var(--ink); }
.secblk .hd .sc { margin-inline-start: auto; font-size: 7.2pt; color: var(--muted); }
.secblk .nar { font-size: 7.8pt; color: var(--body); line-height: 1.6; margin: 1mm 0 1.4mm; }
.secblk ul { list-style: none; margin: 0; padding: 0; }
.secblk li { display: grid; grid-template-columns: 1fr auto auto; gap: 2mm; align-items: center; font-size: 7.6pt; padding: .9mm 0; border-bottom: 0.15mm solid var(--hair); }
.secblk li:last-child { border-bottom: 0; }
.secblk li .r { font-weight: 600; color: var(--ink); white-space: nowrap; direction: ltr; unicode-bidi: isolate; }
.secblk li .e { color: var(--muted); }
.cols2 { columns: 2; column-gap: 7mm; }

/* summary: one-pager */
.onepager .lead { font-size: 10pt; }
.gapcard { display: grid; grid-template-columns: 12mm 1fr; gap: 3mm; padding: 3mm 0; border-bottom: 0.2mm solid var(--hair); break-inside: avoid; }
.gapcard .no { font-weight: 300; font-size: 22pt; color: var(--red); line-height: 1; }
.gapcard .t { font-family: var(--f-display); font-weight: 700; font-size: 9.6pt; color: var(--ink); }
.gapcard .m { display: inline-block; font-weight: 600; font-size: 8pt; color: var(--red); margin: .6mm 0; }
.gapcard .d { font-size: 8pt; color: var(--body); line-height: 1.6; }
.pcard { display: grid; grid-template-columns: 10mm 1fr; gap: 3mm; padding: 2.6mm 0; border-bottom: 0.2mm solid var(--hair); break-inside: avoid; }
.pcard .no { width: 8mm; height: 8mm; border-radius: 50%; background: var(--ink); color: var(--teal); font-weight: 600;
  display: flex; align-items: center; justify-content: center; font-size: 10pt; }
.pcard .t { font-family: var(--f-display); font-weight: 700; font-size: 9.6pt; color: var(--ink); }
.pcard .s { font-size: 7.6pt; color: var(--teal-text); font-weight: 600; }
.pcard .d { font-size: 8pt; color: var(--body); line-height: 1.6; margin-top: .6mm; }
.rules { width: 100%; border-collapse: collapse; font-size: 7.8pt; }
.rules td { padding: 1.4mm 1mm; border-bottom: 0.2mm solid var(--hair); vertical-align: middle; }
.vsum { display: grid; grid-template-columns: repeat(3, 1fr); border: 0.25mm solid var(--rule); margin: 2mm 0 4mm; }
.vsum div { padding: 3mm 4mm; border-left: 0.25mm solid var(--hair); }
.vsum div:last-child { border-left: 0; }
.vsum .v { font-weight: 600; font-size: 20pt; line-height: 1; color: var(--ink); }
.vsum .l { font-size: 7.6pt; color: var(--muted); margin-top: 1.2mm; }
.pointer { background: var(--ink); color: #fff; border-radius: 2mm; padding: 4mm 5mm; display: flex; justify-content: space-between; align-items: center; gap: 5mm; break-inside: avoid; }
.pointer .t { font-family: var(--f-display); font-weight: 700; font-size: 10pt; }
.pointer .s { font-size: 7.8pt; color: var(--faint); }
.pointer .ref { color: var(--teal); font-weight: 600; letter-spacing: .05em; direction: ltr; font-size: 8.6pt; }
.reads-sector { break-after: avoid; display: flex; align-items: baseline; gap: 3mm; border-bottom: 0.45mm solid var(--ink); padding-bottom: 1.6mm; margin: 2mm 0 4mm; }
.reads-sector .p { font-weight: 300; font-size: 15pt; color: var(--teal-text); line-height: 1; }
.reads-sector .t { font-family: var(--f-display); font-weight: 700; font-size: 11pt; color: var(--ink); }
.reads-sector .n { margin-inline-start: auto; font-size: 7.2pt; color: var(--muted); }
.page-avoid { break-inside: avoid; }

.matrix-wrap.compact { grid-template-columns: 66mm 1fr; gap: 6mm; }
.matrix-wrap.compact svg { width: 66mm; }
.matrix-wrap.compact .matrix-key .k { padding: 1mm 0; font-size: 7.2pt; }
.matrix-key .k b { font-size: 7.6pt; }
.prio li .pt { display: block; font-family: var(--f-display); font-weight: 700; color: var(--ink); margin-bottom: .5mm; }

table.score td.verdict .bw { font-size: 6.8pt; color: var(--muted); margin-top: .8mm; }
table.score td.verdict .bw + .bw { margin-top: .2mm; }
.s6 .sector { break-inside: avoid; }
.sector-hd, .sector .narr { break-after: avoid; }

/* web edition furniture never prints */
.web-only { display: none; }
@media print { .web-only { display: none !important; } }
.toc a { color: inherit; text-decoration: none; }

@page {
  @top-left   { content: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-30.0%20-1070.0%204419.0%201362.0%22%20height%3D%2213%22%20width%3D%2242.18%22%20role%3D%22img%22%20aria-label%3D%22pollnexa%22%3E%3Cpath%20d%3D%22M381.0%20-560.0Q453.0%20-560.0%20512.5%20-524.5Q572.0%20-489.0%20606.0%20-425.0Q640.0%20-361.0%20640.0%20-278.0Q640.0%20-195.0%20606.0%20-129.5Q572.0%20-64.0%20512.5%20-27.5Q453.0%209.0%20381.0%209.0Q318.0%209.0%20269.0%20-16.5Q220.0%20-42.0%20189.0%20-80.0V262.0H75.0V-551.0H189.0V-470.0Q218.0%20-508.0%20268.0%20-534.0Q318.0%20-560.0%20381.0%20-560.0ZM356.0%20-461.0Q313.0%20-461.0%20274.5%20-439.0Q236.0%20-417.0%20212.5%20-375.0Q189.0%20-333.0%20189.0%20-276.0Q189.0%20-219.0%20212.5%20-176.5Q236.0%20-134.0%20274.5%20-112.0Q313.0%20-90.0%20356.0%20-90.0Q400.0%20-90.0%20438.5%20-112.5Q477.0%20-135.0%20500.5%20-178.0Q524.0%20-221.0%20524.0%20-278.0Q524.0%20-335.0%20500.5%20-376.5Q477.0%20-418.0%20438.5%20-439.5Q400.0%20-461.0%20356.0%20-461.0Z%20M716.0%20-276.0Q716.0%20-360.0%20753.0%20-425.0Q790.0%20-490.0%20854.0%20-525.0Q918.0%20-560.0%20997.0%20-560.0Q1076.0%20-560.0%201140.0%20-525.0Q1204.0%20-490.0%201241.0%20-425.0Q1278.0%20-360.0%201278.0%20-276.0Q1278.0%20-192.0%201240.0%20-127.0Q1202.0%20-62.0%201136.5%20-26.5Q1071.0%209.0%20992.0%209.0Q914.0%209.0%20851.0%20-26.5Q788.0%20-62.0%20752.0%20-126.5Q716.0%20-191.0%20716.0%20-276.0ZM1161.0%20-276.0Q1161.0%20-336.0%201138.0%20-377.5Q1115.0%20-419.0%201077.0%20-440.0Q1039.0%20-461.0%20995.0%20-461.0Q951.0%20-461.0%20913.5%20-440.0Q876.0%20-419.0%20854.0%20-377.5Q832.0%20-336.0%20832.0%20-276.0Q832.0%20-187.0%20877.5%20-138.5Q923.0%20-90.0%20992.0%20-90.0Q1036.0%20-90.0%201074.5%20-111.0Q1113.0%20-132.0%201137.0%20-174.0Q1161.0%20-216.0%201161.0%20-276.0Z%22%20fill%3D%22%23252638%22%2F%3E%3Crect%20x%3D%221369.0%22%20y%3D%22-800%22%20width%3D%22190.0%22%20height%3D%22800%22%20fill%3D%22%230FCFD7%22%2F%3E%3Crect%20x%3D%221674.0%22%20y%3D%22-1040%22%20width%3D%22190.0%22%20height%3D%221040%22%20fill%3D%22%230FCFD7%22%2F%3E%3Cpath%20d%3D%22M2495.0%20-325.0V0.0H2382.0V-308.0Q2382.0%20-382.0%202345.0%20-421.5Q2308.0%20-461.0%202244.0%20-461.0Q2180.0%20-461.0%202142.5%20-421.5Q2105.0%20-382.0%202105.0%20-308.0V0.0H1991.0V-551.0H2105.0V-488.0Q2133.0%20-522.0%202176.5%20-541.0Q2220.0%20-560.0%202269.0%20-560.0Q2334.0%20-560.0%202385.5%20-533.0Q2437.0%20-506.0%202466.0%20-453.0Q2495.0%20-400.0%202495.0%20-325.0Z%20M3141.0%20-233.0H2720.0Q2725.0%20-167.0%202769.0%20-127.0Q2813.0%20-87.0%202877.0%20-87.0Q2969.0%20-87.0%203007.0%20-164.0H3130.0Q3105.0%20-88.0%203039.5%20-39.5Q2974.0%209.0%202877.0%209.0Q2798.0%209.0%202735.5%20-26.5Q2673.0%20-62.0%202637.5%20-126.5Q2602.0%20-191.0%202602.0%20-276.0Q2602.0%20-361.0%202636.5%20-425.5Q2671.0%20-490.0%202733.5%20-525.0Q2796.0%20-560.0%202877.0%20-560.0Q2955.0%20-560.0%203016.0%20-526.0Q3077.0%20-492.0%203111.0%20-430.5Q3145.0%20-369.0%203145.0%20-289.0Q3145.0%20-258.0%203141.0%20-233.0ZM3026.0%20-325.0Q3025.0%20-388.0%202981.0%20-426.0Q2937.0%20-464.0%202872.0%20-464.0Q2813.0%20-464.0%202771.0%20-426.5Q2729.0%20-389.0%202721.0%20-325.0Z%20M3493.0%20-279.0%203671.0%200.0H3542.0L3423.0%20-187.0L3311.0%200.0H3192.0L3370.0%20-271.0L3192.0%20-551.0H3321.0L3440.0%20-364.0L3552.0%20-551.0H3671.0Z%20M3978.0%20-560.0Q4043.0%20-560.0%204091.5%20-534.5Q4140.0%20-509.0%204169.0%20-471.0V-551.0H4284.0V0.0H4169.0V-82.0Q4140.0%20-43.0%204090.0%20-17.0Q4040.0%209.0%203976.0%209.0Q3905.0%209.0%203846.0%20-27.5Q3787.0%20-64.0%203752.5%20-129.5Q3718.0%20-195.0%203718.0%20-278.0Q3718.0%20-361.0%203752.5%20-425.0Q3787.0%20-489.0%203846.5%20-524.5Q3906.0%20-560.0%203978.0%20-560.0ZM4002.0%20-461.0Q3958.0%20-461.0%203920.0%20-439.5Q3882.0%20-418.0%203858.5%20-376.5Q3835.0%20-335.0%203835.0%20-278.0Q3835.0%20-221.0%203858.5%20-178.0Q3882.0%20-135.0%203920.5%20-112.5Q3959.0%20-90.0%204002.0%20-90.0Q4046.0%20-90.0%204084.0%20-112.0Q4122.0%20-134.0%204145.5%20-176.5Q4169.0%20-219.0%204169.0%20-276.0Q4169.0%20-333.0%204145.5%20-375.0Q4122.0%20-417.0%204084.0%20-439.0Q4046.0%20-461.0%204002.0%20-461.0Z%22%20fill%3D%22%23252638%22%2F%3E%3C%2Fsvg%3E"); vertical-align: bottom; padding-bottom: 2mm; border-bottom: 0.25mm solid #0B111A; }
  @top-center { content: "الإمارات في المؤشرات العالمية 2026 · ملخص التنافسية"; font-family: var(--font-report-body); font-size: 7pt; color: #5B6676; vertical-align: bottom; padding-bottom: 2.6mm; border-bottom: 0.25mm solid #0B111A; }
  @top-right  { content: "مرصد المؤشرات العالمية"; font-family: var(--font-report-body); font-weight: 600; font-size: 7.4pt; color: #0B111A; vertical-align: bottom; padding-bottom: 2.5mm; border-bottom: 0.25mm solid #0B111A; }
  @bottom-left  { content: "صفحة " counter(page) " من " counter(pages); font-family: var(--font-report-body); font-size: 7.4pt; color: #0B111A; vertical-align: top; padding-top: 2.6mm; border-top: 0.2mm solid #D8DDE5; }
  @bottom-center{ content: "PNX-GIO-AE-2026-02 · الإصدار 1.0"; font-family: var(--font-report-body); font-size: 7pt; color: #8A94A3; vertical-align: top; padding-top: 2.6mm; border-top: 0.2mm solid #D8DDE5; letter-spacing: .04em; }
  @bottom-right { content: "للاستخدام العام"; font-family: var(--font-report-body); font-size: 7.2pt; color: #5B6676; vertical-align: top; padding-top: 2.6mm; border-top: 0.2mm solid #D8DDE5; }
}
@page opener {
  @top-left { content: none; border: 0; } @top-center { content: none; border: 0; } @top-right { content: none; border: 0; }
  @bottom-left { margin-left: 17mm; } @bottom-right { margin-right: 17mm; }
}
@page cover { @top-left{content:none;border:0} @top-center{content:none;border:0} @top-right{content:none;border:0} @bottom-left{content:none;border:0} @bottom-center{content:none;border:0} @bottom-right{content:none;border:0} }
@page backcover { @top-left{content:none;border:0} @top-center{content:none;border:0} @top-right{content:none;border:0} @bottom-left{content:none;border:0} @bottom-center{content:none;border:0} @bottom-right{content:none;border:0} }
@page s1 { @top-right { content: "1 · في صفحة واحدة"; } }
.s1 { page: s1; }
@page s2 { @top-right { content: "2 · الإمارات في الصدارة العالمية"; } }
.s2 { page: s2; }
@page s3 { @top-right { content: "3 · ضمن العشرة الأوائل"; } }
.s3 { page: s3; }
@page s4 { @top-right { content: "4 · الأداء حسب القطاع"; } }
.s4 { page: s4; }
@page s5 { @top-right { content: "5 · أبرز الفجوات"; } }
.s5 { page: s5; }
@page s6 { @top-right { content: "6 · أولويات التحسين"; } }
.s6 { page: s6; }
@page s7 { @top-right { content: "7 · المنهجية باختصار"; } }
.s7 { page: s7; }

.sumsec { break-before: page; }
.sumsec:first-of-type { break-before: auto; }


/* ===== web adaptations from style#web ===== */
/* ==========================================================================
   Pollnexa report — SCREEN edition layer (web.css)
   Loaded after styles.css. Everything is scoped to `@media screen` on
   body.web, so the print stylesheet (@page masters, A4 layout) is untouched
   and Ctrl+P / window.print() still produces the A4 report.
   ========================================================================== */
:root { color-scheme: light; }

@media screen {
  html { scroll-behavior: smooth; scroll-padding-top: 116px; -webkit-text-size-adjust: 100%; }
  body.web {
    --col: 920px;
    --gut: 32px;
    --z: 1.33;            /* scale the mm-based print typography up for screen reading */
    background: #EEF1F4;
    font-size: 15px;
    overflow-x: clip;
  }
  body.web .web-only { display: block; }
  body.web .sample-mark { position: fixed; }

  /* ---------------------------------------------------------------- top bar */
  .webbar { position: sticky; top: 0; z-index: 40; background: rgba(11,17,26,.97); color: #fff;
    border-bottom: 1px solid #1C232D; backdrop-filter: saturate(140%) blur(6px); }
  .wb-row { max-width: 1240px; margin: 0 auto; padding: 10px var(--gut) 6px; display: flex; align-items: center; gap: 18px; }
  .wb-logo { display: block; width: 112px; flex: none; line-height: 0; }
  .wb-logo svg { width: 112px; height: auto; display: block; }
  .wb-title { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
  .wb-title b { font-family: var(--f-display); font-weight: 700; font-size: 14px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .wb-title span { font-size: 12px; color: #8A94A3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .wb-actions { margin-inline-start: auto; display: flex; align-items: center; gap: 10px; flex: none; }
  .wb-link { font-size: 12.5px; color: #C9D3E3; text-decoration: none; border: 1px solid #285563; border-radius: 999px; padding: 6px 12px; white-space: nowrap; cursor: pointer; transition: color .2s, border-color .2s; }
  .wb-link:hover { color: #45D3D3; border-color: #45D3D3; }
  .wb-print { font: 600 13px/1 var(--f-body); color: #0B111A; background: #45D3D3; border: 0; border-radius: 999px; padding: 9px 16px; cursor: pointer; white-space: nowrap; }
  .wb-print:hover { background: #6FE0E0; }
  .wb-print:focus-visible, .wb-link:focus-visible, .wb-nav a:focus-visible { outline: 2px solid #45D3D3; outline-offset: 2px; }
  .wb-nav { max-width: 1240px; margin: 0 auto; padding: 0 var(--gut) 8px; display: flex; gap: 6px; overflow-x: auto;
    scrollbar-width: none; -ms-overflow-style: none; }
  .wb-nav::-webkit-scrollbar { display: none; }
  .wb-nav a { flex: none; font-size: 12.5px; color: #AEB8C6; text-decoration: none; padding: 5px 11px; border-radius: 999px; border: 1px solid transparent; white-space: nowrap; }
  .wb-nav a:hover { color: #fff; border-color: #2A3644; }
  .wb-nav a.on { color: #0B111A; background: #45D3D3; font-weight: 600; }

  /* ---------------------------------------------------------------- dark bands */
  body.web .cover, body.web .back {
    width: auto; height: auto; min-height: 0; position: relative; overflow: hidden;
  }
  body.web .cover > *:not(.rings), body.web .back > *:not(.rings) { position: relative; inset: auto; }
  body.web .cover { padding: 56px var(--gut) 52px; }
  body.web .cover > .top, body.web .cover > .pill, body.web .cover > .flag, body.web .cover > .titles,
  body.web .cover > .stats, body.web .cover > .note-k, body.web .cover > .bottom { max-width: var(--col); margin-inline: auto; top: auto; right: auto; left: auto; bottom: auto; }
  body.web .cover > .top { display: none; }            /* logo lives in the sticky bar */
  body.web .cover > .flag { width: 54px; margin-bottom: -26px; margin-inline-start: auto; margin-inline-end: 0; }
  body.web .cover > .flag svg { width: 54px; height: 27px; }
  body.web .cover > .pill { display: flex; margin-bottom: 22px; }
  body.web .cover h1 { font-size: clamp(34px, 5.2vw, 58px); line-height: 1.3; }
  body.web .cover .subtitle { font-size: clamp(19px, 2.3vw, 24px); }
  body.web .cover .subtitle .sub2 { font-size: 15px; }
  body.web .cover .edition { font-size: 14px; }
  body.web .cover > .stats { margin-top: 44px; background: transparent; }
  body.web .cover > .note-k { margin-top: 10px; font-size: 13px; }
  body.web .cover > .bottom { margin-top: 40px; display: grid; grid-template-columns: 1fr 170px; gap: 36px; align-items: end; }
  body.web .cover .seal svg { width: 170px; height: 170px; }
  body.web .cover .foot { font-size: 12.5px; }
  body.web .cover .rings, body.web .back .rings, body.web .opener .rings { position: absolute; inset: 0; width: 100%; height: 100%; }

  .stats .v { font-size: clamp(30px, 4vw, 46px); }
  .stats .l { font-size: 13px; }
  .stats .st { padding: 18px 16px 18px 8px; }
  .accr .accr-h { font-size: 12px; }
  .accr .row { gap: 10px; }
  .accr .bd { min-height: 54px; border-radius: 6px; padding: 8px 6px; }
  .accr .bd .lt { font-size: 13px; }
  .accr .bd .ar { font-size: 11px; }

  /* section openers → compact dark band */
  body.web .opener { height: auto; overflow: visible; margin: 0; }
  body.web .opener .band { height: auto; padding: 40px var(--gut) 34px; }
  body.web .opener .band > :not(.rings) { position: relative; max-width: var(--col); margin-inline: auto; }
  body.web .opener .band .meta { display: none; }
  body.web .opener .band .no { position: relative; right: auto; top: auto; font-size: clamp(64px, 9vw, 112px); line-height: .9; }
  body.web .opener .band .tt { position: relative; right: auto; left: auto; bottom: auto; margin-top: 18px; padding-top: 16px; }
  body.web .opener .band h1 { font-size: clamp(24px, 3.2vw, 36px); max-width: none; }
  body.web .opener .band .tt .en { font-size: 12px; }
  body.web .opener .body { max-width: var(--col); margin: 0 auto; padding: 26px var(--gut) 8px; gap: 40px; }
  body.web .opener .body .intro { font-size: 17px; line-height: 1.85; }
  body.web .opener .body .inside .h4 { font-size: 12.5px; }
  body.web .opener .body .inside li { font-size: 14px; padding: 7px 0; }

  /* back cover → footer band */
  body.web .back { padding: 52px var(--gut) 40px; }
  body.web .back > .inner, body.web .back > .contact, body.web .back > .lic { max-width: var(--col); margin-inline: auto; top: auto; right: auto; left: auto; bottom: auto; }
  body.web .back > .seal, body.web .back > .accr { display: none; }   /* repeated in the web footer */
  body.web .back .wm { width: 180px !important; }
  body.web .back .about-pnx { font-size: 15.5px; }
  body.web .back .obs { font-size: 15px; }
  body.web .back > .contact { margin-top: 34px; }
  body.web .back .contact .k { font-size: 12px; }
  body.web .back .contact .v { font-size: 14px; }
  body.web .back > .lic { margin-top: 26px; font-size: 11.5px; }

  /* ---------------------------------------------------------------- content cards */
  body.web .wcard {
    zoom: var(--z);
    width: calc(var(--col) / var(--z)); max-width: calc((100vw - 2 * var(--gut)) / var(--z));
    margin: calc(26px / var(--z)) auto calc(34px / var(--z));
    background: #fff; border: 1px solid #E1E6EC; border-radius: calc(10px / var(--z));
    padding: calc(34px / var(--z)) calc(40px / var(--z));
    box-shadow: 0 1px 2px rgba(11,17,26,.04);
  }
  body.web .front-matter.wcard { margin-top: calc(34px / var(--z)); }

  /* kill print pagination on screen */
  body.web .page-break, body.web .sumsec, body.web .opener { break-before: auto; }
  body.web div.page-break:empty { display: none; }
  body.web h3.page-break { margin-top: 8mm !important; }
  body.web .toc .p, body.web .toc .dots { display: none; }
  body.web .toc .row { grid-template-columns: 13mm 1fr; }
  body.web .toc a:hover { color: var(--teal-text); }
  body.web .toc .sub a { color: var(--muted); }
  body.web .toc .sub a:hover { color: var(--teal-text); }

  /* links & focus inside content */
  body.web a:focus-visible { outline: 2px solid var(--teal-text); outline-offset: 2px; }

  /* wide tables scroll inside their own box */
  body.web .tscroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 4mm; }
  body.web .tscroll > table { margin-bottom: 0; }

  /* ---------------------------------------------------------------- web footer */
  .webfoot { background: #0B111A; color: #C9D3E3; border-top: 1px solid #1C232D; }
  .wf-in { max-width: var(--col); margin: 0 auto; padding: 36px var(--gut) 44px; display: grid;
    grid-template-columns: 1.4fr .8fr; gap: 28px 40px; }
  .wf-logo { width: 130px; margin-bottom: 14px; }
  .wf-logo svg { width: 130px; height: auto; display: block; }
  .wf-ref { font-size: 12.5px; color: #8A94A3; line-height: 1.7; }
  .wf-disc { font-size: 13px; color: #C9D3E3; line-height: 1.8; margin: 10px 0 0; text-align: start; }
  .wf-b { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; }
  .wf-b a { color: #fff; text-decoration: none; text-align: right; }
  .wf-b a:hover { color: #45D3D3; }
  .wf-h { font-size: 12px; color: #45D3D3; margin-bottom: 4px; }
  .wf-c { grid-column: 1 / -1; }
}

/* ---------------------------------------------------------------- tablet / phone */
@media screen and (max-width: 1020px) {
  body.web { --z: 1.2; }
}
@media screen and (max-width: 820px) {
  body.web { --gut: 16px; --z: 1.08; }
  html { scroll-padding-top: 104px; }
  .wb-row { padding: 8px var(--gut) 4px; gap: 10px; }
  .wb-logo, .wb-logo svg { width: 92px; }
  .wb-title b { font-size: 12.5px; }
  .wb-title span { display: none; }
  .wb-link { display: none; }
  .wb-print { padding: 8px 12px; font-size: 12px; }
  .wb-nav { padding: 2px var(--gut) 8px; }
  .wb-nav a { background: #1A2431; }
  .wb-nav a.on { background: #45D3D3; }

  body.web .cover { padding: 34px var(--gut) 34px; }
  body.web .cover > .bottom { grid-template-columns: 1fr; gap: 22px; }
  body.web .cover > .bottom .seal { order: -1; }
  body.web .cover .seal svg { width: 128px; height: 128px; }
  .stats { grid-template-columns: 1fr 1fr; }
  .stats .st:nth-child(2) { border-left: 0; }
  .stats .st:nth-child(-n+2) { border-bottom: 1px solid var(--hair-dark); }
  .stats.light .st:nth-child(-n+2) { border-bottom-color: var(--hair); }
  .accr .row { grid-template-columns: 1fr 1fr; }

  body.web .opener .band { padding: 28px var(--gut) 24px; }
  body.web .opener .band .tt { flex-direction: column; gap: 6px; }
  body.web .opener .band .tt .en { text-align: right; max-width: none; }
  body.web .opener .body { grid-template-columns: 1fr; gap: 16px; padding: 20px var(--gut) 4px; }

  body.web .wcard { padding: calc(20px / var(--z)) calc(16px / var(--z)); border-radius: calc(8px / var(--z));
    margin-top: calc(16px / var(--z)); margin-bottom: calc(20px / var(--z)); }

  /* collapse multi-column print grids */
  body.web .about .cols, body.web .exec, body.web .sg, body.web .cards-list, body.web .firsts,
  body.web .hero-grid, body.web .method-grid, body.web .matrix-wrap, body.web .matrix-wrap.compact,
  body.web .fstrip, body.web .read .three, body.web .read .three.two, body.web .vsum, body.web .approval { grid-template-columns: 1fr; }
  body.web .sg .col + .col { border-right: 0; border-top: 0.25mm solid var(--rule); }
  body.web .vsum div { border-left: 0; border-bottom: 0.25mm solid var(--hair); }
  body.web .cols2, body.web .sources { columns: 1; }
  body.web .hero.wide .hx { flex-direction: column; gap: 3mm; }
  body.web .hero.wide .who { padding-inline-end: 0; }
  body.web .hero.wide .num { width: auto; border-right: 0; border-top: 0.25mm solid var(--hair-dark); padding: 3mm 0 0; }
  body.web .hero-grid.one .hero { min-height: 0; }
  body.web .matrix-wrap svg, body.web .matrix-wrap.compact svg { width: 100%; max-width: 82mm; margin: 0 auto; }
  body.web .approval svg { width: 34mm; height: 34mm; margin: 0 auto; }
  body.web .read .rh { grid-template-columns: 1fr auto; }
  body.web .sector-hd { grid-template-columns: auto 1fr; row-gap: 1.5mm; }
  body.web .sector-hd .meta { grid-column: 1 / -1; justify-self: start; flex-wrap: wrap; }
  body.web .pointer { flex-direction: column; align-items: flex-start; }
  body.web .back .contact { grid-template-columns: 1fr 1fr; row-gap: 10px; }
  body.web .back .lic { flex-direction: column; gap: 6px; }
  .wf-in { grid-template-columns: 1fr; }
  body.web .toc .row .t .en { display: block; margin: 0; }
  body.web .secblk li { grid-template-columns: 1fr auto; }
  body.web .secblk li .chip { grid-column: 2; }
  /* tables: keep columns readable; scroll horizontally inside .tscroll */
  body.web .tscroll > table.data, body.web .tscroll > table.ladder { min-width: 150mm; }
  body.web .tscroll > table.pchart { min-width: 150mm; }
}
@media screen and (max-width: 420px) {
  .wb-title { display: none; }
}

/* ---- Standalone report page helpers ---- */
body.web .wb-word {
  font-weight: 600;
  font-size: 18px;
  color: #fff;
  letter-spacing: 0.02em;
}
body.web .wb-word b { color: #45D3D3; font-weight: 700; }
body.web .cover .flag .flag,
body.web .cover .flag img {
  display: block;
  width: 54px;
  height: 27px;
}
body.web .cover .flag .em { display: none; }
body.web .chip.leader { background: var(--teal); color: var(--ink); }
body.web .chip.advanced { background: var(--ink); color: #fff; }
body.web .chip.needs { background: var(--red-tint); color: var(--red); }

/* Standalone pages: unwrap #report-root so EN matches AR master (body.web) layout */
body.web #report-root.gio-doc {
  display: contents;
}

/* EN LTR: same content column as titles (max-width + centered).
   Pill text starts at column start (left) — mirror of AR pill at column start (right). */
html.is-en body.web,
html[lang="en"] body.web {
  direction: ltr;
}
html.is-en body.web .cover > .pill,
html[lang="en"] body.web .cover > .pill {
  width: 100%;
  max-width: var(--col);
  margin-inline: auto;
  justify-content: flex-start;
}
html.is-en body.web .cover > .flag,
html[lang="en"] body.web .cover > .flag {
  max-width: var(--col);
  margin-inline: auto;
  margin-inline-start: auto;
  margin-inline-end: 0;
  width: 54px;
}
html.is-en .pbar,
html[lang="en"] .pbar {
  direction: ltr;
}
html.is-en table.data th,
html[lang="en"] table.data th,
html.is-en table.data .pub,
html[lang="en"] table.data .pub,
html.is-en table.data .idx .en,
html[lang="en"] table.data .idx .en,
html.is-en .factsheet th,
html[lang="en"] .factsheet th {
  text-align: left;
}
