/* Customer-neutral foundations. Runtime tokens come from CompanyInfo.Theme. */
.account-page, .portal-page, .public-page {
    font-family: var(--font-body);
    color: var(--color-text);
    background: var(--color-background);
    --bs-body-font-family: var(--font-body);
    --bs-body-color: var(--color-text);
    --bs-body-bg: var(--color-background);
    --bs-link-color: var(--color-link);
    --bs-border-color: var(--color-border);
}
.account-page *, .portal-page * { box-sizing: border-box; }
:is(.account-page, .portal-page, .public-page) :is(h1,h2,h3,h4,h5,h6) { font-family: var(--font-heading); }
:is(.account-page, .portal-page, .public-page) :is(button,input,select,textarea) { font-family: var(--font-body); max-width: 100%; }
:is(.account-page, .portal-page, .public-page) :is(p,label,a,.alert,.field-error,.validation-summary-errors,dd) { overflow-wrap: anywhere; }
:is(.account-page, .portal-page, .public-page) img { max-width: 100%; }
:is(.account-page, .portal-page, .public-page) :is(.brand-logo,.brand-mini,.img-fluid) { height: auto; }
:is(.account-page, .portal-page, .public-page) :is(.row > *, .container, .container-fluid, .card, .form-group) { min-width: 0; }
:is(.account-page, .portal-page, .public-page) a:not(.btn):not(.app-btn):not(.app-btn-primary):not(.action-button):not(.login-button):not(.btn-magenta):not(.btn-pill):not(.nav-link):not(.btn-myinfo):not(.btn-manual) { color: var(--color-link); }
:is(.account-page, .portal-page, .public-page) :focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }
:is(.account-page, .portal-page, .public-page) :is(.card,.app-card) { background-color: var(--color-surface); border-color: var(--color-border); }
:is(.account-page, .portal-page, .public-page) .text-muted { color: var(--color-muted) !important; }
:is(.account-page, .portal-page, .public-page) .text-danger { color: var(--color-danger) !important; }
:is(.account-page, .portal-page, .public-page) .text-success { color: var(--color-success) !important; }
:is(.account-page, .portal-page, .public-page) .btn-primary { background: var(--brand-primary); border-color: var(--brand-primary); }
:is(.account-page, .portal-page, .public-page) .btn-primary:hover { background: var(--brand-primary-dark); border-color: var(--brand-primary-dark); }
:is(.account-page, .portal-page, .public-page) .btn-secondary { background: var(--brand-secondary); border-color: var(--brand-secondary); }
:is(.account-page, .portal-page, .public-page) .btn-secondary:hover { background: var(--brand-secondary-dark); border-color: var(--brand-secondary-dark); }
:is(.account-page, .portal-page, .public-page) .btn-success { background: var(--color-success); border-color: var(--color-success); }
:is(.account-page, .portal-page, .public-page) .btn-warning { background: var(--color-warning); border-color: var(--color-warning); color: #111 !important; }
:is(.account-page, .portal-page, .public-page) .btn-danger { background: var(--color-danger); border-color: var(--color-danger); }
:is(.account-page, .portal-page, .public-page) .alert { border-color: var(--color-border); }
:is(.account-page, .portal-page, .public-page) .alert-info { color: var(--brand-secondary); background: color-mix(in srgb,var(--brand-accent) 16%,var(--color-surface)); }
:is(.account-page, .portal-page, .public-page) .alert-success { color: var(--color-success); background: color-mix(in srgb,var(--color-success) 10%,var(--color-surface)); }
:is(.account-page, .portal-page, .public-page) .alert-warning { color: var(--color-text); background: color-mix(in srgb,var(--color-warning) 16%,var(--color-surface)); }
:is(.account-page, .portal-page, .public-page) .alert-danger { color: var(--color-danger); background: color-mix(in srgb,var(--color-danger) 10%,var(--color-surface)); }
@media (max-width: 767.98px) {
    :is(.account-page, .portal-page, .public-page) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size: 16px !important; min-width: 0; min-height: 44px; }
    :is(.account-page, .portal-page, .public-page) :is(.btn,.app-btn,.app-btn-primary,button[type=submit],.page-link,.pagination-btn) { min-height: 44px; height: auto; white-space: normal; }
    :is(.account-page, .portal-page, .public-page) :is(.btn-row,.pagination,.action-buttons) { flex-wrap: wrap; gap: 8px; }
    :is(.account-page, .portal-page, .public-page) :is(.form-check-label,.event-filter-item) { min-height: 44px; align-content: center; }
    :is(.account-page, .portal-page, .public-page) .thank-shell { padding: 12px; }
    :is(.account-page, .portal-page, .public-page) .thank-card { padding: 24px 16px; }
    :is(.account-page, .portal-page, .public-page) .thank-card h2 { font-size: clamp(24px,6vw,42px); }
}

:is(.account-page, .portal-page, .public-page) .verify-heading.fail { color: var(--color-danger); }
:is(.account-page, .portal-page, .public-page) .verify-card .verify-badge.fail { color: var(--color-danger); }
:is(.account-page, .portal-page, .public-page) .button-row { flex-wrap: wrap; }

@media (max-width:767.98px) {
    :is(.portal-page,.account-page,.public-page) .customer-list { display: block; overflow: visible; background: transparent; box-shadow: none; }
    .customer-list thead, .customer-list thead tr { display: flex; flex-wrap: wrap; gap: 6px; }
    .customer-list thead { margin-bottom: 12px; }
    .customer-list thead th { display: none; }
    .customer-list thead th[data-sort] { display: block; min-height: 44px; padding: 10px; border-radius: 6px; cursor: pointer; font-size: 14px; }
    .customer-list tbody { display: block; width: 100%; }
    .customer-list tbody tr { display: block; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 10px; margin-bottom: 16px; padding: 8px 0; }
    .customer-list tbody td { display: block; width: 100%; text-align: left !important; border: 0; padding: 8px 12px; }
    .customer-list tbody td::before { content: attr(data-label); display: block; font-weight: 700; font-size: 13px; color: var(--brand-secondary, #004A8F); margin-bottom: 4px; }
    :is(.portal-page,.account-page,.public-page) .customer-list tbody td a, :is(.portal-page,.account-page,.public-page) .customer-list tbody td button { min-height: 44px; margin: 4px 4px 4px 0; max-width: 100%; }
    :is(.portal-page,.account-page,.public-page) .table-responsive:has(.customer-list) { overflow: visible; }

}

:is(.account-page,.portal-page,.public-page) .pw-req.ok { color:var(--color-success); }
:is(.account-page,.portal-page,.public-page) .pw-req.bad { color:var(--color-danger); }
