html {
	font-family: system-ui;
	font-size: 1rem;
	background-color: #fcfaf5;
	--color-accent: #f54940;
}

header {
	border-bottom: solid 1px black;
}

#header-inner {
	max-width: 60rem;
	margin: auto;
	padding: 2rem 1rem 2rem 1rem;
	overflow: hidden;
}

#title {
	font-weight: bold;
	font-size: 2rem;
	margin-bottom: 2rem;
}

#description {
	line-height: 1.5;
	margin-bottom: 0.5rem;
}

#credit {
	line-height: 1.5;
}

#credit a {
	text-decoration: underline;
	color: var(--color-accent);
}

main {
	max-width: 60rem;
	margin: auto;
	padding: 3rem 1rem 10rem 1rem;
}

#search-form {
	display: flex;
	align-items: center;
	column-gap: 1rem;
	margin-bottom: 1.5rem;
	justify-content: end;
}

#date-input {
	display: flex;
	line-height: 1;
	border: solid 1px black;
	border-radius: 0.5rem;
	padding: 0 1rem;
	height: 2.5rem;
	justify-content: center;
	align-items: center;
	background-color: white;
}

#search-button {
	display: flex;
	line-height: 1;
	height: 2.5rem;
	background-color: black;
	border-radius: 0.5rem;
	padding: 0 1rem;
	justify-content: center;
	align-items: center;
	color: white;
	font-weight: bold;
}

#search-button:disabled {
	background-color: #6b6b6b;
}

#availability-placeholder-table {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 12rem;
	border-radius: 0.5rem;
	border: solid 1px black;
	background-color: white;
}

#availability-table-wrapper {
	overflow-x: auto;
	border-radius: 0.5rem;
	border: solid 1px black;
	overscroll-behavior-x: none;
}

#availability-table {
	border-spacing: 0;
	white-space: nowrap;
	width: 100%;
	line-height: 1;
}

#availability-table thead tr th {
	min-width: 4rem;
	width: 6rem;
	padding: 0.8rem 0;
	background-color: black;
	color: white;
	font-size: 0.875rem;
	font-weight: bold;
	border-top: solid 1px black;
	border-bottom: solid 1px black;
}

#availability-table thead tr th:first-of-type {
	text-align: left;
	padding-left: 1rem;
	position: sticky;
	left: 0;
	min-width: 6rem;
}

#availability-table tbody tr th {
	border-right: solid 1px black;
	position: sticky;
	left: 0;
	height: 3rem;
	background-color: white;
	border-bottom: solid 1px black;
	min-width: 6rem;
	width: 6rem;
	text-align: left;
	padding-left: 1rem;
	font-size: 0.875rem;
}

#availability-table tbody tr td {
	border-right: solid 1px black;
	height: 3rem;
	background-color: white;
	border-bottom: solid 1px black;
	min-width: 4rem;
	width: 6rem;
	text-align: center;
}

#availability-table tbody tr td:last-of-type {
	border-right: none;
}

#availability-table tbody tr:last-of-type th,
#availability-table tbody tr:last-of-type td {
	border-bottom: none;
}

.x-icon {
	height: 1.2rem;
	width: 1.2rem;
	display: inline-flex;
	border-radius: 50%;
	background-color: #c9c9c9;
	align-items: center;
	justify-content: center;
}

.x-icon > svg {
	height: 0.8rem;
	width: 0.8rem;
}

.check-icon {
	height: 1.2rem;
	width: 1.2rem;
	display: inline-flex;
	border-radius: 50%;
	background-color: var(--color-accent);
	align-items: center;
	justify-content: center;
}

.check-icon > svg {
	height: 0.8rem;
	width: 0.8rem;
}

.hidden {
	display: none;
}

* {
	margin: 0;
	padding: 0;
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
	background: none;
	border: none;
	background-color: transparent;
	appearance: none;
	box-sizing: border-box;
	text-decoration: none;
}
