@import 'fonts.css';
@import 'basic.css';

:root {
	--icon-passkey: url("icons/passkey.svg");
}

html[data-color-scheme="dark"] {
	--icon-passkey: url("icons/passkey--dark.svg");
}

/* Body */
body {
	background: var(--body-bg) url("icons/contao.svg") center 4.5em no-repeat;
}

/* Container */
#container {
	margin: 15em 10px 0;
}

#main {
	max-width: 350px;
	margin: 0 auto;
}

/* Headlines */
#container h1 {
	margin-bottom: 1em;
}

/* JS warning */
#javascript {
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	padding: 9px;
	background: var(--white);
	text-align: center;
}

.js #javascript {
	display: none;
}

/* Login form */
.tl_login_form, .login-providers {
	background: var(--content-bg);
	border-radius: 2px;
}

.formbody {
	padding: 35px 45px 29px;
}

.be_login_two_factor .formbody {
	padding-bottom: 35px;
}

.login-providers {
	padding: 0 45px 35px;
}

.login-providers .or {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 1rem;
	padding-bottom: 15px;
}

.login-providers .or::before, .login-providers .or::after {
	content: "";
	border-top: 1px solid var(--border);
	align-self: center;
}

.login-providers ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.login-providers li {
	margin-bottom: 4px;
	text-align: center;
}

.login-providers .has-icon {
	display: flex;
	align-items: center;
	justify-content: center;
}

.login-providers .has-icon:before {
	content: "";
	width: 16px;
	height: 16px;
	margin-right: 4px;
}

.login-providers .passkey .has-icon:before {
	background-image: var(--icon-passkey);
}

.widget {
	margin: 0 !important;
}

.tl_text {
	margin: 2px 0;
	padding-right: 24px;
}

.widget-checkbox {
	display: flex;
	align-items: center;
	margin-top: 6px !important;
}

.tl_checkbox + label {
	margin-left: 4px;
}

.submit_container {
	margin-top: 2px;
}

.be_login_two_factor .submit_container {
	margin-top: 12px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 6px;
	align-items: center;
}

.tl_submit {
	width: 100%;
	text-align: center;
}

label[for="username"] {
	position: absolute;
	top: 9px;
	right: 6px;
	background: url("icons/person.svg") left top no-repeat;
	background-size: 16px;
	width: 16px;
	height: 16px;
	text-indent: -999em;
	z-index: 1;
}

label[for="password"], label[for="password_confirm"] {
	position: absolute;
	top: 10px;
	right: 7px;
	background: url("icons/lock-locked.svg") left top no-repeat;
	background-size: 14px;
	width: 14px;
	height: 14px;
	text-indent: -999em;
	z-index: 1;
}

.widget-password.wizard label[for="password"] {
	right: 31px;
}

label[for="verify"] {
	position: absolute;
	top: 9px;
	right: 6px;
	background: url("icons/shield.svg") left top no-repeat;
	background-size: 16px;
	width: 16px;
	height: 16px;
	text-indent: -999em;
	z-index: 1;
}

.qr_code {
	margin: 0 0 16px;
}

.qr_code .tl_help {
	line-height: 1.3;
}

.fe-link {
	margin-top: 3em;
	font-size: 90%;
	text-align: center;
}

/* Error messages */
.tl_message {
	max-width: 600px;
	margin: 30px auto 0;
	text-align: center;
}

.tl_message.passkey_message:empty {
	display: none;
}

.tl_error, .tl_info, .tl_confirm {
	padding: 3px 0;
	line-height: 1.5;
	font-size: 1rem;
	margin: 0;
}

.tl_error {
	color: var(--red);
}

.tl_info {
	color: var(--blue);
}

.tl_confirm {
	color: var(--green);
}
