/* Pulse Animation for App Icon */
@keyframes pulseGlow {
    0% {
        box-shadow: 0 0 0 0 rgba(0, 230, 118, 0.4);
    }
    70% {
        box-shadow: 0 0 0 15px rgba(0, 230, 118, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(0, 230, 118, 0);
    }
}

.pulse-animation {
    animation: pulseGlow 2s infinite;
}

/* Skeleton Loading Glow */
@keyframes skeletonShimmer {
    0% {
        background-position: -200px 0;
    }
    100% {
        background-position: calc(200px + 100%) 0;
    }
}

.skeleton-glow {
    background: #1a1a20;
    background-image: linear-gradient(
        90deg, 
        rgba(255, 255, 255, 0) 0, 
        rgba(255, 255, 255, 0.05) 20%, 
        rgba(255, 255, 255, 0.05) 60%, 
        rgba(255, 255, 255, 0)
    );
    background-size: 200px 100%;
    background-repeat: no-repeat;
    animation: skeletonShimmer 1.5s infinite linear;
}

/* Spinner */
.spinner {
    animation: rotate 2s linear infinite;
    width: 24px;
    height: 24px;
}

.spinner .path {
    stroke: #000;
    stroke-linecap: round;
    animation: dash 1.5s ease-in-out infinite;
}

@keyframes rotate {
    100% {
        transform: rotate(360deg);
    }
}

@keyframes dash {
    0% {
        stroke-dasharray: 1, 150;
        stroke-dashoffset: 0;
    }
    50% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -35;
    }
    100% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -124;
    }
}
