/**
 * Hover for Open NDR SVG card groups (data-name exports).
 * SVGs with <g data-name="open-ndr-mobile"> get class ndr-open-ndr-mobile-svg: card chrome uses
 * .ndr-open-ndr-card-active (tap) instead of :hover so touch matches desktop intent.
 * No focus/active visuals on the card groups — keyboard still works; script blurs after activate.
 */

 [data-name="response-group"],
 [data-name="detection-group"],
 [data-name="network-evidence-group"],
 [data-name="enabling-the-ai-soc-group"] {
   cursor: pointer;
   outline: none;
   -webkit-tap-highlight-color: transparent;
 }
 
 /*
  * Text labels: July 24+ exports use path/rect/polygon (e.g. "i" dots as rect).
  * Cover all common letter shapes so every glyph recolors on hover/active.
  */
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="response-group"]:hover [data-name="response-text-group"] :is(path, circle, ellipse, rect, polygon),
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="detection-group"]:hover [data-name="detection-text-group"] :is(path, circle, ellipse, rect, polygon),
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="network-evidence-group"]:hover [data-name="network-evidence-text-group"] :is(path, circle, ellipse, rect, polygon),
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="enabling-the-ai-soc-group"]:hover [data-name="enabling-the-ai-soc-text-group"] :is(path, circle, ellipse, rect, polygon) {
   fill: #35ff94 !important;
 }
 
 .ndr-open-ndr-mobile-svg [data-name="response-group"].ndr-open-ndr-card-active [data-name="response-text-group"] :is(path, circle, ellipse, rect, polygon),
 .ndr-open-ndr-mobile-svg [data-name="detection-group"].ndr-open-ndr-card-active [data-name="detection-text-group"] :is(path, circle, ellipse, rect, polygon),
 .ndr-open-ndr-mobile-svg [data-name="detection-group"].ndr-open-ndr-card-active [data-name="response-text-group"] :is(path, circle, ellipse, rect, polygon),
 .ndr-open-ndr-mobile-svg [data-name="network-evidence-group"].ndr-open-ndr-card-active [data-name="network-evidence-text-group"] :is(path, circle, ellipse, rect, polygon),
 .ndr-open-ndr-mobile-svg [data-name="enabling-the-ai-soc-group"].ndr-open-ndr-card-active [data-name="enabling-the-ai-soc-text-group"] :is(path, circle, ellipse, rect, polygon) {
   fill: #35ff94 !important;
 }
 
 .ndr-card-border {
   fill: none;
   pointer-events: none;
   /* Fade stroke only — avoids stacking / halo side-effects from whole-element opacity */
   stroke-opacity: 0;
   transition: stroke-opacity 0.24s ease;
 }
 
 /* Match .ndr-card-border timing so native row strokes do not pop off before the gradient fades in */
 [data-name="enabling-the-ai-soc-group"] [data-name="ai-ready-data-box"],
 [data-name="enabling-the-ai-soc-group"] [data-name="ai-powered-workflow-box"],
 [data-name="enabling-the-ai-soc-group"] [data-name="ai-soc-agent-box"],
 [data-name="enabling-the-ai-soc-group"] [data-name="mcp-server-box"] {
   transition: stroke 0.24s ease;
 }
 
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="response-group"]:hover .ndr-card-border,
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="detection-group"]:hover .ndr-card-border,
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="network-evidence-group"]:hover .ndr-card-border,
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="enabling-the-ai-soc-group"]:hover .ndr-card-border {
   stroke-opacity: 1;
 }
 
 .ndr-open-ndr-mobile-svg [data-name="response-group"].ndr-open-ndr-card-active .ndr-card-border,
 .ndr-open-ndr-mobile-svg [data-name="detection-group"].ndr-open-ndr-card-active .ndr-card-border,
 .ndr-open-ndr-mobile-svg [data-name="network-evidence-group"].ndr-open-ndr-card-active .ndr-card-border,
 .ndr-open-ndr-mobile-svg [data-name="enabling-the-ai-soc-group"].ndr-open-ndr-card-active .ndr-card-border {
   stroke-opacity: 1;
 }
 
 /* Hide default gray strokes on AI SOC row rects so the gradient overlay reads cleanly */
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="enabling-the-ai-soc-group"]:hover [data-name="ai-ready-data-box"],
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="enabling-the-ai-soc-group"]:hover [data-name="ai-powered-workflow-box"],
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="enabling-the-ai-soc-group"]:hover [data-name="ai-soc-agent-box"],
 svg:not(.ndr-open-ndr-mobile-svg) [data-name="enabling-the-ai-soc-group"]:hover [data-name="mcp-server-box"] {
   stroke: transparent !important;
 }
 
 .ndr-open-ndr-mobile-svg [data-name="enabling-the-ai-soc-group"].ndr-open-ndr-card-active [data-name="ai-ready-data-box"],
 .ndr-open-ndr-mobile-svg [data-name="enabling-the-ai-soc-group"].ndr-open-ndr-card-active [data-name="ai-powered-workflow-box"],
 .ndr-open-ndr-mobile-svg [data-name="enabling-the-ai-soc-group"].ndr-open-ndr-card-active [data-name="ai-soc-agent-box"],
 .ndr-open-ndr-mobile-svg [data-name="enabling-the-ai-soc-group"].ndr-open-ndr-card-active [data-name="mcp-server-box"] {
   stroke: transparent !important;
 }
 
 .ndr-response-animation-root [data-name="top-arrow"],
 .ndr-response-animation-root [data-name="bottom-arrow"],
 .ndr-response-animation-root [data-name="left-arrow"],
 .ndr-response-animation-root [data-name="right-arrow"] {
   transform-box: fill-box;
   transform-origin: center;
 }
 
 .ndr-response-animation-root [data-name="top-arrow"] {
   animation: ndr-ra-arrow-top 2.6s ease-in-out infinite;
 }
 
 .ndr-response-animation-root [data-name="bottom-arrow"] {
   animation: ndr-ra-arrow-bottom 2.6s ease-in-out infinite;
 }
 
 .ndr-response-animation-root [data-name="left-arrow"] {
   animation: ndr-ra-arrow-left 2.6s ease-in-out infinite;
 }
 
 .ndr-response-animation-root [data-name="right-arrow"] {
   animation: ndr-ra-arrow-right 2.6s ease-in-out infinite;
 }
 
 .ndr-response-animation-root [data-name="arrows-dot-container"] [data-name="center-dot"] {
   transform-box: fill-box;
   transform-origin: center;
 }
 
 /*
  * Desktop export uses an axis-aligned <rect> — rotate 45° for the diamond.
  * Mobile export already draws a diamond <polygon> — rotate would make it a square.
  */
 .ndr-response-animation-root [data-name="arrows-dot-container"] rect[data-name="center-dot"] {
   animation: ndr-ra-center-dot-diamond 2.6s ease-in-out infinite;
 }
 
 .ndr-response-animation-root [data-name="arrows-dot-container"] :not(rect)[data-name="center-dot"] {
   animation: ndr-ra-center-dot-scale 2.6s ease-in-out infinite;
 }
 
 .ndr-response-animation--reduced [data-name="top-arrow"],
 .ndr-response-animation--reduced [data-name="bottom-arrow"],
 .ndr-response-animation--reduced [data-name="left-arrow"],
 .ndr-response-animation--reduced [data-name="right-arrow"] {
   animation: none !important;
 }
 
 .ndr-response-animation--reduced [data-name="arrows-dot-container"] [data-name="center-dot"] {
   animation: none !important;
 }
 
 .ndr-response-animation--reduced [data-name="arrows-dot-container"] rect[data-name="center-dot"] {
   transform: rotate(45deg);
 }
 
 @keyframes ndr-ra-arrow-top {
   0%,
   100% {
     transform: translate(0, 0);
   }
 
   50% {
     transform: translate(0, 18%);
   }
 }
 
 @keyframes ndr-ra-arrow-bottom {
   0%,
   100% {
     transform: translate(0, 0);
   }
 
   50% {
     transform: translate(0, -18%);
   }
 }
 
 @keyframes ndr-ra-arrow-left {
   0%,
   100% {
     transform: translate(0, 0);
   }
 
   50% {
     transform: translate(18%, 0);
   }
 }
 
 @keyframes ndr-ra-arrow-right {
   0%,
   100% {
     transform: translate(0, 0);
   }
 
   50% {
     transform: translate(-18%, 0);
   }
 }
 
 @keyframes ndr-ra-center-dot-diamond {
   0%,
   100% {
     transform: rotate(45deg) scale(1);
   }
 
   50% {
     transform: rotate(45deg) scale(1.42);
   }
 }
 
 @keyframes ndr-ra-center-dot-scale {
   0%,
   100% {
     transform: scale(1);
   }
 
   50% {
     transform: scale(1.42);
   }
 }
 
 /*
  * Network evidence radar: circled-lines rotates; dots flash when ring sweep is near (see JS hit cone).
  */
 .ndr-network-evidence-animation-root:not(.ndr-network-evidence-animation--reduced)
   [data-name="circled-lines"]
   > .ndr-nev-circled-lines-spin {
   transform-box: fill-box;
   transform-origin: 50% 50%;
   animation: ndr-nev-circled-spin var(--ndr-nev-dur, 5333ms) linear infinite;
 }
 
 .ndr-network-evidence-animation--reduced [data-name="circled-lines"] > .ndr-nev-circled-lines-spin {
   animation: none !important;
 }
 
 @keyframes ndr-nev-circled-spin {
   from {
     transform: rotate(0deg);
   }
 
   to {
     transform: rotate(360deg);
   }
 }
 
 @media (prefers-reduced-motion: reduce) {
   .ndr-card-border {
     transition: none;
   }
 
   [data-name="enabling-the-ai-soc-group"] [data-name="ai-ready-data-box"],
   [data-name="enabling-the-ai-soc-group"] [data-name="ai-powered-workflow-box"],
   [data-name="enabling-the-ai-soc-group"] [data-name="ai-soc-agent-box"],
   [data-name="enabling-the-ai-soc-group"] [data-name="mcp-server-box"] {
     transition: none;
   }
 
   .ndr-response-animation-root [data-name="top-arrow"],
   .ndr-response-animation-root [data-name="bottom-arrow"],
   .ndr-response-animation-root [data-name="left-arrow"],
   .ndr-response-animation-root [data-name="right-arrow"] {
     animation: none !important;
   }
 
   .ndr-response-animation-root [data-name="arrows-dot-container"] [data-name="center-dot"] {
     animation: none !important;
   }
 
   .ndr-response-animation-root [data-name="arrows-dot-container"] rect[data-name="center-dot"] {
     transform: rotate(45deg);
   }
 
   .ndr-network-evidence-animation-root [data-name="circled-lines"] > .ndr-nev-circled-lines-spin {
     animation: none !important;
   }
 }