/* Waveform bars */
.waveform {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    height: 64px;
}

.waveform-bar {
    width: 4px;
    background: #34c1f6;
    border-radius: 2px;
    animation: wave 1s ease-in-out infinite;
}

.waveform-bar:nth-child(odd)  { animation-delay: 0s;     }
.waveform-bar:nth-child(even) { animation-delay: 0.15s;  }
.waveform-bar:nth-child(3n)   { animation-delay: 0.3s;   }
.waveform-bar:nth-child(5n)   { animation-delay: 0.45s;  }
.waveform-bar:nth-child(7n)   { animation-delay: 0.6s;   }

@keyframes wave {
    0%, 100% { transform: scaleY(0.3); opacity: 0.5; }
    50%       { transform: scaleY(1);   opacity: 1;   }
}

/* Processing spinner */
.processing-spinner {
    width: 64px;
    height: 64px;
    border: 3px solid rgba(52, 193, 246, 0.2);
    border-top-color: #34c1f6;
    border-radius: 50%;
    animation: spin 0.9s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Recording dot pulse */
.rec-dot {
    width: 8px;
    height: 8px;
    background: #ef4444;
    border-radius: 50%;
    animation: pulse 1.2s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.3; }
}
