/*
 * Login
 * -----
 * Page-specific styling for home/login.html.
 *
 * Mobile-first.
 *
 * Shared components such as:
 * - design tokens
 * - brand-block
 * - card
 * - buttons
 * - alerts
 * - generic form controls
 *
 * remain defined in styles.css.
 */


/* --------------------------------------------------------------------------
   Page layout
   -------------------------------------------------------------------------- */

.login-screen {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.login-panel {
    width: 100%;
    max-width: var(--max-width, 480px);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}


/* --------------------------------------------------------------------------
   Branding
   -------------------------------------------------------------------------- */

.login-brand {
    min-width: 0;
    padding-top: 0.25rem;
}

.login-brand h1,
.login-brand .intro {
    overflow-wrap: anywhere;
}


/* --------------------------------------------------------------------------
   Login cards
   -------------------------------------------------------------------------- */

.login-card {
    min-width: 0;
}

.login-card h2 {
    margin-bottom: 1rem;
}

.login-provider-card .muted {
    margin-bottom: 1rem;
}


/* --------------------------------------------------------------------------
   Form
   -------------------------------------------------------------------------- */

.login-form {
    min-width: 0;
}

.login-form .form-group {
    min-width: 0;
}

.login-form input {
    width: 100%;
    min-width: 0;
}


/* --------------------------------------------------------------------------
   Divider
   -------------------------------------------------------------------------- */

.login-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    color: var(--text-muted, #9aa1a9);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.login-divider span {
    position: relative;
    padding: 0 0.9rem;
}

.login-divider span::before,
.login-divider span::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 36px;
    height: 1px;
    background: var(--line, #5a616b);
}

.login-divider span::before {
    right: 100%;
}

.login-divider span::after {
    left: 100%;
}


/* --------------------------------------------------------------------------
   Tablet and larger
   -------------------------------------------------------------------------- */

@media (min-width: 640px) {
    .login-screen {
        padding: 1.5rem;
    }

    .login-panel {
        gap: 1.1rem;
    }
}


@media (min-width: 768px) {
    .login-screen {
        padding: 2rem;
    }

    .login-panel {
        max-width: 520px;
        gap: 1.15rem;
    }
}