*{
    box-sizing:border-box;
}

/*Outer Wrapper*/
.auth-container {
    width: 100%;
    display: flex;
    justify-content: center;
}

/*Card*/
.auth-card {
    background:var(--surface-color);
    padding:42px;
    border-radius:24px;
    border:1px solid var(--border-color);
    box-shadow:
         0 20px 45px var(--shadow-color);
    width:100%;
    max-width:440px;
    text-align:center;
}

/*Heading*/
.auth-card h2 {
    margin-bottom:24px;
    font-size:30px;
    font-weight:800;
    color:var(--text-color);
}

.auth-card form{
    display:flex;
    flex-direction:column;
}

/*Inputs*/
.auth-card input,
.auth-card select {
    width:100%;
    padding:14px 16px;
    margin-bottom:14px;
    border:
        1px solid var(--border-color);
    border-radius:14px;
    font-size:15px;
    outline:none;
    background:var(--surface-color);
    color:var(--text-color);
    transition:.2s;
    min-height:48px;
}

.auth-card input:focus,
.auth-card select:focus {
    border-color:var(--primary-color);
    box-shadow:
        0 0 0 4px color-mix(
            in srgb,
            var(--primary-color),
            transparent 85%
        );
}

/*Button*/
.auth-card button {
    width:100%;
    padding:14px;
    background:var(--primary-color);
    color:var(--white);
    border:none;
    border-radius:999px;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    transition:.2s;
}

.auth-card button:hover {
    background:var(--primary-hover);
    transform:
        translateY(-2px);
}

.auth-card button:active {
    transform: translateY(0px);
}

.error{
    margin-bottom:20px;
    padding:12px 16px;
    background:var(--danger-background);
    border:1px solid var(--danger-border);
    border-radius:12px;
    color:var(--danger-text);
    font-weight:600;
    text-align:center;
}

.guest-divider {
    margin:22px 0;
    color:var(--muted-text);
    font-size:14px;
    text-align:center;
}

.guest-button {
    display: block;
    padding: 14px;
    border-radius: 999px;
    border: 2px solid var(--border-color);
    color: var(--primary-hover);
    text-decoration: none;
    text-align: center;
    font-weight: 700;
    transition: .2s;
}

.guest-button:hover {
    background:var(--secondary-background);
    border-color:var(--primary-color);
}

.login-text {
    margin-top: 16px;
    font-size: 13px;
    text-align: center;
    opacity: .8;
}

.login-text a {
    color:var(--primary-hover);
    font-weight:700;
    text-decoration:none;
}

.auth-layout {
    min-height:
        calc(100vh - 90px);
    display:flex;
    justify-content:center;
    align-items:center;
    padding:40px 20px;
}

@media (max-width: 600px) {
    .auth-layout {
        min-height: auto;
        padding: 20px 12px 40px;
        align-items: flex-start;
    }

    .auth-container {
        width: 100%;
    }

    .auth-card {
        width: 100%;
        max-width: 440px;
        padding: 26px 18px;
        border-radius: 20px;
    }

    .auth-card h2 {
        font-size: 26px;
        line-height: 1.2;
        margin-bottom: 20px;
    }

    .auth-card input,
    .auth-card select {
        min-height: 48px;
        padding: 13px 14px;
        margin-bottom: 12px;
        border-radius: 13px;
        font-size: 16px;
    }

    .auth-card button {
        min-height: 48px;
        padding: 13px 16px;
    }

    .error {
        margin-bottom: 16px;
        padding: 11px 14px;
    }

    .guest-divider {
        margin: 18px 0;
    }

    .guest-button {
        min-height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 12px 16px;
    }

    .login-text {
        margin-top: 18px;
        line-height: 1.5;
    }
}