@import "../htk/style/classes";


.vn-gui {
	height: inherit;

	/* Font */

	.user-name,
	.menu-title {
		font-size: 1.1rem;
	}

	/* Navigation bar */

	.navbar {
		position: fixed;
		background-color: #1A1A1A;
		left: $side-panel-width;
		top: 0;
		right: 0;
		z-index: 1;
		overflow: hidden;
		height: $navbar-height;
		color: white;
		display: flex;
		align-items: center;

		transition-property: left, background-color, transform;
		transition-duration: 200ms;
		transition-timing-function: ease-in-out;

		& > .menu-button {
			flex: none;
			display: none;
			border: none;

			&:hover {
				background-color: rgba(255, 255, 255, .1);
			}
			& > .htk-icon {
				display: block;
			}
		}
		& > .title-wraper {
			display: flex;
			align-items: center;
			gap: 12px;
			overflow: hidden;
			padding-left: 12px;
			flex-shrink: 3;

			& > .title {
				overflow: hidden;

				h1 {
					font-weight: normal;
					font-size: 1.4rem;
					margin: 0;
					white-space: nowrap;
					text-overflow: ellipsis;
					overflow: hidden;
				}
			}
		}
		& > .action-bar {
			flex: auto;
			height: 100%;

			& > div {
				display: flex;
				justify-content: flex-end;
				height: 100%;
				align-items: center;
				padding-right: 12px;
				padding-left: 4px;
				gap: 2px;
			}
			button {
				margin: 0;
				padding: 8px 13px;

				&:hover {
					background-color: rgba(2550, 255, 255, .2);
				}
			}
		}
	}

	/* Background */

	& > .background {
		z-index: 10;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		visibility: hidden;
		background-color: rgba(1, 1, 1, .7);
		opacity: 0;

		&.show {
			visibility: visible;
			transition: opacity 200ms ease-out;
			opacity: 1;
		}
	}

	/* Left panel */

	.menu-overflow {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 4em;
		overflow: auto;
	}
	.menu-header {
		background-color: #1A1A1A;
		color: white;
		height: $navbar-height;
		display: flex;
	}
	.logo {
		display: block;
		width: 160px;
		margin-left: 37px;
	}
	.user-info {
		margin: 25px;

		& > div {
			display: flex;
			justify-content: space-between;
			align-items: center;
			overflow: hidden;
			font-weight: bold;
			border: 1px solid #eaeaea;

			& > span {
				padding: 10px;
				overflow: hidden;
				text-overflow: ellipsis;
				white-space: nowrap;
			}
			.logout {
				display: block;
				margin: 0;
				text-align: left;
				border-radius: 0;

				&:hover {
					background-color: #1a1a1a;
					color: white;
				}
				& > .htk-icon {
					display: block;
				}
			}
			&.supplant {
				display: none;
				border-top: none;

				&.show {
					display: flex;
				}
			}
		}
	}

	/* Test link */

	.test-link {
		display: none;
		margin: .5em;
		background-color: #3f51b5;
		color: white;
		padding: 0 1em;
		line-height: 2em;
		border-radius: .1em;
		text-align: center;

		&:hover {
			background-color: #4f61c5;
		}
	}
	.dev-info {
		display: none;
		padding: .3em .5em;
		color: white;
		background-color: #3f51b5;
		font-size: .9em;
		margin: .5em;
		border-radius: .1em;

		& > p {
			margin: .2em 0;
		}
		& > .mode {
			color: #BBF;
		}
	}

	/* Menu */

	.main-menu,
	ul.submenu {
		list-style-type: none;
		padding: 0;
		margin: 0;
	}
	.main-menu > li {
		display: block;
		padding: 0;
		margin: 0;
		width: 100%;
	}
	.main-menu a {
		width: 70%;
		padding: 0 15%;
		display: block;
		line-height: 2.8em;
	}
	.main-menu a:hover,
	.main-menu a.selected {
		background-color: rgba(1, 1, 1, .1);
	}
	ul.submenu {
		display: none;
	}
	ul.submenu.popup {
		display: inline;
		position: fixed;
		border: none;
		border-radius: 1px;
		background-color: white;
		box-shadow: 0 0 .3em rgba(1, 1, 1, .3);
		z-index: 50;
		width: 13em;
		max-height: 30em;
	}

	/* Social */

	.menu-footer {
		position: absolute;
		bottom: 0;
		right: 0;
		left: 0;
	}

	/* Body */

	& > .body {
		margin-left: $side-panel-width;
		padding-top: $navbar-height;
		height: inherit;
		box-sizing: border-box;
		height: inherit;

		transition-property: margin-left, margin-right;
		transition-duration: 200ms;
	}
	.form-holder {
		position: relative;
		height: inherit;

		&.move-start {
			opacity: 0;
			transform: translate3d(-2em, 0, 0);
			-webkit-transform: translate3d(-2em, 0, 0);		
		}
		&.move-end {
			opacity: 1;
			transform: translate3d(0, 0, 0);
			-webkit-transform: translate3d(0, 0, 0);

			transition-property: opacity, transform;
			transition-duration: 200ms;
			transition-timing-function: ease-out;
		}
		& > * {
			padding: $spacing-md;
		}
	}

	/* Mobile */

	@include mobile {
		& > .navbar {
			padding-left: 12px;
			left: 0;

			& > .menu-button {
				display: block;
			}
			& > .action-bar {
				button {
					padding: 8px;
				}
				span.label,
				button > .text {
					display: none;
				}
			}
		}
		& > .body {
			margin-left: 0;
		}
		.form-holder {
			left: 0;
		}
		ul.submenu {
			display: block;
			background-color: #888;
			color: white;
			box-shadow: inset 0 0 .2em rgba(1, 1, 1, .2);
			overflow: hidden;
		
			max-height: 0;
			transition: max-height 300ms ease-out;
			webkit-transition: max-height 300ms ease-out;
		}
		.main-menu li:hover > ul.submenu {
			max-height: 20em;
		}
	}
}

/* Side panel */

.side-panel {
	z-index: 20;
	position: fixed;
	bottom: 0;
	background-color: white;
	width: $side-panel-width;

	&.left-panel {
		left: 0;
		top: 0;
	
		@include mobile {
			left: -$side-panel-width;
	
			&.show {
				transform: translateZ(0) translateX($side-panel-width);
				-webkit-transform: translateZ(0) translateX($side-panel-width);
			}
		}
	}
	&.right-panel {
		right: 0;
		top: $navbar-height;
		overflow: auto;
	
		@include mobile {
			top: 0;
			right: -$side-panel-width;
	
			&.show {
				transform: translateZ(0) translateX(-$side-panel-width);
				-webkit-transform: translateZ(0) translateX(-$side-panel-width);
			}
		}
	}
	@include mobile {
		transition: transform 200ms ease-out;
		-webkit-transition: transform 200ms ease-out;
		box-shadow: 0 0 .2em rgba(1, 1, 1, .3);
	}
}