/* Login additions to the shared signup design. Scoped to avoid workspace changes.
   The form panel grows naturally when provider buttons are configured above email. */
.login-page .login-main { display: flex; }
.login-page .login-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); width: 100%; }
.login-page .login-intro { display: flex; align-items: center; padding: 58px clamp(32px, 4.4vw, 100px); border-right: 1px solid var(--signup-border); background: var(--signup-soft); }
.login-page .login-intro-content { width: 100%; max-width: 570px; margin-inline: auto; }
.login-page .login-tagline { text-transform: none; letter-spacing: .04em; }
.login-page .login-intro h2 { margin-top: 23px; font-size: clamp(2.8rem, 4vw, 4.8rem); }
.login-page .login-intro h2 span { color: var(--signup-accent); }
.login-page .login-intro-description { max-width: 30rem; margin-top: 22px; color: var(--signup-muted); line-height: 1.8; }
.login-page .login-product { max-width: 500px; margin-top: 32px; }
.login-page .login-intro-note { margin-top: 20px; color: var(--signup-muted); font-size: .8125rem; }
.login-page .login-panel { display: flex; align-items: center; justify-content: center; padding: 64px clamp(32px, 5vw, 110px); }
.login-page .login-content { width: 100%; max-width: 470px; }
.login-page .login-heading h1 { margin-top: 12px; font-size: clamp(2.2rem, 3.1vw, 3.2rem); }
.login-page .login-heading > p:last-child { margin-top: 16px; color: var(--signup-muted); }
.login-page .login-form { display: grid; gap: 22px; margin-top: 32px; }
.login-page .login-password-label { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.login-page .login-password-label a { font-size: .8125rem; text-decoration: none; }
.login-page .login-password-label a:hover { text-decoration: underline; }
.login-page .login-password-control { position: relative; }
.login-page .login-password-control .signup-input { padding-right: 76px; }
.login-page .login-password-toggle { position: absolute; right: 5px; top: 5px; min-width: 60px; min-height: 39px; padding: 6px 10px; border: 0; border-radius: 4px; background: transparent; color: var(--signup-accent); font-size: .8125rem; font-weight: 600; cursor: pointer; }
.login-page .login-password-toggle:hover { background: var(--signup-panel); }
.login-page .login-remember { align-items: center; gap: 10px; margin-top: -7px; color: var(--signup-muted); font-size: .8125rem; }
.login-page .login-remember .signup-checkbox { margin-top: 0; }
.login-page .login-form > .signup-button { margin-top: -3px; }
.login-page .login-signup { margin-top: 27px; text-align: center; color: var(--signup-muted); font-size: .875rem; }
.login-page .login-signup a { display: inline-flex; min-height: 44px; align-items: center; margin-left: 4px; font-weight: 600; text-decoration: none; }
.login-page .login-signup a:hover { text-decoration: underline; }
.login-page .login-support { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 5px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--signup-border); color: var(--signup-muted); font-size: .8125rem; }
.login-page .login-support a { display: inline-flex; align-items: center; min-height: 44px; gap: 6px; text-decoration: none; }
.login-page .login-support svg { width: 16px; height: 16px; }
.login-page .login-header-help { display: inline-flex; align-items: center; min-height: 44px; color: var(--signup-muted); text-decoration: none; }
.login-page .login-header-help:hover, .login-page .login-support a:hover { text-decoration: underline; }
.login-page .login-message { margin-top: 24px; font-size: .875rem; overflow-wrap: anywhere; }
.login-page .login-message h2 { line-height: 1.4; }
.login-page .login-message h2 + p { margin-top: 7px; }
.login-page .login-back { margin-top: 24px; text-align: center; font-size: .875rem; }
.login-page .login-back a { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; text-decoration: none; }
.login-page .login-back a:hover { text-decoration: underline; }
.login-page .login-back svg { width: 17px; height: 17px; }
.login-page .login-access-help { margin-top: 24px; border-top: 1px solid var(--signup-border); font-size: .8125rem; }
.login-page .login-access-help summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; color: var(--signup-muted); cursor: pointer; list-style: none; }
.login-page .login-access-help summary::-webkit-details-marker { display: none; }
.login-page .login-access-help[open] .signup-disclosure { transform: rotate(45deg); }
.login-page .login-access-help nav { display: grid; padding: 0 0 8px; }
.login-page .login-access-help a { display: flex; align-items: center; gap: 6px; min-height: 44px; text-decoration: none; }
.login-page .login-access-help a:hover { text-decoration: underline; }
.login-page .login-access-help svg { width: 16px; height: 16px; }
.login-page .login-dev-note { margin-top: 24px; font-size: .75rem; }
.login-page .login-providers { display: grid; gap: 12px; margin-top: 30px; }
.login-page .login-provider { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; padding: 12px 18px; border: 1px solid var(--signup-input-border); border-radius: 7px; background: var(--signup-bg); color: var(--signup-text); font-size: .875rem; font-weight: 600; cursor: pointer; }
.login-page .login-provider:hover { background: var(--signup-panel); border-color: var(--signup-accent); }
.login-page .login-divider { display: flex; align-items: center; gap: 15px; margin-top: 26px; color: var(--signup-muted); font-size: .75rem; }
.login-page .login-divider::before, .login-page .login-divider::after { content: ""; flex: 1; border-top: 1px solid var(--signup-border); }
.login-page .login-divider + .login-form { margin-top: 26px; }
@media (max-width: 1050px) {
  .login-page .login-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
  .login-page .login-intro { padding: 46px 30px; }
  .login-page .login-panel { padding: 48px 32px; }
  .login-page .login-intro h2 { font-size: 2.75rem; }
}
@media (max-width: 800px) {
  .login-page .login-grid { display: block; }
  .login-page .login-intro { display: none; }
  .login-page .login-panel { padding: 52px 24px 58px; }
  .login-page .login-content { max-width: 470px; }
}
@media (max-width: 420px) {
  .login-page .login-panel { padding: 40px 22px 44px; }
  .login-page .login-heading h1 { font-size: 2.3rem; }
  .login-page .login-header-help { font-size: .8125rem; }
}
@media (max-width: 350px) {
  .login-page .login-panel { padding-inline: 18px; }
  .login-page .login-header-help { display: none; }
}
