﻿.login-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: calc(100vh - 120px);
}


.login-card {
    width: 420px;
    padding: 30px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

.login-title {
    text-align: center;
    margin-bottom: 20px;
    color: #276688;
    font-weight: 600;
}

.subtitle {
    font-size: 15px;
    margin-bottom: 10px;
}

/* Floating labels */
.input-group {
    position: relative;
    margin-bottom: 25px;
}

    .input-group input {
        width: 100%;
        padding: 12px 10px;
        border: none;
        border-bottom: 2px solid #ccc;
        outline: none;
        font-size: 16px;
        background: transparent;
    }

        .input-group input:focus {
            border-bottom-color: #276688;
        }

    .input-group label {
        position: absolute;
        top: 12px;
        left: 10px;
        font-size: 16px;
        color: #777;
        transition: all .3s;
        pointer-events: none;
    }

    .input-group input:focus + label,
    .input-group input:not(:placeholder-shown) + label {
        top: -10px;
        font-size: 13px;
        color: #276688;
    }

/* Checkbox */
.checkbox-group {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
}

    .checkbox-group input {
        margin-right: 8px;
    }

/* Button */
.btn-primary {
    width: 100%;
    padding: 12px;
    background: #276688;
    color: white;
    border: none;
    border-radius: 6px;
    font-size: 16px;
    cursor: pointer;
    transition: background .3s;
}

    .btn-primary:hover {
        background: #125a9c;
    }

/* Links */
.links {
    text-align: center;
    margin-top: 20px;
}

    .links a {
        display: block;
        margin: 5px 0;
        color: #276688;
        text-decoration: none;
    }

.recovery-codes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px;
    margin-top: 20px;
}

.recovery-code {
    display: block;
    padding: 10px;
    background: #f4f6f9;
    border-radius: 6px;
    text-align: center;
    font-family: monospace;
    font-size: 14px;
}

.status-message {
    padding: 12px 14px;
    border-radius: 6px;
    font-size: 14px;
    margin-bottom: 15px;
}

    .status-message.success {
        background: #e6f4ea;
        color: #1e7e34;
    }

    .status-message.error {
        background: #fdecea;
        color: #b00020;
    }

