/* Gradiente padrão (azul → violeta) — index e datalake */
.gradient-text {
    background: linear-gradient(to right, #60a5fa, #a78bfa);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Gradiente upnews (esmeralda → azul) */
.gradient-text-emerald {
    background: linear-gradient(to right, #34d399, #60a5fa);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.bg-grid {
    background-size: 40px 40px;
    background-image: linear-gradient(to right, rgba(255, 255, 255, 0.05) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
}

.agent-pulse {
    animation: agentPulse 2.5s ease-in-out infinite;
}

@keyframes agentPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.7; transform: scale(1.05); }
}

.news-card:hover {
    transform: translateY(-2px);
}
