/* Shared by official HTML and server-rendered nav-v2 pages. */
body:has(.wy-footer){padding-bottom:52px}
.wy-footer{box-sizing:border-box;position:fixed;bottom:0;left:0;right:0;z-index:40;height:52px;margin:0;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #26233a;background:rgba(11,10,20,.92);backdrop-filter:blur(8px);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}
.wy-footer .wy-footer-links{display:flex;flex-wrap:wrap;gap:0 24px;font-size:13px;line-height:20px}
.wy-footer .wy-footer-links a{color:#8f8aa8;text-decoration:none;white-space:nowrap}
.wy-footer .wy-footer-links a[data-user-feedback]{color:#c9a6ff}
.wy-footer .wy-footer-copy{margin:0;font-size:12px;line-height:18px;color:#6f6a88;white-space:nowrap;flex:none}
.wy-footer .wy-footer-copy a{color:inherit;text-decoration:none}
.wy-footer a:hover{text-decoration:underline}
.wy-footer a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
/* Allow the two groups to wrap before they collide on smaller desktops. */
@media(min-width:641px) and (max-width:1100px){
  body:has(.wy-footer){padding-bottom:80px}
  .wy-footer{height:80px;padding:10px 24px;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px}
}
@media(max-width:640px){
  body:has(.wy-footer){padding-bottom:80px}
  .wy-footer{height:80px;padding:10px 16px;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px}
  .wy-footer .wy-footer-links{gap:0 16px}
  .wy-footer .wy-footer-copy{white-space:normal;overflow-wrap:anywhere}
}

/* Main content shares the fixed footer's responsive clearance. Long pages
   keep document scrolling; viewport-sized shells subtract the same space. */
:root{--wy-footer-space:52px;--wy-header-space:64px}
@media(max-width:1100px){:root{--wy-footer-space:80px}}
@media(max-width:767px){:root{--wy-header-space:56px}}
body:has(.wy-footer){box-sizing:border-box;padding-bottom:var(--wy-footer-space);overflow-y:auto}
html:has(.wy-footer){scroll-padding-bottom:var(--wy-footer-space)}
body:has(.wy-footer) main{min-width:0}
body:has(.wy-footer) .login-shell{min-height:calc(100dvh - var(--wy-header-space) - var(--wy-footer-space))}
/* The home hero has a fixed navigation above it. Its own padding remains
   intrinsic, so short screens grow and scroll instead of clipping content. */
body:has(.wy-footer) .hero{min-height:calc(100dvh - var(--wy-footer-space))}
/* Full-page feedback is a top-layer dialog, outside document scrolling. */
body:has(.wy-footer) dialog.wy-feedback-fullpage{bottom:var(--wy-footer-space);height:calc(100dvh - var(--wy-footer-space));max-height:calc(100dvh - var(--wy-footer-space));overflow:auto}
body:has(.wy-footer) .wy-feedback-fullpage .wy-feedback-content{min-height:calc(100dvh - 56px - var(--wy-footer-space))}
