Start by examining each half in isolation, as voltage dividers:
$$\begin{align*}v_-&=\frac{v_n\,\cdot\, Z_{rn}\,+\,v_s\,\cdot\,Z_n}{Z_n\,+\,Z_{rn}}\\\\v_+&=\frac{v_p\,\cdot\, Z_{rp}\,+\,v_s\,\cdot\,Z_p}{Z_p\,+\,Z_{rp}}\end{align*}$$
Then, since the opamp attempts to keep this equal to each other, simply set them equal:
$$\frac{v_n\,\cdot\, Z_{rn}\,+\,v_s\,\cdot\,Z_n}{Z_n\,+\,Z_{rn}}=\frac{v_p\,\cdot\, Z_{rp}\,+\,v_s\,\cdot\,Z_p}{Z_p\,+\,Z_{rp}}$$
And then solve for \$v_s\$:
$$v_s=\frac{v_p\cdot\left(1+\frac{Z_n}{Z_{rn}}\right)-v_n\cdot\left(1+\frac{Z_p}{Z_{rp}}\right)}{\frac{Z_n}{Z_{rn}}-\frac{Z_p}{Z_{rp}}}$$
However, this only works when \$\frac{Z_n}{Z_{rn}}\gt\frac{Z_p}{Z_{rp}}\$. Otherwise, with the denominator negative, a positive change in \$v_p\$ would be met by a negative change in \$v_s\$ (wrong direction) or a positive change in \$v_n\$ would be met by a positive change in \$v_s\$ (also the wrong direction.) And, of course, \$\frac{Z_n}{Z_{rn}}=\frac{Z_p}{Z_{rp}}\$ is forbidden as well since that would be division-by-zero.
Here's an example run where \$v_s=3.5\times di\!f\!f\$ where \$-3\:\text{V}\le di\!f\!f\le 3\:\text{V}\$: