/* One green status light for consultation, recorded price timestamps and the trade board. */
:is(.contact-live-dot,.price-update-dot,.hero-contact-status i,.trade-pulse){position:relative;flex-shrink:0;border-radius:50%;background:#08bd58;box-shadow:0 0 0 3px #08bd5826,0 0 10px #08bd5880;animation:none}
:is(.contact-live-dot,.price-update-dot,.hero-contact-status i,.trade-pulse)::after{content:'';position:absolute;inset:-3px;border:2px solid #08bd58;border-radius:50%;opacity:0;pointer-events:none;animation:none}
html.status-light-enabled :is(.contact-live-dot,.price-update-dot,.hero-contact-status i,.trade-pulse).is-status-lit{animation:status-light-glow 1.8s ease-in-out infinite}
html.site-motion-enabled :is(.contact-live-dot,.price-update-dot,.hero-contact-status i,.trade-pulse).is-status-lit::after{animation:status-light-ring 1.8s ease-out infinite}
@keyframes status-light-glow{0%,100%{box-shadow:0 0 0 3px #08bd5818,0 0 4px #08bd5840}45%{box-shadow:0 0 0 3px #08bd5840,0 0 12px #08bd58b3}}
@keyframes status-light-ring{0%{transform:scale(.65);opacity:.85}75%,100%{transform:scale(1.55);opacity:0}}
/* Reduced motion keeps only the stationary light; explicit motion-off stops both. */
.hero-contact-status.is-offline i,.price-update.is-unrecorded .price-update-dot{animation:none;box-shadow:none}
.hero-contact-status.is-offline i::after,.price-update.is-unrecorded .price-update-dot::after{display:none}
@media(forced-colors:active){:is(.contact-live-dot,.price-update-dot,.hero-contact-status i,.trade-pulse){background:CanvasText;box-shadow:none!important;animation:none!important}:is(.contact-live-dot,.price-update-dot,.hero-contact-status i,.trade-pulse)::after{display:none}}
