@import "../base/font.pcss";
@import "../base/default.pcss";
@import "../components/password-visibility.pcss";

: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;
    border-radius: var(--border-radius);
    overflow: clip;
}

/* 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);
}

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

.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,
.be_password .submit_container {
    margin-top: 12px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    align-items: center;
}

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

label[for="username"],
label[for="password"],
label[for="verify"] {
    border: 0;
    clip-path: inset(50%);
    height: 1px;
    margin: 0;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.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);
}
