#V-Login, #V-AdminLogin {
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	min-width: 250px;
	max-width: 600px;
	transition: all 0.3s ease-out;
	z-index: 5;
}

.LoginView {

	.descWrapper {
		color: var(--loading-color, #000);
		font-size: 214%;
		margin-bottom: 10px;
		text-align: center;
		text-shadow: var(--loading-text-shadow);
	}

	form {
		background-color: var(--login-bg-color, rgba(0, 0, 0, .5));
		border: var(--login-border, 1px solid rgba(255, 255, 255, .2));
		border-radius: var(--login-border-radius, 7px);
		box-shadow: var(--login-box-shadow);
		color: var(--login-color, rgba(255, 255, 255, .8));
		margin: 0;
		padding: 40px 40px 20px 40px;
		position: relative;

		* {
			color: var(--login-color, rgba(255, 255, 255, .8));
		}

		.controls.error * {
			color: #f76260;
			border-color: #f76260;
		}

		&.submitting > * {
			opacity: 0.3;
		}

		&.submitting::after{
			content: '';
			position: absolute;
			width: 60px;
			height: 60px;
			top: 50%;
			left: 50%;
			margin-top: -30px;
			margin-left: -30px;

			border: 8px solid transparent;
			border-top-color: var(--spinner-color, #fff);
			animation: loginRotation 1s infinite ease-in-out;

			border-radius: 50%;
			z-index: 1052;
		}
	}

	.controls, .control-group {
		margin-bottom: 25px;
		position: relative;
	}

	input {
		font-size: 128%;
		height: 40px;
		padding-right: 30px;

		&:placeholder {
			color: #fff;
		}

		&:focus, &:hover {
			border-color: #fff;
		}
	}

	input, .btn {
		background: none;
		border: 1px solid rgba(255, 255, 255, .8);
	}

	.fontastic + input {
		padding: 0 30px;
	}

	.controls > .fontastic:first-child {
		position: absolute;
		font-size: 121%;
		line-height: 38px;
		left: 6px;
	}

	.btn {

		text-transform: uppercase;
		font-size: 90%;

		&:hover, &:active {
			border-color: #fff;
		}
	}

	.buttonLogin {
		width: 100%;
	}

	.alert {
		position: absolute;
		left: 0;
		right: 0;
		z-index: 1;
		display: block;
		opacity: 1;
		transition: opacity 0.5s linear;

		p {
			font-family: var(--fontMono);
			font-size: 90%;
		}
	}
	.alert[hidden] {
		opacity: 0;
	}

	.language-buttons {
		flex-grow: 1;
		text-align: var(--right, right);
	}

	.language-button {
		padding: 5px;
		text-decoration: none;
	}

	.errorAnimated {
		animation: login-form-shake 400ms ease-in-out;
	}

	.errorAnimated .buttonLogin {
		color: #b94a48;
		font-weight: bold;
	}
}

@media screen and (max-width: 480px) {
	.LoginView {
		form {
			padding: 30px 4vw 10px;
		}
	}
}

@keyframes loginRotation {
	to   {transform: rotate(1turn);}
}

@keyframes login-form-shake  {
  0% {transform: translateX(0);}
  12.5% {transform: translateX(-6px)}
  37.5% {transform: translateX(5px)}
  62.5% {transform: translateX(-3px)}
  87.5% {transform: translateX(2px)}
  100% {transform: translateX(0)}
}

html.rl-started-trigger .LoginView {
	opacity: 0.5;
}
