/* Coverage block palette — zesterex. Generated by build_coverage.py; edit there. */
.cov {
  --cov-ink: #16243A; --cov-body: #3b4a63; --cov-mute: #5d6674; --cov-rule: rgba(22,36,58,.22);
  --cov-paper: #eadfc0; --cov-accent: #9E2A2B; --cov-empty: #ddd2b3; --cov-tint: rgba(158,42,43,.06);
  --cov-l1: #caa08a; --cov-l2: #be7e6f; --cov-l3: #b05951; --cov-l4: #9e2a2b; --cov-hover: #16243A;
  --cov-display: var(--font-display); --cov-mono: var(--font-mono); --cov-radius: 2px;
  --cov-num-weight: 400; --cov-h-weight: 500;
}

/* ---- Coverage block (shared component; site palette mapped above) ---- */
.cov { color: var(--cov-body); }
.cov *, .cov *::before, .cov *::after { box-sizing: border-box; }
.cov-h3 { font-family: var(--cov-display); font-size: 20px; line-height: 1.25; font-weight: var(--cov-h-weight, 600); color: var(--cov-ink); margin: 0 0 14px; }

/* optional intro paragraph (sitecov_render intro option) */
.cov-intro { max-width: 68ch; margin: 0 0 32px; font-size: 17px; line-height: 1.6; color: var(--cov-body); }

/* headline numbers */
.cov-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 40px; border-top: 2px solid var(--cov-ink); border-bottom: 1px solid var(--cov-rule); }
.cov-stat { padding: 18px 18px 16px; border-left: 1px solid var(--cov-rule); }
.cov-stat:first-child { border-left: 0; padding-left: 0; }
.cov-big { display: block; font-family: var(--cov-display); font-weight: var(--cov-num-weight, 500); font-size: clamp(34px, 4.2vw, 52px); line-height: 1; color: var(--cov-ink); letter-spacing: -.02em; margin-bottom: 8px; }
.cov-lab { display: block; font-family: var(--cov-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--cov-ink); }
.cov-snote { order: -1; }
.cov-suf { color: var(--cov-accent); margin-left: 2px; }
.cov-snote { display: block; margin: 6px 0 0; font-size: 13px; line-height: 1.4; color: var(--cov-mute); text-align: left; hyphens: none; }

/* map + world list */
.cov-geo { display: grid; grid-template-columns: 1.75fr 1fr; gap: 40px; align-items: start; }
.cov-maphead { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; min-height: 22px; }
.cov-readout { font-family: var(--cov-mono); font-size: 13.5px; color: var(--cov-ink); }
.cov-rd { color: var(--cov-accent); }
.cov-legend { display: inline-flex; align-items: center; gap: 6px; font-family: var(--cov-mono); font-size: 11px; color: var(--cov-mute); }
.cov-legend span:first-child { margin-right: 4px; letter-spacing: .08em; text-transform: uppercase; }
.cov-legend i { width: 12px; height: 12px; border-radius: 2px; display: inline-block; }
.cov-legend i + span { margin-right: 6px; }
.cov-map { width: 100%; height: auto; display: block; }
.cov-map .cov-st { fill: var(--cov-empty); stroke: var(--cov-paper); stroke-width: 1; transition: fill .15s ease; outline: none; }
.cov-map .cov-st.on { cursor: pointer; }
.cov-map .l1, .cov-legend .l1 { fill: var(--cov-l1); background: var(--cov-l1); }
.cov-map .l2, .cov-legend .l2 { fill: var(--cov-l2); background: var(--cov-l2); }
.cov-map .l3, .cov-legend .l3 { fill: var(--cov-l3); background: var(--cov-l3); }
.cov-map .l4, .cov-legend .l4 { fill: var(--cov-l4); background: var(--cov-l4); }
.cov-map .cov-st:hover, .cov-map .cov-st:focus-visible { fill: var(--cov-hover); }
.cov-mapnote { margin: 8px 0 0; font-size: 13px; color: var(--cov-mute); text-align: left; }
.cov-countries { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cov-rule); }
.cov-countries li { display: grid; grid-template-columns: 1fr; padding: 10px 0; border-bottom: 1px solid var(--cov-rule); }
.cov-cn { font-weight: 600; color: var(--cov-ink); font-size: 15px; }
.cov-cl { font-size: 13.5px; color: var(--cov-mute); line-height: 1.45; text-align: left; hyphens: none; }

/* matrix */
.cov-mx { margin-top: 48px; }
.cov-mxhead p { margin: 0 0 16px; max-width: 70ch; font-size: 15px; line-height: 1.55; }
.cov-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 2px solid var(--cov-ink); }
.cov-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 13.5px; }
.cov-table th, .cov-table td { padding: 8px 10px; border-bottom: 1px solid var(--cov-rule); text-align: left; vertical-align: middle; }
.cov-table thead th { min-width: 92px; font-family: var(--cov-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--cov-mute); line-height: 1.3; vertical-align: bottom; }
.cov-table tbody th { font-weight: 600; color: var(--cov-ink); white-space: nowrap; }
.cov-table td { white-space: nowrap; line-height: 0; }
.cov-table i { display: inline-block; width: 9px; height: 9px; margin: 0 3px 0 0; border: 1.5px solid var(--cov-accent); border-radius: 1px; }
.cov-table i.h { background: var(--cov-accent); }
.cov-table td b { font-family: var(--cov-mono); font-size: 12px; font-weight: 600; color: var(--cov-ink); line-height: 1; vertical-align: 1px; margin-left: 2px; }
.cov-table .cov-tot { text-align: right; font-family: var(--cov-mono); font-weight: 600; color: var(--cov-ink); line-height: 1.2; }
.cov-table tbody tr:hover { background: var(--cov-tint); }
.cov-table.is-collapsed .cov-more { display: none; }
.cov-mxfoot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 12px; }
.cov-key { font-family: var(--cov-mono); font-size: 11.5px; color: var(--cov-mute); }
.cov-key i { display: inline-block; width: 9px; height: 9px; margin: 0 4px 0 8px; border: 1.5px solid var(--cov-accent); border-radius: 1px; vertical-align: -1px; }
.cov-key i:first-child { margin-left: 0; }
.cov-key i.h { background: var(--cov-accent); }
.cov-toggle { font: 600 13px/1 var(--cov-mono); letter-spacing: .04em; color: var(--cov-accent); background: transparent; border: 1.5px solid var(--cov-accent); border-radius: var(--cov-radius); padding: 9px 14px; cursor: pointer; }
.cov-toggle:hover { background: var(--cov-accent); color: var(--cov-paper); }

/* every location */
.cov-places { margin-top: 36px; border-top: 1px solid var(--cov-rule); border-bottom: 1px solid var(--cov-rule); }
.cov-places summary { cursor: pointer; padding: 14px 0; font-weight: 600; color: var(--cov-ink); font-size: 15px; }
.cov-placelist { columns: 2; column-gap: 40px; padding: 4px 0 16px; }
.cov-placelist p { break-inside: avoid; margin: 0 0 12px; font-size: 13.5px; line-height: 1.55; text-align: left; hyphens: none; }
.cov-placelist b { color: var(--cov-ink); }
.cov-pc { font-family: var(--cov-mono); font-size: 11.5px; color: var(--cov-mute); }
.cov-fine { margin: 14px 0 0; font-size: 12.5px; color: var(--cov-mute); text-align: left; }

@media (max-width: 900px) {
  .cov-geo { grid-template-columns: 1fr; gap: 28px; }
  .cov-stats { grid-template-columns: repeat(2, 1fr); }
  .cov-stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .cov-stat:nth-child(n+3) { border-top: 1px solid var(--cov-rule); }
  .cov-placelist { columns: 1; }
}
@media (prefers-reduced-motion: reduce) { .cov-map .cov-st { transition: none; } }
.cov-table thead th:first-child, .cov-table thead th.cov-tot { min-width: 0; }
