/*
===============================================================================
 Project Wulfila
 ------------------------------------------------------------------------------
 
 CSS file for the (somewhat interactive) Gothic Bible table of contents.
 
 ------------------------------------------------------------------------------
 tdh.20260427, 20260429
===============================================================================
*/

:root {
	--toc-internal-borders: 1px solid #ccc;
	--color-background-missing: #eee;
	--color-background-complete: #fff;
	--color-background-partial: #ccc;
	/*--color-background-partial: #ffd28e;*/
}

html {
	scroll-behavior: smooth;
}

#TOC {
	width: fit-content;
	max-width: 100%;
	margin-bottom: 2em;
}

.toc-section h3 {
	margin-top: 1.5em;
	margin-bottom: 0.6em;
	font-weight: bold;
}

.toc-grid {
	display: grid;
	align-items: start;
	grid-template-columns: 9em 1fr;
}

.toc-book {
	align-self: start;
	padding: 0.4em 0 0.3em 0;
	border-top: var(--toc-internal-borders);
}

.toc-chapters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3em;
	padding: 0.2em 0;
	border-top: var(--toc-internal-borders);
}

.toc-chapter {
	display: inline-block;
	min-width: 1.2em;
	padding: 0.2em 0.3em;
	border-radius: 0.2em;
	border: var(--toc-internal-borders);
	font-family: 'Roboto', sans-serif;
	font-size: 14px;
	font-weight: normal;
	text-decoration: none;
	text-align: center;
	color: maroon;
	background-color: var(--color-background-complete);
	user-select: none;
}

.toc-chapter.missing {
	display: none;
	color: #b2b2b2;
	background-color: var(--color-background-missing);
}

.show-missing .toc-chapter.missing {
	display: inline-block;
}

.show-missing .toc-chapter.incomplete {
	display: inline-block;
	background: linear-gradient(135deg,
		var(--color-background-complete) 0%,
		var(--color-background-complete) 50%,
		var(--color-background-missing) 50%,
		var(--color-background-missing) 100%
	);
}

.show-missing .toc-chapter.complete.partial {
	display: inline-block;
	background: linear-gradient(180deg,
		var(--color-background-complete) 0%,
		var(--color-background-complete) 85%,
		var(--color-background-partial) 85%,
		var(--color-background-partial) 100%
	);
}

.toc-chapter.legend {
	margin-right: 1em;
	line-height: 1.3;
	user-select: none;
}

a.toc-chapter:hover,
a.toc-chapter.incomplete:hover,
a.toc-chapter.complete.partial:hover {
	color: #111;
	background: none;
	background-color: #ffeddd;
	border-color: darkorange;
	text-decoration: none;
}

input[type="checkbox"] {
	width: 1.2em;
	height: 1.2em;
	vertical-align: -0.1em;
	margin-left: 0;
}

label:hover {
	color: maroon;
	cursor: pointer;
}

details {
	padding: 0.5em 0.5em 0;
	border: var(--toc-internal-borders);
	border-radius: 0.45em;
}

details summary {
	cursor: default;
	margin: -0.5em -0.5em 0;
	padding: 0.5em;
}

details summary:hover {
	color: maroon;
	background-color: #fdfdfd;
	border-radius: 0.45em;
	cursor: pointer;
}

details[open] {
	padding-bottom: 0.25em;
}

details[open] summary {
	border-bottom: var(--toc-internal-borders);
	margin-bottom: 0.5em;
}

details[open] summary:hover {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
} 

details ul {
	padding: 0;
	margin: 0;
	list-style-type: none;
}

details li {
	margin-bottom: 0.25em;
}

summary::marker {
	color: #b2b2b2;
	width: 4em;
}

@media (max-width: 500px) {
	.infobox {
		max-width: 100%;
	}

	.toc-grid {
		grid-template-columns: 1fr;
	}

	.toc-book {
		padding-bottom: 0.5em;
	}

	.toc-chapters {
		border-top: none;
		padding-top: 0;
		padding-bottom: 0.5em;
	}
}

@media (pointer: coarse) {
	.toc-chapter {
		padding: 0.4em 0.5em;
		font-size: 15px;
	}
}