/* public/assets/css/auth/login.css */

/* ─── Attempt warning banner ──────────────────────────── */
.attempt-warning {
    background: #fff3cd;
    border-left: 4px solid #ffc107;
    padding: 8px 15px;
    border-radius: 4px;
    margin-top: 10px;
    margin-bottom: 15px;
    font-size: .85rem;
    color: #856404;
    display: none;
    animation: slideDown .3s ease;
}
.attempt-warning.show    { display: block; }
.attempt-warning.danger  { background: #f8d7da; border-left-color: #dc3545; color: #721c24; }
.attempt-warning.success { background: #d4edda; border-left-color: #28a745; color: #155724; }

@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ─── Disabled buttons ────────────────────────────────── */
.btn:disabled {
    opacity: .6;
    cursor: not-allowed;
}

/* ─── Login card + shake animation ────────────────────── */
.login-card {
    transition: all .3s ease;
}
.login-card.shake {
    animation: shake .5s ease;
}
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25%      { transform: translateX(-10px); }
    75%      { transform: translateX(10px); }
}

/* ─── Full-screen loader overlay ──────────────────────── */
.loader-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.6);
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
}
.loader-overlay.show { display: flex; }
.loader-content {
    background: #fff;
    padding: 30px 40px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0 10px 40px rgba(0,0,0,.3);
}
.loader-content img { width: 60px; height: 60px; }
.loader-content p   { margin-top: 10px; color: var(--primary-color, #01203f); font-weight: 500; }

/* ─── Input focus state ───────────────────────────────── */
.input-success {
    box-shadow: 0 0 0 2px rgba(40, 167, 69, .3);
    border-radius: 4px;
}