:root{
    --primary:#2563eb;
    --bg:#c9bfbfc0;
    --card:#ffffff;
    --border:rgba(255,255,255,.08);
    --text:#e5e7eb;
    --muted:#303235;
    --danger:#ef4444;
}

*, *::before, *::after{
    box-sizing:border-box;
}

html{
    -webkit-text-size-adjust:100%;
}

body{
    margin:0;
    font-family:"Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}

.auth-wrapper{
    min-height:100vh;
    min-height:100dvh;
    display:flex;
    justify-content:center;
    align-items:center;
    background: var(--bg);
    padding:20px;
}

.auth-card{
    width:100%;
    max-width:380px;
    background:var(--card);
    border:1px solid var(--border);
    border-radius:14px;
    padding:28px;
    box-shadow:0 20px 60px rgba(0,0,0,.5);
    color:var(--text);
}


.auth-logo{
    text-align:center;
    margin-bottom:18px;
}

.auth-logo img{
    display:inline-block;
    width:100%;
    max-width:220px;
    height:auto;
}

.auth-title{
    font-size:22px;
    font-weight:600;
    margin-bottom:6px;
    color: black;
}

.auth-subtitle{
    font-size: 18px;
    color:var(--muted);
    margin-bottom:20px;
}


.form-group{
    margin-bottom:14px;
}

label{
    font-size:18px;
    color:var(--muted);
    display:block;
    margin-bottom:6px;
}

input{
    width:100%;
    min-height:46px;
    font-size:16px;             
    font-family:inherit;
    padding:10px 12px;
    border-radius:8px;
    border:1px solid var(--border);
    background: var(--bg);
    color: black;
    outline:none;
}

input:focus{
    border-color:var(--primary);
}


.btn-primary{
    width:100%;
    min-height:48px;
    font-size:16px;
    font-family:inherit;
    padding:10px;
    border:none;
    border-radius:8px;
    background:var(--primary);
    color:white;
    cursor:pointer;
    font-weight:500;
}

.btn-primary:hover{
    opacity:.9;
    background-color: #2563eb;
}


.alert-banner{
    padding:10px;
    border-radius:8px;
    font-size:13px;
    margin-bottom:12px;
}

.alert-danger{
    background:rgba(239, 68, 68, 0.541);
    color:black;
}


.toggle-auth-link{
    display:block;
    margin-top:14px;
    text-align:center;
    font-size:15px;
    color:var(--muted);
    text-decoration:none;
    padding: 12px 10px;
    border-radius: 8px;
}

.toggle-auth-link:hover{
    color:#ffffff;
    background-color:#2563eb;
    transition: 0.6s;
}


.keypad-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-top:14px;
}

.keypad-btn{
    padding:12px;
    min-height:52px;
    font-size:1.1rem;
    border-radius:8px;
    border:1px solid var(--border);
    background:#0f172a;
    color:white;
    cursor:pointer;
}

.keypad-btn:hover{
    background:#1e293b;
}

.keypad-btn.clear{
    background:rgba(250, 44, 44, 0.795);
    color:#020202;
}

.keypad-btn.submit{
    background:var(--primary);
    border:none;
}

.auth-progress-container {
    width: 100%;
    height: 4px;
    background: transparent;
    position: absolute;
    top: 0;
    left: 0;
    border-top-left-radius: 14px;
    border-top-right-radius: 14px;
    overflow: hidden;
    display: none; 
}

.auth-card {
    position: relative; 
    overflow: hidden; 
}

.auth-progress-bar {
    width: 100%;
    height: 100%;
    background-color: var(--primary);
    transform: translateX(-100%);
    animation: indeterminate-progress 1.5s infinite linear;
}

@keyframes indeterminate-progress {
    0% {
        transform: translateX(-100%);
    }
    50% {
        transform: translateX(0%);
    }
    100% {
        transform: translateX(100%);
    }
}

@media (max-width:480px){
    .auth-wrapper{
        padding:12px;
    }
    .auth-card{
        padding:22px 18px;
        border-radius:12px;
        box-shadow:0 10px 30px rgba(0,0,0,.35);
    }
    .auth-title{
        font-size:20px;
    }
    .auth-logo img{
        max-width:190px;
    }
    .auth-subtitle{
        font-size:15px;
        margin-bottom:16px;
    }
    label{
        font-size:15px;
    }
    .alert-banner{
        font-size:14px;
    }
}

/* ---- success / info banners and small hints (login + password reset pages) ---- */
.alert-success{
    background:rgba(34, 197, 94, 0.25);
    color:black;
}

.alert-info{
    background:rgba(37, 99, 235, 0.14);
    color:black;
}

.field-hint{
    font-size:13px;
    color:var(--muted);
}

.field-error{
    color:#b3261e;
    font-size:13px;
    margin-top:4px;
}

.auth-text{
    font-size:15px;
    line-height:1.5;
    color:var(--muted);
    margin-bottom:16px;
}
