.auth-page-main {
    width: min(100% - 32px, 620px);
    flex: 1;
    display: grid;
    align-items: center;
    margin: 0 auto;
    padding: 38px 0 54px;
    box-sizing: border-box;
}

.auth-card {
    width: 100%;
    box-sizing: border-box;
    padding: 30px;
    border: 1px solid #dfe3e9;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(23, 30, 42, .08);
}

.auth-card h1 {
    margin: 0;
    color: #252932;
    font-size: 28px;
}

.auth-intro {
    margin: 9px 0 24px;
    color: #626a76;
    line-height: 1.7;
}

.auth-field {
    display: grid;
    gap: 7px;
    margin-top: 17px;
}

.auth-field label,
.auth-legal label {
    color: #303640;
    font-size: 14px;
    font-weight: 700;
}

.auth-field input {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 12px;
    border: 1px solid #bfc6d0;
    border-radius: 5px;
    color: #252932;
    background: #fff;
    font: inherit;
}

.auth-field input:focus,
.auth-legal input:focus-visible,
.auth-button:focus-visible,
.auth-password-toggle:focus-visible {
    outline: 3px solid rgba(31, 104, 167, .24);
    outline-offset: 2px;
    border-color: #2f6f9f;
}

.auth-help,
.auth-match-state {
    margin: 0;
    color: #6c7480;
    font-size: 12px;
    line-height: 1.55;
}

.auth-match-state.match { color: #24713b; }
.auth-match-state.mismatch { color: #a3231d; }

.auth-password-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 46px;
    gap: 7px;
}

.auth-password-toggle {
    width: 46px;
    height: 44px;
    padding: 0;
    border: 1px solid #bfc6d0;
    border-radius: 5px;
    color: #333a44;
    background: #f4f6f8;
    cursor: pointer;
    font-size: 19px;
}

.auth-legal {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 22px;
    padding: 14px;
    border: 1px solid #d9dde3;
    border-radius: 5px;
    background: #f8f9fb;
}

.auth-legal input {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    margin: 2px 0 0;
}

.auth-legal label { line-height: 1.65; }
.auth-legal a { color: #245d88; }

.auth-button {
    width: 100%;
    min-height: 44px;
    margin-top: 20px;
    padding: 10px 16px;
    border: 0;
    border-radius: 5px;
    color: #17191f;
    background: #f1c40f;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
}

.auth-button.secondary {
    color: #fff;
    background: #44566f;
}

.auth-button:disabled {
    opacity: .58;
    cursor: not-allowed;
}

.auth-feedback {
    min-height: 23px;
    margin: 13px 0 0;
    color: #a3231d;
    font-size: 14px;
    line-height: 1.6;
}

.auth-feedback.success { color: #24713b; }
.auth-switch { margin: 18px 0 0; text-align: center; }
.auth-switch a { color: #285e8e; }

.verify-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 50%;
    color: #1f5131;
    background: #e5f5ea;
    font-size: 27px;
}

.verify-message { color: #515965; line-height: 1.75; }
.verify-actions { display: grid; gap: 10px; margin-top: 22px; }
.verify-actions .auth-button { margin-top: 0; text-decoration: none; text-align: center; box-sizing: border-box; }
.verify-resend[hidden] { display: none; }

@media (max-width: 520px) {
    .auth-page-main { width: min(100% - 24px, 620px); padding: 24px 0 38px; }
    .auth-card { padding: 23px 18px; }
    .auth-card h1 { font-size: 25px; }
}
