#top-bar {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 64px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
	background-color: white;
	z-index: 3;
}

#top-bar * {
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

#top-bar .logo {
	width: 80px;
	height: 64px;
	background: url('/resources/images/login/logo.png') center center no-repeat;
	background-size: contain;
	float: left;
}

#top-bar .app-name {
	position: absolute;
	top: 0;
	left: 50%;
	height: 100%;
	text-align: center;
	line-height: 64px;
	font-size: 20px;
	font-weight: 600;
	z-index: -1;
	transform: translateX(-50%);
	padding-left: 16px;
	padding-right: 16px;
	background-color: white;

	cursor: pointer;
}

#top-bar .app-name.active .environment-switcher {
	transform: translateX(-50%) translateY(0);
	visibility: visible;
}

#top-bar .environment-switcher {
	position: absolute;
	z-index: -2;
	top: 100%;
	left: 50%;
	width: 100%;
	text-align: center;
	transform: translateX(-50%) translateY(-100%);
	background-color: white;
	box-shadow: 0 0 3px rgba(0,0,0,0.12), 0 0 2px rgba(0,0,0,0.24);
	visibility: hidden;
	transition: visibility 0.3s, transform 0.3s;
}

#top-bar .environment-switcher > * {
	display: block;
	color: #828282;
	padding: 12px;
	line-height: normal;
	text-decoration: none;
	font-weight: bold;
	text-transform: uppercase;
	font-size: 14px;
	border-top: 1px solid #DBDBDB;
	transition: background-color 0.2s, color 0.2s;
}

#top-bar .environment-switcher a:hover {
	background-color: #009ee1;
	color: white;
}

#top-bar .user {
	padding-left: 16px;
	padding-right: 16px;
	display: flex;
	height: 64px;
	border-left: 1px solid #DBDBDB;
	float: right;
	font-size: 14px;
	cursor: pointer;
	background-color: white;
	position: relative;
}

#top-bar .resources {
	padding-left: 16px;
	padding-right: 16px;
	display: flex;
	height: 64px;
	border-left: 1px solid #DBDBDB;
	border-right: 1px solid #DBDBDB;
	float: left;
	font-size: 14px;
	background-color: white;
	position: relative;
	width: 120px;

	align-items: center;
}

#top-bar .resources > div {
	width: 100%;
}

#top-bar .resources div div::after {
	content: "";
	display: table;
	clear: both;
}

#top-bar .resources div div div:first-child {
	font-weight: bold;
	color: #009ee1;
	float: left;
}

#top-bar .resources div div div:last-child {
	font-weight: normal;
	color: black;
	float: right;
}

#top-bar .user > * {
	align-self: center;
}

#top-bar .user .text {
	float: left;
	padding-left: 16px;
	padding-right: 16px;
}

#top-bar .user .name {
	font-weight: 300;
	font-size: 16px;
}

#top-bar .user .rank {
	font-weight: 700;
	font-size: 11px;
	text-transform: uppercase;
	color: #828282;
}

#top-bar .user .profile-picture {
	position: relative;
	width: 48px;
	height: 48px;

	border-radius: 100%;
	float: left;
	overflow: hidden;
}

#top-bar .user .profile-picture * {
	position: absolute;
	top: 0; left: 0;
	border-radius: 100%;
	width: 100%; height: 100%;
}

#top-bar .user .profile-picture img {
	width: 46px;
	height: 46px;
	border: 1px solid #DBDBDB;
}

#top-bar .user .profile-picture i:before {
	color: #C4C4C4;
	line-height: 48px;
	font-size: 48px;
}

#top-bar .user i {
	color: #009ee1;
}

#top-bar .user .menu {
	position: absolute;
	z-index: -1;
	background-color: white;
	top: 100%;
	transform: translateY(-100%);
	width: 100%;
	left: 0;
	box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
	transition-duration: 0.3s;
	transition-property: transform, visibility;
	visibility: hidden;
}

#top-bar .user .menu.active {
	transform: translateY(0%);
	visibility: visible;
}

#top-bar .user .menu .fa-caret-down {
	transform: rotate(0deg);
}

#top-bar .user .menu.active ~ .fa-caret-down {
	transform: rotate(180deg);
}

#top-bar .user .menu .item {
	padding: 12px;
	font-size: 14px;
	font-weight: 300;
	border-top: 1px solid #DBDBDB;
	text-align: center;
	transition: background-color 0.2s, color 0.2s;
}

#top-bar .user .menu .item:hover {
	background-color: rgba(0, 158, 225, 1);
	color: white;
}

#menu {
	position: absolute;
	top: 64px;
	left: 0px;
	height: calc(100% - 64px);
	width: 80px;
	background-color: #364760;
	color: #9cb0cd;
	overflow: hidden;
	z-index: 2;
}

#menu * {
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

#menu .item {
	position: relative;
	width: 80px;
	height: 80px;
	font-weight: 600;
	font-size: 12px;
	text-align: center;
	box-sizing: border-box;
	border: 0px solid transparent;
	cursor: pointer;

	transition: border 0.2s, background-color 0.2s, color 0.2s;
}

#menu .item.tab {
	height: 34px;
	padding-top: 8px;
	border-top: 1px solid #009ee1;
	border-left: 8px solid #009ee1;
	background-color: #f1f1f1;
	overflow: hidden;
	padding-left: 4px;
	color: #009ee1;
	padding-right: 4px;
	text-overflow: ellipsis;
	white-space: nowrap;
	cursor: pointer;

	animation: menu-item-tab-enter 0.5s ease-out forwards;
}

#menu .item-wrapper:not(.active) .item.tab {
	border-left: 0px solid transparent;
	border-top: 1px solid #9cb0cd;
	background-color: transparent;
	color: inherit;
}

#menu .item.tab.removing {
	animation: menu-item-tab-exit 0.5s ease-out forwards;
}

@keyframes menu-item-tab-enter {
	0% {
		max-height: 0px;
		padding-top: 0px;
	}

	100% {
		padding-top: 8px;
		max-height: 34px;
	}
}

@keyframes menu-item-tab-exit {
	0% {
		padding-top: 8px;
		max-height: 34px;
	}

	100% {
		max-height: 0px;
		padding-top: 0px;
	}
}

#menu .item .fa {
	font-size: 32px;
	line-height: 64px;
}

#menu .item > span {
	position: absolute;
	bottom: 12px;
	left: 0;
	width: 100%;
}

#menu .item-wrapper:not(.active):hover .item,
#menu .item-wrapper:not(.active) .item.tab:hover {
	border-left: 4px solid #009ee1;
}

#menu .item-wrapper.active .item:hover ~ .item.tab {
	border-left: 8px solid red;
	color: red;
}

#menu .item-wrapper:not(.active) .item.tab:hover ~ .item.tab {
	border-left: 4px solid red;
}

/*Cancel out style for all items after the first non-tab item*/
#menu .item.tab:not(.inactive):hover ~ .item:not(.tab) ~ .item.tab,
#menu .item:not(.tab).active:hover ~ .item:not(.tab) ~ .item.tab,
#menu .item.tab.inactive:hover ~ .item:not(.tab) ~ .item.tab,
#menu .item:not(.tab):not(.active):hover ~ .item:not(.tab) ~ .item.tab.inactive {
	border-left: inherit;
	color: inherit;
}

#menu .item-wrapper.hidden {
	display: none;
}

#menu .item:not(.tab):active {
	background-color: #303F57;
}

#menu .item-wrapper.active .item:not(.tab) {
	/*background-color: #F7F7F7;*/
	background-color: #f1f1f1;
	color: #009ee1;
	border-left: 8px solid #009ee1;
}

.popup.change-password .button[data-action='cancel'] {
	display: none;
}

.popup.change-password.show-cancel .button[data-action='cancel'] {
	display: block;
}

.popup.change-password .labels {
	text-align: left;
}

.popup.change-password .progress {
	display: none;
}

.popup.change-password.show-progress .labels {
	display: none;
}

.popup.change-password.show-progress .progress {
	display: block;
}

#menu > footer {
	position: absolute;
	bottom: 8px;
	text-align: center;
	width: 100%;
	font-size: 14px;
}

#menu > footer span {
	display: block;
}

#menu > footer .update {
	font-size: 12px;
	cursor: pointer;
	font-weight: bold;
	text-decoration: none;
}

#menu > footer .update.available {
	color: #71D948;
}

#menu > footer .update:hover {
	text-decoration: underline;
}

#menu > footer .version {
	margin-top: 2px;
	font-weight: bold;
}

#menu > footer .version.loading {
	margin-top: 5px;
	font-size: 16px;
}

#pause-button {
	position: relative;
	float: left;
	border-right: 1px solid #DBDBDB;
	color: #71D948;
	height: 49px;
	width: 64px;
	padding-top: 15px;
	text-align: center;
	font-size: 32px;
	cursor: pointer;

	transition: background-color 0.2s, color 0.2s;
}

body.observing #pause-button {
	cursor: default;
}

#pause-button:not(.active) .fa-play,
#pause-button.active .fa-pause,
#pause-button:not(.active):hover .fa-pause,
#pause-button.active:hover .fa-play {
	display: block;
}

#pause-button.active .fa-play,
#pause-button .fa-pause,
#pause-button:not(.active):hover .fa-play,
#pause-button.active:hover .fa-pause {
	display: none;
}

body.observing #pause-button:not(.active):hover .fa-pause,
body.observing #pause-button.active:hover .fa-play {
	display: none;
}

body.observing #pause-button:not(.active):hover .fa-play,
body.observing #pause-button.active:hover .fa-pause {
	display: block;
}

#pause-button .button-label {
	left: 100%;
	top: 50%;
	transform: translateX(8px) translateY(-50%);
}

body.observing #pause-button .button-label {
	display: none;
}

.button-label {
	position: absolute;
	top: 50%;
	left: 0;
	background-color: rgba(0,0,0,0.8);
	color: white;
	padding: 6px 8px;
	border-radius: 3px;
	margin-top: 0px;
	white-space: nowrap;
	z-index: -1;
	opacity: 0;
	visibility: hidden;

	transition: opacity 0.2s, visibility 0.2s;
}

div:hover > .button-label {
	visibility: visible;
	opacity: 1;
}

body:not(.observing) #pause-button:hover {
	background-color: #EB9100;
	color: white;
}

#pause-button.active {
	color: #EB9100;
}

body:not(.observing) #pause-button.active:hover {
	background-color: #71D948;
	color: white;
}
