div.popup-tray {
	position: fixed;
	background-color: white;
	margin: 0px;
	padding: 1em;
	overflow-y: scroll;
	border-left: 1px solid black;
}
div.popup-tray-md {
	width: 40vw;
	height: 100vh;
	top: 0px;
	left: 60vw;
}
div.popup-tray-lg {
	width: 80vw;
	height: 100vh;
	top: 0px;
	left: 20vw;
}
div.popup-tray-xl {
	width: 100vw;
	height: 100vh;
	top: 0px;
	left: 0px;
}
div.popup-tray-body {
	padding-top: 1em;
	overflow-x: hidden;
}
span.close-tray {
	cursor: pointer;
	color: #666;
	font-size: 1em;
	margin: 0.4em;
	position: relative;
	top: 0.3em;
	left: 0.3em;
}
span.close-tray:hover {
	color: #222;
}
span.maximize-tray {
	cursor: pointer;
	color: #666;
	font-size: 1.2em;
	margin-top: 0.5em;
	position: absolute;
	top: 0.2em;
	right: 0.2em;
}
span.maximize-tray:hover {
	color: #222;
}

.loader {
	border: 16px solid #f3f3f3;
	border-radius: 50%;
	border-top: 16px solid #3498db;
	width: 120px;
	height: 120px;
	margin-left: auto;
	margin-right: auto;
	-webkit-animation: spin 2s linear infinite; /* Safari */
	animation: spin 2s linear infinite;
}

/* Safari */
@-webkit-keyframes spin {
	0% { -webkit-transform: rotate(0deg); }
	100% { -webkit-transform: rotate(360deg); }
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

@keyframes slide-in {
	from {
		transform: translateX(105%);
	}
	to {
		transform: translateX(0%);
	}
}
@keyframes slide-out {
	from {
		transform: translateX(0%);
	}
	to {
		transform: translateX(105%);
	}
}

div.popup-tray.open-tray {
	animation: slide-in 700ms;
}
div.popup-tray.close-tray {
	animation: slide-out 700ms;
}

@media (max-width: 600px) {
	div.popup-tray-lg {
		width: 100vw;
		height: 100vh;
		top: 0px;
		left: 0px;
	}
	div.popup-tray-md {
		width: 80vw;
		left: 20vw;
	}
}
