:root {
	--taskbar-width: 60px;
}

body {
	display: flex;
	flex-direction: row;
	background-color: var(--crust);
	overflow: hidden;
}

#lock-screen {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	width: 100%;
	height: 100%;
	background-color: var(--crust);
	z-index: 1;
}

#login-panel {
	background-color: var(--mantle);
}

#login-form {
	display: flex;
	flex-direction: column;
	justify-content: center;
	row-gap: 10px;
	align-items: center;
	box-sizing: border-box;
	height: 100%;
	padding: 20px;
}

#login-form h2 {
	margin: 0px;
}

#username {
	color: var(--accent-color);
}

#password-error {
	display: none;
	color: var(--red);
}

#desktop {
	width: 100%;
	height: 100%;
}

#desktop-wallpaper {
	display: none;
	position: absolute;
	width: calc(100% - var(--taskbar-width));
	height: 100%;
}

#desktop-wallpaper[src] {
	display: initial;
	box-shadow: 0px 0px 7px -2px black;
}

#start-menu {
	position: absolute;
	display: flex;
	flex-direction: column;
	right: var(--taskbar-width);
	height: 50%;
	padding: 15px;
	background-color: var(--mantle);
	z-index: 1000;
	transform: translateY(-100%);
	transition: transform 300ms cubic-bezier(0.19, 1, 0.22, 1);
}

#start-menu.open {
	transform: translateY(0%);
}

#start-menu > div {
	width: 100%;
	box-sizing: border-box;
	background-color: var(--base);
	border-radius: 5px;
	padding: 5px;
	margin: 5px 0px;
}

#start-menu-apps-container {
	flex-grow: 1;
}

#start-menu-apps {
	border-spacing: 20px 10px;
}

#start-menu-apps thead th {
	text-align: left;
}

#start-menu-apps tbody td {
	border: 2px solid transparent;
	transition: background-color 100ms ease-in;
}

#start-menu-apps tbody td:hover {
	background-color: var(--surface0);
	border: 2px solid var(--surface1);
	cursor: pointer;
}

#start-menu-apps tbody td > span {
	vertical-align: middle;
	padding: 2px 3px;
}

#log-out-button {
	margin: 5px;
	border-radius: 5px;
	font-size: 1.1em;
}

#taskbar {
	display: flex;
	flex-direction: column;
	min-width: var(--taskbar-width);
	max-width: var(--taskbar-width);
	height: 100%;
	background-color: var(--base);
}

#start-button {
	width: 100%;
	aspect-ratio: 1;
	background-color: var(--mantle);
}

#start-button:hover {
	background-color: var(--base);
}

#start-button:hover > #start-button-icon {
	color: var(--on-accent-color);
	background-color: var(--accent-color);
}

#start-button-icon {
	font-size: 28px;
	padding: 5px;
	background-color: var(--crust);
	border: 1px solid var(--surface0);
	border-radius: 5px;
	transition: color 100ms ease-out, background-color 100ms ease-in;
}

#taskbar-icons-container {
	flex-grow: 1;
}

.taskbar-icon-container {
	width: 100%;
	aspect-ratio: 1 / 0.8;
	border-width: 0px;
	border-right: 3px solid var(--accent-color);
	background-color: var(--surface0);
}

.taskbar-icon-container:hover {
	border-right-color: var(--crust);
	background-color: var(--accent-color);
}

.taskbar-icon-container:hover .taskbar-icon {
	color: var(--on-accent-color);
}

.taskbar-icon {
	color: var(--subtext1);
	font-variation-settings: "FILL" 1;
}

#taskbar-clock-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 10px 5px;
	padding: 5px 0px;
	background-color: var(--mantle);
	border-radius: 5px;
}

#taskbar-clock-hours {
	font-weight: bold;
}

#taskbar-clock-hours,
#taskbar-clock-minutes {
	font-size: 1.75em;
}

#taskbar-clock-seconds {
	color: var(--overlay2);
}

.window-frame {
	position: absolute;
	display: flex;
	flex-direction: column;
	min-width: 400px;
	min-height: 300px;
	background-color: var(--mantle);
	outline: 2px solid var(--surface0);
	box-shadow: 0px 0px 5px -5px var(--accent-color);
	transition: box-shadow 300ms cubic-bezier(0.34, 1.56, 0.6, 1.5);
}

.window-frame.highlight-border {
	box-shadow: 0px 0px 5px 3px var(--accent-color);
}

.window-titlebar {
	display: flex;
	align-items: center;
	background-color: var(--base);
}

.window-titlebar * {
	color: var(--text);
	font-variation-settings: "FILL" 1;
}

.window-titlebar .window-icon {
	font-size: 1.2em;
	margin: 2px 5px;
}

.window-name {
	width: 100%;
	margin: 2px 0px;
}

.window-icon,
.window-name {
	pointer-events: none;
}

.window-close-button {
	width: 40px;
	height: 100%;
	background-color: var(--mantle);
}

.window-content-container {
	position: relative;
	flex-grow: 1;
}

.window-content {
	position: absolute;
	width: 100%;
	height: 100%;
}

.window-content-barrier {
	position: absolute;
	width: 100%;
	height: 100%;
}

.window-border {
	--border-width: 10px;
	position: absolute;
	width: calc(100% + var(--border-width) * 2);
	height: calc(100% + var(--border-width) * 2);
	margin: calc(var(--border-width) * -1);
	clip-path: polygon(
		evenodd,
		0 0,
		100% 0,
		100% 100%,
		0 100%,
		0 0,
		var(--border-width) var(--border-width),
		calc(100% - var(--border-width)) var(--border-width),
		calc(100% - var(--border-width)) calc(100% - var(--border-width)),
		var(--border-width) calc(100% - var(--border-width)),
		var(--border-width) var(--border-width)
	);
}
