.customer-login-backdrop { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 16px; background: rgba(15,23,42,.54); }
.customer-login-backdrop[hidden] { display: none; }
.customer-login-dialog { position: relative; background: #fff; color: #1f2528; width: min(640px,100%); max-height: calc(100dvh - 32px); max-height: min(880px,calc(100dvh - 32px)); overflow-y: auto; overscroll-behavior: contain; border-radius: 12px; box-shadow: 0 18px 60px #0003; padding: 28px; }
.customer-login-close { position: absolute; inset-inline-end: 10px; top: 8px; z-index: 2; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: #1f2528; font-size: 28px; line-height: 1; cursor: pointer; }
.customer-login-close:focus-visible { outline: 2px solid #1b7fed; outline-offset: 2px; }
.customer-login-dialog > [data-login-content] > .container { margin: 0 !important; padding: 0 !important; max-width: none; }
.customer-login-dialog .container > .row { margin-inline: 0; }
/* The shared full-page form must not add a second card or grid gutters inside the dialog. */
.customer-login-dialog .container .login-card { flex: 0 0 100%; width: 100%; max-width: none; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.customer-login-dialog .login-card .row { margin-inline: 0; }
.customer-login-dialog .login-card .row > [class*="col-"] { padding-inline: 0; }
.customer-login-dialog .or-sign-in-with { display: none; }
.customer-login-dialog .or-sign-in-with-row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; }
.customer-login-dialog .form-control { font-size: 16px; }
.customer-login-loading { display: grid; place-items: center; min-height: 160px; }
.customer-login-spinner { display: block; width: 34px; height: 34px; border: 3px solid #dbeafe; border-top-color: #1b7fed; border-radius: 50%; animation: customer-auth-spin .8s linear infinite; }
.customer-login-fallback { text-align: center; padding: 20px 8px; }
@media(prefers-reduced-motion: reduce) { .customer-login-spinner { animation: none; } }
