.vob .product-ui__main { min-width: 0; }
.vob .vob-kpi { border-left: 3px solid var(--platform-dark-border-strong, #3F3F46); }
.vob .product-ui__kpi-delta { display: block; line-height: 1.35; }
.vob .product-ui__table-header h4 svg { color: var(--pillar-accent, #CF8BE8); }
.vob .vob-table thead th { white-space: nowrap; }
.vob .vob-table thead th, .vob .vob-table tbody td { padding-left: 0.625rem; padding-right: 0.625rem; }
.vob .vob-table thead th:first-child, .vob .vob-table tbody td:first-child { padding-left: 1rem; }
.vob .vob-table tbody td { vertical-align: middle; color: var(--color-text-on-dark, #FAFAFA); }
.vob .vob-table tbody td:nth-child(2) { color: var(--color-text-on-dark-muted, #A1A1AA); min-width: 7rem; }
.vob .vob-table .panel-cell { white-space: nowrap; }
.vob .vob-table .panel-cell span { display: block; margin-top: 0.125rem; }
.vob-io {
  display: inline-block; padding: 0.125rem 0.5rem; border: 1px solid var(--platform-dark-border-strong, #3F3F46); border-radius: 999px;
  font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.02em; color: var(--color-text-on-dark-muted, #A1A1AA); white-space: nowrap;
}
.vob-now { display: grid; gap: 0.3125rem; justify-items: start; width: 12.5rem; }
.vob-now .led { width: 100%; }
.vob-sub { font-family: var(--font-mono); font-size: 0.75rem; color: var(--color-text-on-dark-muted, #A1A1AA); }
.vob-off {
  display: inline-block; padding: 0.375rem 0.625rem; border: 1px dashed rgba(var(--sev-nodata-rgb, 161, 161, 170), 0.6); border-radius: 6px;
  font-family: var(--font-mono); font-size: 0.75rem; font-style: italic; line-height: 1.4; color: var(--sev-nodata, #A1A1AA);
}
.vob .vob-rule { color: var(--color-text-on-dark-muted, #A1A1AA); line-height: 1.45; min-width: 9.5rem; max-width: 13rem; }
.vob-flag {
  display: block; width: max-content; margin-top: 0.375rem; padding: 0.0625rem 0.4375rem; border: 1px solid var(--platform-dark-border-strong, #3F3F46); border-radius: 4px;
  font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.02em; color: var(--color-text-on-dark, #FAFAFA);
}
.vob-ack { display: flex; align-items: flex-start; gap: 0.375rem; max-width: 8.5rem; margin-top: 0.375rem; font-size: 0.75rem; line-height: 1.35; color: var(--color-text-on-dark-muted, #A1A1AA); }
.vob-ack::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--sev-live, #4ADE80); margin-top: 0.34em; }
.vob .vob-table .status-pill { white-space: nowrap; }
.vob .vob-row--alert td { background: rgba(var(--sev-crit-rgb, 248, 113, 113), 0.04); }
.vob .vob-row--alert td:first-child { box-shadow: inset 2px 0 0 var(--sev-crit, #F87171); }

.xdp--va {
  --c-crit: var(--sev-crit, #F87171); --c-crit-rgb: var(--sev-crit-rgb, 248, 113, 113);
  --vod-board-on: #F4F4F5;
}
.xdp--va .xdp-node--gw { border-style: dashed; }
.xdp--va .vod-node-board rect { fill: #111113; stroke: var(--c-line-2); stroke-width: 1.2; }
.xdp--va .vod-node-board path { fill: none; stroke: var(--vod-board-on); stroke-width: 1.4; stroke-linecap: round; stroke-dasharray: 0.01 2; transition: stroke 0.3s ease; }

.vod-site .vod-eq * { fill: var(--c-raised); stroke: var(--c-line-2); stroke-width: 1.1; }
.vod-site .vod-lab text { font-family: var(--xdp-mono); font-size: 7.5px; letter-spacing: 0.06em; fill: var(--c-muted); }
.vod-site .xdp-zone text { font-size: 7.5px; }

.vod-fan {
  fill: rgba(var(--c-acc-rgb), 0.07); stroke: rgba(var(--c-acc-rgb), 0.4); stroke-width: 1; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke;
  transform-box: view-box; transform-origin: 0 0;
  transition: opacity 0.5s ease calc(var(--i, 0) * 150ms), transform 0.7s var(--ease-out, ease) calc(var(--i, 0) * 150ms), fill 0.5s ease, stroke 0.5s ease;
}
.vod-cand:not(.is-pick) .vod-fan { opacity: 0; }

.vod-link path { fill: none; stroke: #71717A; stroke-width: 1; stroke-dasharray: 2 3; transition: stroke 0.4s ease; }
.vod-link .is-hot { stroke: rgba(var(--c-crit-rgb), 0.85); }
.vod-node rect { fill: var(--c-raised); stroke: var(--c-line-2); stroke-width: 1; stroke-dasharray: 3 2; }
.vod-node text { font-family: var(--xdp-mono); font-size: 7px; letter-spacing: 0.06em; fill: var(--c-text); }
.vod-link { transition: opacity 0.6s ease; }

.vod-board { transform-box: fill-box; transform-origin: center;
  transition: opacity 0.35s ease calc(var(--i, 0) * 170ms), transform 0.55s var(--xdp-pop) calc(var(--i, 0) * 170ms); }
.vod-board__case { fill: #111113; stroke: var(--c-line-2); stroke-width: 1.2; transition: stroke 0.4s ease; }
.vod-board__face { fill: none; stroke: var(--vod-board-on); stroke-width: 1.7; stroke-linecap: round; stroke-dasharray: 0.01 2.4; transition: stroke 0.4s ease; }
.vod-board--hot .vod-board__case { stroke: var(--c-crit); filter: drop-shadow(0 0 3px rgba(var(--c-crit-rgb), 0.7)); }
.vod-board--hot .vod-board__face { stroke: var(--c-crit); }

.vom .xdp-dash__top { margin-bottom: 0.625rem; }
.vom-screen { display: flex; align-items: center; gap: 0.625rem; min-width: 0; margin-bottom: 0.5rem; }
.vom-board { display: grid; min-width: 0; flex: 0 1 13rem; transition: opacity 0.4s ease; }
.vom-board > .led { width: 100%; }
.vom-board > * { grid-area: 1 / 1; min-width: 0; transition: opacity 0.4s ease; }
.vom-led--page { opacity: 0; }
.vom-test {
  flex: none; padding: 0.125rem 0.5rem; border-radius: 999px; border: 1px solid var(--c-crit); background: rgba(var(--c-crit-rgb), 0.14);
  font-family: var(--xdp-mono); font-size: 0.6875rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--c-text);
  transition: opacity 0.3s ease, transform 0.4s var(--xdp-pop);
}
.vom-rows { margin: 0; border-top: 1px solid var(--c-line); }
.vom-row { position: relative; display: grid; grid-template-columns: minmax(0, 8.75rem) minmax(0, 1fr); gap: 0.75rem; align-items: baseline; padding: 0.5rem 0; border-bottom: 1px solid var(--c-line); }
.vom-row dt { font-family: var(--xdp-mono); font-size: 0.6875rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--c-muted); }
.vom-row dd { margin: 0; min-width: 0; font-size: 0.875rem; line-height: 1.4; color: var(--c-text); transition: opacity 0.4s ease calc(var(--i, 0) * 0.7s + 0.3s); }
.vom-row::after { content: ""; position: absolute; left: calc(8.75rem + 0.75rem); top: 50%; width: 46%; height: 8px; margin-top: -4px; border-radius: 4px; background: var(--c-line);
  opacity: 0; transition: opacity 0.3s ease calc(var(--i, 0) * 0.7s + 0.3s); }
.vom-code { font-family: var(--xdp-mono); font-size: 0.8125rem; letter-spacing: 0.02em; }
.vom-sw { display: inline-block; width: 10px; height: 10px; margin-right: 0.4375rem; border-radius: 2px; background: var(--sev-crit, #F87171); vertical-align: -1px; }
.vom .xdp-esc { margin-top: 0.75rem; padding-top: 0.75rem; }

.xdp--va.s-4 [data-xdp-fact="4"] { border-color: rgba(var(--c-acc-rgb), 0.45); }
.xdp--va.s-4 [data-xdp-fact="4"]::before { transform: scaleX(1); }

.xdp--va.is-anim:not(.b-plan) .vod-fan { opacity: 0; transform: scale(0.25); transition-delay: 0s; }
.xdp--va.is-anim.b-plan:not(.b-install) .vod-fan { opacity: 1; fill: rgba(var(--c-acc-rgb), 0.12); stroke: rgba(var(--c-acc-rgb), 0.75); }
.xdp--va.is-anim.b-install .vod-cand:not(.is-pick) .vod-fan { opacity: 0; transform: scale(0.9); transition-delay: 0s; }
.xdp--va.is-anim:not(.b-install) .vod-board { opacity: 0; transform: scale(1.8); transition-delay: 0s; }
.xdp--va.is-anim:not(.b-gw) .vod-board__face, .xdp--va.is-anim:not(.b-gw) .vod-node-board path { stroke: var(--c-line-2); }
.xdp--va.is-anim:not(.b-gw) .vod-link { opacity: 0; }
.xdp--va.is-anim:not(.b-base) .vom-row dd { opacity: 0; transition-delay: 0s; }
.xdp--va.is-anim:not(.b-base) .vom-row::after { opacity: 1; transition-delay: 0s; }
.xdp--va.is-anim:not(.b-gw) .vom-board { opacity: 0.35; }
.xdp--va.is-anim:not(.b-alert) .vom-led--page { opacity: 1; }
.xdp--va.is-anim:not(.b-alert) .vom-led--alert { opacity: 0; }
.xdp--va.is-anim:not(.b-alert) .vom-test { opacity: 0; transform: scale(0.5); }
.xdp--va.is-anim:not(.b-alert) .vod-board--hot .vod-board__case { stroke: var(--c-line-2); filter: none; }
.xdp--va.is-anim:not(.b-alert) .vod-board--hot .vod-board__face { stroke: var(--vod-board-on); }
.xdp--va.is-anim:not(.b-gw) .vod-board--hot .vod-board__face { stroke: var(--c-line-2); }
.xdp--va.is-anim:not(.b-alert) .vod-link .is-hot { stroke: #71717A; }
.xdp--va.is-anim.b-alert .vod-board--hot .vod-board__case { animation: vod-glow 1.2s ease-in-out 3; }
.xdp--va .xdp-esc__i[data-xdp-esc="4"] {
  transition: border-color 0.35s ease 0.7s, background-color 0.35s ease 0.7s, color 0.35s ease 0.7s, opacity 0.4s ease 0.55s, transform 0.45s var(--xdp-pop) 0.55s;
}
.xdp--va.is-anim:not(.b-e3) .xdp-esc__i[data-xdp-esc="4"] { opacity: 0; transform: translateX(-8px); transition-delay: 0s; }

@keyframes vod-glow {
  0%, 100% { filter: drop-shadow(0 0 3px rgba(var(--c-crit-rgb), 0.7)); stroke-opacity: 1; }
  50% { filter: drop-shadow(0 0 1px rgba(var(--c-crit-rgb), 0.38)); stroke-opacity: 0.55; }
}
@media (prefers-reduced-motion: reduce) {
  .xdp--va *, .xdp--va *::before, .xdp--va *::after { animation: none !important; transition: none !important; }
}
@media (max-width: 520px) {
  .vom-row { grid-template-columns: minmax(0, 1fr); gap: 0.125rem; }
  .vom-row::after { left: 0; top: auto; bottom: 0.625rem; }
  .vom-screen { flex-wrap: wrap; }
}

.vop-pages { list-style: none; margin: 0 0 0.875rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.625rem 0.75rem; }
.vop-page { display: grid; gap: 0.3125rem; justify-items: stretch; flex: 0 1 13.5rem; min-width: 0; max-width: 100%; }
.vop-page__k { font-family: var(--font-body); font-size: 0.75rem; color: var(--color-text-tertiary); }
.vop-page .led { width: 100%; }
.vop .hxi-finding__trace-val { overflow-wrap: anywhere; }
.vop .hxi-report__stat dd { text-align: right; }
