#authOverlay {
  --partner-ink: #071c38;
  --partner-coral: #f35e4c;
  --partner-muted: #718095;
  position: fixed;
  inset: 0;
  z-index: 1000;
  overflow: auto;
  color: var(--partner-ink);
  background: #fdf6eb;
  font-family: "Inter", Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}

#authOverlay.hidden { display: none; }
#authOverlay > .login-screen { display: none !important; }

#authOverlay .partner-login-page {
  position: relative;
  isolation: isolate;
  min-height: 100dvh;
  overflow: hidden;
  background:
    radial-gradient(ellipse 38% 48% at 6% 6%, #ffd5b9 0%, transparent 73%),
    radial-gradient(ellipse 31% 47% at 59% 22%, #d9f7f0 0%, transparent 75%),
    radial-gradient(ellipse 40% 55% at 95% 76%, #ffd2ca 0%, transparent 73%),
    linear-gradient(117deg, #e9faf2 0%, #fdf6eb 51%, #fff7f1 100%);
}

#authOverlay .partner-login-page::after {
  content: "";
  position: absolute;
  inset: 3px;
  z-index: -1;
  pointer-events: none;
  border: 1px solid rgba(255, 255, 255, .7);
}

#authOverlay .partner-login-brand,
#authOverlay .partner-login-form,
#authOverlay .partner-login-hero,
#authOverlay .partner-device-stage { position: absolute; }

#authOverlay .partner-login-brand {
  left: 6.9vw;
  top: 14.7vh;
  width: min(32vw, 520px);
  height: auto;
  aspect-ratio: 209 / 40;
  object-fit: contain;
  object-position: left center;
}

#authOverlay .partner-login-form {
  left: 6.9vw;
  top: 32.7vh;
  width: min(34vw, 575px);
  z-index: 5;
}

#authOverlay .partner-login-eyebrow {
  margin: 0 0 25px;
  color: var(--partner-coral);
  font-size: clamp(16px, 1.1vw, 23px);
  line-height: 1;
  font-weight: 800;
  letter-spacing: -.03em;
}

#authOverlay .partner-login-form h1 {
  margin: 0 0 25px;
  font-size: clamp(42px, 3vw, 61px);
  letter-spacing: -.06em;
  line-height: .95;
  font-weight: 800;
}

#authOverlay .partner-login-form > p:not(.partner-login-eyebrow):not(.partner-login-invite) {
  margin: 0;
  font-size: clamp(18px, 1.32vw, 27px);
  line-height: 1.37;
  letter-spacing: -.025em;
}

#authOverlay .partner-google-signin {
  width: min(400px, 100%);
  margin: clamp(40px, 6vh, 72px) auto 0;
}

#authOverlay #gsiButton {
  position: static;
  inset: auto;
  display: flex;
  width: 100%;
  min-height: 44px;
  justify-content: center;
  overflow: visible;
  opacity: 1;
  border-radius: 999px;
}

#authOverlay #gsiButton > div {
  width: 100% !important;
  max-width: none !important;
  overflow: visible !important;
}

/* Google deliberately makes its iframe 20px wider and offsets it by -10px
   to draw the rounded ends. Constraining the iframe itself clips the right
   cap, especially for the personalised account button. */
#authOverlay #gsiButton iframe { max-width: none !important; }

#authOverlay .auth-error {
  max-height: none;
  margin-top: 12px;
  overflow: visible;
  opacity: 1;
  color: #b83f32;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

#authOverlay .auth-error:empty { display: none; }

#authOverlay .partner-login-invite {
  max-width: 560px;
  margin: clamp(40px, 6vh, 72px) 0 0;
  color: var(--partner-ink);
  font-size: clamp(16px, 1.1vw, 22px);
  line-height: 1.45;
}

#authOverlay .partner-login-invite a {
  color: inherit;
  font-weight: 800;
  text-decoration: none;
}

#authOverlay .partner-login-hero {
  left: 51.8vw;
  top: 5.3vh;
  width: min(31vw, 615px);
  z-index: 2;
}

#authOverlay .partner-login-hero .partner-login-eyebrow {
  margin-bottom: 15px;
  font-size: clamp(16px, 1.1vw, 23px);
  letter-spacing: .11em;
}

#authOverlay .partner-login-hero h2 {
  margin: 0;
  font-size: clamp(42px, 3.1vw, 63px);
  letter-spacing: -.065em;
  line-height: 1.02;
  font-weight: 800;
}

#authOverlay .partner-login-hero h2 span { color: var(--partner-coral); }

#authOverlay .partner-login-hero > p:last-child {
  max-width: 520px;
  margin: 18px 0 0;
  color: var(--partner-muted);
  font-size: clamp(18px, 1.2vw, 24px);
  line-height: 1.4;
  letter-spacing: -.02em;
}

#authOverlay .partner-device-stage {
  left: max(68vw, 730px);
  top: 47vh;
  z-index: 1;
  width: clamp(230px, 18vw, 375px);
  transform: rotate(10.5deg);
  transform-origin: center;
}

#authOverlay .partner-iphone {
  position: relative;
  width: 100%;
  aspect-ratio: .485;
  padding: clamp(7px, .65vw, 13px);
  border-radius: clamp(39px, 3.3vw, 68px);
  background: linear-gradient(120deg, #111 0%, #353535 34%, #090909 68%, #4c4c4c 100%);
  box-shadow: clamp(18px, 1.8vw, 36px) clamp(18px, 1.9vw, 38px) clamp(24px, 3.4vw, 68px) rgba(25, 23, 25, .35), inset 1px 1px 1px rgba(255, 255, 255, .5), inset -2px -2px 3px rgba(0, 0, 0, .75);
}

#authOverlay .partner-phone-screen {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: calc(clamp(39px, 3.3vw, 68px) - clamp(7px, .65vw, 13px));
  background: #101010;
}

#authOverlay .partner-phone-screen img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
#authOverlay .partner-phone-island { position: absolute; top: clamp(13px, 1.2vw, 24px); left: 50%; z-index: 2; width: 35%; height: clamp(17px, 1.55vw, 32px); translate: -50% 0; border-radius: 999px; background: #050505; box-shadow: 0 1px 0 rgba(255, 255, 255, .14); }
#authOverlay .partner-phone-camera { position: absolute; top: 50%; right: 12%; width: clamp(4px, .35vw, 7px); height: clamp(4px, .35vw, 7px); border-radius: 50%; background: #182445; box-shadow: 0 0 3px #4661a9; }
#authOverlay .partner-phone-side { position: absolute; top: 30%; right: -3px; width: 3px; height: 12%; border-radius: 0 3px 3px 0; background: #232323; }
#authOverlay .partner-phone-side::before { content: ""; position: absolute; top: 160%; left: 0; width: 3px; height: 95%; border-radius: 0 3px 3px 0; background: #232323; }

#authOverlay .partner-login-tile {
  position: absolute;
  z-index: 3;
  width: clamp(185px, 14vw, 285px);
  height: auto;
  pointer-events: none;
  filter: drop-shadow(0 10px 18px rgba(32, 36, 42, .16));
  animation: partner-login-bob 5.3s ease-in-out infinite;
}

#authOverlay .partner-tile-contracting { left: 53vw; top: 63vh; transform: rotate(-5deg); animation-delay: -1.4s; }
#authOverlay .partner-tile-marketing { left: 84vw; top: 39vh; transform: rotate(8deg); animation-delay: -3.2s; }
#authOverlay .partner-tile-service { left: 82vw; top: 70vh; transform: rotate(-8deg); animation-delay: -.4s; }

@keyframes partner-login-bob { 0%, 100% { margin-top: 0; } 50% { margin-top: -11px; } }

@media (max-width: 1100px) and (min-width: 901px) {
  #authOverlay .partner-login-form { width: 39vw; }
  #authOverlay .partner-device-stage { left: 72vw; }
  #authOverlay .partner-tile-marketing,
  #authOverlay .partner-tile-service { display: none; }
}

@media (max-width: 900px) {
  #authOverlay .partner-login-page { min-height: auto; overflow: visible; padding: 42px 7vw 64px; }
  #authOverlay .partner-login-brand,
  #authOverlay .partner-login-form,
  #authOverlay .partner-login-hero,
  #authOverlay .partner-device-stage { position: relative; inset: auto; }
  #authOverlay .partner-login-brand { display: block; width: min(86vw, 520px); margin: 0; }
  #authOverlay .partner-login-form { width: min(100%, 580px); margin: 64px 0 0; }
  #authOverlay .partner-login-form > p:not(.partner-login-eyebrow):not(.partner-login-invite) { max-width: 560px; }
  #authOverlay .partner-google-signin { width: min(100%, 400px); margin-top: 42px; }
  #authOverlay .partner-login-invite { margin-top: 42px; }
  #authOverlay .partner-login-hero { width: min(100%, 580px); margin: 76px 0 0; }
  #authOverlay .partner-login-hero > p:last-child { max-width: 560px; }
  #authOverlay .partner-device-stage { width: min(62vw, 320px); margin: 62px auto 0; transform: rotate(5deg); }
  #authOverlay .partner-login-tile { display: none; }
}

@media (max-width: 480px) {
  #authOverlay .partner-login-page { padding: 30px 22px 52px; }
  #authOverlay .partner-login-form { margin-top: 48px; }
  #authOverlay .partner-login-form h1 { font-size: clamp(40px, 13vw, 54px); }
  #authOverlay .partner-login-form > p:not(.partner-login-eyebrow):not(.partner-login-invite) { font-size: 18px; }
  #authOverlay .partner-login-hero { margin-top: 62px; }
  #authOverlay .partner-login-hero h2 { font-size: clamp(39px, 12vw, 52px); }
  #authOverlay .partner-login-hero > p:last-child { font-size: 17px; }
  #authOverlay .partner-device-stage { width: min(70vw, 290px); }
}

@media (prefers-reduced-motion: reduce) {
  #authOverlay .partner-login-tile { animation: none; }
}
