.login-layout { min-height: 100svh; display: grid; grid-template-columns: 46% 54%; }
.login-story { background: var(--link); color: #fff; padding: 48px 58px 32px; display: flex; flex-direction: column; }
.login-logo { align-self: flex-start; }
.login-logo img { display: block; height: auto; }
.story-copy { margin: auto 0; padding: 64px 0 36px; max-width: 480px; }
.story-label { font-size: 13px; margin: 0 0 24px; }
.story-copy h1 { font-size: clamp(36px, 3.6vw, 54px); font-weight: 600; line-height: 1.12; letter-spacing: -1.8px; margin: 0 0 24px; }
.story-copy h1 span { color: var(--brand-green); }
.story-copy > p:last-of-type { font-size: 15px; line-height: 1.85; max-width: 350px; }
.story-mark { display: block; margin: 42px 0 0 auto; }
.story-footer { font-size: 12px; padding-top: 20px; }
.login-panel { display: flex; flex-direction: column; padding: 38px 48px 30px; min-width: 0; }
.login-help { align-self: flex-end; font-size: 12px; color: var(--muted); text-decoration: none; }
.login-help span { color: var(--ink); margin-left: 8px; }
.login-form-wrap { width: 100%; max-width: 380px; margin: auto; padding: 68px 0; }
.login-form-wrap:focus { outline: none; }
.form-label { font-size: 12px; color: var(--muted); margin: 0 0 16px; }
.login-form-wrap h2 { font-size: 38px; letter-spacing: -1.2px; line-height: 1.2; font-weight: 600; margin: 0 0 12px; }
.form-intro { font-size: 14px; color: var(--muted); line-height: 1.6; margin: 0 0 34px; }
[hidden] { display: none !important; }
form label { display: block; font-size: 13px; font-weight: 500; margin: 0 0 8px; }
form input { min-height: 50px; width: 100%; padding: 12px 14px; border: 1px solid #bcbcbc; border-radius: var(--radius); font-size: 16px; color: var(--ink); background: #fff; }
.field-help, .code-recipient { font-size: 13px; color: var(--muted); line-height: 1.6; margin: 10px 0 24px; overflow-wrap: anywhere; }
#code { font-size: 18px; font-weight: 400; letter-spacing: 3px; font-variant-numeric: tabular-nums; }
form input::placeholder, #code::placeholder { font-size: 13px; font-weight: 300; letter-spacing: normal; color: #767676; opacity: 1; }
.sign-in-button { width: 100%; justify-content: space-between; min-height: 50px; background: var(--brand-blue); color: #fff; }
.sign-in-button:hover { background: var(--link); color: #fff; }
.sign-in-button:disabled { cursor: not-allowed; opacity: .6; }
.code-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 12px; }
.code-actions button { padding: 8px 0; border: 0; background: transparent; color: var(--link); font-size: 12px; cursor: pointer; }
.code-actions button:disabled { color: var(--muted); cursor: not-allowed; }
.request-access { padding-top: 24px; margin: 28px 0 0; border-top: 1px solid var(--border); font-size: 13px; line-height: 1.9; color: var(--muted); }
.request-access a { text-decoration: none; font-weight: 500; }
.login-status { font-size: 13px; line-height: 1.6; padding: 12px 14px; background: var(--surface); border-radius: var(--radius); }
.login-footer { display: flex; align-items: center; justify-content: space-between; font-size: 11px; color: var(--muted); }
.login-footer a { color: var(--muted); text-decoration: none; }
@media (max-width: 1000px) { .login-story { padding: 38px 34px 28px; } .login-panel { padding: 32px; } .story-mark { width: 130px; height: auto; } }
@media (max-width: 700px) {
  .login-layout { grid-template-columns: 1fr; }
  .login-story { padding: 25px; }
  .login-logo img { width: 150px; }
  .story-copy, .story-footer { display: none; }
  .login-panel { padding: 24px; min-height: calc(100svh - 80px); }
  .login-form-wrap { padding: 42px 0; }
  .login-form-wrap h2 { font-size: 34px; }
}
