/* 登录页（logging.pl / _logging_v2.tmpl）— 与门户 search_cmb 灰蓝 / 青绿变量一致 */

.xd-login-shell {
  margin: -0.25rem calc(-1 * clamp(10px, 2.5vw, 20px)) 0;
  padding: 1rem clamp(10px, 2.5vw, 20px) 0.85rem;
  box-sizing: border-box;
  background:
    radial-gradient(ellipse 72% 50% at 50% -20%, rgba(94, 234, 212, 0.12) 0%, transparent 58%),
    linear-gradient(165deg, #e8f0f2 0%, var(--cmb-paper) 42%, #eef4f6 100%);
}

.xd-login-page {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

/* 面包屑：与 .xd-login-grid 负 margin + 列 padding 对齐，勿再加水平 padding（否则会窄于下方卡片） */
body.xd-portal-page .xd-login-shell .xd-login-bc.xd-cmb-breadcrumb-wrap {
  margin-bottom: 1.15rem;
  box-sizing: border-box;
}

.xd-login-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  margin-left: -10px;
  margin-right: -10px;
}

.xd-login-grid > [class*="col-"] {
  padding-left: 10px;
  padding-right: 10px;
}

.xd-login-col {
  margin-bottom: 1.25rem;
}

@media (min-width: 992px) {
  .xd-login-col {
    margin-bottom: 0;
  }
}

.xd-login-card {
  position: relative;
  height: 100%;
  background: var(--cmb-card);
  border: 1px solid var(--cmb-border);
  border-radius: var(--cmb-radius);
  box-shadow: var(--cmb-shadow);
  padding: clamp(1.2rem, 2.8vw, 1.65rem) clamp(1.1rem, 2.8vw, 1.55rem);
  box-sizing: border-box;
  overflow: hidden;
}

.xd-login-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    rgba(94, 234, 212, 0.55) 0%,
    rgba(15, 79, 92, 0.35) 50%,
    rgba(94, 234, 212, 0.45) 100%
  );
  border-radius: var(--cmb-radius) var(--cmb-radius) 0 0;
  pointer-events: none;
}

.xd-login-card--wx {
  background: linear-gradient(180deg, #f8fafb 0%, var(--cmb-card) 28%);
}

.xd-login-card__head {
  margin: 0 0 1.15rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid rgba(12, 61, 74, 0.08);
}

.xd-login-card__title {
  margin: 0;
  font-size: 1.28rem;
  font-weight: 700;
  color: var(--cmb-teal-900);
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.xd-login-card__title--secondary {
  font-size: 1.12rem;
}

.xd-login-card__sub {
  margin: 0.4rem 0 0;
  font-size: 0.8125rem;
  color: #64748b;
  line-height: 1.55;
}

.xd-login-page .login-form.xd-login-form {
  width: 100% !important;
  max-width: none;
  margin: 0;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
}

.xd-login-form .form-group {
  margin-bottom: 0.9rem;
}

.xd-login-submit-wrap {
  margin-bottom: 0.35rem !important;
  margin-top: 0.15rem;
}

.xd-login-notice-wrap {
  margin-bottom: 0.35rem !important;
  min-height: 1.25rem;
}

.xd-login-form .xd-login-input.form-control {
  height: 44px;
  border-radius: 8px;
  border: 1px solid rgba(12, 61, 74, 0.14);
  font-size: 14px;
  box-shadow: none;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.xd-login-form .xd-login-input.form-control::placeholder {
  color: #94a3b8;
}

.xd-login-form .xd-login-input.form-control:focus {
  border-color: rgba(12, 61, 74, 0.35);
  box-shadow: 0 0 0 2px rgba(12, 61, 74, 0.08);
}

.xd-login-captcha {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
}

.xd-login-captcha #wait,
.xd-login-wait {
  margin: 0;
  font-size: 13px;
  color: #64748b;
  width: 100%;
}

.xd-login-wait.hide {
  display: none !important;
}

.xd-login-wait.show {
  display: block;
}

.xd-login-notice {
  margin: 0 !important;
  font-size: 13px !important;
  font-weight: 500;
  text-align: center;
  width: 100%;
  color: #c2410c !important;
}

.xd-login-notice.hide {
  display: none !important;
}

.xd-login-notice.show {
  display: block;
}

/* 与找回密码等表单主按钮一致的灰蓝 slate */
.xd-login-btn-primary.btn-primary {
  height: 44px;
  border-radius: 8px !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  letter-spacing: 0.03em;
  background: linear-gradient(180deg, #f1f5f9 0%, #e2e8f0 100%) !important;
  border: 1px solid rgba(12, 61, 74, 0.2) !important;
  color: var(--cmb-teal-900) !important;
  box-shadow: 0 1px 2px rgba(12, 61, 74, 0.06);
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.15s ease;
}

.xd-login-btn-primary.btn-primary:hover,
.xd-login-btn-primary.btn-primary:focus {
  background: linear-gradient(180deg, #e8eef2 0%, #d8e0e6 100%) !important;
  border-color: rgba(12, 61, 74, 0.28) !important;
  color: var(--cmb-teal-900) !important;
  box-shadow: 0 2px 8px rgba(12, 61, 74, 0.08);
}

.xd-login-btn-primary.btn-primary:active {
  transform: translateY(1px);
}

.xd-login-links {
  margin: 1.1rem 0 0;
  padding-top: 0.15rem;
  text-align: center;
  font-size: 13px;
  color: #64748b;
  line-height: 1.65;
}

.xd-login-links a {
  color: var(--cmb-teal-800);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(15, 79, 92, 0.22);
  transition: color 0.15s ease, border-color 0.15s ease;
}

.xd-login-links a:hover,
.xd-login-links a:focus {
  color: var(--cmb-teal-900);
  border-bottom-color: var(--cmb-mint);
}

.xd-login-links__sep {
  opacity: 0.45;
  font-weight: 400;
}

.xd-login-alert {
  border-radius: 10px !important;
  margin-bottom: 1.15rem;
}

.xd-login-card--wx .xd-login-card__head {
  margin-bottom: 0.95rem;
}

.xd-login-wx-frame-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 200px;
  margin: 0 auto 1rem;
  padding: 0.35rem;
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(12, 61, 74, 0.08);
  border-radius: 10px;
}

.xd-login-wx-frame-wrap iframe {
  display: block;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(12, 61, 74, 0.08);
}

.xd-login-wx-hint {
  margin: 0;
  font-size: 13px;
  line-height: 1.65;
  color: #475569;
  text-align: center;
}

.xd-login-wx-hint .xd-login-wx-brand {
  color: var(--cmb-teal-800);
  font-weight: 600;
}

.xd-login-wx-hint a {
  color: var(--cmb-teal-800);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(15, 79, 92, 0.25);
}

.xd-login-wx-hint a:hover {
  border-bottom-color: var(--cmb-mint);
}

@media (max-width: 767px) {
  .xd-login-shell {
    padding-top: 0.65rem;
  }

  .xd-login-card__title {
    font-size: 1.15rem;
  }
}
