/* venue report pages and the hub cards */
.openn{background:var(--nvbg);color:var(--nv);font-weight:800;border-radius:999px;padding:0 9px}
/* hub cards: the headline takes the spare height so figures and footers line up across cards;
   figures are rows (number, then label) so a long number or label never leaves its box */
.hub .xc-line{flex:1 0 auto;font-size:16px;line-height:1.45;text-wrap:pretty}
.hub .xc-stats{grid-template-columns:minmax(0,1fr);gap:0;background:var(--paper);border-radius:12px;padding:3px 14px}
.hub .xc-stats div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:baseline;min-width:0;background:none;border-radius:0;padding:9px 0}
.hub .xc-stats div+div{border-top:1px solid var(--line)}
.hub .xc-stats b{font-size:19px;white-space:nowrap;font-variant-numeric:tabular-nums}
.hub .xc-stats span{font-size:13px;line-height:1.35}
.hub .xc-foot{margin-top:6px}
.hub .grid{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}

.venue .keys{grid-template-columns:repeat(3,minmax(0,1fr))}
.venue .k{cursor:default}
.venue .k span{font-size:13.5px}
.venue #intro{padding-top:22px}
.venue .lead{font-size:clamp(17px,2.1vw,20px);color:var(--ink2)}
.venue #tldr li{margin:9px 0}
.venue figure.card{margin:24px 0 16px}
.venue figure.card a{display:block}
.venue figure.card img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--line);background:var(--card)}
.venue table.cp td:first-child{min-width:230px}
.venue table.cp td:nth-child(3){white-space:nowrap;color:var(--ink2)}
.venue table.cp td{font-size:14.5px;line-height:1.55}
.badge.pt{background:#f1e7c6;color:#6a5310}
.badge.tm{background:#dde7f2;color:#2f4d73}
.badge.op{background:var(--nvbg);color:var(--nv)}
@media (max-width:700px){
  .venue .keys{grid-template-columns:1fr}
  .venue table.cp td:first-child{min-width:170px}
  .venue table.cp td:nth-child(3){white-space:normal}
  .venue table.cp td{font-size:13.5px}
}

/* interactive charts (viz.js) */
.venue{--v-acc:#d9541f;--v-blue:#2f6aa8;--v-gray:#8c8680;--v-ink:#55524d}
.f-acc{fill:var(--v-acc)} .f-blue{fill:var(--v-blue)} .f-gray{fill:var(--v-gray)} .f-ink{fill:var(--v-ink)}
.s-acc{stroke:var(--v-acc)} .s-blue{stroke:var(--v-blue)} .s-gray{stroke:var(--v-gray)} .s-ink{stroke:var(--v-ink)}
.b-acc{background:var(--v-acc)} .b-blue{background:var(--v-blue)} .b-gray{background:var(--v-gray)} .b-ink{background:var(--v-ink)}
.vzg{display:grid;gap:14px;margin:24px 0 10px}
.viz{font-feature-settings:"calt" 0;min-width:0} .viz:empty{display:none}
.vz{margin:0;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px 14px}
.vz figcaption{margin:0 0 12px;color:var(--ink2);font-size:13.5px;line-height:1.5}
.vz figcaption b{display:block;color:var(--ink);font-size:15.5px;letter-spacing:-.01em;margin-bottom:2px}
.vz .legend{margin:0 0 10px}
.vz .legend b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.vz .dot{width:11px;height:11px;border-radius:3px;flex:none}
.vz .chart .lab{fill:var(--ink);font-size:11.5px;font-weight:600}
.vz .chart .ln{stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.vz .chart .pt{stroke:var(--card);stroke-width:2}
.vz .chart .cross{stroke:var(--line2);stroke-dasharray:3 3}
.vz .note{margin:10px 0 0}
.vt{margin-top:10px;border:1px solid var(--line2);background:var(--paper);color:var(--ink2);border-radius:999px;padding:3px 12px;font:inherit;font-size:12.5px;cursor:pointer}
.vt:hover,.vt:focus-visible{border-color:var(--ink);color:var(--ink)}
.vd{margin:10px 0 0;max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.vd table{font-size:13px} .vd th{position:sticky;top:0;background:var(--card)}
.venue .tip b{display:block;font-size:13.5px}
.vz-on figure.card.fb{display:none}
.fbl{display:none;margin:0 0 4px!important} .vz-on .fbl{display:block}
.hb{display:grid;gap:8px}
.hbr{display:grid;grid-template-columns:minmax(120px,38%) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13.5px;line-height:1.35}
.hbl{min-width:0;display:flex;gap:6px;align-items:center;flex-wrap:wrap;color:var(--ink)}
.hbl a{color:inherit;text-underline-offset:3px}
.hbt{height:16px;border-radius:4px;min-width:0}
.hb.meter .hbt{background:var(--paper2,#ebe6e1)}
.hbf{display:block;height:100%;border-radius:0 4px 4px 0;min-width:2px}
.hbv{min-width:58px;font-size:13px;font-weight:600}
.vtag{font-style:normal;font-size:11.5px;line-height:1.5;color:var(--ink2);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:0 7px;white-space:nowrap}
.sg{display:flex;gap:2px;height:30px;margin:2px 0 12px}
.sg i{display:block;flex:1 1 0;min-width:3px}
.sg i:first-child{border-radius:4px 0 0 4px} .sg i:last-child{border-radius:0 4px 4px 0}
.sg i:hover{opacity:.82}
.vtbl th{cursor:pointer;user-select:none} .vtbl th:hover,.vtbl th:focus-visible{color:var(--ink)}
.vtbl th.s{color:var(--ink)} .vtbl th.s::after{content:' ↓'} .vtbl th.s.asc::after{content:' ↑'}
.vtbl td{font-size:13.5px;white-space:nowrap}
.vtbl.wrap td{white-space:normal;vertical-align:top;min-width:7.5em;line-height:1.45} .vtbl.wrap td:first-child{font-weight:600;min-width:6.5em}
.vtbl.fixed th{cursor:default} .vtbl.fixed th:hover{color:inherit}
.vscroll{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.vscroll thead th{position:sticky;top:0;background:var(--card)}
.vmap svg text{font-family:inherit}
.mnode,.mlink,.mgrp{cursor:pointer;outline:none}
.mnode>rect:first-child{fill:var(--paper);stroke:var(--line2);stroke-width:1.2}
.mnode:hover>rect:first-child{stroke:var(--ink2)}
.mnode.on>rect:first-child{stroke:var(--ink);stroke-width:2;fill:#fff}
.mnode:focus-visible>rect:first-child,.mgrp:focus-visible>rect{stroke:var(--v-acc);stroke-width:2}
.mnode text.l{font-size:12.5px;font-weight:700;fill:var(--ink)} .mnode text.s{font-size:11.5px;fill:var(--ink2)}
.mgrp>rect{fill:transparent;stroke:var(--line2);stroke-width:1.2;stroke-dasharray:5 4}
.mgrp.on>rect{stroke:var(--ink);stroke-width:1.6}
.mgrp text{font-size:12px;font-weight:600;fill:var(--ink2)}
.mlink line{stroke:var(--line2);stroke-width:2} .mlink polygon{fill:var(--line2)}
.mchip rect{fill:var(--card);stroke:var(--line2);stroke-width:1.2}
.mchip text{font-size:11.5px;font-weight:600;fill:var(--ink)}
.mlink:hover .mchip rect{stroke:var(--ink2)}
.mlink.on line{stroke:var(--v-acc)} .mlink.on polygon{fill:var(--v-acc)}
.mlink.on .mchip rect,.mlink:focus-visible .mchip rect{stroke:var(--v-acc);stroke-width:2}
.mev{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.mev h4{margin:0 0 6px;font-size:15.5px;letter-spacing:-.01em}
.venue .mev p{font-size:14.5px;line-height:1.6;margin:6px 0}
.mev .mno{color:var(--ink2)}
.mkv{margin:8px 0;max-width:520px} .mkv td{font-size:13.5px;padding:6px 8px}
.mkv td:first-child{color:var(--ink2)}
.cpf{margin:10px 0 12px}
@media (max-width:560px){
  .vz{padding:14px 12px 12px}
  .hbr{grid-template-columns:minmax(0,1fr) auto;row-gap:3px}
  .hbl{grid-column:1/-1}
}

/* black-and-white theme */
.venue.bw{--paper:#f5f5f5;--paper2:#e8e8e8;--card:#fcfcfc;--ink:#111;--ink2:#444;--mute:#7a7a7a;--line:#d8d8d8;--line2:#c6c6c6;
  --acc:#111;--accbg:#e4e4e4;--acc2:#111;--ok:#fff;--okbg:#111;--nv:#111;--nvbg:#e4e4e4}
.venue.bw .top{background:rgba(245,245,245,.86)}
.venue.bw .badge.pt{background:#bdbdbd;color:#111}
.venue.bw .badge.tm{background:#dcdcdc;color:#111}
.venue.bw .badge.op{background:#fff;color:#111;box-shadow:inset 0 0 0 1px #111}
.venue.bw .me img,.venue.bw .rlogo{filter:grayscale(1)}
.venue.bw{--v-acc:#111;--v-blue:#5c5c5c;--v-gray:#8f8f8f;--v-ink:#3a3a3a}
