Table hijacking

It’s some time ago since I opened a note with a table in it. When I did, my face lost most color, as had occurred to the table I was looking at. At the left side the table as it was in version 1.0.197 and before, at the right side the same table in version 1.0.199 and after:
RedHalfRedTables
Why had some (but not all) of the CSS specifications in this note lost their power? The development tool revealed it, as the example of the background coloring of the even rows shows (left the old specs, right the new ones):
RedHalfRedTables-tr-nth-child Style
Some definitions in noteStyle.js have got priority by using more specific selectors:

	.jop-tinymce table td, .jop-tinymce table th,
	table td, th {
		text-align: left;
		padding: .5em 1em .5em 1em;
		font-size: ${theme.htmlFontSize};
		color: ${theme.htmlColor};
		font-family: ${fontFamily};
	}
	.jop-tinymce table td,
	table td {
		border: 1px solid ${theme.htmlCodeBorderColor};
	}
	.jop-tinymce table th,
	table th {
		border: 1px solid ${theme.htmlCodeBorderColor};
		border-bottom: 2px solid ${theme.htmlCodeBorderColor};
		background-color: ${theme.htmlTableBackgroundColor};
	}
	.jop-tinymce table tr:nth-child(even),
	table tr:nth-child(even) {
		background-color: ${theme.htmlTableBackgroundColor};
	}
	.jop-tinymce table tr:hover,
	table tr:hover {
		background-color: ${theme.raisedBackgroundColor};
	}

Why this explicit naming of ancestor table of the td, th, and tr tags? Are those tags ever used outside a table?

@laurent: Could all such table words be removed from noteStyle.js again? Or do they really have some function? By the way, when I scanned app.asar, I found even more seemingly superfluous table words:

table th {
table td, table th {
		.jop-tinymce table td, .jop-tinymce table th,
		table td, th {
		.jop-tinymce table td,
		table td {
		.jop-tinymce table th,
		table th {
		.jop-tinymce table tr:nth-child(even),
		table tr:nth-child(even) {
		.jop-tinymce table tr:hover,
		table tr:hover {
table td {
table td:first-child {
table td:last-child {
table th,
table td {
table td,table th{border:1px solid #ccc;padding:.4rem}
table th,
table td {
table td,table th{border:1px solid #ccc;padding:.4rem}
table th,
table td {
table td,table th{border:1px solid #ccc;padding:.4rem}
table th,
table td {
table td,table th{border:1px solid #6d737b;padding:.4rem}

But only the ones in noteStyle.js have appeared to be harmful so far.

To all readers: I’ve parried the attack on my CSS by specifying table before all table-specific tags. That works, but it feels like an arms race and looks overly worded if not plainly silly. An alternative would be to make all properties !important. That does the job as well. I cannot say I like this style of coding:
tenor
But I’ve seen others doing it, and if it is common sense to do so (just to prevent being walked over by other people’s ponderous expressions), I’d better put my reluctance aside. Third option is to even apply both methods, overspecification AND !important marks. Any thoughts about it?