#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; }