.packet-table .mesh74-network-load { width: 136px; white-space: nowrap; }
/* The virtualized header and body are separate tables: keep their colgroups
   identical. Russian labels must not paint over the next column. */
.packet-table:has(.mesh74-network-load) thead th {
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.35;
  vertical-align: middle;
}
.packet-table:has(.mesh74-network-load) col:nth-child(2),
.packet-table:has(.mesh74-network-load) th:nth-child(2),
.packet-table:has(.mesh74-network-load) td.direction { width: 50px !important; }
.packet-table:has(.mesh74-network-load) col:nth-child(3),
.packet-table:has(.mesh74-network-load) th:nth-child(3),
.packet-table:has(.mesh74-network-load) td.transport-mechanism { width: 60px !important; }
.packet-table:has(.mesh74-network-load) col:nth-child(13),
.packet-table:has(.mesh74-network-load) th:nth-child(13),
.packet-table:has(.mesh74-network-load) td.hops { width: 80px !important; }
.packet-table:has(.mesh74-network-load) col:nth-child(14),
.packet-table:has(.mesh74-network-load) th:nth-child(14),
.packet-table:has(.mesh74-network-load) td.last-hop { width: 120px !important; }
/* Virtual rows are positioned every 36px. Badges plus the upstream 8px
   vertical padding exceeded that height and painted over the next row. */
.packet-table:has(.mesh74-network-load) tbody tr:not(:has(td[colspan])) td {
  padding-top: 4px;
  padding-bottom: 4px;
}
.packet-table td.hops .hops-link {
  display: inline-block;
  padding: 0 6px;
  border: 1px solid #c4a57455;
  border-radius: 4px;
  background: #c4a57412;
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.12em;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}
.packet-table td.hops .hops-link:hover {
  border-color: #c4a574;
  background: #c4a57425;
}
.mesh74-load-badge {
  display: inline-block;
  padding: 3px 6px;
  border-radius: 5px;
  border: 1px solid currentColor;
  font: 11px/1.4 ui-monospace, 'Cascadia Code', Consolas, monospace;
  font-variant-numeric: tabular-nums;
  cursor: help;
}
.mesh74-load-normal { color: #9eb39c; background: #6b8f711a; }
.mesh74-load-medium { color: #d3b477; background: #c4a5741c; }
.mesh74-load-high {
  color: #fff !important;
  background: #bb1730 !important;
  border-color: #ff7385;
  font-weight: 700;
  box-shadow: 0 0 0 1px #ff738540;
}
.packet-table tr.mesh74-overload-row td {
  background-color: #492408;
  border-bottom-color: #a76626;
}
.packet-table tr.mesh74-flood-row td {
  background-color: #5a1020 !important;
  border-bottom-color: #d84a68;
}
.packet-table tr.mesh74-flood-row td:first-child,
.packet-table tr.mesh74-flood-row td.date { box-shadow: inset 4px 0 #ff4b70; }
.mesh74-flood-badge {
  display: inline-block;
  vertical-align: middle;
  margin-right: 5px;
  padding: 0 4px;
  border: 1px solid #ff829a;
  border-radius: 4px;
  background: #de173e;
  color: #fff;
  font: 700 10px/16px ui-monospace, Consolas, monospace;
  white-space: nowrap;
  cursor: help;
}
.mesh74-load-unknown { color: #9a9288; border-color: #3a342c; }
@media (max-width: 640px) {
  /* Keep date, time and load visible without horizontal scrolling. Packet
     number/direction/transport remain in the standard packet detail dialog. */
  .packet-table:has(.mesh74-network-load) col:nth-child(-n+3),
  .packet-table:has(.mesh74-network-load) thead th:nth-child(-n+3),
  .packet-table:has(.mesh74-network-load) tbody tr:not(:has(td[colspan])) td:nth-child(-n+3) {
    display: none;
  }
  .mesh74-load-badge { font-size: 10px; padding: 3px 4px; }
  .packet-table .mesh74-network-load { font-size: 11px; }
}
