body:has(.member-access-page) { background: #eaf1f5; overflow-y: auto; }
body:has(.member-access-page) .page-header .header-user { display: none; }
.member-access-page { min-height: 100vh; padding: 100px 24px 40px; display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at 15% 80%, #cee8ef 0, transparent 55%), linear-gradient(140deg, #edf3f8, #dce5f1); }
.member-card { width: 100%; max-width: 460px; padding: 32px 36px; border: 1px solid #e1e8f0; border-radius: 18px; background: #fff; box-shadow: 0 12px 40px rgba(41,74,127,.09); color: #334155; font-size: 14px; line-height: 1.6; }
.member-card .member-back { display: inline-block; color: #60748e; font-size: 12px; text-decoration: none; margin-bottom: 24px; }
.member-symbol { width: 44px; height: 44px; padding: 10px; border-radius: 12px; color: #294a7f; background: #eaf1f5; margin-bottom: 18px; }
.member-symbol svg { width: 100%; height: 100%; }
.member-card .member-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; color: #60748e; margin: 0 0 8px; }
.member-card h1 { color: #294a7f; font-size: 28px; line-height: 1.25; font-weight: 600; margin: 0 0 14px; }
.member-card .member-intro { margin: 0 0 26px; color: #536478; }
.member-form label { display: block; color: #294a7f; font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.member-form input[type=email] { display: block; width: 100%; height: 46px; border: 1px solid #bccbda; border-radius: 8px; padding: 10px 12px; font: inherit; color: #25364c; background: #fff; box-sizing: border-box; }
.member-form input[type=email]:focus { outline: 2px solid #294a7f; outline-offset: 2px; }
.member-card .member-help { font-size: 12px; color: #66788d; margin: 8px 0 20px; line-height: 1.5; }
.member-card .member-primary { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-height: 46px; box-sizing: border-box; padding: 11px 16px; border: 0; border-radius: 8px; background: #294a7f; color: #fff; text-decoration: none; font: inherit; font-weight: 600; cursor: pointer; }
.member-card .member-primary:hover { background: #203b66; }
.member-card .member-security { font-size: 11px; color: #66788d; text-align: center; margin: 14px 0 0; }
.member-footer { border-top: 1px solid #e6edf3; padding-top: 18px; margin-top: 26px; font-size: 11px; color: #66788d; }
.member-card a:not(.member-primary):hover { text-decoration: underline; }
.member-footer a { color: #294a7f; }
.member-note { padding: 16px; background: #edf3f8; border-radius: 8px; color: #294a7f; margin-bottom: 18px; }
@media (max-width: 520px) { .member-access-page { padding: 82px 16px 24px; align-items: flex-start; } .member-card { padding: 26px 24px; } .member-card h1 { font-size: 25px; } }
.member-dialog { padding: 0; border: 0; border-radius: 18px; width: min(460px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; overflow: auto; background: #fff; box-shadow: 0 20px 70px #071f2e55; }
.member-dialog::backdrop { background: rgba(7,31,46,.38); }
.member-dialog .member-card { box-sizing: border-box; max-width: none; border: 0; box-shadow: none; padding-top: 44px; }
.member-dialog .member-back { display: none; }
.member-dialog-close { position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: #60748e; font-size: 26px; line-height: 1; cursor: pointer; }
.member-dialog-close:hover { background: #eaf1f5; }
.member-dialog button:focus-visible { outline: 2px solid #294a7f; outline-offset: 2px; }
.member-dialog .member-primary:disabled { opacity: .65; cursor: wait; }
.member-submit-error { color: #963a36; font-size: 13px; }
