
.gvauth-modal{
  --gva-modal-surface:#fff;
  --gva-modal-border:#d4d4d8;
  --gva-modal-close:#71717a;
  --gva-dialog-width:900px;
  --gva-auth-frame-height:520px;
  position:fixed;inset:0;z-index:2147482000;
  width:100vw;height:100dvh;min-width:0;min-height:0;
  display:flex;align-items:center;justify-content:center;
  padding:24px;margin:0;overflow:hidden;
  opacity:0;visibility:hidden;pointer-events:none;
  background:transparent;
  transition:opacity .16s ease,visibility 0s linear .16s;
}
html[data-public-base-theme="dark"] .gvauth-modal{
  --gva-modal-surface:#000;
  --gva-modal-border:#2f2f33;
  --gva-modal-close:#a1a1aa;
}
.gvauth-modal[hidden]{display:none}
.gvauth-modal.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .16s ease}
.gvauth-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.24);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);--gva-auth-frame-height:540px}
.gvauth-modal[data-auth-mode="register"]{--gva-dialog-width:980px;--gva-auth-frame-height:590px}
.gvauth-modal[data-auth-mode="register-disabled"]{--gva-dialog-width:780px;--gva-auth-frame-height:420px}
.gvauth-modal[data-auth-mode="forgot"]{--gva-dialog-width:780px;--gva-auth-frame-height:430px}
.gvauth-modal[data-auth-mode="reset"]{--gva-dialog-width:820px;--gva-auth-frame-height:470px}
.gvauth-modal[data-auth-mode="verify"],
.gvauth-modal[data-auth-mode="identity"]{--gva-dialog-width:780px;--gva-auth-frame-height:360px}
.gvauth-modal[data-auth-mode="setup"]{--gva-dialog-width:940px;--gva-auth-frame-height:570px}
.gvauth-dialog{
  position:relative;z-index:2;inset:auto;top:auto;left:auto;right:auto;bottom:auto;
  flex:0 0 auto;align-self:center;
  width:min(var(--gva-dialog-width),calc(100vw - 48px));
  height:auto;min-width:0;min-height:0;max-width:none;max-height:calc(100dvh - 48px);
  margin:0;padding:0;overflow:hidden;
  border:1px solid var(--gva-modal-border);border-radius: var(--gv-radius-card);
  background:var(--gva-modal-surface);
  box-shadow:none;
  transform:translateY(8px);transform-origin:center;
  transition:transform .18s cubic-bezier(.16,1,.3,1),width .22s cubic-bezier(.16,1,.3,1),max-height .22s cubic-bezier(.16,1,.3,1),opacity .14s ease;
}
.gvauth-modal.is-open .gvauth-dialog{transform:translateY(0)}
.gvauth-frame{
  position:relative;display:block;width:100%;height:min(var(--gva-auth-frame-height),calc(100dvh - 48px));min-width:0;min-height:0;
  margin:0;padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--gva-modal-surface);
  transition:height .22s cubic-bezier(.16,1,.3,1);
}
.gvauth-frame iframe{
  display:block;width:100%;height:100%;min-width:0;min-height:0;
  margin:0;padding:0;border:0;border-radius:0;overflow:hidden;
  background:var(--gva-modal-surface);opacity:1;transform:translate3d(0,0,0);
  transition:opacity .14s ease,transform .20s cubic-bezier(.16,1,.3,1);color-scheme:light;
}
html[data-public-base-theme="dark"] .gvauth-frame iframe{color-scheme:dark}
.gvauth-modal.is-switching .gvauth-frame iframe{opacity:.18;transform:translate3d(8px,0,0)}
.gvauth-modal.is-switching[data-auth-transition="back"] .gvauth-frame iframe{transform:translate3d(-8px,0,0)}
.gvauth-modal.is-switching .gvauth-dialog{opacity:.985}
.gvauth-close{
  position:absolute;z-index:5;top:14px;inset-inline-end:14px;
  width:32px;height:32px;display:grid;place-items:center;
  margin:0;padding:0;border:0;border-radius:6px;background:transparent;
  color:var(--gva-modal-close);box-shadow:none;cursor:pointer;
}
.gvauth-close svg{display:block;width:20px;height:20px}
.gvauth-close:hover{background:rgba(127,127,127,.10);color:inherit}
.gvauth-close:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.gvauth-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html.gv-auth-modal-open,html.gv-auth-modal-open body{overscroll-behavior:none}
@media(max-width:760px){.gvauth-modal{display:none}}
@media(max-height:680px) and (min-width:761px){
  .gvauth-modal{padding:12px}
  .gvauth-dialog{max-height:calc(100dvh - 24px)}
  .gvauth-frame{height:min(var(--gva-auth-frame-height),calc(100dvh - 24px))}
}
@media(prefers-reduced-motion:reduce){.gvauth-modal,.gvauth-dialog,.gvauth-frame{transition:none}}

/* Third-party chat launchers stay hidden while the customer auth modal owns focus. */
html.gv-auth-modal-open #tidio-chat,
html.gv-auth-modal-open [id^="tidio-chat"],
html.gv-auth-modal-open iframe[src*="tidio" i],
html.gv-auth-modal-open #crisp-chatbox,
html.gv-auth-modal-open .crisp-client,
html.gv-auth-modal-open #tawkchat-container,
html.gv-auth-modal-open iframe[src*="tawk.to" i],
html.gv-auth-modal-open #chatwoot_live_chat_widget,
html.gv-auth-modal-open .woot-widget-holder,
html.gv-auth-modal-open iframe[src*="chatwoot" i],
html.gv-auth-modal-open .intercom-lightweight-app,
html.gv-auth-modal-open #intercom-container,
html.gv-auth-modal-open iframe[src*="intercom" i],
html.gv-auth-modal-open #hubspot-messages-iframe-container,
html.gv-auth-modal-open iframe[src*="hubspot" i],
html.gv-auth-modal-open iframe[src*="zdassets" i],
html.gv-auth-modal-open iframe[src*="jivosite" i],
html.gv-auth-modal-open iframe[src*="smartsupp" i],
html.gv-auth-modal-open iframe[src*="livechatinc" i],
html.gv-auth-modal-open iframe[src*="freshchat" i],
html.gv-auth-modal-open [data-gv-chat-launcher] {
    display:none;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
}

/* Standalone fallback; the shared popup controller is the only inline lock owner. */
html.gv-auth-modal-open { overscroll-behavior:none; }
/* Canonical close control. The glyph is an SVG mask instead of a text ×,
   so its optical center and stroke stay consistent across fonts, RTL/LTR and zoom. */
.gv-close-control{
  flex:none;
  display:grid;
  place-items:center;
  font-size:0!important;
  line-height:0!important;
  letter-spacing:0!important;
  text-indent:0!important;
}
.gv-close-control>svg{display:none!important}
.gv-close-control::before{
  content:"";
  width:16px;
  height:16px;
  display:block;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 7l10 10M17 7 7 17' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 7l10 10M17 7 7 17' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  pointer-events:none;
}
.gv-close-control::after{content:none!important}
.gv-close-control--sm::before{width:14px;height:14px}
.gv-close-control--md::before{width:16px;height:16px}
.gv-close-control--lg::before{width:18px;height:18px}

