Single-Level Differentiable Contact Simulation