screen-main form {
	max-width: 100%;
	width: 480px;
	margin: 0 auto;
	padding: 0 0 20px 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#login_form, #reset_form, #register_form {
	display: none;
}

form.on {
	display: block !important;
}

screen-main form:not(.on) {
	display: none;
}

screen-main {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
}

screen-main p {
	margin: 20px 0;
	color: var(--e-global-color-primary);
	line-height: 1.5;
}

screen-main h3 {
	font-size: 30px !important;
	color: var(--e-global-color-primary);
	margin: 20px 0;
	text-align: center;
	line-height: 30px !important;
}

screen-main label {
	font-size: 18px !important;
	color: var(--e-global-color-primary);
	height: 50px;
	line-height: 50px;
	width: 100%;
	display: inline-block;
	position: relative;
}

screen-main input {
	font-size: 18px !important;
	color: #000;
	height: 50px;
	line-height: 50px;
	width: calc(100% - 140px);
	border: none;
	outline: none;
	border-radius: 0;
	appearance: none;
	float: right;
	padding: 0 10px;
}

screen-main .password-input-wrapper {
	position: relative;
	display: inline-block;
	width: calc(100% - 140px);
	float: right;
	height: 50px;
	vertical-align: top;
}

screen-main .password-input-wrapper input {
	width: 100%;
	padding-right: 50px;
	padding-left: 10px;
	float: none;
	position: relative;
	box-sizing: border-box;
}

screen-main .password-toggle {
	position: absolute !important;
	right: 0 !important;
	top: 0 !important;
	bottom: auto !important;
	left: auto !important;
	height: 50px !important;
	width: 50px !important;
	min-height: 50px !important;
	max-width: 50px !important;
	background: transparent !important;
	border: none !important;
	cursor: pointer;
	padding: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	outline: none;
	z-index: 2;
	margin: 0 !important;
	text-transform: none !important;
	font-size: inherit !important;
	font-weight: normal !important;
	transition: background-color 0.2s;
}

screen-main .password-toggle:hover {
	background-color: rgba(0, 0, 0, 0.05) !important;
}

screen-main .password-toggle:active {
	background-color: rgba(0, 0, 0, 0.1) !important;
}

screen-main .password-toggle::after {
	display: none !important;
}

screen-main .password-toggle-icon {
	user-select: none;
	pointer-events: none;
	width: 24px;
	height: 24px;
	color: #000;
	fill: #000;
	flex-shrink: 0;
	vertical-align: middle;
	opacity: 0.7;
	transition: opacity 0.2s;
}

screen-main .password-toggle:hover .password-toggle-icon {
	opacity: 1;
}

screen-main .password-toggle-icon-closed {
	display: inline-block !important;
}

screen-main .password-toggle-icon-open {
	display: none !important;
}

screen-main .password-input-wrapper.show-password .password-toggle-icon-closed {
	display: none !important;
}

screen-main .password-input-wrapper.show-password .password-toggle-icon-open {
	display: inline-block !important;
}

screen-main input[type="checkbox"],
screen-main input[type="radio"] {
	width: auto;
	height: auto;
	float: none;
	vertical-align: middle;
	margin-right: 8px;
}

screen-main label:has(input[type="checkbox"]),
screen-main label:has(input[type="radio"]) {
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	height: auto;
	line-height: normal;
	gap: 8px;
}

screen-main label:has(input[type="checkbox"]) input[type="checkbox"],
screen-main label:has(input[type="radio"]) input[type="radio"] {
	margin-right: 0;
}

screen-main label span {
	display: inline-block;
	vertical-align: middle;
}

screen-main label > div {
	display: flex;
	gap: 20px;
	width: 100%;
}

screen-main label > div label {
	display: inline-block;
	width: auto;
	margin: 0;
	flex: 1;
}

screen-main label + label {
	margin-top: 10px;
}

screen-main button-main {
	max-width: 300px;
}

screen-main button,
button-main {
	width: 100%;
	max-width: 290px;
	height: 60px;
	min-height: 60px;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	background-color: var(--e-global-color-primary);
	color: #FFF;
	cursor: pointer;
	border: none;
	appearance: none;
	outline: none;
	font-size: 20px;
	font-weight: 700;
	transition: 0.3s;
	margin: 0 auto;
	text-transform: uppercase;
	position: absolute;
	z-index: 1;
	bottom: -60px;
}

/* Anmelde-Button soll die gleiche Schriftgröße wie button-main haben */
#login_form button {
	font-size: 20px !important;
}

#login_form button.lbh-is-loading,
#reset_form button.lbh-is-loading,
#register_form button.lbh-is-loading {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

#login_form button .lbh-spinner,
#reset_form button .lbh-spinner,
#register_form button .lbh-spinner {
	position: relative;
	margin-left: 0;
}

screen-main button:active,
button-main:active,
screen-main button:hover,
button-main:hover,
screen-main button:active::after,
button-main:active::after,
screen-main button:hover::after,
button-main:hover::after {
	background-color: #f28c00 !important;
	color: #fff !important;
}

/* Button .br and .bl styles with ::after pseudo-elements */
screen-main button.br::after,
button-main.br::after,
screen-main button.bl::after,
button-main.bl::after {
	content: '';
	position: absolute;
	transform: skewX(45deg);
	right: -30px;
	top: 0;
	width: 60px;
	height: 60px;
	background: var(--e-global-color-primary);
	z-index: -1;
}

screen-main button.bl::after,
button-main.bl::after {
	transform: skewX(-45deg);
	left: -30px;
	right: auto;
}

screen-main button.br:hover::after,
button-main.br:hover::after,
screen-main button.bl:hover::after,
button-main.bl:hover::after,
screen-main button.br:active::after,
button-main.br:active::after,
screen-main button.bl:active::after,
button-main.bl:active::after,
screen-main button.br:focus::after,
button-main.br:focus::after,
screen-main button.bl:focus::after,
button-main.bl:focus::after {
	background: #f28c00;
}

#reset_form #reset,
#register_form #register,
#login_form button {
	right: calc(50% - 300px);
	bottom: -60px;
}

#reset_form #back,
#register_form #back,
#login_form #show_reset {
	left: calc(50% - 300px);
	bottom: -60px;
}

#login_form #show_register {
	left: 50%;
	bottom: -140px;
	transform: translateX(-50%);
}

screen-main button[value="setnew"] {
	left: 50%;
	transform: translateX(-50%);
}

screen-main button[value="setnew"]:hover,
screen-main button[value="setnew"]:active,
screen-main button[value="setnew"]:focus {
	transform: translateX(-50%);
}

screen-main ul {
	color: var(--e-global-color-primary);
	padding: 0;
	list-style: inside;
	margin: 10px 0 0 0;
}

.px-auth-message {
	max-width: 480px;
	margin: 0 auto;
	padding: 10px;
	color: #fff;
	text-align: center;
}

.px-auth-message--error {
	background: #b00;
}

.px-auth-message--success {
	background: #090;
}

@media (max-width: 600px) {
	screen-main form {
		width: 100%;
		padding: 0 15px 40px 15px;
	}

	screen-main label {
		flex-direction: column;
		align-items: flex-start;
		height: auto;
		line-height: 1.4;
	}

	screen-main input {
		width: 100%;
		float: none;
	}

	screen-main .password-input-wrapper {
		width: 100%;
		float: none;
	}

	screen-main .password-input-wrapper input {
		width: calc(100% - 50px);
		padding-right: 50px;
	}

	screen-main input[type="checkbox"],
	screen-main input[type="radio"] {
		width: auto;
		height: auto;
		margin-right: 8px;
	}

	screen-main button,
	button-main {
		position: relative;
		left: auto;
		right: auto;
		bottom: auto;
		margin-top: 20px;
	}

	#login_form #show_register {
		transform: none;
		margin-top: 10px;
	}
}
