*,
*:before,
*:after {
	box-sizing: inherit;
}

.clear {
	clear : both;
}

.clearfix:after {
	content: '';
	display: block;
	clear: both;
}

.login-html,
.login-body {
	height   : auto;
	overflow : visible;
}

.login-page {
	background              : #FFF url(background.jpg) no-repeat center bottom;
	background-attachment   : fixed;
	background-position     : top;
	background-size         : cover;
	-webkit-background-size : cover;
	-moz-background-size    : cover;
	-o-background-size      : cover;
	box-sizing              : border-box;
	min-height              : 100vh;
	overflow-y              : visible;
	padding-bottom          : 185px;
}

.login-header {
	margin-bottom: 5em;
	padding: 2em;
	background: #FFF;
	text-align: center;
}

.login-header img {
	display: inline-block;
	vertical-align: middle;
	max-width:400px;
	max-height:250px;
}

.login-content {
	text-align: center;
	z-index: 2;
}

.form-container {
	display          : inline-block;
	padding          : 3em 4em 1.5em 4em;
	min-width        : 300px;
	width            : 90%;
	max-width        : 700px;
	overflow         : hidden;
	border-radius    : 10px;
	background-color : rgba(33, 60, 107, 0.75);
	text-align       : left;
	color            : #FFF;
	transition       : opacity 0.5s;
}

.form-container .login-container {
	display : flex;
}

.form-container .login-form {
	flex      : 6 1 auto;
	min-width : 110px;
}

.form-container .sso-ui-container {
	display : flex;
}

.form-container .sso-container {
	flex      : 4 1 200px;
	max-width : 200px;
}

.form-container .sso-container .sso-button-text {
	white-space   : nowrap;
	display       : block;
	overflow      : hidden;
	text-overflow : ellipsis;
}

.form-input {
	display          : block;
	margin           : 1em 0 .3em 0;
	padding          : 0.5em 1em;
	width            : 100%;
	border           : 0;
	border-radius    : 5px;
	background-color : #FFF;
	color            : #444;
	font-size        : 16px;
}

.form-input:first-of-type {
	margin-top : 0;
}

.form-container .vertical-divider {
	border-left : 1px solid rgba(255, 255, 255, 0.2);
	margin      : 0 1em;
}

.form-container.unsupported-browser {
	background-color: rgba(106, 13, 13, 0.75);
}

.unsupported-browser .form-button {
	background-color: rgba(103, 103, 103, 0.75);
}

.unsupported-message {
	display    : none;
	position   : relative;
	text-align : center;
	width      : 100%;
}

.unsupported-message .exclamation {
	margin : 0 0.7rem;
}

.unsupported-browser .unsupported-message {
	display : inline-block;
}

.supported-browser-link {
	background-color : rgba(103, 103, 103, 0.35);
	border-radius    : 6px;
	color            : #fefefe;
	cursor           : pointer;
	font-size        : 1.2rem;
	margin           : 0.4em 1.7rem 0 1.7rem;
	padding          : 0.5em 2em;
}

.supported-browser-link:hover,
.unsupported-browser .form-button:hover {
	background-color : rgba(103, 103, 103, 0.70);
	color            : #fefefe !important;
}

.supported-browser-link:first-of-type {
	margin-left : 0;
}

.unsupported-browser .form-input:last-of-type {
	margin-bottom : 0.7rem;
}

.login-recovery {
	display: inline-block;
	margin: 0.5em 0;
	color: #FFF;
	font-family: 'Lato', sans-serif;
	font-size: 12px;
}

.form-status {
	position: relative;
}

.form-loading,
.form-error {
	position: absolute;
	top: 1em;
	left: 0;
	right: 7em;
	color: #FFF;
	transition: opacity 0.5s;
}

.form-button-container {
	float : right;
	color : #FFF;
}

.form-button {
	float            : right;
	margin-top       : 1em;
	padding          : 0.5em 2em;
	border           : 0;
	border-radius    : 6px;
	background-color : rgb(252, 81, 32);
	font-weight      : bold;
	color            : #FFF;
	font-size        : 14px;
}

.form-button:hover {
	background-color : rgb(255, 93, 46);
}

.cancel-button {
	float            : right;
	position         : relative;
	z-index          : 1;
	background-color : transparent !important;
}

.cancel-button:hover {
	text-decoration : underline !important;
}

.registration-links {
	float      : right;
	margin-top : 30px;
}

.registration-links p {
	margin : 0 0 3px;
}

.registration-links a {
	color           : #FFF !important;
	text-decoration : none;
}

.registration-links a:hover {
	text-decoration : underline;;
}

.registration-header {
	margin        : -20px 0 35px 0;
	border-bottom : 1px solid #FFF;
	font-family   : Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;
}

.login-custom {
	margin-top: 1em;
}

.login-disclaimer {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 170px;
	padding: 10px;
	color: #FFF;
	text-align: center;
	font-family: 'Lato', sans-serif;
	font-size: 0.8em;
	z-index: 1;
}

.login-disclaimer:before {
	content: url(disclaimer_logo.png);
	display: block;
	margin-bottom: 1em;
}

.mobile-app-link-container {
	background: #EAEAEA;
	color: #444;
	text-align: center;
}

.mobile-app-link {
	display: block;
	font-size: 1.5rem;
	line-height: 1;
	padding: 1rem;
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: -3px -3px 3px rgba(0, 0, 0, 0.1) inset;
}

.mobile-app-link-content {
	display: inline-block;
}

.mobile-app-icon {
	display: inline-block;
	vertical-align: middle;
	margin-right: 0.5rem;
}

.mobile-app-text {
	display: inline-block;
	vertical-align: middle;
	text-align: left;
	white-space: normal;
	text-shadow: 1px 1px rgb(255, 255, 255);
}

.mobile-app-text b {
	font-weight: bold;
}

#secret-form img {
	margin: auto;
}

.tfa-link {
	text-align    : center;
	margin-bottom : 14px;
}

.ev-link {
	color : #fff;
}

.back-to-login-link {
	text-align    : center;
	margin-bottom : 14px;
	color         : #fff;
}

.qr-code {
	margin : 1em;
}

.qr-code img {
	border : 2px solid white;
}

.qr-code-scan-message {
	text-align    : center;
	margin-bottom : 1em;
}

.oauth-login-header {
	margin-bottom : 1.5rem;
}

.oauth-login-header img {
	max-width  : 48px;
	max-height : 48px;
}

.oauth-login-header span,
.oauth-login-header img {
	vertical-align : middle;
}
