@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

:root {
	--bg: #030303;
	--text: #fff;
	--border: #282828;
	--button: #1c1c1c;
	--buttonText: #f1f1f1;
	--subtitle: #b3b3b3;
	--hover: #353535;
}

html {
	font-family: "Roboto";
	background-color: var(--bg);
	color: var(--text);
	padding: 0;
}

hr {
	width: 85%;
	color: var(--border);
	border-bottom: none;
}

button {
	background-color: var(--button);
	color: var(--buttonText);
	font-family: "Roboto";
	font-weight: 500;
	cursor: pointer;
	
	border: none;
	width: 80%;
	border-radius: 2rem;
	margin: 1rem;
	padding: 0;
}

sub { color: var(--subtitle); }

body {
	display: grid;
	grid-template-areas:
	"header header"
	"menu main";
	grid-template-columns: 1fr 4fr;
	gap: 0;
	
	width: 100vw;
	height: 100vh;
	overflow-x: hidden;
	margin: 0;
	
	position: absolute;
	top: 0;
	left: 0;
}

header {
	grid-area: header;
	height: 3.5rem;
	width: 99.75vw;
	position: sticky;
	top: 0;
	z-index: 2;
	
	padding: 0.25rem;
	background-color: var(--bg);
	border-bottom: 1px solid var(--border);
	
	display: flex;
	justify-content: space-between;
}

.searchBar{
	margin-top: 0.5rem;
	margin-bottom: 0.5rem;
	padding: 0.6rem;
	
	border: 1px solid var(--buttonText);
	border-radius: 0.5rem;
	
	background-color: var(--button);
	opacity: 0.5;
}

.searchBar p {
	color: var(--buttonText);
	margin-top: 0;
	margin-left: 2rem;
}

.menu {
	grid-area: menu;
	background-color: var(--bg);
	border-right: 1px solid var(--border);
	
	height: 91vh;
	max-height: 100vh;
	overflow-y: hidden;
	width: 14rem;
	padding: 0.5rem;
	z-index: 1;
}

.menu button {
	height: 2.25rem;
}

.menuNav {
	width: 100%;
	margin: 0;
	padding: 0;
	text-align: left;
}

.menuNav button {
	width: 100%;
	height: 2.8rem;
	
	margin-left: auto;
	margin-right: auto;
	margin-top: 1px;
	margin-bottom: 1px;
	
	padding: 0;
	padding-left: 1rem;
	border-radius: 0.5rem;
	
	text-align: left;
	font-size: 1rem;
	font-weight: 400;
	
	background-color: var(--bg)
}

.menuNav p {
	display: inline-block;
	margin-left: 1.25rem;
}

.menuNav button:hover {
	background-color: var(--hover);
}

.menuPlaylist {
	display: block;
	width: 100%;
	max-height: 60vh;
	overflow-y: auto;
	overflow-x: hidden;
	padding: 0;
	margin: 0;
}

.menuPlaylist button {
	background-color: var(--bg);
	width: 97%;
	height: 3.25rem;
	text-align: left;
	line-height: 1.25rem;
	margin: 0;
	margin-left: 0.5%;
	padding-left: 1rem;
	padding-right: 1rem;
	border-radius: 0.5rem;
}

.menuPlaylist button:hover {
	background-color: var(--hover);
}

.menuPlaylist span {
	color: var(--subtitle);
	font-size: 0.75rem;
	display: block;
	line-height: 1rem;
}

.main {
	grid-area: main;
	padding: 0.5rem;
	text-align: center;
	max-height: 90vh;
	max-width: 100%;
	overflow-y: auto;
	overflow-x: hidden;
}

@media screen and (min-width: 1150px) {
	.blurredBG {
		width: 100%;
		height: auto;
		border-radius: 0.5rem;
		filter: blur(30px);
		opacity: 0.1;
		position: absolute;
		top: -125vh;
		right: 0;
		z-index: -1;
	}
	
	.searchBar {
		width: 24vw;
		margin-left: -40vw;
	}
	
	.player {
		display: inline-block;
		width: 25%;
		position: absolute;
		top: 12vh;
		left: 18vw;
	}
	
	.playlist {
		display: inline-block;
		width: 60%;
		margin-right: -15vw;
		margin-top: 5vh;
	}

	.playlist sub {
		font-size: 1rem;
	}

	.playlist span {
		font-size: 0.9rem;
	}

	.overlayPanel {
		width: 88vw;
	}

	.overlayPlaylistHeader {
		width: 60%;
	}
	
	.overlayPlaylistBody {
		width: 60%;
	}
}

@media screen and (max-width: 1150px) {
	.blurredBG {
		width: 100%;
		height: auto;
		border-radius: 0.5rem;
		filter: blur(50px);
		opacity: 0.1;
		position: absolute;
		top: -40vh;
		right: 0;
		z-index: -1;
	}
	
	.searchBar {
		width: 40vw;
		margin-left: -5vw;
	}
	
	.player {
		display: block;
		width: 100%;
	}
	
	.playlist {
		display: block;
		width: 80%;
		margin-left: auto;
		margin-right: auto;
	}

	.playlist sub, span {
		font-size: 0.9rem;
	}

	.overlayPanel {
		width: 75vw;
	}

	.overlayPlaylistHeader {
		width: 90%;
	}
	
	.overlayPlaylistBody {
		width: 90%;
	}
}

.player div {
	width: 100%;
	display: block;
}

.player button {
	width: 2.5rem;
	height: 2.5rem;
	aspect-ratio: 1;
	border-radius: 50%;
}

.playlist ol {
	list-style: none;
	counter-reset: section;
}

.playlist li {
	justify-content: space-between;
	gap: 0.5rem;
	
	height: 4rem;
	width: 100%;
	
	text-align: left;
	padding-bottom: 0.5rem;
}

.playlist li::before {
	counter-increment: section;
	content: counter(section) "";
	
	font-size: 0.85rem;
	color: var(--subtitle);
	
	margin-left: -2.25rem;
	margin-right: 2.25rem;
}

.playlist li:hover:before {
	content: url("data:image/svg+xml, <svg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24' focusable='false' aria-hidden='true' fill='white' style='pointer-events: pointer; display: inherit; width: 100%; height: 100%;'><path d='M5 4.623V19.38a1.5 1.5 0 002.26 1.29L22 12 7.26 3.33A1.5 1.5 0 005 4.623Z'></path></svg>");
}

.playlist p {
	display: inline-block;
	margin-top: 1rem;
}

.playlist span {
	color: var(--subtitle);
	display: block;
	line-height: 1rem;
	margin-top: 0.5rem;
}

.playlist sub {
	text-align: right;
	display: inline-block;
	float: right;
	margin-top: 2rem;
}

.playlistImage {
	width: 16rem;
	height: 16rem;
	border-radius: 0.5rem;
}

.overlayPanel {
	background-color: var(--bg);
	
	position: absolute;
	top: 3.75rem;
	left: 15rem;
	
	height: 93%
}

.overlayPanel button {
	width: 4rem;
	height: 2rem;
	position: absolute;
	top: 1rem;
	left: 1rem;
}

.overlayPlaylist {
	box-sizing: border-box;
	height: 100%;
	width: 50%;
	float: right;
	padding: 1rem;
}

.overlayPlaylistHeader {
	position: sticky;
	top: 0;
	padding: 0;
	height: 3rem;
	margin-left: auto;
	margin-right: auto;
	background-color: black;
}

.overlayPlaylistHeader button {
	position: relative;
	display: inline;
	width: 33.33%;
	height: 100%;
	top: 0;
	left: 0;
	float: left;
	margin: 0;
	border-radius: 0;
	border-bottom: 1px solid var(--button);
	background-color: var(--bg);
}

.overlayPlaylistBody {
	box-sizing: border-box;
	height: 94.5%;
	overflow-y: auto;
	margin-left: auto;
	margin-right: auto;
	margin-top: 1rem;
	padding-bottom: 2rem;
	background-color: var(--bg);
}

.overlayPlaylistBody button {
	box-sizing: border-box;
	position: relative;
	display: block;
	width: 100%;
	height: 3rem;
	top: 0;
	left: 0;
	float: left;
	margin: 0;
	margin-top: 0.5rem;
	padding-right: 0.5rem;
	border-radius: 0;
	border-bottom: 1px solid var(--button);
	background-color: var(--bg);
}

.overlayPlaylistBody img {
	width: 30%;
	height: auto;
	border-radius: 0.5rem;
	display: inline-block;
	float: left;
	margin: 1.5%;
}

.overlayPlaylistContent {
	display: inline-block;
	float: left;
}

.overlayPlaylistContent p {
	max-width: 30%;
}