/* v3-auth.css — Codex auth guide (HANDOFF.md "Login/register and forgot-password guide",
   mockups auth-desktop-v1.webp 1920x1080 / auth-landscape-v1.webp 844x390).
   Everything is scoped to #screen-auth.v3a (the class is added by js/v3-auth.js, so
   without JS the old layout still works). Desktop sizes use --u = 1px at 1920x1080 and
   scale down uniformly (1366x768 -> .711). Phone uses the guide's exact px boxes. */

/* ============================================================
   KIT (all sizes)
   ============================================================ */
#screen-auth.v3a{
  --u:.6px;
  --a-text:#F4F7FF; --a-text2:#B7C4D8; --a-muted:#899AB3; --a-edge:#344963;
  --a-player:#00C2FF; --a-rival:#FF2D2D; --a-yellow:#FFE600; --a-green:#00FF87;
  background:linear-gradient(180deg, rgba(4,6,16,.04) 0%, rgba(4,6,16,.24) 100%),
    #080D1A url('../assets/ui/lobby-bg-v4.webp') center / cover no-repeat !important;
  color:var(--a-text); text-align:left;
}
#screen-auth.v3a .v3a-sr{ position:absolute !important; width:1px !important; height:1px !important; margin:-1px !important; padding:0 !important;
  overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; border:0 !important; }
#screen-auth.v3a .v3a-hero{ display:none; }
#screen-auth.v3a .v3a-logo{ animation:none !important; }

/* ---- form panel = Codex navy steel frame ---- */
#screen-auth.v3a .auth-wrap{
  position:relative; max-width:none; margin:0 !important; align-items:stretch; gap:0;
  border-style:solid; border-width:calc(var(--u) * 18);
  border-image:url('../assets/ui/panel-frame-v3.webp') 64 fill / calc(var(--u) * 18);
  background:none; box-shadow:0 12px 28px rgba(0,0,0,.5); border-radius:0;
  overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain;
}

/* ---- mode tabs: yellow = selected (navigation), dark steel = idle ---- */
#screen-auth.v3a .auth-tabs{ display:grid; grid-template-columns:1fr 1fr; gap:calc(var(--u) * 8); border:0; border-radius:0; overflow:visible; width:100%; }
#screen-auth.v3a .auth-tab{
  display:flex; align-items:center; justify-content:center; gap:calc(var(--u) * 14); min-height:44px; padding:0;
  border-style:solid; border-width:calc(var(--u) * 10) calc(var(--u) * 16);
  border-image:url('../assets/ui/btn-dark-v3.webp') 32 48 fill / calc(var(--u) * 10) calc(var(--u) * 16);
  background:none; border-radius:0; box-shadow:none; color:var(--a-text2);
  font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.06em; text-transform:uppercase; line-height:1;
  transition:filter .12s;
}
#screen-auth.v3a .auth-tab:hover{ filter:brightness(1.15); }
#screen-auth.v3a .auth-tab .ico{ width:1.05em; height:1.05em; }
#screen-auth.v3a .auth-tab.active{ border-image-source:url('../assets/ui/btn-yellow-v3.webp'); color:#1a1300; }
#screen-auth.v3a .auth-tab:focus-visible{ outline:3px solid var(--a-player); outline-offset:2px; }

/* ---- heading (Bangers, short display only) ---- */
#screen-auth.v3a .v3a-head{
  margin:0; text-align:center; font-family:'Bangers','Luckiest Guy',sans-serif; font-weight:400; font-style:italic;
  letter-spacing:.03em; text-transform:uppercase; color:var(--a-text); white-space:nowrap; overflow:hidden;
  text-shadow:0 3px 0 #000, 2px 2px 0 #000, -1px -1px 0 #000, 0 0 18px rgba(0,0,0,.6);
}
#screen-auth.v3a .v3a-head em{ font-style:italic; color:var(--a-yellow); }
#screen-auth.v3a .v3a-head:focus{ outline:none; }

/* ---- panels become a grid (see per-size templates) ---- */
#screen-auth.v3a .auth-panel{ border:0; border-radius:0; background:none; padding:0; gap:0; width:100%; min-width:0; }
#screen-auth.v3a #panel-login:not([style*="none"]),
#screen-auth.v3a #panel-register[style*="flex"]{ display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
#screen-auth.v3a #panel-login{ grid-template-areas:"msg msg" "nick nick" "pw pw" "rem forgot" "btn btn"; }
#screen-auth.v3a #panel-register{ grid-template-areas:"msg msg" "nick nick" "pw pw2" "rem rem" "btn btn"; }
#screen-auth.v3a .auth-input-group[data-v3a="nick"]{ grid-area:nick; }
#screen-auth.v3a .auth-input-group[data-v3a="pw"]{ grid-area:pw; }
#screen-auth.v3a .auth-input-group[data-v3a="pw2"]{ grid-area:pw2; }
#screen-auth.v3a .v3a-remember{ grid-area:rem; }
#screen-auth.v3a .v3a-forgot-link{ grid-area:forgot; }
#screen-auth.v3a #login-err, #screen-auth.v3a #reg-err, #screen-auth.v3a #reg-ok{ grid-area:msg; }
#screen-auth.v3a .auth-btn{ grid-area:btn; }

/* ---- fields ---- */
#screen-auth.v3a .auth-input-group{ position:relative; display:flex; flex-direction:column; gap:0; min-width:0; margin:0 !important; }
#screen-auth.v3a .auth-label{
  font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--a-text);
  padding:0; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:default;
}
#screen-auth.v3a .auth-input,
#screen-auth.v3a #forgot-pw-overlay .reward-addr-input{
  width:100%; margin:0 !important; box-sizing:border-box; min-height:44px;
  font-family:'Oswald',sans-serif; font-weight:500; letter-spacing:.02em; color:var(--a-text);
  background:rgba(8,13,26,.86); border:2px solid var(--a-edge); border-radius:calc(var(--u) * 10);
  box-shadow:inset 0 2px 8px rgba(0,0,0,.55); outline:none; transition:border-color .15s, box-shadow .15s;
}
#screen-auth.v3a .auth-input::placeholder,
#screen-auth.v3a #forgot-pw-overlay .reward-addr-input::placeholder{ color:var(--a-muted); opacity:1; font-family:'Oswald',sans-serif; }
#screen-auth.v3a .auth-input:focus,
#screen-auth.v3a #forgot-pw-overlay .reward-addr-input:focus{ border-color:var(--a-player); box-shadow:inset 0 2px 8px rgba(0,0,0,.55), 0 0 0 3px rgba(0,194,255,.28); }
#screen-auth.v3a .auth-input.error,
#screen-auth.v3a #forgot-pw-overlay .reward-addr-input.error{ border-color:var(--a-rival); box-shadow:inset 0 2px 8px rgba(0,0,0,.55), 0 0 0 3px rgba(255,45,45,.25); }
#screen-auth.v3a .v3a-fico{ position:absolute; left:calc(var(--u) * 22); display:flex; align-items:center; color:var(--a-muted); pointer-events:none; z-index:1; }
#screen-auth.v3a .v3a-fico .ico{ width:100%; height:100%; }
#screen-auth.v3a .auth-input-group:focus-within .v3a-fico{ color:var(--a-player); }

/* show / hide: explicit per field, 44px hit target, masked by default */
#screen-auth.v3a .pw-eye{
  position:absolute; right:calc(var(--u) * 8); display:flex; align-items:center; justify-content:center; gap:6px;
  min-width:44px; min-height:44px; padding:0 calc(var(--u) * 12); margin:0; border:0; border-radius:8px; background:none;
  color:var(--a-text2); cursor:pointer; font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:.06em; text-transform:uppercase; line-height:1; z-index:1;
}
#screen-auth.v3a .pw-eye::after{ content:'Show'; }
#screen-auth.v3a .pw-eye[aria-pressed="true"]::after{ content:'Hide'; }
#screen-auth.v3a .pw-eye[aria-pressed="true"]{ color:var(--a-player); }
#screen-auth.v3a .pw-eye:hover{ color:var(--a-text); }
#screen-auth.v3a .pw-eye:focus-visible{ outline:2px solid var(--a-player); outline-offset:-2px; }

/* keep me logged in / forgot */
#screen-auth.v3a .v3a-remember{ display:flex; align-items:center; gap:calc(var(--u) * 12); min-height:44px; margin:0 !important; cursor:pointer; justify-self:start; }
#screen-auth.v3a .v3a-remember input[type=checkbox]{ margin:0; accent-color:var(--a-yellow); cursor:pointer; flex:0 0 auto; }
#screen-auth.v3a .v3a-remember span{ font-family:'Oswald',sans-serif; font-weight:500; color:var(--a-text2); letter-spacing:.02em; }
#screen-auth.v3a .v3a-forgot-link{
  display:flex; align-items:center; justify-self:end; width:auto; min-height:44px; margin:0 !important; padding:0 2px;
  font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--a-player);
  text-decoration:underline; text-underline-offset:3px; background:none; border:0; cursor:pointer;
}
#screen-auth.v3a .v3a-forgot-link:hover{ color:#7fe0ff; }

/* inline messages (real text from js/auth.js) */
#screen-auth.v3a .auth-err, #screen-auth.v3a .auth-ok{
  align-self:center; margin:0; min-height:0; text-align:left; font-family:'Oswald',sans-serif; font-weight:500; letter-spacing:.02em;
  display:flex; align-items:center; border-radius:8px;
}
#screen-auth.v3a .auth-err{ color:#FFB3B3; background:rgba(255,45,45,.12); border-left:3px solid var(--a-rival); }
#screen-auth.v3a .auth-ok{ color:#B8FFD9; background:rgba(0,255,135,.10); border-left:3px solid var(--a-green); }
#screen-auth.v3a .auth-err:empty, #screen-auth.v3a .auth-ok:empty{ display:none; }

/* primary CTA = green kit, dark text */
#screen-auth.v3a .auth-btn,
#screen-auth.v3a #forgot-pw-overlay .v3a-cta{
  display:flex; align-items:center; justify-content:center; gap:.4em; width:100%; min-height:48px; margin:0 !important; padding:0;
  border-style:solid; border-width:calc(var(--u) * 10) calc(var(--u) * 16);
  border-image:url('../assets/ui/btn-green-v3.webp') 32 48 fill / calc(var(--u) * 10) calc(var(--u) * 16);
  background:none; box-shadow:0 6px 14px rgba(0,0,0,.45); border-radius:0; color:#06140c; cursor:pointer;
  font-family:'Bangers','Luckiest Guy',sans-serif; font-weight:400; font-style:italic; letter-spacing:.05em; text-transform:uppercase; line-height:1;
  text-shadow:0 1px 0 rgba(255,255,255,.35); transition:transform .08s, filter .12s;
}
#screen-auth.v3a .auth-btn .ico{ width:.9em; height:.9em; }
#screen-auth.v3a .auth-btn::after{ content:''; flex:0 0 auto; width:.34em; height:.34em; margin-left:.3em; border:solid currentColor; border-width:.11em .11em 0 0; transform:rotate(45deg); }
#screen-auth.v3a .auth-btn:hover:not(:disabled),
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:hover:not(:disabled){ filter:brightness(1.08); }
#screen-auth.v3a .auth-btn:active:not(:disabled),
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:active:not(:disabled){ border-image-source:url('../assets/ui/btn-green-pressed-v3.webp'); transform:translateY(2px); box-shadow:0 3px 8px rgba(0,0,0,.45); }
#screen-auth.v3a .auth-btn:focus-visible,
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:focus-visible{ outline:3px solid var(--a-yellow); outline-offset:3px; }
/* pending: duplicate submit blocked, values kept, spinner instead of the chevron */
#screen-auth.v3a .auth-btn:disabled,
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:disabled{ opacity:1; cursor:progress; filter:saturate(.55) brightness(.82); }
#screen-auth.v3a .auth-btn:disabled::after,
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:disabled::after{
  content:''; width:.7em; height:.7em; margin-left:.5em; border:3px solid rgba(6,20,12,.3); border-top-color:#06140c; border-radius:50%;
  animation:v3a-spin .8s linear infinite;
}
@keyframes v3a-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ #screen-auth.v3a .auth-btn:disabled::after, #screen-auth.v3a #forgot-pw-overlay .v3a-cta:disabled::after{ animation-duration:2.4s; } }

/* ---- legal links (existing Terms / Privacy routes) ---- */
#screen-auth.v3a .v3a-legal{ position:relative; z-index:3; display:flex; align-items:center; justify-content:center; gap:4px; margin:0 !important;
  font-family:'Oswald',sans-serif; font-weight:500; color:var(--a-muted); letter-spacing:.02em; }
#screen-auth.v3a .v3a-legal a{ display:inline-flex; align-items:center; min-height:44px; padding:0 8px; color:var(--a-player); text-decoration:underline; text-underline-offset:3px; }
#screen-auth.v3a .v3a-legal a:hover{ color:#7fe0ff; }
#screen-auth.v3a .v3a-sub{ position:relative; z-index:3; margin:0 !important; opacity:1; font-family:'Oswald',sans-serif; font-weight:500;
  letter-spacing:.24em; text-transform:uppercase; color:var(--a-muted); text-align:center; }
#screen-auth.v3a .v3a-tag{ background:none; border:0; box-shadow:none; padding:0; margin:0; transform:none; font-family:'Oswald',sans-serif; font-weight:600;
  letter-spacing:.3em; text-transform:uppercase; color:var(--a-text2); text-shadow:0 2px 6px rgba(0,0,0,.8); }

/* ============================================================
   FORGOT PASSWORD — same support-request flow, drawn inside the form panel
   ============================================================ */
#screen-auth.v3a.v3a-forgot-on .auth-tabs,
#screen-auth.v3a.v3a-forgot-on .v3a-head,
#screen-auth.v3a.v3a-forgot-on #panel-login,
#screen-auth.v3a.v3a-forgot-on #panel-register{ display:none !important; }
#screen-auth.v3a #forgot-pw-overlay{
  position:static !important; inset:auto !important; z-index:auto !important; padding:0 !important; margin:0 !important;
  background:none !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; animation:none !important;
  flex-direction:column; align-items:stretch; justify-content:flex-start; flex:1 1 auto; min-height:0;
}
#screen-auth.v3a #forgot-pw-overlay .tos-gate-card{
  position:static !important; width:100% !important; max-width:none !important; margin:0 !important; background:none !important; border:0 !important;
  border-radius:0 !important; box-shadow:none !important; overflow:visible !important; flex:1 1 auto; display:flex; flex-direction:column; transform:none !important;
}
#screen-auth.v3a #forgot-pw-overlay .tos-gate-body{ padding:0 !important; flex:1 1 auto; display:flex; flex-direction:column; text-align:left; }
#screen-auth.v3a #forgot-pw-overlay .tos-gate-title-row{ justify-content:center; margin:0 !important; }
#screen-auth.v3a #forgot-pw-overlay .tos-gate-title{
  margin:0 !important; font-family:'Bangers','Luckiest Guy',sans-serif !important; font-weight:400; font-style:italic; letter-spacing:.03em;
  text-transform:uppercase; color:var(--a-text) !important; text-shadow:0 3px 0 #000, 2px 2px 0 #000, -1px -1px 0 #000; outline:none;
}
#screen-auth.v3a #forgot-pw-overlay .tos-gate-sub{ margin:0 !important; font-family:'Oswald',sans-serif; font-weight:400; color:var(--a-text2) !important; line-height:1.4; letter-spacing:.01em; }
#screen-auth.v3a #forgot-pw-step1, #screen-auth.v3a #forgot-pw-step2{ flex-direction:column; flex:1 1 auto; min-height:0; }
#screen-auth.v3a #forgot-pw-step1:not([style*="none"]), #screen-auth.v3a #forgot-pw-step2:not([style*="none"]){ display:flex; }
#screen-auth.v3a #forgot-pw-overlay .reward-input-label{
  display:block; margin:0 !important; font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--a-text);
}
#screen-auth.v3a #forgot-pw-overlay .wallet-modal-error{
  margin:0 !important; padding:6px 12px !important; border:0 !important; border-left:3px solid var(--a-rival) !important; border-radius:8px !important;
  background:rgba(255,45,45,.12) !important; color:#FFB3B3 !important; font-family:'Oswald',sans-serif; font-weight:500; letter-spacing:.02em; line-height:1.3;
}
#screen-auth.v3a #forgot-pw-overlay .reward-safe-note{
  display:flex; gap:10px; align-items:flex-start; margin:0 !important; border-radius:10px; font-family:'Oswald',sans-serif; font-weight:500; line-height:1.4;
  background:rgba(0,255,135,.10); border:1px solid rgba(0,255,135,.4); color:#B8FFD9;
}
#screen-auth.v3a #forgot-pw-overlay .reward-safe-note .ico{ flex:0 0 auto; color:var(--a-green); width:1.3em; height:1.3em; margin-top:.05em; }
#screen-auth.v3a #forgot-pw-overlay .tos-gate-actions{ display:flex; flex-direction:column; align-items:stretch; margin:auto 0 0 !important; padding-top:0; }
#screen-auth.v3a #forgot-pw-overlay .tos-gate-cancel{
  display:flex; align-items:center; justify-content:center; width:100%; min-height:44px; margin:0; padding:0;
  border-style:solid; border-width:calc(var(--u) * 10) calc(var(--u) * 16);
  border-image:url('../assets/ui/btn-dark-v3.webp') 32 48 fill / calc(var(--u) * 10) calc(var(--u) * 16);
  background:none; border-radius:0; color:var(--a-text); cursor:pointer;
  font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}
#screen-auth.v3a #forgot-pw-overlay .tos-gate-cancel:active{ border-image-source:url('../assets/ui/btn-dark-pressed-v3.webp'); }
#screen-auth.v3a #forgot-pw-overlay .tos-gate-cancel:focus-visible{ outline:3px solid var(--a-player); outline-offset:2px; }

/* ============================================================
   DESKTOP / LAPTOP  (Codex boxes at 1920x1080, uniform scale below)
   hero (32,64,960,944) · panel (1040,64,816,944) · tabs (1080,96,736,72)
   heading (1080,200,736,96) · field (1080,360,736,72) · password (1080,512,736,72)
   forgot/terms (1080,608,736,64) · submit (1080,720,736,88)
   ============================================================ */
@media (min-width:768px) and (min-height:521px){
  #screen-auth.v3a{ --u:min(calc(100vw / 1920), calc(100vh / 1080)); }
  #screen-auth.v3a:not([style*="none"]){
    display:grid !important; height:100vh; min-height:0; overflow:hidden; gap:0;
    padding:calc(var(--u) * 64) calc(var(--u) * 64) calc(var(--u) * 72) calc(var(--u) * 32) !important;
    grid-template-columns:minmax(0,1fr) calc(var(--u) * 816); column-gap:calc(var(--u) * 48);
    grid-template-rows:minmax(0,1fr); grid-template-areas:"hero form";
    align-items:stretch; justify-items:stretch; align-content:center; justify-content:center;
  }

  #screen-auth.v3a .v3a-hero{
    display:block; grid-area:hero; position:relative; min-height:0; pointer-events:none;
    margin:0 calc(var(--u) * -140) calc(var(--u) * -72) calc(var(--u) * -32);
    background:url('../assets/ui/hero-world-play.webp') center bottom / auto calc(var(--u) * 640) no-repeat;
    -webkit-mask-image:linear-gradient(180deg, transparent 0%, transparent 34%, #000 56%, #000 92%, rgba(0,0,0,.6) 100%),
                       linear-gradient(90deg, #000 0%, #000 33%, rgba(0,0,0,.3) 47%, rgba(0,0,0,.3) 53%, #000 67%, #000 88%, transparent 99%);
    -webkit-mask-composite:source-in;
            mask-image:linear-gradient(180deg, transparent 0%, transparent 34%, #000 56%, #000 92%, rgba(0,0,0,.6) 100%),
                       linear-gradient(90deg, #000 0%, #000 33%, rgba(0,0,0,.3) 47%, rgba(0,0,0,.3) 53%, #000 67%, #000 88%, transparent 99%);
            mask-composite:intersect;
  }
  #screen-auth.v3a .v3a-logo{
    grid-area:hero; align-self:start; justify-self:center; z-index:2;
    width:calc(var(--u) * 400) !important; height:calc(var(--u) * 400) !important; margin-top:calc(var(--u) * 8);
    box-shadow:0 0 0 calc(var(--u) * 4) rgba(8,13,26,.6), 0 calc(var(--u) * 14) calc(var(--u) * 40) rgba(0,0,0,.6);
  }
  #screen-auth.v3a .v3a-tag{ grid-area:hero; align-self:start; justify-self:end; z-index:2; width:calc(var(--u) * 250); white-space:normal;
    margin:calc(var(--u) * 196) calc(var(--u) * 8) 0 0 !important; font-size:calc(var(--u) * 26) !important; line-height:1.35; text-align:left; }

  #screen-auth.v3a .auth-wrap{
    grid-area:form; display:flex; flex-direction:column; width:100%; height:100%; min-height:0;
    padding:calc(var(--u) * 14) calc(var(--u) * 22) calc(var(--u) * 18);
  }
  #screen-auth.v3a .auth-tabs{ height:calc(var(--u) * 72); flex:0 0 auto; margin:0 0 calc(var(--u) * 32); }
  #screen-auth.v3a .auth-tab{ font-size:max(14px, calc(var(--u) * 30)); }
  #screen-auth.v3a .v3a-head{ height:calc(var(--u) * 96); line-height:calc(var(--u) * 96); font-size:calc(var(--u) * 92); flex:0 0 auto; margin:0 0 calc(var(--u) * 28); }

  #screen-auth.v3a #panel-login:not([style*="none"]),
  #screen-auth.v3a #panel-register[style*="flex"]{ column-gap:calc(var(--u) * 16);
    grid-template-rows:auto auto calc(var(--u) * 64) calc(var(--u) * 48) calc(var(--u) * 88); }
  #screen-auth.v3a #panel-login{ grid-template-areas:"nick nick" "pw pw" "rem forgot" "msg msg" "btn btn"; }
  #screen-auth.v3a #panel-register{ grid-template-areas:"nick nick" "pw pw2" "rem rem" "msg msg" "btn btn"; }
  #screen-auth.v3a .auth-label{ font-size:max(12px, calc(var(--u) * 22)); line-height:calc(var(--u) * 24); margin-bottom:calc(var(--u) * 12); }
  #screen-auth.v3a .auth-input-group[data-v3a="nick"]{ margin-bottom:calc(var(--u) * 44) !important; }
  #screen-auth.v3a .auth-input-group[data-v3a="pw"], #screen-auth.v3a .auth-input-group[data-v3a="pw2"]{ margin-bottom:calc(var(--u) * 24) !important; }
  #screen-auth.v3a .auth-input{ height:calc(var(--u) * 72); padding:0 calc(var(--u) * 20) 0 calc(var(--u) * 70) !important; font-size:max(15px, calc(var(--u) * 26)); }
  #screen-auth.v3a input[type="password"].auth-input, #screen-auth.v3a .pw-eye + .auth-input,
  #screen-auth.v3a .auth-input-group[data-v3a="pw"] .auth-input, #screen-auth.v3a .auth-input-group[data-v3a="pw2"] .auth-input{ padding-right:calc(var(--u) * 150) !important; }
  #screen-auth.v3a .v3a-fico{ width:calc(var(--u) * 30); height:calc(var(--u) * 30); bottom:calc(var(--u) * 21); }
  #screen-auth.v3a .pw-eye{ height:calc(var(--u) * 56); bottom:calc(var(--u) * 8); font-size:max(12px, calc(var(--u) * 21)); }
  #screen-auth.v3a .pw-eye .ico{ width:calc(var(--u) * 30); height:calc(var(--u) * 30); }
  #screen-auth.v3a .v3a-remember span{ font-size:max(13px, calc(var(--u) * 22)); }
  #screen-auth.v3a .v3a-remember input[type=checkbox]{ width:max(18px, calc(var(--u) * 28)); height:max(18px, calc(var(--u) * 28)); }
  #screen-auth.v3a .v3a-forgot-link{ font-size:max(13px, calc(var(--u) * 22)); }
  /* message sits in the 48px band between the forgot row and the submit */
  #screen-auth.v3a #login-err, #screen-auth.v3a #reg-err, #screen-auth.v3a #reg-ok{
    padding:calc(var(--u) * 6) calc(var(--u) * 14); font-size:max(13px, calc(var(--u) * 20)); line-height:1.2; }
  #screen-auth.v3a .auth-btn{ height:calc(var(--u) * 88); font-size:calc(var(--u) * 46); }

  #screen-auth.v3a .v3a-legal{ grid-area:form; align-self:end; justify-self:center; margin-bottom:calc(var(--u) * 92) !important; font-size:max(13px, calc(var(--u) * 21)); }
  #screen-auth.v3a .v3a-sub{ grid-area:form; align-self:end; justify-self:center; max-width:none; white-space:nowrap; margin-bottom:calc(var(--u) * 52) !important; font-size:max(11px, calc(var(--u) * 17)); }

  /* forgot password inside the panel */
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-body{ padding:calc(var(--u) * 26) 0 0 !important; }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-title{ font-size:calc(var(--u) * 84); line-height:calc(var(--u) * 96); }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-sub{ font-size:max(14px, calc(var(--u) * 22)); margin:calc(var(--u) * 16) 0 calc(var(--u) * 28) !important; }
  #screen-auth.v3a #forgot-pw-overlay .reward-input-label{ font-size:max(12px, calc(var(--u) * 22)); line-height:calc(var(--u) * 24); margin-bottom:calc(var(--u) * 12) !important; }
  #screen-auth.v3a #forgot-pw-overlay .reward-addr-input{ height:calc(var(--u) * 72); padding:0 calc(var(--u) * 20) !important; font-size:max(15px, calc(var(--u) * 26)); }
  #screen-auth.v3a #forgot-pw-nick{ margin-bottom:calc(var(--u) * 28) !important; }
  #screen-auth.v3a #forgot-pw-overlay .wallet-modal-error{ margin-top:calc(var(--u) * 16) !important; font-size:max(13px, calc(var(--u) * 20)); }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-actions{ gap:calc(var(--u) * 16); padding-top:calc(var(--u) * 24); }
  #screen-auth.v3a #forgot-pw-overlay .v3a-cta{ height:calc(var(--u) * 88); font-size:calc(var(--u) * 42); }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-cancel{ height:calc(var(--u) * 64); font-size:max(14px, calc(var(--u) * 24)); }
  #screen-auth.v3a #forgot-pw-overlay .reward-safe-note{ padding:calc(var(--u) * 18) calc(var(--u) * 20); font-size:max(14px, calc(var(--u) * 22)); margin-top:calc(var(--u) * 28) !important; }

  /* global sound toggle would sit on the laptop panel corner: move it into the hero's free corner */
  body:has(#screen-auth.v3a:not([style*="none"])) #sfx-toggle{ right:auto; left:16px; bottom:16px; }
}

/* ============================================================
   PHONE LANDSCAPE  (844x390 CSS; Codex boxes)
   hero (12,12,280,366) · panel (304,12,528,366) · tabs (320,24,496,44)
   heading (320,76,496,32) · field (320,132,496,44) · password (320,204,496,44)
   forgot/terms (320,252,496,44) · submit (320,304,496,48)
   ============================================================ */
@media (max-height:520px) and (orientation:landscape){
  #screen-auth.v3a{ background-image:linear-gradient(180deg, rgba(4,6,16,.04) 0%, rgba(4,6,16,.24) 100%), url('../assets/ui/lobby-bg-v4-mobile.webp') !important; }
  #screen-auth.v3a:not([style*="none"]){
    display:grid !important; height:100vh; height:100dvh; min-height:0; overflow:hidden;
    padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important;
    gap:0 12px !important; grid-template-columns:minmax(0,1fr) minmax(0,528px); grid-template-rows:minmax(0,1fr);
    grid-template-areas:"hero form" !important; align-items:stretch; justify-items:stretch;
  }
  #screen-auth.v3a .v3a-hero{
    display:block; grid-area:hero; min-height:0; pointer-events:none;
    background:url('../assets/ui/hero-world-play.webp') center calc(100% - 40px) / auto 210px no-repeat;
    -webkit-mask-image:linear-gradient(180deg, transparent 0%, transparent 32%, #000 52%, #000 84%, transparent 97%),
                       linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
    -webkit-mask-composite:source-in;
            mask-image:linear-gradient(180deg, transparent 0%, transparent 32%, #000 52%, #000 84%, transparent 97%),
                       linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
            mask-composite:intersect;
  }
  #screen-auth.v3a .v3a-logo{ grid-area:hero !important; align-self:start; justify-self:center; z-index:2; width:164px !important; height:164px !important; margin-top:6px;
    box-shadow:0 0 0 3px rgba(8,13,26,.6), 0 8px 20px rgba(0,0,0,.6); }
  #screen-auth.v3a .v3a-tag, #screen-auth.v3a .v3a-sub{ display:none !important; }
  #screen-auth.v3a .v3a-legal{
    grid-area:hero !important; align-self:end; justify-self:stretch; height:44px; font-size:12px; gap:0;
    background:rgba(8,13,26,.78); border:1px solid rgba(52,73,99,.8); border-radius:10px;
  }
  #screen-auth.v3a .v3a-legal a{ padding:0 6px; }

  #screen-auth.v3a .auth-wrap{ grid-area:form !important; display:flex; flex-direction:column; width:100%; max-width:none; height:100%; min-height:0; align-self:stretch;
    --u:1px; border-width:12px; border-image-width:12px; padding:0 4px; }
  #screen-auth.v3a .auth-tabs{ height:44px; flex:0 0 auto; margin:0 0 8px; gap:6px; }
  #screen-auth.v3a .auth-tab{ min-height:44px !important; font-size:15px; border-width:7px 12px; border-image-width:7px 12px; gap:8px; }
  #screen-auth.v3a .v3a-head{ height:32px; line-height:32px; font-size:27px; flex:0 0 auto; margin:0 0 4px; }

  #screen-auth.v3a #panel-login:not([style*="none"]),
  #screen-auth.v3a #panel-register[style*="flex"]{ column-gap:16px; grid-template-rows:auto auto auto 44px 56px; }
  #screen-auth.v3a .auth-label{ font-size:12px; line-height:16px; margin-bottom:4px; letter-spacing:.07em; }
  #screen-auth.v3a .auth-input-group[data-v3a="nick"]{ margin-bottom:8px !important; }
  #screen-auth.v3a .auth-input-group[data-v3a="pw"], #screen-auth.v3a .auth-input-group[data-v3a="pw2"]{ margin-bottom:4px !important; }
  #screen-auth.v3a .auth-input{ height:44px; min-height:44px; padding:0 12px 0 40px !important; font-size:16px; border-radius:8px; }
  #screen-auth.v3a .auth-input-group[data-v3a="pw"] .auth-input, #screen-auth.v3a .auth-input-group[data-v3a="pw2"] .auth-input{ padding-right:88px !important; }
  #screen-auth.v3a .v3a-fico{ left:13px; width:18px; height:18px; bottom:13px; }
  #screen-auth.v3a .pw-eye{ right:2px; bottom:0; height:44px; font-size:12px; padding:0 10px; gap:5px; }
  #screen-auth.v3a .pw-eye .ico{ width:18px; height:18px; }
  #screen-auth.v3a .v3a-remember{ gap:10px; }
  #screen-auth.v3a .v3a-remember span{ font-size:14px; }
  #screen-auth.v3a .v3a-remember input[type=checkbox]{ width:22px; height:22px; }
  #screen-auth.v3a .v3a-forgot-link{ font-size:13px; }
  /* phone: an error/success takes the heading's 32px slot so nothing shifts or clips */
  #screen-auth.v3a #login-err, #screen-auth.v3a #reg-err, #screen-auth.v3a #reg-ok{ height:32px; margin:0 0 4px; padding:0 10px; font-size:14px; line-height:1.15; overflow:hidden; }
  #screen-auth.v3a #auth-wrap:has(#panel-login:not([style*="none"]) #login-err:not(:empty)) .v3a-head,
  #screen-auth.v3a #auth-wrap:has(#panel-register[style*="flex"] :is(#reg-err, #reg-ok):not(:empty)) .v3a-head{ display:none; }
  #screen-auth.v3a .auth-btn{ height:48px; min-height:48px !important; margin-top:8px !important; font-size:25px; border-width:8px 14px; border-image-width:8px 14px; }

  /* forgot password inside the panel: scroll body, stable footer */
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-body{ padding:10px 0 0 !important; }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-title{ font-size:27px; line-height:32px; }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-sub{ font-size:14px; margin:4px 0 8px !important; }
  #screen-auth.v3a #forgot-pw-overlay .reward-input-label{ font-size:12px; line-height:16px; margin-bottom:4px !important; }
  #screen-auth.v3a #forgot-pw-overlay .reward-addr-input{ height:44px; padding:0 12px !important; font-size:16px; border-radius:8px; }
  #screen-auth.v3a #forgot-pw-nick{ margin-bottom:8px !important; }
  #screen-auth.v3a #forgot-pw-overlay .wallet-modal-error{ margin-top:8px !important; font-size:14px; }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-actions{
    position:sticky; bottom:0; z-index:2; flex-direction:row; gap:8px; padding:8px 0 8px; margin-top:auto !important;
    background:linear-gradient(180deg, rgba(18,28,50,0), rgba(18,28,50,.96) 22%);
  }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-actions > *{ flex:1 1 0; }
  #screen-auth.v3a #forgot-pw-overlay .v3a-cta{ height:48px; font-size:22px; border-width:8px 14px; border-image-width:8px 14px; }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-cancel{ height:48px; font-size:14px; border-width:8px 14px; border-image-width:8px 14px; }
  #screen-auth.v3a #forgot-pw-overlay .reward-safe-note{ padding:12px 14px; font-size:14px; margin-top:4px !important; }

  /* the global sound toggle would sit on the submit's corner: park it in the hero's top-left */
  body:has(#screen-auth.v3a:not([style*="none"])) #sfx-toggle{ right:auto; bottom:auto;
    left:max(18px, calc(env(safe-area-inset-left) + 6px)); top:max(18px, calc(env(safe-area-inset-top) + 6px)); }
}

/* ---- phone with the keyboard open (short viewport): drop the hero, form takes the safe width ---- */
@media (max-height:300px) and (orientation:landscape){
  #screen-auth.v3a:not([style*="none"]){ grid-template-columns:minmax(0,1fr); grid-template-areas:"form" !important;
    padding-top:max(6px, env(safe-area-inset-top)) !important; padding-bottom:max(6px, env(safe-area-inset-bottom)) !important; }
  #screen-auth.v3a .v3a-hero, #screen-auth.v3a .v3a-logo, #screen-auth.v3a .v3a-legal, #screen-auth.v3a .v3a-head{ display:none !important; }
  #screen-auth.v3a .auth-wrap{ border-width:8px; border-image-width:8px; padding:0 8px; scroll-padding:8px 0 64px; }
  #screen-auth.v3a .auth-tabs{ margin-bottom:6px; }
  #screen-auth.v3a .auth-btn{ position:sticky; bottom:0; z-index:2; }
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-sub{ display:none; }
  body:has(#screen-auth.v3a:not([style*="none"])) #sfx-toggle{ display:none !important; }
}

/* ---- forgot CTA reuses .wallet-connect-btn (yellow + shimmer in skin/fx-lobby): force the green kit here ---- */
#screen-auth.v3a #forgot-pw-overlay .v3a-cta{
  background:none !important; color:#06140c !important; text-shadow:0 1px 0 rgba(255,255,255,.35) !important;
  border-style:solid !important; border-color:transparent !important;
  border-width:calc(var(--u) * 10) calc(var(--u) * 16) !important;
  border-image:url('../assets/ui/btn-green-v3.webp') 32 48 fill / calc(var(--u) * 10) calc(var(--u) * 16) !important;
  box-shadow:0 6px 14px rgba(0,0,0,.45) !important; border-radius:0 !important; animation:none !important; transform:none !important;
  white-space:nowrap; filter:none;
}
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:hover:not(:disabled){ filter:brightness(1.08); }
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:active:not(:disabled){ border-image-source:url('../assets/ui/btn-green-pressed-v3.webp') !important; transform:translateY(2px) !important; }
#screen-auth.v3a #forgot-pw-overlay .v3a-cta::after{ content:none; animation:none; }
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:disabled{ opacity:1 !important; filter:saturate(.55) brightness(.82); }
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:disabled::after{
  content:''; position:static; inset:auto; background:none; transform:none; animation:v3a-spin .8s linear infinite;
}
#screen-auth.v3a #forgot-pw-overlay #forgot-pw-nick{ margin-bottom:calc(var(--u) * 28) !important; }
@media (max-height:520px) and (orientation:landscape){
  #screen-auth.v3a #forgot-pw-overlay .v3a-cta{ border-width:8px 14px !important; border-image-width:8px 14px !important; }
  #screen-auth.v3a #forgot-pw-overlay #forgot-pw-nick{ margin-bottom:8px !important; }
}
@media (min-width:768px) and (min-height:521px){
  /* desktop: actions follow the fields so the Terms/Privacy links below keep their own room */
  #screen-auth.v3a #forgot-pw-overlay .tos-gate-actions{ margin-top:calc(var(--u) * 40) !important; padding-top:0; }
  #screen-auth.v3a #forgot-pw-overlay .reward-safe-note + .tos-gate-actions{ margin-top:calc(var(--u) * 32) !important; }
  #screen-auth.v3a.v3a-forgot-on .v3a-sub{ display:none; }
}

/* ============================================================
   TERMS GATE (js/consent.js #login-tos-gate) — same checkbox copy/behaviour,
   drawn with the navy steel kit. Shared modal box: desktop 720x560,
   phone (132,20,580,350) with a scrollable body and a sticky 44px action row.
   Scoped to #login-tos-gate only (the wallet Terms gate keeps its own look).
   ============================================================ */
#login-tos-gate{
  --t-u:1px; background:rgba(8,13,26,.62) !important; backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)) !important;
}
#login-tos-gate .tos-gate-card{
  display:flex; flex-direction:column; width:min(720px, 100%); max-width:none; max-height:min(560px, 100%);
  background:none; border-radius:0; overflow:hidden; box-shadow:0 18px 40px rgba(0,0,0,.6);
  border-style:solid; border-width:16px; border-image:url('../assets/ui/panel-frame-v3.webp') 64 fill / 16px;
  color:#F4F7FF; text-align:left;
}
#login-tos-gate .tos-gate-banner{ flex:0 0 auto; height:auto; padding:6px 0 0; background:none; border:0; }
#login-tos-gate .tos-gate-logo{ width:84px; height:84px; border-radius:50%; box-shadow:0 0 0 3px rgba(8,13,26,.6), 0 6px 16px rgba(0,0,0,.55); }
#login-tos-gate .tos-gate-body{ flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:12px 24px 0; }
#login-tos-gate .tos-gate-title-row{ justify-content:center; gap:12px; margin:0 0 8px; }
#login-tos-gate .tos-gate-title{
  font-family:'Bangers','Luckiest Guy',sans-serif; font-weight:400; font-style:italic; letter-spacing:.03em; text-transform:uppercase;
  font-size:40px; line-height:1.1; color:#F4F7FF; text-shadow:0 3px 0 #000, 2px 2px 0 #000, -1px -1px 0 #000;
}
#login-tos-gate .tos-gate-required{ font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:.08em; color:#FFE600; border-color:rgba(255,230,0,.5); }
#login-tos-gate .tos-gate-sub{ font-family:'Oswald',sans-serif; font-weight:400; font-size:17px; line-height:1.45; color:#B7C4D8; margin:0 0 16px; letter-spacing:.01em; }
#login-tos-gate .tos-gate-row{
  min-height:56px; margin:0 0 10px; padding:6px 16px; gap:14px; border-radius:10px;
  background:rgba(8,13,26,.72); border:2px solid #344963; color:#F4F7FF;
  font-family:'Oswald',sans-serif; font-weight:500; font-size:17px; letter-spacing:.01em; line-height:1.3;
}
#login-tos-gate .tos-gate-row:has(.tos-gate-check:checked){ border-color:rgba(0,255,135,.6); }
#login-tos-gate .tos-gate-check{ width:24px; height:24px; accent-color:#00FF87; cursor:pointer; }
#login-tos-gate .tos-gate-row a{ display:inline-flex; align-items:center; min-height:44px; color:#00C2FF; text-decoration:underline; text-underline-offset:3px; }
#login-tos-gate .tos-gate-row a:hover{ color:#7fe0ff; }
#login-tos-gate .tos-gate-actions{
  position:sticky; bottom:0; z-index:2; display:flex; flex-direction:row; align-items:stretch; gap:12px;
  margin:6px 0 0; padding:10px 0 16px; background:linear-gradient(180deg, rgba(18,28,50,0), rgba(18,28,50,.97) 18%);
}
#login-tos-gate #loginTosAccept{
  flex:1.4 1 0; min-height:56px; margin:0; padding:0 12px; white-space:nowrap;
  background:none !important; box-shadow:0 6px 14px rgba(0,0,0,.45) !important; border-radius:0 !important; animation:none !important; transform:none;
  border-style:solid !important; border-color:transparent !important; border-width:10px 16px !important;
  border-image:url('../assets/ui/btn-green-v3.webp') 32 48 fill / 10px 16px !important;
  color:#06140c !important; text-shadow:0 1px 0 rgba(255,255,255,.35) !important;
  font-family:'Bangers','Luckiest Guy',sans-serif !important; font-weight:400; font-style:italic; font-size:26px; letter-spacing:.05em; text-transform:uppercase; line-height:1;
}
#login-tos-gate #loginTosAccept::before, #login-tos-gate #loginTosAccept::after{ content:none !important; animation:none !important; }
#login-tos-gate #loginTosAccept:active:not(:disabled){ border-image-source:url('../assets/ui/btn-green-pressed-v3.webp') !important; transform:translateY(2px); }
/* disabled until both boxes are ticked: low chroma, readable label */
#login-tos-gate #loginTosAccept:disabled{ opacity:1 !important; filter:saturate(.15) brightness(.7); cursor:not-allowed; }
#login-tos-gate .tos-gate-cancel{
  flex:1 1 0; display:flex; align-items:center; justify-content:center; min-height:56px; margin:0; padding:0 10px; white-space:nowrap;
  border-style:solid; border-width:10px 16px; border-image:url('../assets/ui/btn-dark-v3.webp') 32 48 fill / 10px 16px;
  background:none; border-radius:0; color:#FF8A8A;
  font-family:'Oswald',sans-serif; font-weight:700; font-size:17px; letter-spacing:.06em; text-transform:uppercase;
}
#login-tos-gate .tos-gate-cancel:hover{ color:#FFB3B3; }
#login-tos-gate .tos-gate-cancel:active{ border-image-source:url('../assets/ui/btn-dark-pressed-v3.webp'); }
#login-tos-gate button:focus-visible, #login-tos-gate .tos-gate-check:focus-visible, #login-tos-gate a:focus-visible{ outline:2px solid #00C2FF; outline-offset:2px; }

@media (max-height:520px) and (orientation:landscape){
  #login-tos-gate{ padding:max(20px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important; }
  #login-tos-gate .tos-gate-card{ width:min(580px, 100%); max-height:min(350px, 100%); border-width:12px; border-image-width:12px; }
  #login-tos-gate .tos-gate-banner{ display:none; }
  #login-tos-gate .tos-gate-body{ padding:6px 12px 0; scroll-padding-bottom:64px; }
  #login-tos-gate .tos-gate-title-row{ margin:0 0 4px; gap:10px; }
  #login-tos-gate .tos-gate-title{ font-size:24px; }
  #login-tos-gate .tos-gate-required{ font-size:11px; padding:2px 7px; }
  #login-tos-gate .tos-gate-sub{ font-size:14px; line-height:1.4; margin:0 0 8px; }
  #login-tos-gate .tos-gate-row{ min-height:44px; padding:0 12px; margin:0 0 6px; font-size:14px; gap:12px; }
  #login-tos-gate .tos-gate-check{ width:22px; height:22px; }
  #login-tos-gate .tos-gate-actions{ gap:8px; padding:6px 0 8px; margin-top:2px; }
  #login-tos-gate #loginTosAccept{ min-height:44px; font-size:20px; border-width:7px 12px !important; border-image-width:7px 12px !important; }
  #login-tos-gate .tos-gate-cancel{ min-height:44px; font-size:13px; border-width:7px 12px; border-image-width:7px 12px; }
}

/* focus ring: 2px cyan outside (style guide) for every auth control */
#screen-auth.v3a .auth-btn:focus-visible,
#screen-auth.v3a #forgot-pw-overlay .v3a-cta:focus-visible,
#screen-auth.v3a #forgot-pw-overlay button:focus-visible,
#screen-auth.v3a .v3a-forgot-link:focus-visible,
#screen-auth.v3a .v3a-legal a:focus-visible,
#screen-auth.v3a .v3a-remember input:focus-visible{ outline:2px solid var(--a-player) !important; outline-offset:3px; }
/* phone: the parked global sound toggle keeps a 44px hit target on this screen */
@media (max-height:520px) and (orientation:landscape){
  body:has(#screen-auth.v3a:not([style*="none"])) #sfx-toggle{ width:44px; height:44px; }
}

/* register: password + confirm share one row -> tighter insets so the real placeholders are not clipped */
@media (min-width:768px) and (min-height:521px){
  #screen-auth.v3a #panel-register .auth-input-group[data-v3a="pw"] .auth-input,
  #screen-auth.v3a #panel-register .auth-input-group[data-v3a="pw2"] .auth-input{ padding-left:calc(var(--u) * 52) !important; padding-right:calc(var(--u) * 116) !important; }
  #screen-auth.v3a #panel-register .auth-input-group[data-v3a="pw"] .v3a-fico,
  #screen-auth.v3a #panel-register .auth-input-group[data-v3a="pw2"] .v3a-fico{ left:calc(var(--u) * 16); width:calc(var(--u) * 26); height:calc(var(--u) * 26); bottom:calc(var(--u) * 23); }
  #screen-auth.v3a #panel-register .pw-eye{ padding:0 calc(var(--u) * 8); gap:calc(var(--u) * 5); }
}
@media (max-height:520px) and (orientation:landscape){
  #screen-auth.v3a #panel-register .auth-input-group[data-v3a="pw"] .auth-input,
  #screen-auth.v3a #panel-register .auth-input-group[data-v3a="pw2"] .auth-input{ padding-left:36px !important; padding-right:80px !important; }
  #screen-auth.v3a #panel-register .auth-input-group[data-v3a="pw"] .v3a-fico,
  #screen-auth.v3a #panel-register .auth-input-group[data-v3a="pw2"] .v3a-fico{ left:11px; }
}

/* terms gate: shadow follows the bevelled frame instead of a rectangle behind its cut corners */
#login-tos-gate .tos-gate-card{ box-shadow:none !important; filter:drop-shadow(0 12px 22px rgba(0,0,0,.6)); }
/* reset request sent: the step-1 explanation is replaced by the real result note */
#screen-auth.v3a #forgot-pw-overlay:has(#forgot-pw-step2:not([style*="none"])) #forgot-pw-step1-sub{ display:none; }
