/* Standalone pages that have no portal master - sign in, reset or set a password, error, "system disabled", device
   check - for all three portals (staff, client, linguist). One card on the tenant's sign-in background, the design of
   the staff sign-in page (mylogin.aspx). Needs bootstrap + font-awesome before it. House style: the ltriks-ui skill.

   <body class="login-bg"> <form> <div class="login-wrap"> <div class="login-card"> logo, .login-icon, h1.login-title,
   p.login-sub, fields in .form-input-wrap (icon + input), .btn-login, .login-footer ... */
html, body { height: 100%; }
body.login-bg {
    margin: 0;
    font-family: 'Lato', 'Segoe UI', Arial, sans-serif;
    background: #1f3a68 url(/assets/images/logolock.png) no-repeat center center fixed;
    background-size: cover;
    min-height: 100vh;
}
    body.login-bg:before {
        content: "";
        position: fixed;
        inset: 0;
        background: linear-gradient(135deg, rgba(20, 40, 80, .55), rgba(20, 40, 80, .25));
        z-index: 0;
    }
.login-wrap {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
}
.login-card {
    width: 100%;
    max-width: 440px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 18px 60px rgba(0, 0, 0, .25), 0 2px 6px rgba(0, 0, 0, .10);
    padding: 36px 32px 28px;
}
    .login-card.is-wide { max-width: 560px; }
.login-logo { text-align: center; margin-bottom: 18px; }
    .login-logo img { max-height: 60px; max-width: 100%; }
.login-company {
    margin-top: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #6c7a90;
    letter-spacing: .3px;
    text-transform: uppercase;
}
    .login-company:empty { display: none; }
.login-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #eef4ff;
    color: #2c6bd1;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 14px;
    font-size: 28px;
}
    .login-icon.is-warn { background: #fff6e5; color: #b7791f; }
    .login-icon.is-error { background: #fdecea; color: #a8201a; }
    .login-icon.is-ok { background: #eafaf1; color: #1e7e48; }
.login-title { text-align: center; font-size: 22px; font-weight: 600; color: #1a2944; margin: 0 0 6px; }
.login-sub { text-align: center; color: #6c7a90; font-size: 14px; margin: 0 0 22px; }
.login-text { color: #34495e; font-size: 14px; line-height: 1.55; margin: 0 0 16px; }
.login-label { display: block; margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .3px; text-transform: uppercase; color: #34495e; }
.form-input-wrap { position: relative; margin-bottom: 14px; }
    .form-input-wrap > .fa {
        position: absolute;
        left: 16px;
        top: 50%;
        transform: translateY(-50%);
        color: #8a99b3;
        font-size: 15px;
        pointer-events: none;
        z-index: 2;
        width: 16px;
        text-align: center;
    }
    .form-input-wrap .form-control {
        height: 46px;
        padding-left: 44px !important;
        padding-right: 48px !important;
        border: 1px solid #d6dce8;
        border-radius: 8px;
        font-size: 15px;
        box-shadow: none;
        transition: border-color .15s, box-shadow .15s;
    }
        .form-input-wrap .form-control:focus { border-color: #2c6bd1; box-shadow: 0 0 0 3px rgba(44, 107, 209, .15); }
        .form-input-wrap .form-control.required { border-color: #d9534f !important; box-shadow: 0 0 0 3px rgba(217, 83, 79, .15) !important; }
.toggle-pwd {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: 0;
    padding: 8px 12px;
    color: #8a99b3;
    cursor: pointer;
    font-size: 15px;
}
    .toggle-pwd:hover, .toggle-pwd:focus { color: #2c6bd1; outline: none; }
.row-between { display: flex; align-items: center; justify-content: space-between; font-size: 13px; margin: 4px 0 18px; }
    .row-between .remember { color: #4a5973; user-select: none; cursor: pointer; }
        .row-between .remember input { margin-right: 6px; vertical-align: middle; }
    .row-between a, .login-link { color: #2c6bd1; text-decoration: none; font-weight: 600; }
        .row-between a:hover, .login-link:hover { text-decoration: underline; }
.btn-login {
    width: 100%;
    height: 46px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 15px;
    background: #2c6bd1;
    border-color: #2c6bd1;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
    .btn-login:hover, .btn-login:focus { background: #225aaf; border-color: #225aaf; color: #fff; }
    .btn-login[disabled] { opacity: .75; cursor: progress; }
    .btn-login .fa-spinner { display: none; }
    .btn-login.is-loading .fa-arrow-right { display: none; }
    .btn-login.is-loading .fa-spinner { display: inline-block; }
    .btn-login.is-secondary { background: #fff; border: 1px solid #d6dce8; color: #1a2944; }
        .btn-login.is-secondary:hover, .btn-login.is-secondary:focus { background: #f4f6fa; color: #1a2944; }
.login-actions { display: flex; flex-direction: column; gap: 10px; }
.login-error, .login-note, .login-ok {
    display: block;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 13px;
    margin-bottom: 16px;
}
.login-error { background: #fdecea; color: #a8201a; border: 1px solid #f5c6c0; }
.login-note { background: #fff8e1; color: #846109; border: 1px solid #ffe0a3; }
.login-ok { background: #eafaf1; color: #1e7e48; border: 1px solid #cdebd9; }
.login-footer { text-align: center; margin-top: 18px; color: #6c7a90; font-size: 12px; }
a:focus-visible, button:focus-visible, .btn:focus-visible, input:focus-visible { outline: 2px solid #2c6bd1; outline-offset: 2px; }
@media (max-width: 480px) {
    .login-card { padding: 28px 22px 22px; }
    .login-title { font-size: 20px; }
}
/* phones: 16px text in the fields (an iPhone zooms the whole page into a field with smaller text), a bigger tick box and
   links with room around them for a finger */
@media (max-width: 767px) {
    .form-input-wrap .form-control { font-size: 16px; }
    .row-between .remember input { width: 20px; height: 20px; }
    .row-between a,
    .login-footer a { display: inline-block; padding: 10px 0; }
}
