html,
body
{
    margin:0;
    padding:0;
    width:100%;
    height:100%;
    font-family:Segoe UI, Arial, sans-serif;
}

body
{
    overflow:hidden;

    background:
    linear-gradient(
        135deg,
        #102c48,
        #1f4e79
    );
}

.background
{
    position:absolute;

    left:0;
    top:0;

    width:50%;
    height:100%;

    background-image:url('/img/crane.png');

    background-repeat:no-repeat;

    background-position:center center;

    background-size:contain;

    opacity:0.35;

    filter:brightness(1.8);

    pointer-events:none;
}

.login-card
{
    position:absolute;

    left:68%;
    top:50%;

    transform:
        translate(-50%,-50%);

    width:360px;

    padding:40px;

    box-sizing:border-box;

    border-radius:18px;

    background:
        rgba(255,255,255,0.92);

    backdrop-filter:blur(8px);

    box-shadow:
        0 25px 60px rgba(0,0,0,0.35);

    animation:
        appear 0.8s ease;
}

.logo-box
{
    width:90px;
    height:90px;

    margin:auto;

    display:flex;
    align-items:center;
    justify-content:center;

    background:#1f4e79;

    color:white;

    font-size:34px;
    font-weight:bold;

    border-radius:10px;

    border:2px solid rgba(255,255,255,0.15);

    box-shadow:
        0 8px 20px rgba(0,0,0,0.15);
}

.title
{
    margin-top:22px;

    text-align:center;

    font-size:34px;
    font-weight:700;

    color:#1f4e79;
}

.subtitle
{
    text-align:center;

    margin-top:8px;
    margin-bottom:32px;

    color:#6b7280;

    font-size:15px;
}

label
{
    display:block;

    margin-top:14px;
    margin-bottom:8px;

    color:#374151;

    font-size:14px;

    font-weight:600;
}

input
{
    width:100%;

    padding:14px;

    box-sizing:border-box;

    border:0;

    border-radius:10px;

    background:#f3f6fa;

    box-shadow:
        inset 0 0 0 1px rgba(0,0,0,0.08);

    font-size:15px;

    transition:all 0.2s ease;
}

input:focus
{
    outline:none;

    box-shadow:
        inset 0 0 0 2px #2e75b6,
        0 0 12px rgba(46,117,182,0.25);
}

button
{
    width:100%;

    margin-top:26px;

    padding:15px;

    border:none;

    border-radius:10px;

    background:#1f4e79;

    color:white;

    font-size:16px;
    font-weight:700;

    cursor:pointer;

    transition:all 0.2s ease;
}

button:hover
{
    background:#285f94;

    transform:
        translateY(-1px);
}

.error
{
    margin-top:20px;

    text-align:center;

    color:#cc0000;

    font-size:14px;
}

.mfa-card
{
    width:400px;
}

.mfa-subtitle
{
    line-height:1.45;
}

.mfa-code
{
    text-align:center;
    font-size:24px;
    letter-spacing:0;
}

.remember-browser
{
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:18px;
    cursor:pointer;
}

.remember-browser input
{
    width:18px;
    height:18px;
    margin:0;
    padding:0;
    flex:0 0 auto;
}

.login-link
{
    display:block;
    margin-top:18px;
    color:#1f4e79;
    text-align:center;
    font-size:14px;
}

@media (max-width:700px)
{
    .background
    {
        width:100%;
        opacity:0.18;
    }

    .login-card,
    .mfa-card
    {
        left:50%;
        width:calc(100% - 32px);
        max-width:400px;
        padding:28px;
    }
}

@keyframes appear
{
    from
    {
        opacity:0;

        transform:
            translate(-50%,-45%);
    }

    to
    {
        opacity:1;

        transform:
            translate(-50%,-50%);
    }
}
