/* ================================================================
 * 易数合同 · 品牌接管层（样式）
 *
 * 作用：让自建开放签内核的签署页、云盾的实名与意愿确认页，
 *      在视觉上统一为「易数合同」。
 * 边界：只换皮，不改功能。签署、实名、意愿确认仍由开放签内核提供，
 *      否则就成了「假装签署」，可信度归零。
 * ================================================================ */

:root,
.van-theme-light,
html[data-theme='light'],
body {
  /* 开放签签署端用 Vant 4，主色一个变量就够 */
  --van-primary-color: #ff7a1a;
  --van-blue: #ff7a1a;
  --van-button-primary-background-color: #ff7a1a;
  --van-button-primary-border-color: #ff7a1a;
  --van-button-primary-color: #ffffff;
  --van-notice-bar-background: #fff5ec;
  --van-notice-bar-text-color: #a84700;
  --van-notice-bar-left-icon-color: #ff7a1a;
  --van-nav-bar-title-text-color: #1a1a1a;

  /* 云盾用 Vben + antd 5，主色变量名不同，两个都写 */
  --ant-color-primary: #ff7a1a;
  --van-success-color: #23b26d;
}

/* ---------- 启动层：进入瞬间先看到易数，而不是别人 ---------- */
#ys-boot {
  position: fixed;
  inset: 0;
  z-index: 2147483600;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(160deg, #fffaf5 0%, #fff2e5 55%, #ffe9d6 100%);
  transition: opacity 0.28s ease;
  -webkit-tap-highlight-color: transparent;
}
#ys-boot.ys-boot-out {
  opacity: 0;
  pointer-events: none;
}
.ys-boot-in {
  display: flex;
  flex-direction: column;
  align-items: center;
  transform: translateY(-6vh);
}
.ys-boot-logo {
  width: 84px;
  height: 84px;
  border-radius: 22px;
  background: #ff7a1a;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 28px rgba(255, 122, 26, 0.28);
  animation: ys-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.ys-boot-logo svg {
  width: 46px;
  height: 46px;
}
.ys-boot-name {
  margin-top: 20px;
  font-size: 19px;
  font-weight: 600;
  letter-spacing: 2px;
  color: #2b1a0e;
}
.ys-boot-sub {
  margin-top: 8px;
  font-size: 13px;
  letter-spacing: 1px;
  color: #a9805f;
}
.ys-boot-bar {
  margin-top: 26px;
  width: 108px;
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 122, 26, 0.16);
  overflow: hidden;
}
.ys-boot-bar i {
  display: block;
  width: 40%;
  height: 100%;
  border-radius: 2px;
  background: #ff7a1a;
  animation: ys-slide 1.15s ease-in-out infinite;
}
@keyframes ys-pop {
  from { opacity: 0; transform: scale(0.82); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes ys-slide {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(250%); }
}

/* ---------- 换肤：把开放签的蓝换成易数橙 ---------- */

/* 主按钮（签署 / 确认）：橙底白字 */
.van-button--primary {
  background-color: #ff7a1a !important;
  border-color: #ff7a1a !important;
  background-image: none !important;
}

/* 开放签给底部两个按钮挂了自定义类，且优先级高于上面的单类选择器。
   这里必须用「类 + 类」把它压回去，否则「拒签」会被染成橙底红字，读都读不清。 */
.van-button.custom-button-primary {
  background-color: #ff7a1a !important;
  border-color: #ff7a1a !important;
  color: #ffffff !important;
  /* 关键：开放签给「签署」按钮挂了
     linear-gradient(90deg,#0084ff,#6ebeff) 的背景图，
     光改 background-color 是压不住的——算出来的颜色是橙的，肉眼看到的还是蓝的。 */
  background-image: none !important;
}
.van-button.custom-button-minor {
  background-color: #ffffff !important;
  border-color: #e3d5c6 !important;
  color: #5c4632 !important;
  background-image: none !important;
}

/* 次要按钮（进度 / 详情 / 定位）：白底浅边橙字，不做色块 */
.van-button--primary.van-button--plain {
  background-color: #ffffff !important;
  border-color: #f0d9c4 !important;
  color: #d9630a !important;
}
.van-nav-bar__text,
.van-nav-bar .van-icon {
  color: #ff7a1a !important;
}
.van-nav-bar::after {
  border-bottom-color: #f0e2d5;
}
.van-checkbox__icon--checked .van-icon,
.van-radio__icon--checked .van-icon {
  background-color: #ff7a1a !important;
  border-color: #ff7a1a !important;
}
.van-slider__bar,
.van-switch--on {
  background-color: #ff7a1a !important;
}
.van-tabs__line {
  background-color: #ff7a1a !important;
}
.van-loading__spinner {
  color: #ff7a1a !important;
}

/* 签署邀请页顶部是 Vant 的 primary 渐变条（rgb(59,130,246) → rgb(37,99,235)），
   纯蓝，和易数一点关系都没有。这里换成橙。 */
.van-gradient--primary,
.base-header.van-gradient--primary {
  background-image: linear-gradient(to right, #ff8a33, #ff6b0a) !important;
}

/* 签署页顶部的固定提示条。
   注意：它的颜色是内联 style（color:#1989fa; background:#ecf9ff），
   改 CSS 变量没用，必须用 !important 才能压过内联样式。
   范围限定在 .sign-notice-bar-fixed 内，避免把红色错误提示也染成橙色。 */
.sign-notice-bar-fixed {
  background-color: #fff5ec !important;
  border-bottom: 1px solid #ffe3ca;
}
.sign-notice-bar-fixed .van-notice-bar {
  color: #a84700 !important;
  background: #fff5ec !important;
}
.sign-notice-bar-fixed .van-notice-bar__content,
.sign-notice-bar-fixed .van-notice-bar__right-icon {
  color: #a84700 !important;
}

/* antd 5（云盾）主色兜底 */
.ant-btn-primary {
  background-color: #ff7a1a !important;
  border-color: #ff7a1a !important;
}
.ant-btn-primary:not(:disabled):hover {
  background-color: #ff8f3d !important;
  border-color: #ff8f3d !important;
}
.ant-input:focus,
.ant-input-focused,
.ant-input-affix-wrapper-focused {
  border-color: #ff7a1a !important;
  box-shadow: 0 0 0 2px rgba(255, 122, 26, 0.12) !important;
}
.ant-checkbox-checked .ant-checkbox-inner {
  background-color: #ff7a1a !important;
  border-color: #ff7a1a !important;
}
.ant-radio-checked .ant-radio-inner {
  border-color: #ff7a1a !important;
}
.ant-radio-checked .ant-radio-inner::after {
  background-color: #ff7a1a !important;
}
.ant-tabs-ink-bar {
  background: #ff7a1a !important;
}
.ant-spin-dot-item {
  background-color: #ff7a1a !important;
}
.ant-slider-track,
.ant-slider-handle::after {
  background-color: #ff7a1a !important;
}

/* ---------- 贴一条我们自己的身份标识，替代对方的 logo ---------- */
.ys-badge {
  position: fixed;
  left: 50%;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 66px);
  transform: translateX(-50%);
  z-index: 2147483000;
  display: none;
  align-items: center;
  gap: 5px;
  padding: 3px 10px 3px 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 2px 10px rgba(120, 70, 20, 0.1);
  font-size: 11px;
  letter-spacing: 0.5px;
  color: #a9805f;
  pointer-events: none;
}
.ys-badge svg {
  width: 12px;
  height: 12px;
}

/* 被替换掉的第三方 logo 占位（保持布局不塌） */
img.ys-logo-slot {
  object-fit: contain !important;
}
