:root {
	--main: hsl(0, 0%, 10%);
	--highlight: hsl(168, 85%, 27%);
	--highlight-50: hsl(168, 85%, 27%, 0.5);
	--highlight-30: hsl(168, 85%, 27%, 0.3);
	--highlight-10: hsl(168, 85%, 27%, 0.1);
}

* {
	font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui,
		helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial,
		sans-serif;
	box-sizing: border-box;
	color: var(--main);
}

html {
	overflow-y: scroll;
}

body {
	max-width: 50em;
	margin: 1rem auto;
	padding: 1rem;
}

a {
	color: var(--highlight);
}

a.logo {
	display: inline-block;
}

a.logo:focus {
	outline: 4px solid var(--highlight);
	outline-offset: 0.5em;
}

details {
	font-size: 0.85em;
	margin: 0em 0 1em;
	background-color: var(--highlight-10);
	border: 1px solid var(--highlight-50);
	padding: 1em;
}

summary {
	font-weight: bold;
}

summary:hover {
	color: var(--highlight);
	cursor: default;
}

details > p:last-of-type {
	margin: 0;
}

details > ol {
	margin: 1em 0;
}

details > ol > * + * {
	margin-top: 0.5em;
}

.inputs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25em;
	width: 100%;
}

.marker {
	background-color: transparent;
	padding: 0;
	/* margin-right: 0.25em; */
	border: none;
	flex: 0 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 1.75em;
	height: 1.75em;
	border-radius: 50%;
}

/* Add some style to the input and table elements */
input,
button {
	font-size: 20px;
	border-radius: 0%;
	white-space: nowrap;
	flex: 1 0 0;
}

input {
	padding: 0.1em 0 0.1em 0.5em;
	text-align: center;
	border: 2px solid var(--main);
	min-width: 5em;
	flex: 3;
}

button {
	border: 2px solid var(--main);
}

input:focus,
button:focus,
summary:focus {
	outline: 4px solid var(--highlight);
	outline-offset: 0;
}

.marker:focus {
	border: 2px solid var(--main);
}

summary:focus {
	outline-offset: 0.5em;
}

input::placeholder {
	text-align: center;
}

.table-container {
	width: 100%;
	position: relative;
}

@media (max-width: 500px) {
	.table-container {
		position: relative;
		overflow-x: auto;
	}

	button#request {
		flex-basis: 100%;
	}
}

table {
	border-collapse: collapse;
	margin-top: 20px;
	width: 100%;
}

th,
td {
	border: 2px solid var(--main);
	padding: 0.25em;
}

th > button {
	width: 100%;
	height: initial;
	border: 0;
	background-color: transparent;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-weight: bold;
	white-space: nowrap;
}

th > button:hover {
	color: var(--highlight);
}

/* Style the sort icons */
.sort-icon {
	position: relative;
	font-size: small;
	opacity: 0;
}

/* Show the sort icon when the header is sorted */
.sorted .sort-icon {
	opacity: 0.5;
}

th svg {
	width: 1em;
}

.intro {
	text-align: left;
}

.intro > h1 {
	font-size: 1.25em;
}

#spinner,
#no-data {
	background-image: linear-gradient(
			rgba(255, 255, 255, 0.75),
			rgba(255, 255, 255, 0.75)
		),
		url("spinner.svg");
	background-repeat: no-repeat;
	padding: 1em;
	background-position: center center;
	display: flex;
	align-items: end;
	justify-content: center;
	font-size: small;
	font-weight: bold;
	width: 100%;
	text-align: center;
}

#no-data {
	background-image: none;
	display: none;
}

.marker > svg {
	width: 1.25em;
	color: var(--highlight);
}

.marker > svg > path {
	color: var(--highlight);
}

.marker > svg > path:hover {
	color: var(--main);
}

.marker-animate > svg {
	animation: fade 1s linear infinite;
}

@keyframes fade {
	0%,
	100% {
		opacity: 0;
	}

	50% {
		opacity: 1;
	}
}
