:root
{
	--error-color: orange;
	--error-outline: 0.5rem solid var(--error-color);
}

#calendar > *:not(ol),
#calendar > ol:not(:only-child)
{
	ERROR: #calendar darf nur 1 ol-Kind haben;
	outline: var(--error-outline) !important;
	background: var(--error-color) !important;
}

#calendar > ol:not(#calendar-list)
{
	ERROR: ol-Kind von #calendar muss ID 'calendar-list' haben;
	outline: var(--error-outline) !important;
	background: var(--error-color) !important;
}

#calendar-list > li:not(.year)
{
	ERROR: #calendar-list darf nur li-Kinder der Klasse 'year' haben;
	outline: var(--error-outline) !important;
}

#calendar li.year > *:first-child:not(h2)
{
	ERROR: #calendar li.year muss als 1. Kind h2 haben;
	outline: var(--error-outline) !important;
}

#calendar li.year > *:last-child:not(ol),
#calendar li.year > *:nth-child(2):not(:last-child)
{
	ERROR: #calendar li.year muss als 2. und letztes Kind ol haben;
	outline: var(--error-outline) !important;
}

#calendar li.year > ol > li:not(.month)
{
	ERROR: li.year > ol darf nur li-Kinder der Klasse 'month' haben;
	outline: var(--error-outline) !important;
}

#calendar li.month > *:first-child:not(h3)
{
	ERROR: #calendar li.month muss als 1. Kind h3 haben;
	outline: var(--error-outline) !important;
}

#calendar li.month > *:last-child:not(ol),
#calendar li.month > *:nth-child(2):not(:last-child)
{
	ERROR: #calendar li.month muss als 2. und letztes Kind ol haben;
	outline: var(--error-outline) !important;
}

#calendar li.month > ol > li:not(.day)
{
	ERROR: li.month > ol darf nur li-Kinder der Klasse 'day' haben;
	outline: var(--error-outline) !important;
}

#calendar li.day > *:not(a),
#calendar li.day > a:not(:only-child)
{
	ERROR: #calendar li.day darf nur 1 a-Kind haben;
	outline: var(--error-outline) !important;
}

#calendar li.day:not([data-has-event]) > a[href]
{
	ERROR: #calendar Für li.day, die auf Event verlinken, muss Attribut data-has-event gesetzt sein;
	outline: var(--error-outline) !important;
}

#calendar li.day[data-has-event] > a:not([href])
{
	ERROR: #calendar Für li.day, die nicht auf Event verlinken, darf Attribut data-has-event nicht gesetzt sein;
	outline: var(--error-outline) !important;
}

#calendar li.day > a > *:not(time),
#calendar li.day > a > time:not(:only-child)
{
	ERROR: #calendar li.day > a darf nur 1 time-Kind haben;
	outline: var(--error-outline) !important;
}

#calendar li.day > a > time:not([datetime])
{
	ERROR: #calendar li.day > a > time muss datetime-Attribut haben;
	outline: var(--error-outline) !important;
}

#calendar li.day > a > time > *:first-child:not(span),
#calendar li.day > a > time > span:first-child:not(.weekday)
{
	ERROR: #calendar li.day > a > time muss als 1. Kind span der Klasse 'weekday' haben;
	outline: var(--error-outline) !important;	
}

#calendar li.day > a > time > *:last-child:not(span),
#calendar li.day > a > time > span:last-child:not(.date),
#calendar li.day > a > time > *:nth-child(2):not(:last-child)
{
	ERROR: #calendar li.day > a > time muss als 2. und letztes Kind span der Klasse 'date' haben;
	outline: var(--error-outline) !important;	
}

#events > *:not(ol),
#events > ol:not(:only-child)
{
	ERROR: #events darf nur 1 ol-Kind haben;
	outline: var(--error-outline) !important;
	background: var(--error-color) !important;
}

#events > ol:not(#event-list)
{
	ERROR: ol-Kind von #events muss ID 'event-list' haben;
	outline: var(--error-outline) !important;
	background: var(--error-color) !important;
}

#events li.past-event a.get-tickets
{
	ERROR: zu Events in der Vergangenheit gibt es keine Tickets;
	outline: var(--error-outline) !important;
}

#events li.event:not(.past-event) > p:last-child a:last-child:not(.get-tickets)
{
	ERROR: zu zukünftigen Events soll es Link zu Tickets geben;
	outline: var(--error-outline) !important;
}
