/* IAM 登录页干净热修补 v4（暗色模式精修）
 * 目标：保留左侧弥散渐变，去掉“脏底/灰蒙”，按钮无边框无发光。
 */

:root {
  --lanst-login-control-height: 56px;
}

@keyframes lanstAuroraDrift {
  0% {
    transform: translate3d(-3%, -1%, 0) scale(1);
    opacity: 0.34;
  }
  50% {
    transform: translate3d(2%, 1%, 0) scale(1.04);
    opacity: 0.46;
  }
  100% {
    transform: translate3d(4%, -2%, 0) scale(1.02);
    opacity: 0.36;
  }
}

@keyframes lanstAuroraSweep {
  0% {
    transform: translate3d(-6%, 0, 0) rotate(-2.4deg);
    opacity: 0.2;
  }
  50% {
    transform: translate3d(2%, 0, 0) rotate(-1deg);
    opacity: 0.3;
  }
  100% {
    transform: translate3d(6%, 0, 0) rotate(1.4deg);
    opacity: 0.22;
  }
}

html.dark,
html[data-theme="dark"],
body.dark,
body[data-theme="dark"] {
  background: linear-gradient(180deg, #131314 0%, #1e1f20 100%) !important;
  background-repeat: no-repeat !important;
}

.login-page .lanst-corner-badge {
  display: none !important;
}

.login-page .login-input,
.login-page .login-form .login-input.ant-input-affix-wrapper,
.login-page .login-form .login-input.ant-input-affix-wrapper.ant-input-password,
.login-page .login-input .ant-input-affix-wrapper,
.login-page .login-input.cxc-input .ant-input-affix-wrapper {
  height: var(--lanst-login-control-height) !important;
  min-height: var(--lanst-login-control-height) !important;
  max-height: var(--lanst-login-control-height) !important;
}

.login-page .login-form .login-input.ant-input-affix-wrapper .ant-input,
.login-page .login-input .ant-input,
.login-page .login-input.cxc-input .ant-input {
  height: 100% !important;
}

.login-page .login-form .login-submit-button,
.login-page .login-form button[type="submit"],
.login-page .login-form button[data-react-aria-pressable="true"] {
  height: var(--lanst-login-control-height) !important;
  min-height: var(--lanst-login-control-height) !important;
  max-height: var(--lanst-login-control-height) !important;
  border: none !important;
  box-shadow: none !important;
  filter: none !important;
  animation: none !important;
}

.login-page .login-form .login-submit-button::before,
.login-page .login-form button[type="submit"]::before,
.login-page .login-form button[data-react-aria-pressable="true"]::before,
.login-page .login-form .login-submit-button::after,
.login-page .login-form button[type="submit"]::after,
.login-page .login-form button[data-react-aria-pressable="true"]::after {
  content: none !important;
  display: none !important;
}

.login-page .login-form .login-submit-button:hover,
.login-page .login-form button[type="submit"]:hover,
.login-page .login-form button[data-react-aria-pressable="true"]:hover,
.login-page .login-form .login-submit-button:focus,
.login-page .login-form button[type="submit"]:focus,
.login-page .login-form button[data-react-aria-pressable="true"]:focus,
.login-page .login-form .login-submit-button:active,
.login-page .login-form button[type="submit"]:active,
.login-page .login-form button[data-react-aria-pressable="true"]:active {
  border: none !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
}

/* 暗色命中：覆盖 login-page / html / body 三层挂载方式 */
.login-page.theme-dark,
html.dark .login-page,
html[data-theme="dark"] .login-page,
body.dark .login-page,
body[data-theme="dark"] .login-page {
  background: linear-gradient(180deg, #131314 0%, #1e1f20 100%) !important;
  background-repeat: no-repeat !important;
}

.login-page.theme-dark::before,
.login-page.theme-dark::after,
html.dark .login-page::before,
html.dark .login-page::after,
html[data-theme="dark"] .login-page::before,
html[data-theme="dark"] .login-page::after,
body.dark .login-page::before,
body.dark .login-page::after,
body[data-theme="dark"] .login-page::before,
body[data-theme="dark"] .login-page::after {
  content: "" !important;
  position: absolute !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.login-page.theme-dark::before,
html.dark .login-page::before,
html[data-theme="dark"] .login-page::before,
body.dark .login-page::before,
body[data-theme="dark"] .login-page::before {
  top: -24% !important;
  left: -14% !important;
  right: -14% !important;
  height: 64% !important;
  background:
    radial-gradient(42% 72% at 18% 28%, rgba(82, 160, 255, 0.14) 0%, rgba(82, 160, 255, 0.04) 54%, transparent 82%),
    radial-gradient(40% 66% at 70% 26%, rgba(93, 224, 255, 0.12) 0%, rgba(93, 224, 255, 0.03) 56%, transparent 82%),
    linear-gradient(106deg, rgba(130, 255, 228, 0.07) 0%, rgba(95, 188, 255, 0.04) 42%, transparent 78%) !important;
  filter: blur(24px) !important;
  mix-blend-mode: screen !important;
  animation: lanstAuroraDrift 18s ease-in-out infinite alternate !important;
}

.login-page.theme-dark::after,
html.dark .login-page::after,
html[data-theme="dark"] .login-page::after,
body.dark .login-page::after,
body[data-theme="dark"] .login-page::after {
  top: 4% !important;
  left: -10% !important;
  right: -10% !important;
  height: 46% !important;
  background:
    linear-gradient(114deg, transparent 0%, rgba(124, 255, 226, 0.08) 30%, rgba(88, 160, 255, 0.09) 52%, transparent 78%) !important;
  filter: blur(36px) !important;
  mix-blend-mode: screen !important;
  animation: lanstAuroraSweep 22s ease-in-out infinite alternate !important;
}

@media (prefers-reduced-motion: reduce) {
  .login-page.theme-dark::before,
  .login-page.theme-dark::after,
  html.dark .login-page::before,
  html.dark .login-page::after,
  html[data-theme="dark"] .login-page::before,
  html[data-theme="dark"] .login-page::after,
  body.dark .login-page::before,
  body.dark .login-page::after,
  body[data-theme="dark"] .login-page::before,
  body[data-theme="dark"] .login-page::after {
    animation: none !important;
  }
}

.login-page.theme-dark .shader-gradient-bg-enhanced,
.login-page.theme-dark .shader-gradient-bg-enhanced::before,
.login-page.theme-dark .shader-gradient-bg-enhanced::after,
.login-page.theme-dark .gradient-orbs-layer,
.login-page.theme-dark .canvas-layer,
html.dark .login-page .shader-gradient-bg-enhanced,
html.dark .login-page .shader-gradient-bg-enhanced::before,
html.dark .login-page .shader-gradient-bg-enhanced::after,
html.dark .login-page .gradient-orbs-layer,
html.dark .login-page .canvas-layer,
html[data-theme="dark"] .login-page .shader-gradient-bg-enhanced,
html[data-theme="dark"] .login-page .shader-gradient-bg-enhanced::before,
html[data-theme="dark"] .login-page .shader-gradient-bg-enhanced::after,
html[data-theme="dark"] .login-page .gradient-orbs-layer,
html[data-theme="dark"] .login-page .canvas-layer,
body.dark .login-page .shader-gradient-bg-enhanced,
body.dark .login-page .shader-gradient-bg-enhanced::before,
body.dark .login-page .shader-gradient-bg-enhanced::after,
body.dark .login-page .gradient-orbs-layer,
body.dark .login-page .canvas-layer,
body[data-theme="dark"] .login-page .shader-gradient-bg-enhanced,
body[data-theme="dark"] .login-page .shader-gradient-bg-enhanced::before,
body[data-theme="dark"] .login-page .shader-gradient-bg-enhanced::after,
body[data-theme="dark"] .login-page .gradient-orbs-layer,
body[data-theme="dark"] .login-page .canvas-layer {
  display: none !important;
  background: transparent !important;
}

.login-page.theme-dark .login-left::before,
html.dark .login-page .login-left::before,
html[data-theme="dark"] .login-page .login-left::before,
body.dark .login-page .login-left::before,
body[data-theme="dark"] .login-page .login-left::before {
  content: none !important;
  display: none !important;
}

.login-page.theme-dark .login-card,
html.dark .login-page .login-card,
html[data-theme="dark"] .login-page .login-card,
body.dark .login-page .login-card,
body[data-theme="dark"] .login-page .login-card {
  background: rgba(25, 26, 28, 0.86) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: none !important;
  backdrop-filter: blur(14px) saturate(108%) !important;
  -webkit-backdrop-filter: blur(14px) saturate(108%) !important;
}

.login-page.theme-dark .login-welcome,
html.dark .login-page .login-welcome,
html[data-theme="dark"] .login-page .login-welcome,
body.dark .login-page .login-welcome,
body[data-theme="dark"] .login-page .login-welcome {
  color: #eff5ff !important;
  background: none !important;
  -webkit-text-fill-color: #eff5ff !important;
  text-shadow: none !important;
  animation: none !important;
}

.login-page.theme-dark .login-subtitle-form,
html.dark .login-page .login-subtitle-form,
html[data-theme="dark"] .login-page .login-subtitle-form,
body.dark .login-page .login-subtitle-form,
body[data-theme="dark"] .login-page .login-subtitle-form {
  color: rgba(221, 233, 255, 0.82) !important;
}

.login-page.theme-dark .login-form .login-submit-button,
.login-page.theme-dark .login-form button[type="submit"],
.login-page.theme-dark .login-form button[data-react-aria-pressable="true"],
html.dark .login-page .login-form .login-submit-button,
html.dark .login-page .login-form button[type="submit"],
html.dark .login-page .login-form button[data-react-aria-pressable="true"],
html[data-theme="dark"] .login-page .login-form .login-submit-button,
html[data-theme="dark"] .login-page .login-form button[type="submit"],
html[data-theme="dark"] .login-page .login-form button[data-react-aria-pressable="true"],
body.dark .login-page .login-form .login-submit-button,
body.dark .login-page .login-form button[type="submit"],
body.dark .login-page .login-form button[data-react-aria-pressable="true"],
body[data-theme="dark"] .login-page .login-form .login-submit-button,
body[data-theme="dark"] .login-page .login-form button[type="submit"],
body[data-theme="dark"] .login-page .login-form button[data-react-aria-pressable="true"] {
  background: linear-gradient(135deg, #86adff 0%, #6d90ee 48%, #587ddd 100%) !important;
  border: none !important;
  color: #ffffff !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.login-page.theme-dark .login-form .login-submit-button:hover,
.login-page.theme-dark .login-form button[type="submit"]:hover,
.login-page.theme-dark .login-form button[data-react-aria-pressable="true"]:hover,
html.dark .login-page .login-form .login-submit-button:hover,
html.dark .login-page .login-form button[type="submit"]:hover,
html.dark .login-page .login-form button[data-react-aria-pressable="true"]:hover,
html[data-theme="dark"] .login-page .login-form .login-submit-button:hover,
html[data-theme="dark"] .login-page .login-form button[type="submit"]:hover,
html[data-theme="dark"] .login-page .login-form button[data-react-aria-pressable="true"]:hover,
body.dark .login-page .login-form .login-submit-button:hover,
body.dark .login-page .login-form button[type="submit"]:hover,
body.dark .login-page .login-form button[data-react-aria-pressable="true"]:hover,
body[data-theme="dark"] .login-page .login-form .login-submit-button:hover,
body[data-theme="dark"] .login-page .login-form button[type="submit"]:hover,
body[data-theme="dark"] .login-page .login-form button[data-react-aria-pressable="true"]:hover {
  background: linear-gradient(135deg, #7ea6ff 0%, #6488ea 48%, #5075dc 100%) !important;
  border: none !important;
  box-shadow: none !important;
  transform: none !important;
}

.login-page.theme-dark .login-form .login-input.ant-input-affix-wrapper,
.login-page.theme-dark .login-form .login-input.ant-input-affix-wrapper.ant-input-password,
.login-page.theme-dark .login-input .ant-input-affix-wrapper,
.login-page.theme-dark .login-input.cxc-input .ant-input-affix-wrapper,
html.dark .login-page .login-form .login-input.ant-input-affix-wrapper,
html.dark .login-page .login-form .login-input.ant-input-affix-wrapper.ant-input-password,
html.dark .login-page .login-input .ant-input-affix-wrapper,
html.dark .login-page .login-input.cxc-input .ant-input-affix-wrapper,
html[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper,
html[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper.ant-input-password,
html[data-theme="dark"] .login-page .login-input .ant-input-affix-wrapper,
html[data-theme="dark"] .login-page .login-input.cxc-input .ant-input-affix-wrapper,
body.dark .login-page .login-form .login-input.ant-input-affix-wrapper,
body.dark .login-page .login-form .login-input.ant-input-affix-wrapper.ant-input-password,
body.dark .login-page .login-input .ant-input-affix-wrapper,
body.dark .login-page .login-input.cxc-input .ant-input-affix-wrapper,
body[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper,
body[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper.ant-input-password,
body[data-theme="dark"] .login-page .login-input .ant-input-affix-wrapper,
body[data-theme="dark"] .login-page .login-input.cxc-input .ant-input-affix-wrapper {
  background: rgba(29, 31, 35, 0.9) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  box-shadow: none !important;
}

.login-page.theme-dark .login-form .login-input.ant-input-affix-wrapper-focused,
.login-page.theme-dark .login-input .ant-input-affix-wrapper:focus-within,
.login-page.theme-dark .login-input.cxc-input .ant-input-affix-wrapper:focus-within,
html.dark .login-page .login-form .login-input.ant-input-affix-wrapper-focused,
html.dark .login-page .login-input .ant-input-affix-wrapper:focus-within,
html.dark .login-page .login-input.cxc-input .ant-input-affix-wrapper:focus-within,
html[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper-focused,
html[data-theme="dark"] .login-page .login-input .ant-input-affix-wrapper:focus-within,
html[data-theme="dark"] .login-page .login-input.cxc-input .ant-input-affix-wrapper:focus-within,
body.dark .login-page .login-form .login-input.ant-input-affix-wrapper-focused,
body.dark .login-page .login-input .ant-input-affix-wrapper:focus-within,
body.dark .login-page .login-input.cxc-input .ant-input-affix-wrapper:focus-within,
body[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper-focused,
body[data-theme="dark"] .login-page .login-input .ant-input-affix-wrapper:focus-within,
body[data-theme="dark"] .login-page .login-input.cxc-input .ant-input-affix-wrapper:focus-within {
  background: rgba(33, 35, 39, 0.96) !important;
  border-color: rgba(143, 178, 245, 0.78) !important;
  box-shadow: none !important;
}

.login-page.theme-dark .login-form .login-input.ant-input-affix-wrapper .ant-input,
html.dark .login-page .login-form .login-input.ant-input-affix-wrapper .ant-input,
html[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper .ant-input,
body.dark .login-page .login-form .login-input.ant-input-affix-wrapper .ant-input,
body[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper .ant-input {
  color: #ecf3ff !important;
  background: transparent !important;
}

.login-page.theme-dark .login-form .login-input.ant-input-affix-wrapper .ant-input::placeholder,
html.dark .login-page .login-form .login-input.ant-input-affix-wrapper .ant-input::placeholder,
html[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper .ant-input::placeholder,
body.dark .login-page .login-form .login-input.ant-input-affix-wrapper .ant-input::placeholder,
body[data-theme="dark"] .login-page .login-form .login-input.ant-input-affix-wrapper .ant-input::placeholder {
  color: rgba(205, 220, 247, 0.8) !important;
}

.login-page.theme-dark .login-form .login-input .ant-input-prefix,
.login-page.theme-dark .login-form .login-input .ant-input-suffix,
.login-page.theme-dark .login-form .login-input .ant-input-password-icon,
html.dark .login-page .login-form .login-input .ant-input-prefix,
html.dark .login-page .login-form .login-input .ant-input-suffix,
html.dark .login-page .login-form .login-input .ant-input-password-icon,
html[data-theme="dark"] .login-page .login-form .login-input .ant-input-prefix,
html[data-theme="dark"] .login-page .login-form .login-input .ant-input-suffix,
html[data-theme="dark"] .login-page .login-form .login-input .ant-input-password-icon,
body.dark .login-page .login-form .login-input .ant-input-prefix,
body.dark .login-page .login-form .login-input .ant-input-suffix,
body.dark .login-page .login-form .login-input .ant-input-password-icon,
body[data-theme="dark"] .login-page .login-form .login-input .ant-input-prefix,
body[data-theme="dark"] .login-page .login-form .login-input .ant-input-suffix,
body[data-theme="dark"] .login-page .login-form .login-input .ant-input-password-icon {
  color: rgba(205, 220, 247, 0.78) !important;
}

.login-page.theme-dark .orb-container,
.login-page.theme-dark .orb,
.login-page.theme-dark .orb-container::before,
.login-page.theme-dark .orb-container::after,
html.dark .login-page .orb-container,
html.dark .login-page .orb,
html.dark .login-page .orb-container::before,
html.dark .login-page .orb-container::after,
html[data-theme="dark"] .login-page .orb-container,
html[data-theme="dark"] .login-page .orb,
html[data-theme="dark"] .login-page .orb-container::before,
html[data-theme="dark"] .login-page .orb-container::after,
body.dark .login-page .orb-container,
body.dark .login-page .orb,
body.dark .login-page .orb-container::before,
body.dark .login-page .orb-container::after,
body[data-theme="dark"] .login-page .orb-container,
body[data-theme="dark"] .login-page .orb,
body[data-theme="dark"] .login-page .orb-container::before,
body[data-theme="dark"] .login-page .orb-container::after {
  display: none !important;
}

.login-page.theme-dark .login-image,
html.dark .login-page .login-image,
html[data-theme="dark"] .login-page .login-image,
body.dark .login-page .login-image,
body[data-theme="dark"] .login-page .login-image {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(126% 102% at 14% 10%, rgba(216, 232, 255, 0.56) 0%, rgba(168, 199, 255, 0.28) 30%, rgba(106, 146, 242, 0.14) 58%, transparent 84%),
    radial-gradient(108% 92% at 86% 14%, rgba(196, 220, 255, 0.4) 0%, rgba(130, 173, 252, 0.18) 42%, transparent 74%),
    radial-gradient(106% 96% at 46% 92%, rgba(126, 172, 253, 0.24) 0%, rgba(92, 134, 231, 0.08) 46%, transparent 80%),
    linear-gradient(156deg, #7295ef 0%, #557cde 52%, #4466c8 100%) !important;
  filter: none !important;
  box-shadow: none !important;
}

.login-page.theme-dark .login-image::before,
html.dark .login-page .login-image::before,
html[data-theme="dark"] .login-page .login-image::before,
body.dark .login-page .login-image::before,
body[data-theme="dark"] .login-page .login-image::before {
  content: "" !important;
  position: absolute;
  inset: -16% -12% 32% -10% !important;
  display: block !important;
  pointer-events: none;
  background:
    radial-gradient(44% 34% at 18% 20%, rgba(236, 244, 255, 0.42) 0%, rgba(188, 215, 255, 0.16) 46%, transparent 74%),
    radial-gradient(38% 30% at 78% 28%, rgba(203, 226, 255, 0.28) 0%, rgba(146, 190, 255, 0.1) 42%, transparent 72%),
    radial-gradient(48% 34% at 52% 92%, rgba(136, 178, 252, 0.16) 0%, rgba(101, 144, 234, 0.06) 44%, transparent 74%);
  opacity: 0.62 !important;
}

.login-page.theme-dark .login-image::after,
html.dark .login-page .login-image::after,
html[data-theme="dark"] .login-page .login-image::after,
body.dark .login-page .login-image::after,
body[data-theme="dark"] .login-page .login-image::after {
  content: "" !important;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 26%;
  background: linear-gradient(180deg, rgba(70, 104, 194, 0) 0%, rgba(67, 100, 188, 0.1) 100%) !important;
  pointer-events: none;
}

.login-page.theme-dark .brand-label,
.login-page.theme-dark .brand-title,
.login-page.theme-dark .brand-tagline,
html.dark .login-page .brand-label,
html.dark .login-page .brand-title,
html.dark .login-page .brand-tagline,
html[data-theme="dark"] .login-page .brand-label,
html[data-theme="dark"] .login-page .brand-title,
html[data-theme="dark"] .login-page .brand-tagline,
body.dark .login-page .brand-label,
body.dark .login-page .brand-title,
body.dark .login-page .brand-tagline,
body[data-theme="dark"] .login-page .brand-label,
body[data-theme="dark"] .login-page .brand-title,
body[data-theme="dark"] .login-page .brand-tagline {
  color: #f5f9ff !important;
  text-shadow: none !important;
}
