Also heißt es dann so (oder in Negation umgekehrt):
tr.switch { visibility:collapse; }
details[open] ~ table tr.switch { visibility:visible }
Mit visibility:hidden;
blieben mir die Zeilen (leer) erhalten. Vielleicht müssen derart inklusive Platzbedarf ausblendbare Zellen per tbody organisiert sein.