/* ============================================================
   RIVALIX NASA EFFECTS LAYER
   Visual polish only
   ============================================================ */

.status {
    animation: statusPulse 3s ease-in-out infinite;
}

@keyframes statusPulse {
    0%,100% {
        opacity: 1;
    }
    50% {
        opacity: .75;
    }
}


/* живые точки */
.status::before {
    content: "●";
    color: #00ff41;
    margin-right: 8px;
    animation: heartbeat 1.6s infinite;
}


.card {
    transition: all .25s ease;
}


.card:hover {
    transform: translateY(-4px);
    box-shadow: 0 0 25px rgba(0,255,65,.15);
}


/* KPI heartbeat */
#MAtRisk,
#mAtRisk,
#mRecovered,
#mHotLeads,
#mUnanswered {
    animation: numberPulse 2.5s ease-in-out infinite;
}


@keyframes numberPulse {
    0%,100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.03);
    }
}


/* AI brain live */
#mCommandSignal,
#mCommandPriority,
#mCommandActions {
    animation: aiPulse 1.8s infinite;
}


@keyframes aiPulse {
    0%,100% {
        text-shadow: 0 0 5px rgba(0,255,65,.3);
    }

    50% {
        text-shadow: 0 0 18px rgba(0,255,65,.9);
    }
}


@keyframes heartbeat {

    0%,100% {
        transform: scale(1);
        opacity:1;
    }

    50% {
        transform: scale(1.5);
        opacity:.5;
    }
}


/* LIVE EVENTS */
#events {
    border-left: 2px solid #00ff41;
    padding-left: 12px;
    animation: liveLine 2s infinite;
}


@keyframes liveLine {
    0%,100% {
        opacity:.7;
    }

    50% {
        opacity:1;
    }
}
