/* ERMVare dashboard motion styles */
.native-dashboard.ed{position:relative}
.native-dashboard.ed::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;pointer-events:none;z-index:5;opacity:0;
  background:linear-gradient(90deg,transparent,var(--tv-accent,#1f9d55),#7fe3b4,transparent);box-shadow:0 0 18px 4px color-mix(in srgb,var(--tv-accent,#1f9d55) 35%,transparent)}
.native-dashboard.ed.ed-play::after{animation:edScan 3.2s cubic-bezier(.45,0,.55,1) .2s 1 both}
@keyframes edScan{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:100%;opacity:0}}

/* widgets cascade in */
.native-dashboard.ed .nd-posture,.native-dashboard.ed .nd-widget{opacity:0;transform:translateY(14px) scale(.985);transition:box-shadow .6s,border-color .6s,transform .6s}
.native-dashboard.ed.ed-play .nd-posture,.native-dashboard.ed.ed-play .nd-widget{animation:edIn .7s cubic-bezier(.2,.8,.2,1) calc(var(--ed-i)*.07s) both}
@keyframes edIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}

/* bars grow */
.native-dashboard.ed .nd-horizontal-row b{transform-origin:left center}
.native-dashboard.ed.ed-play .nd-horizontal-row b{animation:edBar 1.3s cubic-bezier(.2,.8,.2,1) both}
.native-dashboard.ed.ed-play .nd-horizontal-row:nth-child(2) b{animation-delay:.1s}
.native-dashboard.ed.ed-play .nd-horizontal-row:nth-child(3) b{animation-delay:.2s}
.native-dashboard.ed.ed-play .nd-horizontal-row:nth-child(4) b{animation-delay:.3s}
.native-dashboard.ed.ed-play .nd-horizontal-row:nth-child(5) b{animation-delay:.4s}
.native-dashboard.ed.ed-play .nd-horizontal-row:nth-child(6) b{animation-delay:.5s}
@keyframes edBar{from{transform:scaleX(0)}}

/* heat map cells pop in, critical cells pulse */
.native-dashboard.ed.ed-play .nd-heat td{animation:edPop .5s cubic-bezier(.3,1.4,.5,1) calc(.6s + var(--ed-h)*.03s) both}
@keyframes edPop{from{opacity:0;transform:scale(.6)}}
.native-dashboard.ed.ed-play .nd-heat td.ed-crit{animation:edPop .5s cubic-bezier(.3,1.4,.5,1) calc(.6s + var(--ed-h)*.03s) both,edCrit 2s ease-in-out 2s infinite}
@keyframes edCrit{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,0)}50%{box-shadow:0 0 0 3px rgba(220,38,38,.35),0 0 14px rgba(220,38,38,.45)}}

/* needs attention: alerts slide in and pulse */
.native-dashboard.ed.ed-play .nd-attention li{animation:edSlide .6s cubic-bezier(.2,.8,.2,1) both}
.native-dashboard.ed.ed-play .nd-attention li:nth-child(1){animation-delay:1.2s}
.native-dashboard.ed.ed-play .nd-attention li:nth-child(2){animation-delay:1.4s}
.native-dashboard.ed.ed-play .nd-attention li:nth-child(3){animation-delay:1.6s}
.native-dashboard.ed.ed-play .nd-attention li:nth-child(4){animation-delay:1.8s}
@keyframes edSlide{from{opacity:0;transform:translateX(-14px)}}
.native-dashboard.ed .nd-open{position:relative}
.native-dashboard.ed.ed-play .nd-open::before{content:"";position:absolute;left:-10px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:#dc2626;animation:edDot 1.6s ease-out 2.2s infinite}
@keyframes edDot{0%{box-shadow:0 0 0 0 rgba(220,38,38,.6)}100%{box-shadow:0 0 0 8px rgba(220,38,38,0)}}

/* spotlight on the widget being "read" */
.native-dashboard.ed .ed-spot{transform:translateY(-3px)!important;border-color:var(--tv-accent,#1f9d55)!important;
  box-shadow:0 0 0 2px rgba(31,157,85,.55),0 18px 40px -16px rgba(31,157,85,.45)!important;z-index:2;position:relative}
/* zoom tour */
html body .native-dashboard.ed{transition:translate 1.3s cubic-bezier(.65,0,.35,1),scale 1.3s cubic-bezier(.65,0,.35,1)!important;will-change:translate,scale}
/* v3: per-box slow zoom (no whole-dashboard zoom) */
html body .native-dashboard.ed{translate:none!important;scale:none!important}
html body .native-dashboard.ed :is(.nd-posture,.nd-widget){position:relative;transform-origin:center;transition:transform 1.8s cubic-bezier(.45,0,.25,1),box-shadow 1.8s ease!important}
html body .native-dashboard.ed :is(.nd-posture,.nd-widget).ed-zoom{transform:scale(1.07);z-index:5;box-shadow:0 26px 50px -18px rgba(15,60,40,.45),0 0 0 2px rgba(31,157,85,.55)!important}
html body .native-dashboard.ed .nd-posture.ed-zoom{transform:scale(1.03)}
html body .native-dashboard.ed :is(.nd-posture,.nd-widget){transition:scale 1.8s cubic-bezier(.45,0,.25,1),box-shadow 1.8s ease,transform .6s!important}
html body .native-dashboard.ed .nd-widget.ed-zoom{scale:1.08}
html body .native-dashboard.ed .nd-posture.ed-zoom{scale:1.03}
/* 2x slow-motion zoom per box */
html body .native-dashboard.ed :is(.nd-posture,.nd-widget){transition:scale 2.6s cubic-bezier(.45,0,.25,1),box-shadow 2.6s ease,transform .6s!important}
html body .native-dashboard.ed .nd-widget.ed-zoom{scale:2;z-index:20;background:#fff}
html body .native-dashboard.ed .nd-posture.ed-zoom{scale:1.5;z-index:20;background:#fff}
html body .native-dashboard.ed .nd-widget.ed-zoom,html body .native-dashboard.ed .nd-posture.ed-zoom{scale:var(--edsc,2)!important}
html body .native-dashboard.ed{overflow:visible!important}

/* risk story focus */
.native-dashboard.ed .nd-posture,.native-dashboard.ed .nd-widget{transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1),box-shadow .7s ease,filter .7s ease}
.native-dashboard.ed.ed-story .nd-posture:not(.ed-on),.native-dashboard.ed.ed-story .nd-widget:not(.ed-on){opacity:.45!important;filter:saturate(.6)}
.native-dashboard.ed .ed-on{opacity:1!important;transform:translateY(-4px) scale(1.03)!important;z-index:4;position:relative;box-shadow:0 0 0 2px var(--tv-accent,#1f9d55),0 18px 40px rgba(15,60,40,.22),0 0 34px color-mix(in srgb,var(--tv-accent,#1f9d55) 35%,transparent)!important}
.native-dashboard.ed .ed-spark{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--tv-accent,#1f9d55),0 0 18px 6px color-mix(in srgb,var(--tv-accent,#1f9d55) 60%,transparent);pointer-events:none;z-index:6;opacity:0}
.native-dashboard.ed .nd-posture.ed-zoom,.native-dashboard.ed .nd-widget.ed-zoom{transform:none!important}
