:root {
	--background: #1e1620;
	--background-lighter: #291d2c;
	--highlight: #7c4b87;
	--highlight-transparent: #7c4b87aa;
    --highlight-hover: #7c4b8777;
	--primary: #f5f5f5;
	--mid: #bfbfbf;
	--light: #39323c;
}

html {
	font-family: monospace;
	font-size: 18px;
	color: var(--primary);
	background-color: var(--background);
}

body {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 100lvh;
	margin: 0;
	background-color: var(--background);
}

main {
    padding-block: 4rem;
	display: flex;
	flex-direction: column;
	text-align: center;
	justify-content: center;
	align-items: center;
}

h1 {
	text-transform: uppercase;
}

table {
	user-select: none;
	border-collapse: collapse;
	margin: 25px 0;
	font-size: 0.75em;
	min-width: 400px;
	box-shadow: 0 0 16px rgba(0, 0, 0, 0.3);
}

#week {
	width: 80vw;
	max-width: 1000px;
}

thead {
	text-align: center;
	font-weight: 700;
}

td {
	border: thin solid var(--light);
	width: 6rem;
}

tbody tr:hover {
    background-color: var(--highlight-hover);
}

tr:nth-of-type(4n), tr:nth-of-type(4n+3) {
	background-color: var(--background-lighter);
}

#categories {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

#categories button {
	border: none;
	color: var(--primary);
	border: thin solid var(--light);
	padding: 0.5rem 1rem;
	margin: 0.5rem;
	cursor: pointer;
	transition: all 0.1s ease 0s;
}

#categories button:hover {
	transform: scale(0.9);
}

#categories button.selected {
	outline: 3px solid var(--primary);
	transform: scale(1);
}

#category-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	max-width: 1000px;
}

#new-category {
	display: flex;
	justify-content: center;
	align-items: center;
	border: thin solid var(--light);
	padding-inline: 0.5rem;
	border-radius: 4px;
}

input[type="text"] {
	border: none;
	border-bottom: thin solid var(--light);
	background-color: transparent;
	color: var(--primary);
	padding: 0.5rem;
	margin: 0.5rem;
	cursor: pointer;
	transition: all 0.1s ease 0s;
	width: 6rem;
	text-align: center;
}

input[type="text"]:focus {
	outline: 3px solid var(--primary);
	transform: scale(1);
}

input[type="color"] {
	border: none;
	background-color: transparent;
	color: var(--primary);
	padding: 0;
	margin: 0;
	cursor: pointer;
	height: 2rem;
	width: 2rem;
}

#new-category button {
	background-color: transparent;
	color: var(--primary);
	border: thin solid var(--light);
	border-radius: 4px;
	height: 2rem;
	width: 2rem;
	cursor: pointer;
	transition: all 0.1s ease 0s;
}

#new-category button:hover {
	transform: scale(0.9);
	background-color: var(--background-lighter);
}

#delete-category {
	background-color: transparent;
	color: var(--mid);
	font-size: 12px;
	border: none;
	border-bottom: thin solid var(--light);
	height: 1rem;
	padding: 0;
	margin: 0;
	margin-inline: 0.5rem;
	cursor: pointer;
	transition: all 0.1s ease 0s;
}

#menu {
	display: flex;
	justify-content: center;
	align-items: center;
}

#time {
	position: absolute;
	pointer-events: none;
	display: block;
	justify-content: center;
	transform: translate(0%, -50%);
}

#time hr {
	border: thin solid var(--highlight);
}

#time div {
	position: absolute;
	left: 100%;
	color: var(--highlight);
	padding: 0 0.5rem;
	user-select: none;
	top: 0;
}

#day {
	position: relative;
	width: 0;
	height: 0;
	transform: translate(-50%, 0%);
	border-left: 0.5rem solid transparent;
	border-right: 0.5rem solid transparent;
	border-top: 0.5rem solid var(--highlight);
}

td.current-day {
	border-left: 2px solid var(--highlight-transparent);
	border-right: 2px solid var(--highlight-transparent);
}

thead td.current-day {
	border-top: 2px solid var(--highlight-transparent);
}

td.current-day.last-cell {
	border-bottom: 2px solid var(--highlight-transparent);
}

td.current-hour {
	position: relative;
	border: 2px solid var(--highlight);
}
