// Reusable tooltip — works on hover (desktop) and tap (mobile) function Tooltip({ children, text, side = 'top' }) { const [open, setOpen] = React.useState(false); const ref = React.useRef(null); React.useEffect(() => { if (!open) return; const onClick = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpen(false); }; document.addEventListener('click', onClick); return () => document.removeEventListener('click', onClick); }, [open]); return ( setOpen(true)} onMouseLeave={() => setOpen(false)} onClick={(e) => { e.stopPropagation(); setOpen(o => !o); }} style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 16, height: 16, borderRadius: '50%', background: open ? 'var(--primary)' : 'color-mix(in oklab, var(--ink) 12%, transparent)', color: open ? 'var(--primary-ink)' : 'var(--ink-2)', fontSize: 10, fontWeight: 700, fontFamily: 'var(--mono)', cursor: 'help', transition: 'all .15s ease', userSelect: 'none', marginLeft: 6, verticalAlign: 'middle', }} aria-label={`Explicação: ${text}`} >? {children} {open && ( {text} )} ); } window.Tooltip = Tooltip;