/*
 * Linguan backend-aligned login surface.
 * Visual-only rules. The existing .login-page DOM, form names and handlers
 * remain untouched; this layer is loaded after the legacy theme overrides.
 */

.login-page {
  --lg-canvas: #060a0f;
  --lg-surface: #121b24;
  --lg-surface-2: #16222e;
  --lg-surface-3: #121b24;
  --lg-line: #202d3a;
  --lg-line-soft: rgba(255, 255, 255, .08);
  --lg-text: #f3f8fe;
  --lg-text-muted: #a5b9cd;
  --lg-text-subtle: #698aab;
  --lg-blue: #398fe6;
  --lg-blue-bright: #5da6ef;
  --lg-blue-deep: #165ca3;
  position: relative !important;
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 38px !important;
  background:
    radial-gradient(900px 520px at 84% 12%, rgba(36, 134, 233, .16), transparent 64%),
    radial-gradient(760px 560px at 5% 100%, rgba(22, 92, 163, .14), transparent 66%),
    var(--lg-canvas) !important;
  color: var(--lg-text) !important;
  font-family: Inter, "SF Pro Display", -apple-system, BlinkMacSystemFont,
    "Segoe UI", "Microsoft YaHei", sans-serif !important;
}
.login-page *,
.login-page *::before,
.login-page *::after { box-sizing: border-box !important; }

/* Quiet technical grid keeps the canvas related to the control console. */
.login-page .login-decoration {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
  opacity: 1 !important;
  background-image:
    linear-gradient(rgba(137, 174, 211, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(137, 174, 211, .045) 1px, transparent 1px) !important;
  background-size: 48px 48px !important;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 20%, transparent 84%) !important;
  mask-image: radial-gradient(ellipse at center, #000 20%, transparent 84%) !important;
}
.login-page .deco-circle,
.login-page .deco-grid { display: none !important; }

.login-page .login-container {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  grid-template-columns: minmax(380px, .92fr) minmax(420px, 1.08fr) !important;
  width: min(1080px, 100%) !important;
  min-height: 610px !important;
  max-width: 1080px !important;
  overflow: hidden !important;
  border: 1px solid var(--lg-line) !important;
  border-radius: 18px !important;
  background: rgba(10, 18, 26, .94) !important;
  box-shadow: 0 32px 90px rgba(0, 0, 0, .52), 0 0 0 1px rgba(57, 143, 230, .05) !important;
  animation: lg-container-in .55s cubic-bezier(.16, 1, .3, 1) both !important;
}
  from { opacity: 0; transform: translateY(12px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }

/* Brand rail */
.login-page .login-brand {
  position: relative !important;
  min-width: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  display: flex !important;
  align-items: stretch !important;
  padding: 54px 50px 40px !important;
  overflow: hidden !important;
  border-right: 1px solid var(--lg-line) !important;
  background:
    linear-gradient(145deg, rgba(57, 143, 230, .13), transparent 42%),
    linear-gradient(180deg, var(--lg-surface-3), var(--lg-surface)) !important;
  color: var(--lg-text) !important;
}
.login-page .login-brand::before {
  content: "" !important;
  position: absolute !important;
  right: -110px !important;
  bottom: -150px !important;
  width: 430px !important;
  height: 430px !important;
  border: 1px solid rgba(57, 143, 230, .16) !important;
  border-radius: 50% !important;
  box-shadow: 0 0 0 34px rgba(57, 143, 230, .035), 0 0 0 70px rgba(57, 143, 230, .025) !important;
  pointer-events: none !important;
}
.login-page .login-brand::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 1px !important;
  height: 100% !important;
  background: linear-gradient(180deg, transparent, var(--lg-blue), transparent) !important;
  opacity: .55 !important;
}
.login-page .brand-content {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  flex: 1 !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
.login-page .brand-content::before,
.login-page .brand-content::after,
.login-page .brand-title::before,
.login-page .brand-title::after,
.login-page .login-form-header h2::before,
.login-page .login-form-header h2::after,
.login-page .login-form-header p::before,
.login-page .login-form-header p::after {
  content: none !important;
  display: none !important;
}
.login-page .brand-emblem {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 64px !important;
  height: 64px !important;
  margin-bottom: 30px !important;
  border: 1px solid rgba(57, 143, 230, .35) !important;
  border-radius: 16px !important;
  background: linear-gradient(145deg, rgba(57, 143, 230, .2), rgba(10, 18, 26, .55)) !important;
  box-shadow: 0 12px 34px rgba(22, 92, 163, .24), inset 0 0 0 1px rgba(255, 255, 255, .04) !important;
}
.login-page .brand-logo,
.login-page .brand-logo img {
  position: relative !important;
  width: 42px !important;
  height: 42px !important;
  object-fit: contain !important;
}
.login-page .brand-logo { display: grid !important; place-items: center !important; }
.login-page .brand-ring,
.login-page .brand-glow,
.login-page .brand-aura { display: none !important; }
.login-page .brand-title {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  margin: 0 !important;
  color: var(--lg-text) !important;
  font-size: 48px !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
  visibility: visible !important;
}
.login-page .brand-line {
  display: block !important;
  color: var(--lg-text) !important;
  background: linear-gradient(135deg, #f3f8fe, #8cc5f5) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.login-page .brand-sub {
  display: block !important;
  color: var(--lg-text-subtle) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.6 !important;
}
.login-page .brand-divider {
  display: block !important;
  width: 100% !important;
  height: 1px !important;
  margin: 34px 0 25px !important;
  border: 0 !important;
  background: linear-gradient(90deg, var(--lg-blue), rgba(57, 143, 230, .12), transparent) !important;
  visibility: visible !important;
}
.login-page .brand-divider-flame { display: none !important; }

/* Compact capability rows replace the oversized bottom cards. */
.login-page .brand-features {
  position: static !important;
  height: auto !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  width: 100% !important;
  margin-top: auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.login-page .brand-features::before,
.login-page .brand-features::after { display: none !important; }
.login-page .feature-item {
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  min-height: 48px !important;
  padding: 9px 11px !important;
  border: 1px solid rgba(137, 174, 211, .12) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, .025) !important;
  color: var(--lg-text-muted) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: none !important;
  transition: background .18s ease, border-color .18s ease, transform .18s ease !important;
}
.login-page .feature-item:hover {
  transform: translateX(3px) !important;
  border-color: rgba(57, 143, 230, .45) !important;
  background: rgba(57, 143, 230, .08) !important;
}
.login-page .feature-icon {
  display: grid !important;
  flex: 0 0 28px !important;
  place-items: center !important;
  width: 28px !important;
  height: 28px !important;
  border: 1px solid rgba(57, 143, 230, .38) !important;
  border-radius: 7px !important;
  color: #5da6ef !important;
  background: rgba(57, 143, 230, .09) !important;
}
.login-page .feature-icon svg { width: 15px !important; height: 15px !important; }
.login-page .feature-text,
.login-page .feature-desc {
  color: var(--lg-text-muted) !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}
.login-page .brand-corner,
.login-page .embers,
.login-page .brand-sweep { display: none !important; }

/* Form rail */
.login-page .login-form-section {
  position: relative !important;
  inset: auto !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  transform: none !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 58px 72px !important;
  background: var(--lg-surface) !important;
  color: var(--lg-text) !important;
}
.login-page .login-form-wrapper {
  width: min(100%, 360px) !important;
  max-width: 360px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.login-page .login-form-header { margin: 0 0 30px !important; }
.login-page .login-form-header h2 {
  margin: 0 0 9px !important;
  color: var(--lg-text) !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
}
.login-page .login-form-header p,
.login-page .form-options,
.login-page .form-footer,
.login-page .form-footer span,
.login-page .bind-tip {
  color: var(--lg-text-subtle) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}
.login-page .login-form-wrapper form,
.login-page .login-form-wrapper .ant-form { width: 100% !important; max-width: none !important; }
.login-page .login-form-wrapper .ant-form-item { margin-bottom: 14px !important; }
.login-page .login-form-wrapper .ant-form-item-explain-error { color: #74b2f1 !important; font-size: 11px !important; }
.login-page .ant-form-item-has-error .ant-input,
.login-page .ant-form-item-has-error .ant-input-affix-wrapper {
  border-color: #5da6ef !important;
  box-shadow: 0 0 0 3px rgba(93, 166, 239, .12) !important;
}
.login-page .ant-input-affix-wrapper,
.login-page .ant-input,
.login-page .ant-input-affix-wrapper input {
  min-height: 46px !important;
  border: 1px solid var(--lg-line) !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--lg-text) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025) !important;
}
.login-page .ant-input-affix-wrapper { padding: 0 13px !important; }
.login-page .ant-input-affix-wrapper:hover,
.login-page .ant-input-affix-wrapper-focused,
.login-page .ant-input-affix-wrapper:focus-within,
.login-page .ant-input:focus {
  border-color: var(--lg-blue) !important;
  box-shadow: 0 0 0 3px rgba(57, 143, 230, .15) !important;
}
.login-page .ant-input-affix-wrapper input { min-height: 42px !important; border: 0 !important; box-shadow: none !important; }
.login-page .ant-input::placeholder { color: var(--lg-text-subtle) !important; }
.login-page .ant-input-prefix,
.login-page .ant-input-password-icon { color: #7897b5 !important; }
.login-page .form-options {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 25px !important;
}
.login-page .ant-checkbox-wrapper,
.login-page .ant-checkbox-label { color: var(--lg-text-subtle) !important; font-size: 12px !important; }
.login-page .ant-checkbox-inner { background: var(--lg-surface-2) !important; border-color: var(--lg-line) !important; }
.login-page .ant-checkbox-checked .ant-checkbox-inner { background: var(--lg-blue) !important; border-color: var(--lg-blue) !important; }
.login-page .forgot-link { color: #74b2f1 !important; }
.login-page .ant-btn-link,
.login-page .ant-btn-link:not(:disabled) { color: #5da6ef !important; }
.login-page .ant-btn-link:hover,
.login-page .ant-btn-link:focus { color: #74b2f1 !important; background: rgba(57, 143, 230, .08) !important; }
.login-page .login-button,
.login-page .ant-btn-primary {
  width: 100% !important;
  height: 46px !important;
  margin-top: 7px !important;
  border: 1px solid var(--lg-blue) !important;
  border-radius: 8px !important;
  background: linear-gradient(135deg, var(--lg-blue), var(--lg-blue-bright)) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  box-shadow: 0 10px 24px rgba(36, 134, 233, .2) !important;
}
.login-page .login-button:hover,
.login-page .ant-btn-primary:hover { border-color: #74b2f1 !important; filter: brightness(1.08) !important; }
.login-page .login-button:active,
.login-page .ant-btn-primary:active { transform: translateY(1px) !important; }
.login-page .login-step-panel { width: 100% !important; color: var(--lg-text-muted) !important; display: block !important; }
.login-page .bind-tip { display: block !important; }
.login-page .login-step-panel .ant-input { text-align: center !important; letter-spacing: 5px !important; }
.login-page .login-step-panel .ant-qrcode,
.login-page .login-step-panel canvas {
  border-radius: 10px !important;
  border: 1px solid var(--lg-line) !important;
  background: #fff !important;
  padding: 8px !important;
}
.login-page .ant-btn-loading .ant-spin-dot-item,
.login-page .ant-spin-dot-item { background-color: #74b2f1 !important; }
.login-page .login-step-panel a { color: #5da6ef !important; }
.login-page .form-footer {
  margin-top: 30px !important;
  padding-top: 17px !important;
  border-top: 1px solid var(--lg-line) !important;
  text-align: left !important;
}
  .login-page { padding: 22px !important; }
  .login-page .login-container {
    grid-template-columns: 1fr !important;
    width: min(560px, 100%) !important;
    min-height: auto !important;
  }
  .login-page .login-brand {
    min-height: 300px !important;
    padding: 34px 34px 28px !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--lg-line) !important;
  }
  .login-page .brand-emblem { width: 52px !important; height: 52px !important; margin-bottom: 20px !important; }
  .login-page .brand-logo,
  .login-page .brand-logo img { width: 34px !important; height: 34px !important; }
  .login-page .brand-title { font-size: 34px !important; }
  .login-page .brand-divider { margin: 22px 0 16px !important; }
  .login-page .brand-features { grid-template-columns: repeat(3, 1fr) !important; gap: 7px !important; }
  .login-page .feature-item { min-height: 62px !important; flex-direction: column !important; justify-content: center !important; gap: 5px !important; padding: 7px 5px !important; text-align: center !important; }
  .login-page .feature-text,
  .login-page .feature-desc { font-size: 10px !important; }
  .login-page .login-form-section { padding: 40px 34px 44px !important; }
  .login-page .login-brand { min-height: 0 !important; width: auto !important; }
  .login-page .login-form-section { position: relative !important; inset: auto !important; width: auto !important; transform: none !important; }
  .login-page { align-items: flex-start !important; padding: 14px !important; }
  .login-page .login-container { border-radius: 14px !important; }
  .login-page .login-brand { min-height: 250px !important; padding: 28px 24px 22px !important; }
  .login-page .brand-title { font-size: 29px !important; letter-spacing: 0 !important; }
  .login-page .brand-sub { font-size: 9px !important; letter-spacing: 0 !important; }
  .login-page .brand-features { display: none !important; }
  .login-page .login-form-section { padding: 34px 24px 30px !important; }
  .login-page .login-form-header { margin-bottom: 24px !important; }
  .login-page .login-form-header h2 { font-size: 23px !important; }
  .login-page .login-container,
  .login-page .feature-item { animation: none !important; transition: none !important; }

/* Final compatibility pass for the legacy visual layers. The prior theme
   used the gallery strip as a feature background and hid the real SVG icons;
   these rules restore the semantic controls without changing their handlers. */
.login-page .brand-features .feature-item {
  box-sizing: border-box !important;
  min-height: 48px !important;
  height: 48px !important;
  padding: 9px 11px !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, .025) !important;
  box-shadow: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  flex: none !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 13px !important;
  text-align: left !important;
  overflow: hidden !important;
  transform: none !important;
}
.login-page .brand-features .feature-icon {
  box-sizing: border-box !important;
  position: static !important;
  flex: 0 0 28px !important;
  width: 28px !important;
  height: 28px !important;
  margin: 0 !important;
  transform: none !important;
}
.login-page .brand-features .feature-text {
  min-width: 0 !important;
  flex: 1 1 auto !important;
  overflow: hidden !important;
}
.login-page .brand-features .feature-item:hover {
  border-color: rgba(57, 143, 230, .45) !important;
  background: rgba(57, 143, 230, .08) !important;
  transform: translateX(3px) !important;
}
.login-page .brand-features .feature-item:nth-child(1),
.login-page .brand-features .feature-item:nth-child(2),
.login-page .brand-features .feature-item:nth-child(3) {
  min-height: 48px !important;
  height: 48px !important;
  flex: none !important;
}

html[data-theme="dark"] .login-page .ant-input,
html[data-theme="dark"] .login-page .ant-input-affix-wrapper,
html[data-theme="dark"] .login-page .ant-input-affix-wrapper input {
  border-color: var(--lg-line) !important;
  background: transparent !important;
  color: var(--lg-text) !important;
}
html[data-theme="dark"] .login-page .ant-input-affix-wrapper:focus-within,
html[data-theme="dark"] .login-page .ant-input-affix-wrapper-focused {
  border-color: var(--lg-blue) !important;
  box-shadow: 0 0 0 3px rgba(57, 143, 230, .15) !important;
}
html[data-theme="dark"] .login-page .login-button,
html[data-theme="dark"] .login-page .ant-btn-primary {
  border-color: var(--lg-blue) !important;
  background: linear-gradient(135deg, var(--lg-blue), var(--lg-blue-bright)) !important;
}
html[data-theme="dark"] .login-page .ant-btn-link,
html[data-theme="dark"] .login-page .forgot-link,
html[data-theme="dark"] .login-page .login-step-panel a {
  color: #5da6ef !important;
}

/* Restore the previous exhibition background (designreview9) while keeping
   the current backend-aligned controls and all form handlers intact. */
html:has(.login-page),
body:has(.login-page) {
  margin: 0 !important;
  width: 100% !important;
  min-height: 100% !important;
  overflow: hidden !important;
  background: #060a0f !important;
}
.login-page {
  padding: 0 !important;
  display: block !important;
  min-height: 100vh !important;
  background:
    linear-gradient(180deg, rgba(6, 10, 15, .95) 0%, rgba(6, 10, 15, .78) 52%, rgba(6, 10, 15, .16) 100%),
    url('/gugu-gallery-strip.png?v=login20260905v4') center bottom / 100% auto no-repeat,
    #060a0f !important;
}
.login-page .login-container {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 100vh !important;
  height: 100vh !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.login-page .login-brand {
  display: flex !important;
  width: 100% !important;
  height: 100vh !important;
  min-height: 100vh !important;
  padding: 88px 7vw 42px !important;
  border: 0 !important;
  background: transparent !important;
}
.login-page .brand-content {
  width: min(390px, 36vw) !important;
  max-width: 390px !important;
  margin: 0 !important;
}
.login-page .brand-emblem {
  width: 58px !important;
  height: 58px !important;
  margin-bottom: 24px !important;
}
.login-page .brand-logo,
.login-page .brand-logo img {
  width: 38px !important;
  height: 38px !important;
}
.login-page .brand-title {
  font-size: 48px !important;
  line-height: 1.1 !important;
}
.login-page .brand-divider { margin: 28px 0 0 !important; }
.login-page .brand-features { display: none !important; }
.login-page .login-form-section {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: min(390px, calc(100vw - 48px)) !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 32px 24px 28px !important;
  transform: translate(-50%, -50%) !important;
  z-index: 10 !important;
  border: 1px solid rgba(57, 143, 230, .28) !important;
  border-radius: 14px !important;
  background: rgba(18, 27, 36, .70) !important;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .46), inset 0 1px 0 rgba(255, 255, 255, .04) !important;
  backdrop-filter: blur(16px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(120%) !important;
}
.login-page .login-form-wrapper {
  width: 100% !important;
  max-width: 360px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.login-page .login-form-header { margin-bottom: 24px !important; }
.login-page .login-form-header h2 { font-size: 24px !important; }
.login-page .ant-input-affix-wrapper,
.login-page .ant-input,
.login-page .ant-input-affix-wrapper input {
  background: transparent !important;
}
  .login-page {
    min-height: 100vh !important;
    background:
      linear-gradient(180deg, rgba(6, 10, 15, .96) 0%, rgba(6, 10, 15, .74) 56%, rgba(6, 10, 15, .2) 100%),
      url('/gugu-gallery-strip.png?v=login20260905v4') center bottom / auto 230px no-repeat,
      #060a0f !important;
  }
  .login-page .login-container,
  .login-page .login-brand {
    height: 100vh !important;
    min-height: 100vh !important;
  }
  .login-page .login-brand {
    padding: 48px 24px 24px !important;
  }
  .login-page .brand-content {
    width: 100% !important;
    max-width: none !important;
  }
  .login-page .brand-emblem { display: none !important; }
  .login-page .brand-title {
    font-size: 34px !important;
    line-height: 1.1 !important;
  }
  .login-page .brand-sub { font-size: 10px !important; }
  .login-page .brand-divider { margin-top: 20px !important; }
  .login-page .login-form-section {
    top: 54% !important;
    width: min(360px, calc(100vw - 36px)) !important;
    padding: 28px 20px 24px !important;
  }