/* Shared account surface: shopper popups, reseller signup and account recovery. */
.gp-auth-page { margin: 0; min-height: 100dvh; }
.gp-auth-page *, .gp-auth-modal * { box-sizing: border-box; }
.gp-auth-page [hidden] { display: none !important; }
.gp-auth-layout { max-width: 1040px; margin: 56px auto; padding: 0 24px; display: grid; grid-template-columns: .9fr 1fr; gap: 72px; align-items: start; }
.gp-auth-intro { padding-top: 48px; }
.gp-auth-intro h2 { font-size: clamp(28px,3vw,38px); line-height: 1.18; letter-spacing: -.03em; margin: 0 0 20px; max-width: 16ch; }
.gp-auth-intro p { line-height: 1.7; color: var(--gp-muted); margin: 0 0 24px; }
.gp-auth-intro ul { padding-left: 20px; color: var(--gp-muted); line-height: 1.7; margin: 0 0 32px; }
.gp-auth-intro li + li { margin-top: 12px; }
.gp-auth-intro a, .gp-auth-card a, .gp-auth-footer a { color: var(--gp-primary); text-underline-offset: 4px; }
.gp-auth-card { background: var(--gp-surface); border: 1px solid var(--gp-line); border-radius: var(--gp-radius); padding: 32px; min-width: 0; color: var(--gp-ink); font-family: system-ui,-apple-system,'Segoe UI',sans-serif; }
.gp-auth-card h1, .gp-auth-card h2 { font-family: inherit; font-size: 26px; line-height: 1.25; letter-spacing: -.025em; margin: 24px 0 8px; color: var(--gp-ink); }
.gp-auth-card > h1:first-child, .gp-auth-card > h2:first-child { margin-top: 0; }
.gp-auth-card p { font-size: 14px; line-height: 1.6; color: var(--gp-muted); margin: 0 0 24px; }
.gp-auth-card form { display: grid; gap: 18px; margin-top: 24px; }
.gp-auth-card label, .gp-auth-field { display: grid; gap: 8px; font-size: 14px; font-weight: 600; color: var(--gp-ink); }
.gp-auth-card input, .gp-auth-card select { width: 100%; min-width: 0; min-height: 46px; border: 1px solid #aabcb5; background: var(--gp-surface); color: var(--gp-ink); border-radius: 10px; padding: 11px 12px; font-size: 16px; font-weight: 400; }
.gp-auth-card input::placeholder { color: #61736c; opacity: 1; }
.gp-auth-card input.nexus-input-invalid { border-color: #b42318; }
.gp-auth-card button, .gp-auth-card .gp-auth-button { min-height: 46px; padding: 12px 16px; border-radius: 10px; font: inherit; font-size: 14px; font-weight: 650; cursor: pointer; }
.gp-auth-primary { background: var(--gp-primary); color: #fff; border: 1px solid var(--gp-primary); width: 100%; }
.gp-auth-primary:hover { background: #064532; }
.gp-auth-secondary { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; background: var(--gp-surface); color: var(--gp-ink); border: 1px solid #aabcb5; }
.gp-auth-secondary:hover { background: var(--gp-soft); }
.gp-auth-card button:disabled { opacity: .65; cursor: wait; }
.gp-auth-tabs { display: flex; gap: 4px; background: var(--gp-soft); border-radius: 10px; padding: 4px; }
.gp-auth-tabs a, .gp-auth-tabs button { flex: 1; text-align: center; text-decoration: none; display: grid; place-items: center; padding: 10px 12px; min-height: 44px; border: 0; border-radius: 8px; color: var(--gp-muted); background: transparent; font-size: 14px; font-weight: 650; }
.gp-auth-tabs [aria-current=page], .gp-auth-tabs [aria-selected=true] { background: var(--gp-primary); color: #fff; }
.gp-auth-card .gp-auth-note { margin: 24px 0 0; font-size: 13px; }
.gp-auth-divider { display: flex; align-items: center; gap: 12px; margin: 24px 0; color: var(--gp-muted); font-size: 13px; }
.gp-auth-divider::before, .gp-auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--gp-line); }
.gp-auth-error { color: #a1241c; background: #fff1ee; padding: 12px; border-radius: 10px; font-size: 14px; line-height: 1.5; margin-top: 16px; }
.gp-auth-error:empty { display: none; }
.gp-auth-success { color: #07543e; background: var(--gp-soft); padding: 12px; border-radius: 10px; margin: 16px 0; font-size: 14px; }
.gp-auth-footer { display: flex; justify-content: center; gap: 24px; padding: 16px 24px 32px; font-size: 13px; }
.gp-auth-footer a { padding: 10px 0; }
.gp-auth-recovery { margin-top: 24px; border-top: 1px solid var(--gp-line); padding-top: 24px; }
.gp-auth-recovery > button { padding: 8px 0; border: 0; background: transparent; color: var(--gp-primary); text-decoration: underline; text-underline-offset: 4px; }
.gp-auth-recovery h2 { font-size: 20px; margin: 8px 0; }
.gp-auth-recovery .gp-auth-field + .gp-auth-field { margin-top: 18px; }
.gp-auth-recovery .gp-auth-primary { margin-top: 18px; }
.gp-auth-card .gp-auth-recovery p { margin: 12px 0 18px; }
.gp-auth-overlay.dual-auth-overlay { background: rgba(23,36,59,.42); backdrop-filter: none; overflow-y: auto; align-items: center; padding: 24px 16px; }
.gp-auth-modal.dual-auth-modal { display: block; width: 100%; max-width: 480px; min-height: 0; max-height: calc(100dvh - 48px); overflow-y: auto; border-radius: 14px; background: var(--gp-surface); box-shadow: 0 16px 48px rgba(23,36,59,.18); position: relative; }
.gp-auth-modal .gp-auth-card { border: 0; padding: 32px; }
.gp-auth-close { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border: 0; border-radius: 10px; background: transparent; color: var(--gp-ink); cursor: pointer; display: grid; place-items: center; }
.gp-auth-close:hover { background: var(--gp-soft); }
.gp-auth-modal .gp-auth-tabs { margin-top: 36px; }
.gp-auth-brand { margin: 0 0 16px; }
@media(max-width:720px) {
  .gp-auth-layout { grid-template-columns: 1fr; gap: 24px; margin: 24px auto; padding: 0 16px; max-width: 520px; }
  .gp-auth-intro { padding-top: 0; }
  .gp-auth-intro h2 { font-size: 26px; max-width: none; margin-bottom: 12px; }
  .gp-auth-intro ul { display: none; }
  .gp-auth-intro p { margin-bottom: 12px; }
  .gp-auth-card, .gp-auth-modal .gp-auth-card { padding: 24px; }
  .gp-auth-modal.dual-auth-modal { max-height: calc(100dvh - 32px); }
  .gp-auth-overlay.dual-auth-overlay { padding: 16px; }
}
