:root{
    --bg:#f3f6fb;
    --text:#172033;
    --muted:#64748b;
    --panel:#ffffff;
    --border:#e5eaf1;
    --brand:#0f766e;
    --brand2:#14b8a6;
    --dark:#0f172a;
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background:
        linear-gradient(135deg, rgba(15,118,110,.72), rgba(15,23,42,.86)),
        url('/assets/img/header.jpg') center/cover no-repeat;
    color:var(--text);
    font-family:Arial,sans-serif;
    padding:18px;
}

.card{
    width:100%;
    max-width:460px;
    background:rgba(255,255,255,.97);
    border:1px solid rgba(226,232,240,.95);
    border-radius:28px;
    padding:28px;
    box-shadow:0 28px 70px rgba(15,23,42,.26);
}

h1{
    margin:0;
    font-size:30px;
    letter-spacing:-.045em;
    color:#0f172a;
}

.sub{
    color:var(--muted);
    margin:8px 0 20px;
    line-height:1.5;
    font-size:14px;
}

label{
    display:block;
    font-weight:900;
    font-size:13px;
    margin:13px 0 6px;
}

input[type="email"],
input[type="password"],
input[type="text"]{
    width:100%;
    padding:13px 14px;
    border:1px solid #d7deea;
    border-radius:16px;
    font-size:15px;
    background:#fff;
}

input[type="email"]:focus,
input[type="password"]:focus,
input[type="text"]:focus{
    outline:none;
    border-color:#14b8a6;
    box-shadow:0 0 0 4px rgba(20,184,166,.15);
}

button[type="submit"]{
    width:100%;
    margin-top:16px;
    padding:14px 15px;
    border:0;
    border-radius:16px;
    background:var(--brand);
    color:#fff;
    font-size:15px;
    font-weight:950;
    cursor:pointer;
    box-shadow:0 12px 26px rgba(15,118,110,.22);
}

button[type="submit"]:hover{
    background:#0d6b64;
}

.notice{
    border-radius:16px;
    padding:14px;
    margin-bottom:14px;
    font-size:14px;
    line-height:1.5;
}

.notice.error{
    background:#fee2e2;
    border:1px solid #fecaca;
    color:#991b1b;
}

.notice.success{
    background:#dcfce7;
    border:1px solid #bbf7d0;
    color:#166534;
}

.notice ul{
    margin:0;
    padding-left:18px;
}

.links{
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-top:18px;
    flex-wrap:wrap;
}

.links a{
    color:var(--brand);
    font-weight:900;
    text-decoration:none;
    font-size:14px;
}

/* SecureLayer Challenge */

.captcha-wrap{
    margin-top:18px;
    margin-bottom:6px;
}

.sl-captcha{
    margin-top:18px;
    padding:14px;
    border:1px solid #d7deea;
    border-radius:18px;
    background:#ffffff;
    box-shadow:0 10px 24px rgba(15,23,42,.05);
    overflow:visible;
}


@media(max-width:520px){
    body{
        padding:12px;
    }

    .card{
        padding:24px 18px;
        border-radius:22px;
    }

    h1{
        font-size:26px;
    }
}
