const y = e.clientY - rect.top - size / 2;
ripple.style.width = ripple.style.height = size + 'px';
ripple.style.left = x + 'px';
ripple.style.top = y + 'px';
ripple.style.animation = 'none';
setTimeout(() => {
ripple.style.animation = 'ripple 0.6s ease-out';
}, 10);
});
}
// ========== TABS ==========
const tabButtons = document.querySelectorAll('.tab-btn-modern');
const tabPanels = document.querySelectorAll('.tab-panel-modern');
tabButtons.forEach(btn => {
btn.addEventListener('click', function() {
const targetTab = this.getAttribute('data-tab');
// Remover active de todos
tabButtons.forEach(b => b.classList.remove('active'));
tabPanels.forEach(p => p.classList.remove('active'));
// Activar el seleccionado
this.classList.add('active');
document.getElementById(targetTab).classList.add('active');
});
});
});