/* Virus Navigator (built by build_virus_navigator_pages.py) */
.vn-wrap { max-width: 64rem; margin: 0 auto; padding: 1rem 1rem 3rem; }
.vn-wrap h2 { font-family: Lexend, Inter, system-ui, sans-serif; font-size: 1.35rem; font-weight: 600;
  color: #1a365d; margin: 2rem 0 .6rem; }
.vn-wrap h2:first-child { margin-top: .5rem; }
.vn-wrap p { line-height: 1.65; margin: 0 0 .8rem; }
.vn-note { background: #f8fafc; border: 1px solid #dbe4ee; border-left: 4px solid #2c7a9e;
  border-radius: 6px; padding: .85rem 1rem; margin: 1rem 0 1.4rem; }
.vn-note p { margin: 0 0 .45rem; }
.vn-note p:last-child { margin-bottom: 0; }
.vn-note strong { color: #1a365d; }
.vn-controls { display: flex; flex-wrap: wrap; gap: .6rem; align-items: flex-end; margin: 1rem 0; }
.vn-controls label { display: block; font-size: .78rem; font-weight: 600; color: #3f5872;
  text-transform: uppercase; letter-spacing: .04em; margin-bottom: .25rem; }
.vn-controls input, .vn-controls select { font: inherit; padding: .55rem .6rem; min-height: 44px;
  border: 1px solid #b6c4d4; border-radius: 6px; background: #fff; color: #1f2933; }
.vn-controls input { min-width: 16rem; }
.vn-count { font-size: .9rem; color: #52606d; margin: .2rem 0 .8rem; }
.vn-scroll { overflow-x: auto; border: 1px solid #dbe4ee; border-radius: 8px; background: #fff; }
table.vn { width: 100%; border-collapse: collapse; font-size: .92rem; }
table.vn caption { text-align: left; padding: .7rem .8rem; font-size: .85rem; color: #52606d;
  border-bottom: 1px solid #e4ebf3; }
table.vn th, table.vn td { padding: .6rem .75rem; text-align: left; vertical-align: top;
  border-bottom: 1px solid #edf1f6; }
table.vn thead th { background: #f4f7fa; color: #1a365d; font-weight: 600; white-space: nowrap;
  position: sticky; top: 0; z-index: 1; }
table.vn thead th button { font: inherit; font-weight: 600; color: inherit; background: none;
  border: 0; padding: 0; cursor: pointer; text-align: left; }
table.vn thead th button:hover { text-decoration: underline; }
table.vn tbody tr:hover { background: #fafcfe; }
table.vn tbody tr:last-child td { border-bottom: 0; }
.vn-name { font-weight: 600; color: #1a365d; }
.vn-syn { display: block; font-size: .82rem; color: #6b7a8c; margin-top: .15rem; }
.vn-ns { color: #6b7a8c; font-style: italic; font-size: .86rem; white-space: nowrap; }
.vn-class { white-space: nowrap; font-variant-numeric: tabular-nums; }
.vn-fam-list { columns: 2 16rem; column-gap: 2rem; margin: .5rem 0 1.5rem; padding-left: 1.1rem; }
.vn-fam-list li { margin: 0 0 .35rem; break-inside: avoid; }
.vn-dl { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; font-size: .9rem; margin: .4rem 0 0; }
.vn-tax { border-collapse: collapse; font-size: .92rem; margin: .3rem 0 1.2rem; }
.vn-tax th, .vn-tax td { padding: .35rem .7rem .35rem 0; text-align: left; vertical-align: top; }
.vn-tax th { color: #3f5872; font-weight: 600; white-space: nowrap; }
.vn-chip { display: inline-block; padding: .15rem .5rem; border-radius: 999px; font-size: .82rem;
  font-weight: 600; background: #eef2f7; color: #3f5872; white-space: nowrap; }
.vn-chip-use { background: #e3f3e8; color: #1d6b38; }
.vn-chip-late { background: #fdf0dd; color: #8a5a10; }
.vn-chip-off { background: #f1f1f3; color: #6b6b75; text-decoration: line-through; }
.vn-est { color: #8a5a10; }
.vn-ns-block { background: #f8fafc; border: 1px dashed #c3d0de; border-radius: 6px;
  padding: .7rem .85rem; color: #46586c; }
.vn-hatch { background: repeating-linear-gradient(45deg, #f6f8fb, #f6f8fb 6px, #eef2f7 6px, #eef2f7 12px); }
.vn-quote summary { cursor: pointer; font-size: .85rem; color: #2c6c8f; }
.vn-quote blockquote { margin: .4rem 0 .2rem; padding-left: .7rem; border-left: 3px solid #cdd9e5;
  font-size: .88rem; color: #374a5e; }
.vn-hosts { margin: .2rem 0 .4rem 1.1rem; font-size: .92rem; }
.vn-map { margin: .6rem 0 1.4rem; }
.vn-map svg { display: block; width: 100%; height: auto; border: 1px solid #dbe4ee;
  border-radius: 8px; background: #eef4fa; }
.vn-map-sea { fill: #eef4fa; }
.vn-map-unknown { fill: #e3e8ee; stroke: #fff; stroke-width: .3; }
.vn-map-out { fill: #dde6ef; stroke: #fff; stroke-width: .3; }
.vn-map-in { fill: #2c7a9e; stroke: #fff; stroke-width: .3; }
.vn-map-b0 { fill: #e8eef4; stroke: #fff; stroke-width: .3; }
.vn-map-b1 { fill: #cfe3ee; stroke: #fff; stroke-width: .3; }
.vn-map-b2 { fill: #9ec9de; stroke: #fff; stroke-width: .3; }
.vn-map-b3 { fill: #5ea3c4; stroke: #fff; stroke-width: .3; }
.vn-map-b4 { fill: #2f7ba3; stroke: #fff; stroke-width: .3; }
.vn-map-b5 { fill: #16526f; stroke: #fff; stroke-width: .3; }
.vn-map-legend { display: flex; flex-wrap: wrap; gap: .3rem .9rem; font-size: .8rem;
  color: #52606d; margin: .5rem 0 .3rem; }
.vn-map-legend span { display: inline-flex; align-items: center; gap: .3rem; }
.vn-key { width: .85rem; height: .85rem; border-radius: 3px; display: inline-block;
  border: 1px solid rgba(0,0,0,.12); }
.vn-key-in { background: #2c7a9e; } .vn-key-out { background: #dde6ef; }
.vn-key-unknown { background: #e3e8ee; }
.vn-key-b0 { background: #e8eef4; } .vn-key-b1 { background: #cfe3ee; }
.vn-key-b2 { background: #9ec9de; } .vn-key-b3 { background: #5ea3c4; }
.vn-key-b4 { background: #2f7ba3; } .vn-key-b5 { background: #16526f; }
.vn-map figcaption { font-size: .82rem; color: #52606d; line-height: 1.5; margin-top: .4rem; }
.vn-note-vet { border-left-color: #a8531a; background: #fdf6f0; }
.vn-note-vet strong { color: #8a4214; }
.vn-wrap h3 { font-size: 1.05rem; font-weight: 600; color: #2d4a68; margin: 1.3rem 0 .5rem; }
@media (max-width: 600px) {
  .vn-controls input { min-width: 100%; }
  table.vn { font-size: .88rem; }
  .vn-fam-list { columns: 1; }
}
@media print {
  .vn-controls, .site-meta-bar, .site-nav, .vn-count { display: none !important; }
  .vn-scroll { overflow: visible; border: 0; }
  table.vn thead th { position: static; }
}
