:root{
    --bg:#05080e;
    --bg2:#09111d;
    --panel:#0d1624;
    --panel2:#101c2d;
    --line:#24354d;
    --blue:#1597e5;
    --blue2:#0f6cbd;
    --blue3:#63c5ff;
    --text:#f5f9ff;
    --muted:#91a4bb;
    --danger:#ff6b73;
    --success:#64d27b;
}

*{
    box-sizing:border-box;
}

html,
body{
    margin:0;
    min-height:100%;
}

body{
    min-height:100vh;
    font-family:"Segoe UI",Arial,sans-serif;
    color:var(--text);
    background:
        radial-gradient(circle at 75% 15%, rgba(15,108,189,.25), transparent 32%),
        radial-gradient(circle at 20% 90%, rgba(21,151,229,.10), transparent 30%),
        linear-gradient(135deg,#03060b 0%,#07101b 45%,#0a1524 100%);
}

body:before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    background-image:
        linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
    background-size:38px 38px;
    mask-image:linear-gradient(to bottom,rgba(0,0,0,.6),transparent 75%);
}

.topbar{
    position:relative;
    z-index:2;
    height:64px;
    display:flex;
    align-items:center;
    padding:0 24px;
    background:rgba(5,10,18,.92);
    border-bottom:1px solid #1b2a3d;
    box-shadow:0 5px 24px rgba(0,0,0,.30);
    backdrop-filter:blur(12px);
}

.header-logo{
    height:45px;
    display:flex;
    align-items:center;
    margin-right:18px;
}

.header-logo img{
    display:block;
    max-height:42px;
    max-width:190px;
    object-fit:contain;
}

.brand{
    font-size:18px;
    font-weight:650;
    letter-spacing:.2px;
    color:#fff;
    padding-left:18px;
    border-left:1px solid #2c3d55;
}

.header-tag{
    margin-left:auto;
    color:#71879f;
    font-size:12px;
    letter-spacing:.8px;
    text-transform:uppercase;
}

.page{
    position:relative;
    z-index:1;
    min-height:calc(100vh - 106px);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:42px 20px;
}

.login-card{
    position:relative;
    width:470px;
    max-width:100%;
    padding:38px 42px 42px;
    overflow:hidden;
    border:1px solid #23364f;
    border-radius:16px;
    background:
        linear-gradient(145deg,rgba(16,28,45,.97),rgba(8,16,27,.98));
    box-shadow:
        0 28px 80px rgba(0,0,0,.50),
        inset 0 1px 0 rgba(255,255,255,.04);
}

.login-card:before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:3px;
    background:linear-gradient(
        90deg,
        transparent,
        var(--blue),
        var(--blue3),
        transparent
    );
}

.login-brand{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:115px;
    margin:-8px -5px 16px;
    padding:12px 15px;
    border-bottom:1px solid #1f3047;
}

.login-brand img{
    max-width:310px;
    max-height:115px;
    width:auto;
    height:auto;
    object-fit:contain;
    filter:drop-shadow(0 5px 15px rgba(0,0,0,.35));
}

.mail-badge{
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:24px 0 15px;
    border:1px solid #2a5275;
    border-radius:10px;
    background:#0b2840;
    color:#69c8ff;
    font-size:20px;
}

h1{
    margin:0;
    color:#fff;
    font-size:25px;
    line-height:1.2;
    font-weight:650;
}

.subtitle{
    margin:8px 0 28px;
    color:var(--muted);
    font-size:14px;
}

label{
    display:block;
    margin:18px 0 7px;
    color:#c9d7e7;
    font-size:12px;
    font-weight:650;
    text-transform:uppercase;
    letter-spacing:.45px;
}

input{
    width:100%;
    height:45px;
    padding:0 13px;
    border:1px solid #314660;
    border-radius:7px;
    outline:none;
    background:#08111e;
    color:#fff;
    font-size:15px;
    transition:.15s ease;
}

input::placeholder{
    color:#586d84;
}

input:hover{
    border-color:#405c7a;
}

input:focus{
    border-color:var(--blue);
    box-shadow:
        0 0 0 3px rgba(21,151,229,.13),
        0 0 20px rgba(21,151,229,.07);
}

button,
.primary-button{
    width:100%;
    min-height:45px;
    margin-top:27px;
    border:1px solid #168ad0;
    border-radius:7px;
    background:
        linear-gradient(180deg,#1597e5,#0f6cbd);
    color:#fff;
    font-size:14px;
    font-weight:700;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    box-shadow:0 6px 18px rgba(15,108,189,.24);
    transition:.15s ease;
}

button:hover,
.primary-button:hover{
    transform:translateY(-1px);
    background:
        linear-gradient(180deg,#24a7f4,#1179d0);
    box-shadow:0 8px 24px rgba(15,108,189,.32);
}

.error{
    margin-bottom:18px;
    padding:12px 14px;
    border:1px solid rgba(255,107,115,.35);
    border-left:3px solid var(--danger);
    border-radius:6px;
    background:rgba(164,38,44,.17);
    color:#ffafb4;
    font-size:13px;
}

.success{
    margin-top:24px;
    padding:14px;
    border:1px solid rgba(100,210,123,.30);
    border-left:3px solid var(--success);
    border-radius:6px;
    background:rgba(30,120,55,.14);
}

.success strong{
    display:block;
    margin-bottom:5px;
    color:#7be28e;
}

.success span{
    color:#c9d7e7;
    font-size:13px;
}

.success-text{
    color:var(--muted);
    font-size:14px;
    line-height:1.5;
}

.security{
    position:relative;
    margin-top:26px;
    padding:18px 0 0 24px;
    border-top:1px solid #1f3047;
    color:#71879f;
    font-size:11px;
}

.security:before{
    content:"●";
    position:absolute;
    left:5px;
    color:#49c46b;
}

footer{
    position:relative;
    z-index:1;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#4f647b;
    font-size:11px;
    letter-spacing:.3px;
}

@media(max-width:560px){
    .topbar{
        padding:0 14px;
    }

    .header-logo img{
        max-width:135px;
    }

    .brand{
        font-size:15px;
        padding-left:12px;
        margin-left:0;
    }

    .header-tag{
        display:none;
    }

    .login-card{
        padding:30px 25px 34px;
    }

    .login-brand img{
        max-width:260px;
    }
}
