/* Fixed full-viewport layer so the page centering is independent of any body/layout styles */
.login-page {
    position: fixed;
    inset: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    background: linear-gradient(160deg, #ffffff 0%, #ececec 100%);
    color: #333333;
}

.login-main {
    flex: 1 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 16px;
}

.login-card {
    width: 100%;
    max-width: 440px;
    padding: 44px 40px 36px;
    background: #ffffff;
    border-top: 4px solid #173145;
    border-radius: 2px;
    box-shadow: 0 16px 48px rgba(23, 49, 69, 0.14);
    text-align: center;
}

.login-logo {
    display: block;
    width: 128px;
    height: 128px;
    margin: 0 auto 20px;
}

.login-brand {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    font-weight: 700;
    font-size: 1.35rem;
    line-height: 1.3;
    color: #173145;
}

.login-subtitle {
    margin: 10px 0 32px;
    color: #666666;
    font-size: 1rem;
    line-height: 1.4;
}

.login-card form { text-align: left; }

.login-card .mud-button-filled {
    height: 52px;
    font-size: 0.95rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    border-radius: 0;
    box-shadow: none;
}

.login-card .mud-button-filled:hover { background-color: #0d1c29; }
.login-card .mud-input-outlined-border { border-radius: 0; }

.login-footer {
    flex: none;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 28px;
    justify-content: center;
    align-items: center;
    padding: 20px 16px 24px;
    font-size: 0.875rem;
    color: #666666;
}

.legal-links { display: inline-flex; gap: 10px; align-items: center; }
