.retuku-magic-login{max-width:430px;margin:0 auto}.retuku-magic-login__message{display:none;margin:0 0 14px;padding:11px 13px;border-radius:6px;font-size:14px;line-height:1.5}.retuku-magic-login__message:not(:empty){display:block}.retuku-magic-login__message.is-error{background:#fff0f0;color:#b42318}.retuku-magic-login__message.is-success{background:#ecfdf3;color:#067647}.retuku-magic-login__field input{box-sizing:border-box;width:100%;height:48px;padding:0 14px;border:1px solid #d0d5dd;border-radius:7px;background:#fff;font-size:16px;color:#222;outline:none}.retuku-magic-login__field input:focus{border-color:var(--theme-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-color) 16%,transparent)}.retuku-magic-login__turnstile{min-height:65px;margin:14px 0}.retuku-magic-login__submit{box-sizing:border-box;width:100%;min-height:46px;border:0;border-radius:7px;background:var(--theme-color);color:#fff;font-size:16px;font-weight:700;cursor:pointer}.retuku-magic-login__submit:hover{background:var(--theme-color2,var(--theme-color))}.retuku-magic-login__submit:disabled{opacity:.65;cursor:wait}.retuku-magic-login__hint,.retuku-magic-login__back{margin:14px 0 0;text-align:center;color:#667085;font-size:13px;line-height:1.6}.retuku-magic-login__back a{color:var(--theme-color)}
.retuku-magic-login.is-sent .retuku-magic-login__message.is-success{margin:0;padding:18px 20px;border:1px solid #a6e9c2;text-align:center;font-size:15px;font-weight:600;line-height:1.7}

/* Shared Retuku modal motion: quick, quiet and reversible. */
body .retuku-magic-sign {
  opacity: 0;
  visibility: hidden;
  transform: none;
  transition: opacity 180ms ease, visibility 0s linear 180ms;
}

body .retuku-magic-sign .sign-mask {
  opacity: 0;
  background: rgba(0, 0, 0, .46);
  transition: opacity 180ms ease;
}

body .retuku-magic-sign .sign-box {
  opacity: 0;
  transform: translate(-50%, calc(-50% + 8px)) scale(.985);
  transition: opacity 180ms ease, transform 180ms cubic-bezier(.2, .7, .2, 1);
  will-change: opacity, transform;
}

html body.sign-show .retuku-magic-sign {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity 180ms ease, visibility 0s linear 0s;
}

html body.sign-show .retuku-magic-sign .sign-mask {
  opacity: 1;
}

html body.sign-show .retuku-magic-sign .sign-box {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  animation: none;
}

body.retuku-immersive-login {
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
}

/*
 * 背景图的 url() 不写在这里。这个文件是静态的，无法解析当前主题的目录，而图片
 * 住在主题里 —— 写死主题名正是这次重建要去掉的东西。规则改由 theme_css()
 * 在登录页动态输出，与上面 preload 用的是同一个 PHP 函数，两者不会各说各话。
 */

.retuku-login-page {
  box-sizing: border-box;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  background:
    linear-gradient(rgba(10, 15, 28, .42), rgba(10, 15, 28, .58)),
    var(--retuku-login-background) center center / cover no-repeat fixed;
}

.retuku-login-page__card {
  box-sizing: border-box;
  width: 100%;
  max-width: 520px;
  padding: 28px 42px;
  background: rgba(255, 255, 255, .96);
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 16px;
  box-shadow:
    0 24px 70px rgba(15, 23, 42, .28),
    0 0 55px color-mix(in srgb, var(--theme-color) 14%, transparent);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.retuku-login-page__logo {
  display: block;
  margin: 0 auto 18px;
  text-align: center;
}

.retuku-login-page__logo img {
  display: block;
  width: auto;
  height: 60px;
  margin: 0 auto;
}

body.retuku-immersive-login .retuku-magic-login__turnstile {
  margin: 0;
}

.retuku-magic-login .retuku-magic-login__turnstile {
  display: block;
  min-height: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  line-height: 0;
}

.retuku-magic-login .retuku-magic-login__submit {
  margin-top: 14px;
}

.retuku-magic-login .retuku-magic-login__message:not(:empty) {
  margin: 14px 0 0;
}

body.retuku-immersive-login .retuku-magic-login__back {
  margin-top: 10px;
}

.retuku-login-page__error {
  margin-bottom: 15px;
  padding: 11px 13px;
  border-radius: 6px;
  background: #fff0f0;
  color: #b42318;
}

@media (max-width: 600px) {
  .retuku-login-page {
    padding: 24px 14px;
    background-attachment: scroll;
  }

  .retuku-login-page__card {
    padding: 24px 20px;
  }

  .retuku-login-page__logo img {
    height: 56px;
    margin: 0 auto;
  }
}

@media (min-width: 769px) {
  .retuku-magic-sign .sign-box.has-left {
    width: 880px !important;
    min-height: 400px;
    padding-left: 370px;
    border-radius: 16px;
    box-shadow:
      0 24px 70px rgba(15, 23, 42, .24),
      0 0 55px color-mix(in srgb, var(--theme-color) 14%, transparent);
  }

  .retuku-magic-sign .sign-box.has-left .loginimage {
    width: 370px;
    height: 400px;
    bottom: auto;
    border-radius: 16px 0 0 16px;
  }

  .retuku-magic-sign .sign-box.has-left .loginimage img {
    display: block;
    width: 370px;
    height: 400px;
    object-fit: cover;
    object-position: center center;
  }

  .retuku-magic-sign .sign-wrap {
    box-sizing: border-box;
    min-height: 400px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 38px 42px 24px;
  }

  .retuku-magic-sign .sign-wrap > .form-item {
    margin: 0 0 18px;
  }

  .retuku-magic-sign__logo {
    text-align: center;
  }

  .retuku-magic-sign .logo-login {
    width: auto;
    height: 58px;
  }

  .retuku-magic-sign .retuku-magic-login__form {
    padding: 0;
  }
}

@media (max-width: 768px) {
  body .retuku-magic-sign .sign-box {
    transform: translateY(8px) scale(.985);
  }

  html body.sign-show .retuku-magic-sign .sign-box {
    transform: translateY(0) scale(1);
  }

  .retuku-magic-sign__logo {
    text-align: center;
  }

  .retuku-magic-sign .retuku-magic-login__form {
    padding-top: 12px;
  }

  .retuku-magic-sign .logo-login {
    width: auto;
    height: 54px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .retuku-magic-sign,
  .retuku-magic-sign .sign-mask,
  .retuku-magic-sign .sign-box {
    transition-duration: 1ms;
  }
}
