.public-login-stage { position: relative; isolation: isolate; }
.public-login-video { position: absolute; inset: 0; overflow: hidden; z-index: -1; background: var(--fs-panel-soft); pointer-events: none; }
.public-login-video video { display: block; width: 100%; height: 100%; object-fit: cover; }
.public-login-video::after { content: ''; position: absolute; inset: 0; background: var(--fs-overlay); opacity: .55; }
.public-login-layout { position: relative; padding-block: 64px 72px; }
.public-login-video-controls { display: flex; justify-content: flex-end; max-width: 440px; margin: 16px auto 0; }
.public-login-video-controls .fs-ui-button { font-size: 12px; }
.public-login-card { width: min(440px, 100%); margin-inline: auto; padding: 36px; border-radius: var(--fs-radius); box-shadow: var(--fs-shadow); }
.public-site .public-login-card h1 { font-size: 32px; margin-bottom: 12px; }
.public-site .public-login-intro { font-size: 14px; color: var(--fs-muted); margin-bottom: 28px; }
.public-login-card br { display: none; }
.public-login-card label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 7px; }
.public-login-card label[hidden] { display: none; }
.public-login-card .box { display: block; width: 100%; min-height: 50px; margin: 0 0 20px; padding: 12px 14px; border: 1px solid var(--fs-border-strong); border-radius: 10px; background: var(--fs-control); color: var(--fs-text); text-align: left !important; }
.public-login-card .box::placeholder { color: var(--fs-muted); opacity: 1; }
.public-login-card .box:focus { border-color: var(--fs-primary); }
.public-login-card .button { display: block; width: 100%; min-height: 50px; border: 0; border-radius: 10px; background: var(--fs-brand-gradient); color: var(--fs-brand-text); font-weight: 700; cursor: pointer; box-shadow: var(--fs-shadow-control); }
.public-login-card .button:hover:not(:disabled) { filter: brightness(1.06); }
.public-login-card .button:disabled { cursor: default; }
.public-site .public-login-error { font-size: 14px; margin: 16px 0 0; }
.public-login-error:empty { display: none; }
.public-site .public-login-help { color: var(--fs-muted); font-size: 13px; margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--fs-border); }
.public-login-help a { color: var(--fs-text); text-underline-offset: 3px; }
.public-site .public-login-review { max-width: 440px; margin: 24px auto 0; padding: 16px; border: 1px solid var(--fs-border); border-radius: 10px; background: var(--fs-panel); font-size: 12px; color: var(--fs-muted); }
.public-login-review p:last-child { margin-bottom: 0; }
.public-login-review .fs-ui-button { width: 100%; margin-top: 12px; font-size: 13px; }
.public-login-page { display: flex; flex-direction: column; min-height: 100vh; }
.public-login-page main { flex: 1; }
.public-login-page .public-footer-inner { padding-block: 24px; }
.public-login-page .public-footer-note { margin-left: auto; }
@media (max-width: 680px) {
  .public-login-layout { padding-block: 36px 44px; }
  .public-login-card { padding: 24px; }
  .public-site .public-login-card h1 { font-size: 28px; }
  .public-login-page .public-footer-note { margin-left: 0; }
}
