/* Pulse effect during AJAX save */
.bot-row-saving {
    animation: pty-pulse 1.5s infinite ease-in-out;
    pointer-events: none; /* Prevent double-clicks */
}

@keyframes pty-pulse {
    0% { opacity: 1; }
    50% { opacity: 0.4; }
    100% { opacity: 1; }
}

/* Row coloring based on status */
tr.bot-blocked { background-color: #fff0f0 !important; }
tr.bot-safe { background-color: #f0fff0 !important; }

/* The Spinner */
.pty-spinner {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid #ccc;
    border-top-color: #0073aa;
    border-radius: 50%;
    animation: pty-spin 0.6s linear infinite;
    margin-left: 8px;
    vertical-align: middle;
}

@keyframes pty-spin {
    to { transform: rotate(360deg); }
}