body.has-portal-modal { overflow: hidden; }
  .portal-modal[hidden] { display: none; }
  .portal-modal { position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; padding: 1.25rem; }
  .portal-modal__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(17, 24, 39, .66); backdrop-filter: blur(5px); cursor: pointer; }
  .portal-modal__dialog { --faster-member-accent: var(--action-primary, #8FC868); position: relative; z-index: 1; width: min(100%, 48rem); max-height: 92vh; overflow: auto; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--action-primary-focus, rgba(143, 200, 104, .3)); border-radius: var(--radius-lg, 16px); background: #fff; color: var(--dark-gray, #374151); box-shadow: 0 28px 70px rgba(17, 24, 39, .28); font-family: var(--font-body, sans-serif); }
  .portal-modal__close { position: absolute; top: .8rem; right: .8rem; display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; padding: 0; border: 0; border-radius: 999px; background: #f3f4f6; color: #374151; cursor: pointer; }
  .portal-modal__close:hover, .portal-modal__close:focus-visible { background: var(--action-primary-soft, #F1F8EC); color: var(--action-primary-hover, #6F9F4F); outline: 2px solid transparent; }
  .portal-modal__close svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
  .portal-modal__eyebrow { margin: 0 3rem .45rem 0; color: var(--action-primary-hover, #6F9F4F); font-family: var(--font-heading, sans-serif); font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
  .portal-modal__dialog > h2 { margin: 0 3rem 1.25rem 0; color: var(--brand-dark, #17324d); font-family: var(--font-heading, sans-serif); font-size: clamp(1.7rem, 4vw, 2.25rem); line-height: 1.12; }
  .portal-modal .faster-members { max-width: none; padding: 0; border: 0; box-shadow: none; background: transparent; }
  .portal-modal .faster-members h2 { color: var(--brand-dark, #17324d); font-family: var(--font-heading, sans-serif); }
  .portal-modal .faster-members--signed-out > p:not(.faster-members__notice) { color: #52606d; line-height: 1.6; }
  .portal-modal .faster-members__signin { display: grid; grid-template-columns: 1fr; gap: .8rem; width: 100%; }
  .portal-modal .faster-members input { width: 100%; border: 1px solid #d1d5db; border-radius: var(--radius-md, 8px); background: #fff; color: #111827; font: inherit; }
  .portal-modal .faster-members input:focus { border-color: var(--action-primary, #8FC868); outline: 0; box-shadow: 0 0 0 3px var(--action-primary-focus, rgba(143, 200, 104, .3)); }
  .portal-modal .faster-members button { border-color: var(--action-primary, #8FC868); border-radius: var(--radius-md, 8px); background: var(--action-primary, #8FC868); color: #fff; font-family: var(--font-heading, sans-serif); font-weight: 700; }
  .portal-modal .faster-members button:hover { border-color: var(--brand-dark, #17324d); background: var(--brand-dark, #17324d); }
  .portal-modal .faster-members__notice { border-radius: var(--radius-md, 8px); background: rgba(0, 173, 177, .09); color: var(--brand-dark, #17324d); }
  .portal-modal .faster-members__badge { background: rgba(0, 173, 177, .1); color: var(--brand-dark, #17324d); }
  .portal-modal .faster-members__actions button { width: auto; }
  @media (max-width: 40rem) { .portal-modal { align-items: end; padding: 0; } .portal-modal__dialog { width: 100%; max-height: 94vh; border-radius: 18px 18px 0 0; } }
