:root{
	--main-content-width:540px;
	--error-border:#FFFFFF;
	--error-bg-color:#BB4941;
	--error-color:#FFFFFF;


	--light-dark-toggle-scale:0.7;
	--light-dark-toggle-bottom:5px;

	--login-gap: 10px;
	--top-margin:20%;

}

.login-frame *{
	transition: all 500ms ease;
}

.login-frame{
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	margin: var(--top-margin) auto 0 auto;
	padding:20px;
	width:100%;
	min-height:320px;
	overflow: hidden;

	border:1px solid var(--frame-border-color);
	border-radius:var(--frame-radius);
	background:var(--frame-bg);
	background-color: var(--frame-bg-color);
}

.login-frame .row{
	text-align: center;
	align-items: center;
	justify-content: center;
}

.login-header{
	flex:1;
	max-height:var(--login-header-height);
	width:100%;
	margin-bottom:var(--login-gap);
}

.login-logo {
	background-image: var(--login-logo-url);
	background-size: var(--login-logo-img-size);
	height: var(--login-header-height);
	min-width: var(--login-logo-width);
	width: var(--login-logo-width);
	background-position: var(--login-logo-position);
	background-repeat: no-repeat;
}

.login-form-content{
	width:300px;
	margin: 0 auto;
	display:flex;
	flex-direction: column;
	gap:var(--login-gap);
}

.login-frame h1{
	font-size: 1.5rem;
	font-weight: 600;
}



.login-input{
	height:var(--login-element-height);
	width:100%;
	position: relative;
	margin:0 auto;
}

.login-frame .login-icon{
position: absolute;
top: 4px;
left: 4px;
width: 24px;
height: 22px;

border-radius: 2px;
background-color: transparent;
color: var(--primary-color);
transition: transform 0.2s ease;
transform-origin: center;
will-change: transform;
align-content: center;

}

.login-frame .icon-hover{
	transform: scale(1.1);
	color: #ccc;
	border-color: #ccc;
	font-size: 1.0625rem;

	background-color: var(--button-bg-color);
	color:var(--button-color);
}


.login-frame .text-input{
	padding:0 10px 0 34px;
	line-height: 24px;
	height:30px;
	width:100%;

	background-color: var(--input-bg-color);
	color:var(--input-color);
	border:var(--input-border);
	border-radius: var(--input-border-radius);
}


.login-frame .password-toggle{
	padding-right:24px;
}

.button.login-button{
	padding-left: 6px;
	padding-right: 6px;
	height:var(--login-element-height);
	font-size: var(--button-font-size);
	font-weight: var(--button-font-weight);
	border-radius: var(--input-border-radius);
	width:100%;
}

.login-button::after{
	font: var(--fa-font-solid);
	font-size: 1rem;
	position:absolute;
	transition: transform 0.2s ease;
	transform-origin: center;
	will-change: transform;
}

.login-button:hover::after{
	transform: scale(1.2);
}

.login-submit::after{content: "\f138";}
.login-back::after{content: "\f137";}
.login-home::after{content: "\f015";}
.login-agree::after{content: "\f058";}
.login-agree.disabled-button::after{content: "\f057";}
.login-return::after{content: "\f138";}

.button-icon-left:after{left:7px; top:6px;}
.button-icon-right:after{right:7px; top:6px;}

.login-frame .disabled-button,
.login-frame .disabled-button:hover{
	background-color: #ccc;
	color:#999;
}

.login-frame .disabled-button:hover::after{
	content: "\f119";
	color:var(--error-red);
}

.login-message{
	margin:0 auto;
	max-width:300px;
	width:300px;
	position: relative;
	font-size: 0.9375rem;
	line-height: 18px;
	text-align: left;
}
.login-message p{
	margin:5px 0px;
}

.error-box{
	margin:0 auto;
	min-height:30px;
	max-width:300px;
	width:300px;
	position: relative;
}

.error-box-content{
	display:none;
	position: relative;
}


.login-frame .error-box .error-message{
	width:100%;
	min-height:30px;
	line-height: 28px;
	position:absolute;
	top:0px;
	text-align: center;
	font-size: 0.875rem;
	padding:0 10px;
	border-radius: 3px;

	transition: opacity 0.5s ease-in-out, visibility 0s 0.5s;

	border:1px solid var(--error-border);
	background-color: var(--error-bg-color);
	color:var(--error-color);

}

.login-frame .error-box .login-icon{
	color:var(--error-color);
}

.login-message-content:empty,
.login-frame .error-box .error-message:empty {
	visibility: hidden;
	opacity: 0;
}



.login-frame .error-box .error-message:not(:empty){
	visibility: visible;
	opacity: 1;
	transition-delay: 0s, 0s;
}

.login-message-content{
	text-align: center;
}

.login-frame .highlight .text-input{
	border:1px solid red;
}

.login-frame .highlight .login-icon {
	color:red;
}



.login-frame .lower-link{
	position:absolute;
	bottom:10px;
	font-size: 0.6875rem;
	cursor: pointer;
	color:;
}

.login-frame .go-back{
	left:10px;
}

.login-frame .new-password{
	left:10px;
}

.toggle-password{
	position: absolute;
	top:2px;
	right:2px;
	width:28px;
	height:26px;
	line-height: 27px;
	border-radius: 2px;
	font-size: 0.75rem;
	background-color: transparent;
	cursor: pointer;
	transition: all 0.5s ease;
	color:var(--input-color);
}

.disabled-button{
	z-index:2;
	position:absolute;
	top:0px;
	padding:0 5px;
	text-align: center;
	width:300px;
	line-height: 28px;
	background-color: var(--disabled-grey);
	cursor: default;
	border-radius: var(--input-border-radius);
}

.disabled-button i{
	position:absolute;
	right: 5px;
	top: 5px;
	font-size: 1.125rem;
}


.password-requirements {
	font-size: 0.75rem;
	line-height: 14px;
	color: gray;
	width:300px;
	padding-left:10px;
}
.password-requirements p{
	text-align: left;
}

.password-requirements .invalid {
	color: var(--error-red);

}

.password-requirements .valid {
	color: green;
	font-weight: 600;
}

.password-requirements .valid:before,
.password-requirements .invalid:before{
	font: var(--fa-font-solid);
	margin-right:7px;
	font-size:0.6875rem;
	position:relative;

}

.password-requirements .invalid:before {
	content: '\f119';
}

.password-requirements .valid:before{
	content: '\f118';
}

.login-return{
	display:none;
}

input:disabled{
	background-color: #DDDDDD!important;
	color:#666666!important;
}


.button-container{
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width:100%;
}