:root {
	color-scheme: light dark;

	--blue: #00509e;
	--green: #bcd025;
	--dark-green: #7c8934;
	--dark-blue: #253a55;
	--soft-black: #222;
	--soft-grey: #999;
	--cyan-teal: #3cbfbe;
	--sand-brown: #8d7835;

	--foreground: light-dark(var(--soft-black), var(--soft-grey));
	--background: light-dark(var(--blue), black);
	--highlight: light-dark(var(--cyan-teal), var(--green));
	--link: light-dark(var(--background), var(--dark-green));
	--page: light-dark(white, var(--soft-black));
	--font-size: 12px;
}

* { box-sizing: border-box; }

.page {
	width: 500px;
	max-width: 100%;
	background: var(--page);
	border: 3px solid var(--foreground);
	padding: 22px;
	position: relative;
}

.logo {
	width: 30px;
	height: 30px;
	color: light-dark(var(--background), var(--foreground));
	background: currentColor;
	border-radius: 22%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: color 0.15s ease;
}

.logo-middle {
	width: 52%;
	height: 52%;
	background: var(--page);
	display: flex;
	align-items: center;
	justify-content: center;
}

.logo-inner {
	width: 78%;
	height: 78%;
	background: currentColor;
	border-radius: 50%;
}

.logo:hover,
.logo:focus-visible {
	color: var(--highlight);
}

h1 {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.3em;
	margin: 0;
}

.page h1 {
	margin-top: 0;
	margin-bottom: 8px;
}

body {
	margin: 0;
	padding: 20px 20px;
	background: var(--background);
	font-family: serif;
	font-size: var(--font-size);
	color: var(--foreground);
	display: flex;
	justify-content: center;
}

.course th {
	font-family: monospace;
}

th {
	text-align: left;
	padding-right: 20px;
	white-space: nowrap;
}

hr {
	margin: 8px 0;
	height: 0.5px;
	border-width: 0;
	color: var(--foreground);
	background-color: var(--foreground);
}

a {
	text-decoration: none;
	color: var(--link);
}

a:hover, a:focus {
	color: var(--highlight);
	transition: color 0.15s ease;
}

nav {
	display: flex;
	justify-content: space-between;
}