/* The shared sign-in window follows the supplied black-and-white reference. */
body.has-login-window { overflow: hidden; }
.site-login-window { box-sizing: border-box; position: fixed; inset: 0; width: min(600px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; margin: auto; padding: 26px 44px 24px; border: 1px solid #fff; border-radius: 2px; background: #000; color: #fff; font: 400 24px/1.25 var(--reference-serif, Georgia, serif); color-scheme: dark; }
.site-login-window *, .site-login-window *::before, .site-login-window *::after { box-sizing: border-box; }
.site-login-window::backdrop { background: rgb(0 0 0 / .8); }
.site-login-window [hidden] { display: none !important; }
.site-login-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 42px; }
.site-login-heading h2 { margin: 0; font: 700 30px/1.2 var(--reference-serif, Georgia, serif); }
.site-login-close { display: grid; place-items: center; width: 32px; height: 38px; margin-right: -20px; padding: 0; border: 1px solid #999; border-radius: 0; background: #000; color: #fff; font: 20px/1 var(--reference-serif, Georgia, serif); cursor: pointer; }
.site-login-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 24px; }
.site-login-tabs button { min-height: 48px; padding: 7px 12px; border: 0; border-radius: 0; background: #000; color: #fff; font: inherit; cursor: pointer; }
.site-login-tabs button[aria-selected="true"] { background: #fff; color: #000; }
.site-login-form label { display: block; margin: 0 0 8px; }
.site-login-form input { display: block; width: 100%; height: 64px; margin: 0 0 20px; padding: 10px 12px; border: 1px solid #999; border-radius: 0; background: #000; color: #fff; font: inherit; }
.site-login-actions { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 34px; font: 700 30px/1.25 var(--reference-serif, Georgia, serif); }
.site-login-actions a, .site-login-actions button { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; color: #fff; font: inherit; text-decoration: none; cursor: pointer; }
.site-login-actions a:hover, .site-login-actions button:hover { text-decoration: underline; text-underline-offset: 5px; }
.site-login-error { margin: 16px 0 0; font-size: 17px; }
.site-login-account-note, .site-login-account-links { margin: 14px 0 0; font-size: 16px; }
.site-login-account-links { display: flex; flex-wrap: wrap; gap: 12px 22px; }
.site-login-account-links a, .site-login-account-links button { padding: 0; border: 0; background: none; color: #fff; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.site-login-window :is(a, button, input):focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.site-login-tabs button[aria-selected="true"]:focus-visible { outline-offset: -4px; outline-color: #000; }
.site-login-window button:disabled { cursor: progress; opacity: .6; }
.login-route-note { position: relative; z-index: 2; min-height: 65vh; padding: 40px; }
.login-page .score-overlay { top: 0; }
@media (max-width: 520px) {
  .site-login-window { width: calc(100vw - 24px); padding: 22px 20px; font-size: 21px; }
  .site-login-heading { margin-bottom: 28px; }
  .site-login-close { margin-right: 0; }
  .site-login-form input { height: 56px; }
  .site-login-actions { font-size: 24px; margin-top: 26px; }
}
