/*
CASSA custom CSS
Use only for EventsAir elements that cannot be controlled reliably in Style Settings:
- sign-in panel spacing and forced heights
- generated login headings
- validation-message positioning
- generated password, verification and account-creation screens

Do not add general page, registration-page, colour or body-text overrides here.
Those should be controlled in EventsAir Style Settings.
*/

h1, h2, h3, h4, h5, h6 {
    font-weight: 600 !important;
}

/* Keep the EventsAir email sign-in panel compact */
#allinone-signin-content #enterEmailPanel.signin-panel {
    min-height: 0 !important;
    height: auto !important;
    padding-top: 10px !important;
    padding-bottom: 12px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Reduce the size and spacing of the email entry heading */
#enterEmailPanel h1,
#enterEmailPanel h2,
#enterEmailPanel h3,
#enterEmailPanel .heading,
#enterEmailPanel .panel-title,
#enterEmailPanel .signin-heading {
    font-size: 15px !important;
    line-height: 1.3 !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    font-weight: 600 !important;
}

/* Keep the field and button close together */
#enterEmailPanel .form-group,
#enterEmailPanel .input-group {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
}

#enterEmailPanel button {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Remove the forced blank space below the sign-in form */
main > form,
#allinone-signin-content,
#allinone-signin-content .signin-panel,
#enterEmailPanel {
    min-height: 0 !important;
    height: auto !important;
    flex: none !important;
}

#allinone-signin-content,
#enterEmailPanel {
    padding-bottom: 12px !important;
    margin-bottom: 0 !important;
}

/* Preserve generated email-label casing and weight; size inherits from EventsAir */
#enterEmailPanel label,
#enterEmailPanel .control-label,
#enterEmailPanel .field-label {
font-weight: 600 !important;
    text-transform: none !important;
}

/* Ensure validation messages sit between the field and button */
#enterEmailPanel .field-validation-error,
#enterEmailPanel .validation-message,
#enterEmailPanel .invalid-feedback,
#enterEmailPanel .text-danger,
#enterEmailPanel [data-valmsg-for] {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 4px 0 10px !important;
    padding: 0 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow: visible !important;
}

/* Leave enough room for an error message without recreating the large gap */
#enterEmailPanel .form-group,
#enterEmailPanel .input-group,
#enterEmailPanel .modern-form-group,
#enterEmailPanel .modern-input-container {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

#enterEmailPanel button {
    position: static !important;
    margin-top: 8px !important;
}

/* Welcome back screen only: keep Page 1 exactly as it is */
#enterPasswordPanel.signin-panel {
    min-height: 0 !important;
    height: auto !important;
    flex: none !important;
    justify-content: flex-start !important;
    padding-top: 12px !important;
    padding-bottom: 14px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Reduce the Welcome back heading */
#enterPasswordPanel h1,
#enterPasswordPanel h2,
#enterPasswordPanel h3,
#enterPasswordPanel .heading,
#enterPasswordPanel .panel-title,
#enterPasswordPanel .signin-heading {
    font-size: 15px !important;
    line-height: 1.3 !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    font-weight: 600 !important;
}

/* Preserve generated password-label casing and weight; size inherits from EventsAir */
#enterPasswordPanel label,
#enterPasswordPanel .control-label,
#enterPasswordPanel .field-label {
font-weight: 600 !important;
    text-transform: none !important;
}

/* Keep the password field, error message and button together */
#enterPasswordPanel .form-group,
#enterPasswordPanel .input-group,
#enterPasswordPanel .modern-form-group,
#enterPasswordPanel .modern-input-container {
    height: auto !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    overflow: visible !important;
}

#enterPasswordPanel .field-validation-error,
#enterPasswordPanel .validation-message,
#enterPasswordPanel .invalid-feedback,
#enterPasswordPanel .text-danger,
#enterPasswordPanel [data-valmsg-for] {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 4px 0 10px !important;
    padding: 0 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow: visible !important;
}

#enterPasswordPanel button {
    position: static !important;
    margin-top: 8px !important;
    margin-bottom: 0 !important;
}

/* Password reset link spacing only; text size inherits from EventsAir */
#enterPasswordPanel a {
}

/* Verification screen only: keep Page 1 and Welcome back unchanged */
#enterVerificationCodePanel.signin-panel {
    min-height: 0 !important;
    height: auto !important;
    flex: none !important;
    justify-content: flex-start !important;
    padding-top: 12px !important;
    padding-bottom: 14px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Reduce the Welcome heading */
#enterVerificationCodePanel h1,
#enterVerificationCodePanel h2,
#enterVerificationCodePanel h3,
#enterVerificationCodePanel .heading,
#enterVerificationCodePanel .panel-title,
#enterVerificationCodePanel .signin-heading {
    font-size: 15px !important;
    line-height: 1.3 !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    font-weight: 600 !important;
}

/* Keep the verification message width and spacing compact; text size inherits from EventsAir */
#enterVerificationCodePanel p {
    max-width: 560px !important;
    margin: 0 auto 12px !important;
}

/* Preserve generated verification-label casing and weight; size inherits from EventsAir */
#enterVerificationCodePanel label,
#enterVerificationCodePanel .control-label,
#enterVerificationCodePanel .field-label {
font-weight: 600 !important;
    text-transform: none !important;
}

/* Keep the field, validation message and button together */
#enterVerificationCodePanel .form-group,
#enterVerificationCodePanel .input-group,
#enterVerificationCodePanel .modern-form-group,
#enterVerificationCodePanel .modern-input-container {
    height: auto !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    overflow: visible !important;
}

#enterVerificationCodePanel .field-validation-error,
#enterVerificationCodePanel .validation-message,
#enterVerificationCodePanel .invalid-feedback,
#enterVerificationCodePanel .text-danger,
#enterVerificationCodePanel [data-valmsg-for] {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 4px 0 10px !important;
    padding: 0 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow: visible !important;
}

#enterVerificationCodePanel button {
    position: static !important;
    margin-top: 8px !important;
    margin-bottom: 0 !important;
}

/* Resend verification link */
#enterVerificationCodePanel a {
}

/* Login panel headings are one step below the 14pt congress heading */
#enterEmailPanel h1,
#enterEmailPanel h2,
#enterEmailPanel h3,
#enterEmailPanel .heading,
#enterEmailPanel .panel-title,
#enterEmailPanel .signin-heading,
#enterPasswordPanel h1,
#enterPasswordPanel h2,
#enterPasswordPanel h3,
#enterPasswordPanel .heading,
#enterPasswordPanel .panel-title,
#enterPasswordPanel .signin-heading,
#enterVerificationCodePanel h1,
#enterVerificationCodePanel h2,
#enterVerificationCodePanel h3,
#enterVerificationCodePanel .heading,
#enterVerificationCodePanel .panel-title,
#enterVerificationCodePanel .signin-heading {
    font-size: 13pt !important;
}

/* Verification message matches the 13px registration body text */
#enterVerificationCodePanel p {
}

/* Create account screen only: keep all approved pages unchanged */
#createPasswordPanel.signin-panel {
    min-height: 0 !important;
    height: auto !important;
    flex: none !important;
    justify-content: flex-start !important;
    padding-top: 12px !important;
    padding-bottom: 14px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Match the approved 13pt login headings */
#createPasswordPanel h1,
#createPasswordPanel h2,
#createPasswordPanel h3,
#createPasswordPanel .heading,
#createPasswordPanel .panel-title,
#createPasswordPanel .signin-heading {
    font-size: 13pt !important;
    line-height: 1.3 !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    font-weight: 600 !important;
}

/* Match the approved 13px explanatory text */
#createPasswordPanel p {
    max-width: 420px !important;
    margin: 0 auto 12px !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
}

/* Preserve generated account-password label casing and weight; size inherits from EventsAir */
#createPasswordPanel label,
#createPasswordPanel .control-label,
#createPasswordPanel .field-label {
font-weight: 600 !important;
    text-transform: none !important;
}

/* Keep the field, validation message and button together */
#createPasswordPanel .form-group,
#createPasswordPanel .input-group,
#createPasswordPanel .modern-form-group,
#createPasswordPanel .modern-input-container {
    height: auto !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    overflow: visible !important;
}

#createPasswordPanel .field-validation-error,
#createPasswordPanel .validation-message,
#createPasswordPanel .invalid-feedback,
#createPasswordPanel .text-danger,
#createPasswordPanel [data-valmsg-for] {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 4px 0 10px !important;
    padding: 0 !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow: visible !important;
}

#createPasswordPanel button {
    position: static !important;
    margin-top: 8px !important;
    margin-bottom: 0 !important;
}

/* Generated verification message: match EventsAir Normal Text at 11pt */
#enterVerificationCodePanel p {
    font-size: 11pt !important;
    line-height: 1.6 !important;
}

/* Allow the verification message to display across two lines */
#enterVerificationCodePanel p {
    max-width: 560px !important;
}

/* Password screen: keep validation text clear of the Sign in button */
#enterPasswordPanel [class*="validation"],
#enterPasswordPanel [class*="error"],
#enterPasswordPanel [data-valmsg-for],
#enterPasswordPanel [role="alert"] {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 4px 0 12px !important;
    padding: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
}

/* Give the validation message its own space before the button */
#enterPasswordPanel button {
    position: static !important;
    margin-top: 14px !important;
    margin-bottom: 0 !important;
}

/* Keep the password reset link separated from the button; text size inherits from EventsAir */
#enterPasswordPanel a {
    display: inline-block !important;
    margin-top: 14px !important;
}

/* Email screen: keep validation text clear of the Continue button */
#enterEmailPanel [class*="validation"],
#enterEmailPanel [class*="error"],
#enterEmailPanel [data-valmsg-for],
#enterEmailPanel [role="alert"] {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 4px 0 12px !important;
    padding: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
}

/* Give the validation message its own space before Continue */
#enterEmailPanel button {
    position: static !important;
    margin-top: 14px !important;
    margin-bottom: 0 !important;
}

/* Password screen: reduce the space below the reset link to match the email sign-in screen */
#enterPasswordPanel:not([style*="display: none"]) {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

#allinone-signin-content:has(#enterPasswordPanel:not([style*="display: none"])) {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

#enterPasswordPanel:not([style*="display: none"]) a {
    margin-bottom: 0 !important;
}

/* Verification screen: keep validation text clear of the button */
#enterVerificationCodePanel [class*="validation"],
#enterVerificationCodePanel [class*="error"],
#enterVerificationCodePanel [data-valmsg-for],
#enterVerificationCodePanel [role="alert"] {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 4px 0 12px !important;
    padding: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
}

/* Give the verification error its own space before the button */
#enterVerificationCodePanel button {
    position: static !important;
    margin-top: 14px !important;
    margin-bottom: 0 !important;
}

/* Resend link spacing only; text size inherits from EventsAir */
#enterVerificationCodePanel a {
    display: inline-block !important;
    margin-top: 14px !important;
    margin-bottom: 0 !important;
}

/* Reduce the blank space below the resend link */
#enterVerificationCodePanel:not([style*="display: none"]) {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

#allinone-signin-content:has(#enterVerificationCodePanel:not([style*="display: none"])) {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

/* Generated resend link does not inherit the backend Normal Text size */
#enterVerificationCodePanel a {
    font-size: 11pt !important;
    line-height: 1.4 !important;
}

/* Verification screen: widen only the generated message area for longer email addresses */
#enterVerificationCodePanel p {
    width: 560px !important;
    max-width: calc(100vw - 60px) !important;
    position: relative !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    text-align: center !important;
}

