.portal-modal[hidden] { display: none; }
.portal-modal { position: fixed; inset: 0; z-index: 10001; display: grid; place-items: center; padding: 1rem; }
.portal-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.72); }
.portal-modal__dialog { --faster-member-accent: var(--brand-primary, #C8102E); position: relative; width: min(480px, 100%); max-height: calc(100vh - 2rem); overflow: auto; background: #fff; color: #0a0a0a; border-top: 4px solid #C8102E; border-radius: .75rem; padding: 2rem; box-shadow: 0 24px 80px rgba(0,0,0,.4); }
.portal-modal__close { position: absolute; right: 1rem; top: .75rem; min-height: 44px; min-width: 44px; border: 0; background: transparent; color: #0a0a0a; font-size: 2rem; cursor: pointer; }
.portal-modal__logo { display: block; height: 64px; margin: 0 auto 1.25rem; width: auto; }
.portal-modal .faster-members { border: 0; max-width: none; padding: 0; }
.portal-modal .faster-members h2 { color: #0a0a0a; font-family: 'Mulish', sans-serif; }
.portal-modal .faster-members--signed-out > p:not(.faster-members__notice) { color: #4b5563; }
.portal-modal .faster-members__signin { display: grid; grid-template-columns: 1fr; gap: .75rem; }
.portal-modal .faster-members input { border: 1px solid #9ca3af; border-radius: .25rem; min-height: 44px; }
.portal-modal .faster-members input:focus { border-color: var(--faster-member-accent); box-shadow: 0 0 0 3px rgba(200,16,46,.2); outline: 0; }
.portal-modal .faster-members button { background: var(--faster-member-accent); border: 0; border-radius: 999px; color: #fff; min-height: 44px; padding: .7rem 1.1rem; font-weight: 800; }
.portal-modal .faster-members button:hover { background: #A00D24; }
.portal-modal .faster-members__notice { color: #4b5563; }
.portal-modal .faster-members__badge { background: #f3f4f6; color: #0a0a0a; }
.portal-modal .faster-members__actions button { width: 100%; }
