/* ============================================================
   闪得 商家入驻小部件 - 适配样式（叠加在 css/seller-apply.css 之上）
   句柄: shande-seller-apply
   ============================================================ */

/* 在 Elementor 中通常已无固定页眉，去掉源码为固定页眉预留的 100px 顶部留白 */
.shande-seller-apply .sa-page {
  padding-top: 24px;
}

/* 中和主题（Astra）按钮默认样式，确保 .sa-btn 呈现与源码一致 */
.shande-seller-apply button.sa-btn,
.shande-seller-apply button.sa-btn:hover,
.shande-seller-apply button.sa-btn:focus,
.shande-seller-apply button.sa-btn:focus-visible,
.shande-seller-apply button.sa-btn:active {
  line-height: 1.6;
  text-transform: none;
  text-decoration: none;
  box-shadow: none;
  outline: none;
  transform: none;
}

/* 普通次级按钮：显式覆盖 Astra 的全局 button 状态色 */
.shande-seller-apply button.sa-btn:not(.sa-btn--primary):not(.sa-btn--code) {
  color: #4b5563;
  background: #fff;
  border-color: #e5e7eb;
}
.shande-seller-apply button.sa-btn:not(.sa-btn--primary):not(.sa-btn--code):hover,
.shande-seller-apply button.sa-btn:not(.sa-btn--primary):not(.sa-btn--code):focus,
.shande-seller-apply button.sa-btn:not(.sa-btn--primary):not(.sa-btn--code):focus-visible,
.shande-seller-apply button.sa-btn:not(.sa-btn--primary):not(.sa-btn--code):active {
  color: #096ddd;
  background: #fff;
  border-color: #096ddd;
  box-shadow: none;
  outline: none;
}

/* 弹窗为 position:fixed，编辑器里改为绝对定位铺满小部件，保证预览可见可关 */
body.elementor-editor-active .shande-seller-apply {
  position: relative;
}
body.elementor-editor-active .shande-seller-apply .sa-overlay {
  position: absolute;
}

/* 日期区：自定义触发器，不使用浏览器原生日历外观 */
.shande-seller-apply .sa-form__field--row {
  position: relative;
}
.shande-seller-apply .sa-date-input {
  min-width: 0;
  height: 38px;
  padding: 9px 38px 9px 12px;
  cursor: pointer;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;
}
.shande-seller-apply .sa-date-input:hover,
.shande-seller-apply .sa-date-input:focus {
  border-color: #096ddd;
  box-shadow: 0 0 0 3px rgba(9,109,221,.10);
}
.shande-seller-apply .sa-date-input:disabled {
  color: #9ca3af;
  background-color: #f3f4f6;
  cursor: not-allowed;
  opacity: .72;
}

/* 自定义日历浮层 */
.shande-seller-apply .sa-calendar {
  position: absolute;
  z-index: 1000;
  width: 292px;
  padding: 14px;
  background: rgba(255,255,255,.98);
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 16px 42px rgba(15,23,42,.16);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.shande-seller-apply .sa-calendar__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.shande-seller-apply .sa-calendar__title {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #1f2937;
  font-size: 14px;
  font-weight: 650;
}
.shande-seller-apply .sa-calendar__select {
  width: auto;
  height: 30px;
  min-height: 30px;
  margin: 0;
  padding: 3px 24px 3px 8px;
  color: #334155;
  background-color: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 5px;
  box-shadow: none;
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  line-height: 20px;
  cursor: pointer;
}
.shande-seller-apply .sa-calendar__select--year { width: 88px; }
.shande-seller-apply .sa-calendar__select--month { width: 66px; }
.shande-seller-apply .sa-calendar__select:hover,
.shande-seller-apply .sa-calendar__select:focus {
  border-color: #93c5fd;
  box-shadow: none;
  outline: none;
}
.shande-seller-apply .sa-calendar__nav {
  width: 30px;
  height: 30px;
  min-width: 30px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #64748b;
  box-shadow: none;
  cursor: pointer;
}
.shande-seller-apply .sa-calendar__nav:hover,
.shande-seller-apply .sa-calendar__nav:focus {
  background: #eff6ff;
  color: #096ddd;
  border: 0;
  box-shadow: none;
}
.shande-seller-apply .sa-calendar__week,
.shande-seller-apply .sa-calendar__days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0,1fr));
  gap: 4px;
}
.shande-seller-apply .sa-calendar__week span {
  padding: 5px 0;
  text-align: center;
  color: #94a3b8;
  font-size: 11px;
}
.shande-seller-apply .sa-calendar__day {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #334155;
  font-size: 12px;
  box-shadow: none;
  cursor: pointer;
}
.shande-seller-apply .sa-calendar__day:hover,
.shande-seller-apply .sa-calendar__day:focus {
  background: #eff6ff;
  color: #096ddd;
  border: 0;
  box-shadow: none;
}
.shande-seller-apply .sa-calendar__day.is-today {
  color: #096ddd;
  box-shadow: inset 0 0 0 1px #93c5fd;
}
.shande-seller-apply .sa-calendar__day.is-selected {
  background: #096ddd;
  color: #fff;
  box-shadow: 0 4px 10px rgba(9,109,221,.22);
}
.shande-seller-apply .sa-calendar__day.is-empty {
  visibility: hidden;
  pointer-events: none;
}

/* 草稿恢复提示：使用克制的中性信息条，避免抢占表单视觉层级 */
.shande-seller-apply .sa-draft-bar {
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
  padding: 9px 12px;
  margin-bottom: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  color: #475569;
  font-size: 12px;
  line-height: 1.5;
}
.shande-seller-apply .sa-draft-bar > svg {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  stroke: #64748b;
}
.shande-seller-apply .sa-draft-bar button {
  flex: 0 0 auto;
  margin-left: auto;
  padding: 3px 9px;
  color: #475569;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font-size: 12px;
  line-height: 1.5;
  text-decoration: none;
  box-shadow: none;
}
.shande-seller-apply .sa-draft-bar button:hover,
.shande-seller-apply .sa-draft-bar button:focus {
  color: #1e293b;
  background: #f1f5f9;
  border-color: #94a3b8;
  box-shadow: none;
}
.shande-seller-apply .sa-draft-bar__time {
  flex: 0 0 auto;
  color: #94a3b8;
  font-size: 11px;
}

/* 重置 Astra 全局表单规则，确保输入内容与占位文字垂直居中 */
.shande-seller-apply input.sa-input {
  height: 38px;
  padding: 8px 12px;
  border-radius: 6px;
  box-shadow: none;
  color: #1d2129;
  font-size: 13px;
  font-style: normal;
  font-weight: 400;
  line-height: 20px;
}
.shande-seller-apply input.sa-input:hover,
.shande-seller-apply input.sa-input:focus {
  box-shadow: none;
}

/* 表单占位文字比实际输入内容弱一级。
   字号与 opacity 由 shande-base.css 统一提供（0.85em），这里只保留本模块
   自己的配色；写死 12px 会把统一值顶掉，改一次又得回来逐处调。 */
.shande-seller-apply .sa-input::placeholder,
.shande-seller-apply .sa-textarea::placeholder {
  color: #a1a9b3;
}

/* 身份证正反面上传：严格两列，各占容器 50% 可用宽度 */
.shande-seller-apply .sa-id-uploads {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.shande-seller-apply .sa-id-uploads > .sa-upload-box {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* 人脸核验操作按钮保持在容器最右侧 */
.shande-seller-apply .sa-face-verify > button.sa-btn {
  flex: 0 0 auto;
  margin-left: auto;
}

/* 验证码按钮：完整覆盖 Astra 的 button hover/focus/active */
.shande-seller-apply button.sa-btn--code,
.shande-seller-apply button.sa-btn--code:visited {
  min-height: 38px;
  background: #fff;
  color: #096ddd;
  border: 1px solid #096ddd;
  text-decoration: none;
  box-shadow: none;
}
.shande-seller-apply button.sa-btn--code:hover:not(:disabled),
.shande-seller-apply button.sa-btn--code:focus:not(:disabled),
.shande-seller-apply button.sa-btn--code:active:not(:disabled) {
  background: #eff6ff;
  color: #096ddd;
  border-color: #096ddd;
  text-decoration: none;
  box-shadow: none;
  outline: none;
  transform: none;
}
.shande-seller-apply button.sa-btn--code:disabled {
  background: #f8fafc;
  color: #94a3b8;
  border-color: #cbd5e1;
  box-shadow: none;
}

/* 错误提示使用语义红色，不跟随品牌主色 */
.shande-seller-apply .sa-form__error,
.shande-seller-apply #e_face {
  color: #dc2626;
}
.shande-seller-apply .sa-input.has-error,
.shande-seller-apply .sa-textarea.has-error {
  border-color: #dc2626;
}

@media (max-width: 640px) {
  .shande-seller-apply .sa-id-uploads {
    grid-template-columns: 1fr;
  }
  .shande-seller-apply .sa-date-input {
    flex: 1 1 calc(50% - 18px);
  }
  .shande-seller-apply .sa-calendar {
    left: 0 !important;
    right: 0;
    width: min(292px, 100%);
  }
}

/* 身份证上传卡：示意图即上传入口，上传预览直接覆盖图像区 */
.shande-seller-apply .sa-id-uploads > .sa-id-card-upload {
  width: 100%;
  min-width: 0;
  padding: 0;
  gap: 0;
  overflow: hidden;
  display: block;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
  text-align: center;
}
.shande-seller-apply .sa-id-uploads > .sa-id-card-upload:hover {
  border-color: #93c5fd;
  background: #fff;
  box-shadow: none;
  transform: none;
}
.shande-seller-apply .sa-id-card-upload__stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1.58 / 1;
  overflow: hidden;
  background: linear-gradient(145deg,#f8fafc,#f1f5f9);
}
.shande-seller-apply .sa-id-card-upload .sa-upload-box__placeholder {
  position: absolute;
  inset: 0;
  display: block;
  padding: 8px;
  background: #f8fafc;
  box-sizing: border-box;
}
.shande-seller-apply .sa-id-card-art {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 4px;
  object-fit: fill;
  filter: blur(.25px);
  opacity: .82;
}
.shande-seller-apply .sa-id-card-upload__camera {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 72px;
  height: 72px;
  transform: translate(-50%,-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: rgba(255,255,255,.88);
  background: rgba(85,132,224,.48);
  border: 1px solid rgba(255,255,255,.30);
  box-shadow: 0 8px 20px rgba(79,124,240,.14);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.shande-seller-apply .sa-id-card-upload__camera svg {
  width: 31px;
  height: 31px;
}
.shande-seller-apply .sa-id-card-upload:hover .sa-id-card-upload__camera {
  transform: translate(-50%,-50%);
  background: rgba(75,118,210,.58);
  box-shadow: 0 8px 20px rgba(79,124,240,.14);
}
.shande-seller-apply .sa-id-card-upload .sa-upload-box__preview {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  z-index: 3;
}
.shande-seller-apply .sa-id-card-upload .sa-upload-box__preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border: 0;
  border-radius: 0;
}
.shande-seller-apply .sa-id-card-upload .sa-upload-box__preview {
  z-index: auto;
}
.shande-seller-apply .sa-id-card-upload .sa-upload-box__delete {
  z-index: 7;
  top: 8px;
  right: 8px;
  width: 22px;
  height: 22px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(15,23,42,.5);
  color: #fff;
  border: 0;
  font-size: 15px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(15,23,42,.24);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.shande-seller-apply .sa-id-card-upload .sa-upload-box__delete:hover,
.shande-seller-apply .sa-id-card-upload .sa-upload-box__delete:focus {
  background: #ef4444;
  color: #fff;
  border: 0;
  transform: scale(1.08);
  box-shadow: 0 3px 9px rgba(239,68,68,.34);
}
.shande-seller-apply .sa-id-card-upload.has-file {
  border-style: solid;
  border-color: #86b2fa;
  background: #fff;
}
.shande-seller-apply .sa-id-card-upload.has-file .sa-upload-box__placeholder {
  display: none;
}

/* 身份证 OCR：两张卡同步骨架遮罩、短状态提示和本地 URL 测试区 */
.shande-seller-apply .sa-id-ocr-mask {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  overflow: hidden;
  color: #1d4ed8;
  background: rgba(239,246,255,.84);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  pointer-events: none;
}
.shande-seller-apply .is-ocr-loading .sa-id-ocr-mask { display: flex; }
.shande-seller-apply .sa-id-ocr-mask__skeleton {
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 25%, rgba(255,255,255,.82) 42%, transparent 60%);
  transform: translateX(-100%);
  animation: sa-id-ocr-shimmer 1.15s ease-in-out infinite;
}
.shande-seller-apply .sa-id-ocr-mask b {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 13px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 8px 24px rgba(30,64,175,.13);
  font-size: 13px;
}
.shande-seller-apply .sa-id-ocr-mask b::before {
  content: "";
  width: 13px;
  height: 13px;
  border: 2px solid #bfdbfe;
  border-top-color: #2563eb;
  border-radius: 50%;
  animation: sa-id-ocr-spin .7s linear infinite;
}
.shande-seller-apply .sa-id-card-upload.is-ocr-success { border-color: #22c55e; }
.shande-seller-apply .sa-id-card-upload.is-ocr-error { border-color: #ef4444; }
.shande-seller-apply .sa-id-ocr-status {
  display: none;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.6;
}
.shande-seller-apply .sa-id-ocr-status.is-visible { display: block; }
.shande-seller-apply .sa-id-ocr-status.is-loading { color: #2563eb; }
.shande-seller-apply .sa-id-ocr-status.is-success { color: #16a34a; }
.shande-seller-apply .sa-id-ocr-status.is-error { color: #dc2626; }
.shande-seller-apply .sa-id-ocr-test {
  margin-top: 12px;
  padding: 13px 14px;
  border: 1px dashed #bfdbfe;
  border-radius: 8px;
  background: #f8fbff;
}
.shande-seller-apply .sa-id-ocr-test p {
  margin: 0 0 9px;
  color: #64748b;
  font-size: 12px;
}
.shande-seller-apply .sa-id-ocr-test__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
}
@keyframes sa-id-ocr-shimmer { to { transform: translateX(100%); } }
@keyframes sa-id-ocr-spin { to { transform: rotate(360deg); } }

@media (max-width: 640px) {
  .shande-seller-apply .sa-id-ocr-test__fields { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .shande-seller-apply .sa-id-ocr-mask__skeleton,
  .shande-seller-apply .sa-id-ocr-mask b::before {
    animation: none;
  }
}

@media (max-width: 640px) {
  .shande-seller-apply .sa-id-card-upload__camera {
    width: 60px;
    height: 60px;
  }
  .shande-seller-apply .sa-id-card-upload__camera svg {
    width: 27px;
    height: 27px;
  }
}

/* 人脸认证二维码弹窗 */
.shande-seller-apply .sa-face-modal {
  max-width: 420px;
}
.shande-seller-apply .sa-face-modal__body {
  padding: 28px;
  text-align: center;
}
.shande-seller-apply .sa-face-qr-wrap {
  position: relative;
  width: 216px;
  margin: 0 auto 16px;
}
.shande-seller-apply .sa-face-qr {
  width: 216px;
  min-height: 216px;
  margin: 0;
  padding: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
}
.shande-seller-apply .sa-face-qr img,
.shande-seller-apply .sa-face-qr canvas {
  display: block;
  margin: auto;
}
.shande-seller-apply .sa-face-modal__body p {
  margin: 0 0 10px;
  color: #475569;
  font-size: 13px;
}
.shande-seller-apply .sa-face-open {
  color: #096ddd;
  font-size: 12px;
  text-decoration: none;
}
.shande-seller-apply button.sa-modal__close {
  padding: 0;
  color: #94a3b8;
  background: transparent;
  border: 0;
  box-shadow: none;
}

/* 人脸认证成功按钮隐藏，避免主题按钮 display 规则覆盖原生 hidden 属性 */
.shande-seller-apply #btnFaceVerify[hidden] {
  display: none !important;
}

.shande-seller-apply .sa-face-refresh {
  position: absolute;
  inset: 0;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 0;
  color: #dc2626;
  background: rgba(255,255,255,.62);
  border: 0;
  border-radius: 6px;
  box-shadow: none;
  font-size: 12px;
  cursor: pointer;
}
.shande-seller-apply .sa-face-refresh svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.shande-seller-apply .sa-face-modal__body.is-failed .sa-face-qr {
  filter: blur(5px);
  opacity: .52;
}
.shande-seller-apply .sa-face-modal__body.is-failed .sa-face-refresh {
  display: flex;
}
.shande-seller-apply .sa-face-modal__body.is-failed #faceStatus {
  color: #dc2626;
  font-weight: 600;
}
.shande-seller-apply .sa-face-refresh.is-loading {
  display: flex;
  pointer-events: none;
}
.shande-seller-apply .sa-face-refresh.is-loading svg {
  animation: sa-face-refresh-spin .8s linear infinite;
}
@keyframes sa-face-refresh-spin {
  to { transform: rotate(360deg); }
}

/* 实名备案卡片使用纯平面布局 */
.shande-seller-apply .sa-card {
  border: 0;
  box-shadow: none;
}
/* 同一步骤内多张卡片之间加分割线做区隔（最后一张不加），避免堆在一起分不清 */
.shande-seller-apply .sa-panel .sa-card + .sa-card {
  border-top: 1px solid #eef0f3;
}

/* 下一步异步校验加载状态 */
.shande-seller-apply #btn1Next.is-loading,
.shande-seller-apply #btn3Next.is-loading {
  gap: 8px;
  cursor: wait;
}
.shande-seller-apply .sa-btn__spinner {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  border: 2px solid rgba(255,255,255,.42);
  border-top-color: #fff;
  border-radius: 50%;
  animation: sa-button-spin .7s linear infinite;
}
@keyframes sa-button-spin {
  to { transform: rotate(360deg); }
}

/* 人脸认证成功：浅绿色容器，原按钮位置显示圆形 SVG 状态 */
.shande-seller-apply .sa-face-verify {
  transition: background-color .2s ease, border-color .2s ease;
}
.shande-seller-apply .sa-face-verify.is-verified {
  background: #f0fdf4;
  border-color: #bbf7d0;
}
.shande-seller-apply .sa-face-verify.is-verified > svg {
  stroke: #16a34a;
}
.shande-seller-apply .sa-face-verify__success {
  display: none;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  margin-left: auto;
  color: #15803d;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}
.shande-seller-apply .sa-face-verify__success.is-visible {
  display: inline-flex;
}
.shande-seller-apply .sa-face-verify__success-icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  fill: #16a34a;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* 身份证文件真实上传进度：按需求隐藏（改用卡片状态 + OCR 状态文案反馈） */
.shande-seller-apply .sa-id-upload-progress {
  display: none !important;
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #f8fbff;
}
.shande-seller-apply .sa-id-upload-progress[hidden] { display: none !important; }
.shande-seller-apply .sa-id-upload-progress__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 7px;
  color: #475569;
  font-size: 12px;
  line-height: 1.5;
}
.shande-seller-apply .sa-id-upload-progress__meta strong { color: #2563eb; }
.shande-seller-apply .sa-id-upload-progress__track {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #dbeafe;
}
.shande-seller-apply .sa-id-upload-progress__track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2563eb, #60a5fa);
  transition: width .18s ease;
}
.shande-seller-apply .sa-id-upload-progress.is-uploading {
  border-color: #bfdbfe;
  background: #eff6ff;
}
.shande-seller-apply .sa-id-upload-progress.is-indeterminate .sa-id-upload-progress__track span,
.shande-seller-apply .sa-id-upload-progress.is-processing .sa-id-upload-progress__track span {
  background-image: linear-gradient(105deg, #2563eb 20%, #93c5fd 45%, #2563eb 70%);
  background-size: 200% 100%;
  animation: sa-upload-processing 1.1s linear infinite, sa-upload-indeterminate 1.5s ease-in-out infinite;
}
.shande-seller-apply .sa-id-upload-progress.is-success { border-color: #bbf7d0; background: #f0fdf4; }
.shande-seller-apply .sa-id-upload-progress.is-success .sa-id-upload-progress__meta strong { color: #16a34a; }
.shande-seller-apply .sa-id-upload-progress.is-success .sa-id-upload-progress__track span { background: #22c55e; }
.shande-seller-apply .sa-id-upload-progress.is-error { border-color: #fecaca; background: #fef2f2; }
.shande-seller-apply .sa-id-upload-progress.is-error .sa-id-upload-progress__meta,
.shande-seller-apply .sa-id-upload-progress.is-error .sa-id-upload-progress__meta strong { color: #dc2626; }
.shande-seller-apply .sa-id-upload-progress.is-error .sa-id-upload-progress__track span { background: #ef4444; }
@keyframes sa-upload-processing { to { background-position: -200% 0; } }
/* 未知总量/服务端处理阶段：36% 宽度条在轨道内左右往返滑动 */
@keyframes sa-upload-indeterminate {
  0%   { transform: translateX(-12%); }
  50%  { transform: translateX(178%); }
  100% { transform: translateX(-12%); }
}
@media (max-width: 640px) {
  .shande-seller-apply .sa-id-upload-progress__meta { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .shande-seller-apply .sa-id-upload-progress__track span { transition: none; }
  .shande-seller-apply .sa-id-upload-progress.is-processing .sa-id-upload-progress__track span,
  .shande-seller-apply .sa-id-upload-progress.is-indeterminate .sa-id-upload-progress__track span { animation: none; }
}

/* 步骤操作按钮：上一步 / 下一步及结果页操作按钮尺寸统一。
   使用元素选择器提高固定尺寸规则的权重，使 hover/focus/active 只改变颜色，不再改动几何尺寸。 */
.shande-seller-apply .sa-actions button.sa-btn,
.shande-seller-apply .sa-actions a.sa-btn {
  min-width: 128px;
  padding: 11px 32px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}
.shande-seller-apply .sa-actions button.sa-btn--sm,
.shande-seller-apply .sa-actions a.sa-btn--sm {
  min-width: 0;
}

/* 店铺类型卡片选中标记：用 SVG 对勾替代字体字符 ✓，跨字体/系统渲染一致、更精致 */
.shande-seller-apply .sa-type-card.is-selected .sa-type-card__radio {
  display: flex;
  align-items: center;
  justify-content: center;
}
.shande-seller-apply .sa-type-card.is-selected .sa-type-card__radio::after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  margin: 0;
  font-size: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 进入骨架屏：服务端进度校验完成前占位，避免先闪现第一步再跳到第二步的僵硬感 */
.shande-seller-apply .sa-skeleton { display: none; }
.shande-seller-apply .sa-page--booting .sa-skeleton { display: block; }
.shande-seller-apply .sa-page--booting > .sa-panel,
.shande-seller-apply .sa-page--booting > .sa-steps,
.shande-seller-apply .sa-page--booting > .sa-draft-bar { display: none !important; }

/* 步骤条占位：与真实 .sa-steps 白卡片同款（居中、圆点+连线、内边距、下间距） */
.shande-seller-apply .sa-skeleton__steps { display: flex; align-items: center; justify-content: center; gap: 12px; background: #fff; border-radius: 12px; padding: 24px 16px; margin-bottom: 24px; box-shadow: 0 1px 4px rgba(0,0,0,.04); }
/* 卡片占位：与真实（已扁平化）的 .sa-card 一致 */
.shande-seller-apply .sa-skeleton__card { background: #fff; border-radius: 12px; padding: 28px; box-shadow: 0 1px 4px rgba(0,0,0,.04); }
/* 骨架块：柔和底色 + 平滑流光（用背景位移，避免生硬的白色高光带） */
.shande-seller-apply .sa-sk {
  display: block;
  border-radius: 7px;
  background: linear-gradient(90deg, #eef1f6 25%, #e2e7ef 37%, #eef1f6 63%);
  background-size: 400% 100%;
  animation: sa-sk-shimmer 1.4s ease-in-out infinite;
}
@keyframes sa-sk-shimmer {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}
.shande-seller-apply .sa-sk--step { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; }
.shande-seller-apply .sa-sk--line { flex: 1 1 auto; max-width: 90px; height: 4px; border-radius: 2px; }
/* 标题 + 描述：对应 .sa-card__title / .sa-card__desc 的位置与间距 */
.shande-seller-apply .sa-sk--title { width: 150px; height: 18px; margin-bottom: 12px; }
.shande-seller-apply .sa-sk--desc { width: 62%; height: 13px; margin-bottom: 26px; }
/* 表单行：字段占满整行宽度（去掉左侧标签占位，简洁整齐） */
.shande-seller-apply .sa-sk-row { margin-bottom: 18px; }
.shande-seller-apply .sa-sk--field { width: 100%; height: 40px; }
.shande-seller-apply .sa-sk--field-tall { height: 120px; }
.shande-seller-apply .sa-sk--field-md { height: 62px; }
/* 逐行错开动画，形成自上而下的波浪流光，观感更精致 */
.shande-seller-apply .sa-sk-row:nth-child(2n) .sa-sk { animation-delay: .15s; }
.shande-seller-apply .sa-sk-row:nth-child(3n) .sa-sk { animation-delay: .3s; }
@media (max-width: 768px) {
  .shande-seller-apply .sa-skeleton__steps { gap: 6px; padding: 18px 10px; margin-bottom: 16px; }
  .shande-seller-apply .sa-sk--step { width: 26px; height: 26px; }
  .shande-seller-apply .sa-sk--line { max-width: 40px; }
  .shande-seller-apply .sa-skeleton__card { padding: 20px 16px; }
  .shande-seller-apply .sa-sk--title { width: 120px; height: 16px; }
  .shande-seller-apply .sa-sk--desc { width: 80%; margin-bottom: 20px; }
  .shande-seller-apply .sa-sk-row { margin-bottom: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .shande-seller-apply .sa-sk { animation: none; background: #eef1f6; }
}


/* 协议签署：标题与文档链接并排一行；勾选框、专属文件上传各自另起一行 */
.shande-seller-apply .sa-agreement-block {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}
.shande-seller-apply .sa-agreement-block h4 {
  margin: 0;
  flex: 0 0 auto;
}
.shande-seller-apply .sa-agreement-block .sa-agreement-links {
  margin: 0;
  flex: 1 1 auto;
  align-items: center;
}
/* 勾选框与专属文件上传区强制换行、占满整行，避免被挤到标题行 */
.shande-seller-apply .sa-agreement-block .sa-agree-check,
.shande-seller-apply .sa-agreement-block .sa-special-upload {
  flex: 0 0 100%;
  margin-top: 4px;
}
@media (max-width: 640px) {
  .shande-seller-apply .sa-agreement-block { align-items: flex-start; }
  .shande-seller-apply .sa-agreement-block h4 { flex-basis: 100%; }
}


/* 草稿栏：保存时间始终靠最右（「清除草稿」按钮隐藏时也不会让时间贴在文案后面） */
.shande-seller-apply .sa-draft-bar__time {
  margin-left: auto;
}
.shande-seller-apply .sa-draft-bar button {
  margin-left: 0;
}


/* 协议文档链接：悬停不显示下划线 */
.shande-seller-apply .sa-doc-link:hover {
  text-decoration: none;
}


/* 注册/成立日期：使用与第一步一致的自定义日历，字段需相对定位以承载浮层 */
.shande-seller-apply .sa-form__field--date {
  position: relative;
}

/* 收款账户类型切换：由「浅底圆角块」改为底部横线的 Tab 选项 */
.shande-seller-apply .sa-account-switch {
  gap: 24px;
  margin-bottom: 20px;
  padding: 0;
  background: none;
  border: 0;
  border-bottom: 1px solid #e5e7eb;
}
.shande-seller-apply .sa-account-switch .sa-radio-label {
  position: relative;
  gap: 0;
  padding: 10px 2px;
  margin-bottom: -1px;
  color: #6b7280;
  font-weight: 500;
  border-bottom: 2px solid transparent;
  transition: color .2s ease, border-color .2s ease;
}
/* 隐藏原生单选圆点，整个标签即 Tab */
.shande-seller-apply .sa-account-switch .sa-radio-label input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
  pointer-events: none;
}
.shande-seller-apply .sa-account-switch .sa-radio-label:hover {
  color: #096ddd;
}
/* 选中态：文字变主色 + 底部主色横线（:has 命中被选中的单选） */
.shande-seller-apply .sa-account-switch .sa-radio-label:has(input[type="radio"]:checked) {
  color: #096ddd;
  border-bottom-color: #096ddd;
  font-weight: 600;
}


/* 第 3 步证件识别（营业执照 / 开户许可证）自动 OCR 结果提示 */
.shande-seller-apply .sa-ocr-notice {
  margin-top: 8px;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.6;
  border: 1px solid transparent;
}
.shande-seller-apply .sa-ocr-notice.is-loading {
  color: #1d4ed8;
  background: #eff6ff;
  border-color: #bfdbfe;
}
.shande-seller-apply .sa-ocr-notice.is-ok {
  color: #15803d;
  background: #f0fdf4;
  border-color: #bbf7d0;
}
.shande-seller-apply .sa-ocr-notice.is-warn {
  color: #b45309;
  background: #fffbeb;
  border-color: #fde68a;
}
.shande-seller-apply .sa-ocr-notice.is-error {
  color: #b42318;
  background: #fef2f2;
  border-color: #fecaca;
}


/* 宽版上传框（营业执照 / 开户许可证 / 专属文件）：拖拽上传 + 规整预览 + 与身份证一致的删除按钮 */
.shande-seller-apply .sa-upload-box--wide {
  position: relative;
  flex-direction: column;
}
.shande-seller-apply .sa-upload-box.is-dragover {
  border-color: #096ddd;
  background: #eff6ff;
}
.shande-seller-apply .sa-upload-box--wide .sa-upload-box__preview {
  position: relative;
  width: 100%;
  margin: 0;
}
/* 覆盖 Astra 全局 img{height:auto}：预览固定为横版留白框，整图 contain 显示、不裁切不拉伸 */
.shande-seller-apply .sa-upload-box--wide .sa-upload-box__preview img {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: contain;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}
/* 删除按钮：与身份证上传统一（右上角深色半透明圆形 + 白色 ×，hover 变红） */
.shande-seller-apply .sa-upload-box--wide .sa-upload-box__delete {
  top: 10px;
  right: 10px;
  width: 24px;
  height: 24px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(15,23,42,.5);
  color: #fff;
  border: 0;
  font-size: 15px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(15,23,42,.24);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.shande-seller-apply .sa-upload-box--wide .sa-upload-box__delete:hover,
.shande-seller-apply .sa-upload-box--wide .sa-upload-box__delete:focus {
  background: #ef4444;
  color: #fff;
  transform: scale(1.08);
  box-shadow: 0 3px 9px rgba(239,68,68,.34);
}
/* 有文件时：收紧内边距，让预览成为主体 */
.shande-seller-apply .sa-upload-box--wide.has-file {
  padding: 12px;
}


/* ===== 提交结果信息：去掉底色/边框/圆角/内边距，仅保留文字 ===== */
.shande-seller-apply .sa-result-info {
  display: block;
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin: 0 0 16px;
  text-align: center;
}
.shande-seller-apply .sa-result-info div {
  justify-content: center;
}

/* ===== 提交结果 / 审核状态：驳回原因展示（全宽纯文本，居中，无底色/边框/圆角，底部分割线） ===== */
.shande-seller-apply .sa-result-reject {
  text-align: center;
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0 0 18px;
  margin: 14px 0 18px;
  max-width: none;
  width: 100%;
  border-bottom: 1px solid #eef0f3;
}
.shande-seller-apply .sa-result-reject__label {
  display: block;
  font-size: 12.5px;
  color: #dc2626;
  font-weight: 600;
  margin-bottom: 4px;
}
.shande-seller-apply .sa-result-reject__text {
  margin: 0;
  font-size: 13.5px;
  color: #7f1d1d;
  line-height: 1.7;
  white-space: pre-wrap;
  word-break: break-word;
}

/* 第 3 步顶部：驳回横幅（左侧「已被驳回」+ 驳回时间，右侧「查看详情」按钮）——紧凑，参考草稿栏 */
.shande-seller-apply .sa-reject-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 16px;
}
.shande-seller-apply .sa-reject-banner__main {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.shande-seller-apply .sa-reject-banner__icon {
  flex: 0 0 auto;
  display: inline-flex;
  color: #dc2626;
}
.shande-seller-apply .sa-reject-banner__icon svg {
  width: 16px;
  height: 16px;
}
.shande-seller-apply .sa-reject-banner__txt {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
  flex-wrap: wrap;
}
.shande-seller-apply .sa-reject-banner__txt strong {
  font-size: 13px;
  font-weight: 600;
  color: #dc2626;
}
.shande-seller-apply .sa-reject-banner__time {
  font-size: 11px;
  color: #b45c5c;
  white-space: nowrap;
}
.shande-seller-apply .sa-reject-banner__btn {
  flex: 0 0 auto;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 500;
  color: #fff;
  background: #dc2626;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  transition: background .2s;
}
.shande-seller-apply .sa-reject-banner__btn:hover {
  background: #b91c1c;
}

/* 驳回详情弹窗（挂载于 body，作用域用独立类名） */
.sa-reject-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, .55);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.sa-reject-modal.is-open {
  display: flex;
  animation: sa-reject-fade .2s ease;
}
@keyframes sa-reject-fade { from { opacity: 0; } to { opacity: 1; } }
.sa-reject-modal__dialog {
  width: 100%;
  max-width: 480px;
  max-height: 82vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
  overflow: hidden;
  animation: sa-reject-pop .22s cubic-bezier(.2, .9, .3, 1.2);
}
@keyframes sa-reject-pop { from { transform: translateY(16px) scale(.97); opacity: 0; } to { transform: none; opacity: 1; } }
.sa-reject-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #f1f5f9;
}
.sa-reject-modal__head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: #1d2129;
}
.sa-reject-modal__close {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  color: #86909c;
  background: none;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.sa-reject-modal__close:hover { background: #f5f7fa; color: #1d2129; }
.sa-reject-modal__body {
  padding: 20px;
  overflow-y: auto;
}
.sa-reject-modal__reason {
  padding: 14px 16px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 10px;
  margin-bottom: 20px;
}
.sa-reject-modal__reason-title {
  font-size: 12px;
  font-weight: 700;
  color: #dc2626;
  margin-bottom: 6px;
}
.sa-reject-modal__reason-body {
  font-size: 13px;
  color: #7f1d1d;
  line-height: 1.7;
  word-break: break-word;
}
.sa-reject-modal__tl-title {
  font-size: 13px;
  font-weight: 700;
  color: #1d2129;
  margin-bottom: 14px;
}
/* 驳回记录时间轴 */
.sa-reject-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sa-reject-timeline__item {
  position: relative;
  padding: 0 0 18px 22px;
}
.sa-reject-timeline__item:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 5px;
  top: 12px;
  bottom: 0;
  width: 2px;
  background: #f1d5d5;
}
.sa-reject-timeline__dot {
  position: absolute;
  left: 0;
  top: 4px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #fca5a5;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px #fca5a5;
}
.sa-reject-timeline__item.is-latest .sa-reject-timeline__dot {
  background: #dc2626;
  box-shadow: 0 0 0 1px #dc2626;
}
.sa-reject-timeline__time {
  font-size: 12px;
  font-weight: 600;
  color: #4b5563;
  margin-bottom: 4px;
}
.sa-reject-timeline__reason {
  font-size: 12.5px;
  color: #6b7280;
  line-height: 1.6;
  word-break: break-word;
}


/* ===== 协议阅读闸门：逐份查看并「我已阅读」后方可勾选同意 ===== */
/* 已阅读链接不再追加对勾标记（仅内部记录已读状态用于解锁勾选框）。 */
/* 未解锁时不禁用勾选框：保持可点击，点击后由 JS 触发晃动 + 变红 + 右上角提示 */
.shande-seller-apply .sa-agree-check {
  transition: color .2s;
}
.shande-seller-apply .sa-agree-check.is-warn {
  color: #dc2626;
}
.shande-seller-apply .sa-agree-check.is-warn input[type="checkbox"] {
  outline: 2px solid #f87171;
  outline-offset: 1px;
  border-radius: 3px;
}
.shande-seller-apply .sa-agree-check.is-shake {
  animation: sa-agree-shake .5s cubic-bezier(.36, .07, .19, .97);
}
@keyframes sa-agree-shake {
  10%, 90% { transform: translateX(-1px); }
  20%, 80% { transform: translateX(2px); }
  30%, 50%, 70% { transform: translateX(-4px); }
  40%, 60% { transform: translateX(4px); }
}

/* 右上角轻提示 Toast 已抽为全站公用组件 .shande-toast（见 inc/elementor/assets/shande-base.css） */


/* ===== 按钮几何锁定：防止主题（Astra）在 hover/focus/active 时改变边框宽度、行高、阴影或位移，
   造成「修改资料重新提交」等按钮悬停时高度跳动。源码 .sa-btn:hover 本意只改颜色。
   用「.shande-seller-apply .sa-btn」两级类（0,2,0）盖过 Astra 的「.body-class button:hover」（0,1,1）。 ===== */
.shande-seller-apply .sa-btn,
.shande-seller-apply .sa-btn:hover,
.shande-seller-apply .sa-btn:focus,
.shande-seller-apply .sa-btn:active {
  box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  line-height: 1.4;
  box-shadow: none;
  transform: none;
  vertical-align: middle;
  padding: 8px 20px;
  font-size: 13px;
}
/* 尺寸修饰各自锁定 padding/font-size（同为 0,2,0，置于基础规则之后覆盖），确保 hover 不改变高度 */
.shande-seller-apply .sa-btn--lg,
.shande-seller-apply .sa-btn--lg:hover,
.shande-seller-apply .sa-btn--lg:focus,
.shande-seller-apply .sa-btn--lg:active {
  padding: 11px 32px;
  font-size: 14px;
}
.shande-seller-apply .sa-btn--sm,
.shande-seller-apply .sa-btn--sm:hover,
.shande-seller-apply .sa-btn--sm:focus,
.shande-seller-apply .sa-btn--sm:active {
  padding: 6px 14px;
  font-size: 12px;
}


/* ===== 店铺名实时查重：可用（绿）/ 不可用（红，沿用默认 error 色）===== */
.shande-seller-apply .sa-form__error.is-ok {
  color: #16a34a;
}

/* ===== 未登录闸门卡片（进入入驻页未登录时展示）===== */
.shande-seller-apply .sa-login-gate .sa-result-icon {
  color: #f59e0b;
}
.shande-seller-apply .sa-login-gate .sa-result-title {
  margin-top: 4px;
}


/* ===== 店铺类型卡片：收紧规则列表左边距 ===== */
.shande-seller-apply .sa-type-card__body ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.shande-seller-apply .sa-type-card__body ul li {
  padding-left: 14px;
}

/* ===== 店铺类型卡片：已开通 / 已封禁 右下角角标（暖金渐变，带圆角） =====
   命中 JS 生成的 .sa-type-card__badge 类名 */
.shande-seller-apply .sa-type-card { position: relative; }
.shande-seller-apply .sa-type-card.has-badge { overflow: hidden; }
.shande-seller-apply .sa-type-card__badge {
  position: absolute;
  bottom: 12px;
  right: 12px;
  z-index: 3;
  padding: 4px 12px;
  border-radius: 999px;
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .5px;
  white-space: nowrap;
  color: #7a4a00;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
  background: linear-gradient(135deg, #fdeaa9 0%, #f6c74e 52%, #e2a527 100%);
  pointer-events: none;
}
.shande-seller-apply .sa-type-card__badge--banned {
  color: #fff;
  text-shadow: 0 1px 1px rgba(120, 10, 10, .45);
  background: linear-gradient(135deg, #f87171 0%, #dc2626 55%, #b91c1c 100%);
}

/* ===== 已开通 / 已封禁类型禁止再次选择 ===== */
.shande-seller-apply .sa-type-card.is-disabled {
  cursor: not-allowed;
  opacity: .65;
}
.shande-seller-apply .sa-type-card.is-disabled:hover {
  border-color: #f1f5f9;
  background: #fff;
}

/* ===== 店铺名称实时查重：输入框骨架加载动画（检测中，取代下方「检测中…」文字） ===== */
.shande-seller-apply .sa-input.is-checking {
  background-image: linear-gradient(90deg, rgba(9,109,221,0) 0%, rgba(9,109,221,.10) 50%, rgba(9,109,221,0) 100%);
  background-size: 200% 100%;
  background-repeat: no-repeat;
  animation: sa-input-shimmer 1.1s ease-in-out infinite;
}
@keyframes sa-input-shimmer {
  0% { background-position: 180% 0; }
  100% { background-position: -80% 0; }
}


/* ===== 手机 / 窄平板适配：表单、第三步资料区与开店规则表 ===== */
@media (max-width: 768px) {
  /* 步骤条：连接线对齐到数字圆圈的垂直中心（圆 34px、线 2px → margin-top 16px），
     不再受下方标签高度影响导致的居中偏移。 */
  .shande-seller-apply .sa-steps {
    align-items: flex-start;
  }
  .shande-seller-apply .sa-step__line {
    margin-top: 16px;
    margin-bottom: 0;
    align-self: flex-start;
  }

  .shande-seller-apply .sa-panel,
  .shande-seller-apply .sa-card,
  .shande-seller-apply .sa-form,
  .shande-seller-apply .sa-form__row {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .shande-seller-apply .sa-form__row {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }

  .shande-seller-apply .sa-form__label {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding-top: 0;
    text-align: left;
  }

  .shande-seller-apply .sa-form__field,
  .shande-seller-apply .sa-form__field--row,
  .shande-seller-apply .sa-input-group {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .shande-seller-apply input.sa-input,
  .shande-seller-apply textarea.sa-textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  /* 适配器使用 grid，需显式改为单列；基础样式的 flex-direction 对它无效。 */
  .shande-seller-apply .sa-id-uploads {
    grid-template-columns: minmax(0, 1fr);
  }

  .shande-seller-apply #panel3 .sa-upload-box--wide,
  .shande-seller-apply #panel3 .sa-special-upload,
  .shande-seller-apply #panel3 .sa-agreement-block,
  .shande-seller-apply #panel3 .sa-agreement-links {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .shande-seller-apply #panel3 .sa-upload-box--wide .sa-upload-box__preview,
  .shande-seller-apply #panel3 .sa-upload-box--wide .sa-upload-box__preview img {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .shande-seller-apply #panel3 .sa-account-switch {
    flex-wrap: wrap;
    gap: 0 16px;
  }

  .shande-seller-apply #panel3 .sa-account-switch .sa-radio-label {
    flex: 1 1 140px;
    min-width: 0;
    white-space: normal;
  }

  .shande-seller-apply #panel3 .sa-agreement-block {
    align-items: flex-start;
  }

  .shande-seller-apply #panel3 .sa-agreement-block h4,
  .shande-seller-apply #panel3 .sa-agreement-block .sa-agreement-links,
  .shande-seller-apply #panel3 .sa-agree-check {
    flex-basis: 100%;
    min-width: 0;
  }

  .shande-seller-apply #panel3 .sa-agree-check {
    width: 100%;
    align-items: flex-start;
    white-space: normal;
  }

  .shande-seller-apply #panel3 .sa-agree-check input {
    flex: 0 0 auto;
  }

  /* 三列长文本保留表格语义，手机端横向滑动，避免每个字被挤成一列。 */
  .shande-seller-apply .sa-rule-box {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 12px;
    box-sizing: border-box;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
  }

  .shande-seller-apply .sa-rule-table {
    width: 100%;
    min-width: 620px;
  }

  .shande-seller-apply .sa-rule-table th {
    white-space: nowrap;
  }
}

@media (max-width: 480px) {
  .shande-seller-apply #panel3 > .sa-actions {
    width: 100%;
    max-width: 100%;
    gap: 8px;
  }

  .shande-seller-apply #panel3 > .sa-actions button.sa-btn {
    flex: 1 1 0;
    min-width: 0;
    padding-left: 12px;
    padding-right: 12px;
  }
}