/*
*个人中心白色版本
*
*/
/**
 * 大转盘模块设计令牌（QDPT-7 视觉改造）
 *
 * 复用站内既有令牌，不自起色值：
 *   主色 #F5565B（theme.css:8 --primary-highlight-color，全站 490 处引用）
 *   主色浅底 #FFF4F4（theme.css:9 --primary-highlight-color-light-1）
 *   主要文字 #282828（theme.css:7 --222222-light-1）
 *   次要文字 #6F6F6F（theme.css:22 --secondary-text-color）
 *   弱化文字 #999999（theme.css:24 --secondary-text-color-light-2）
 *   成功色 #34AA44（globle.less:7 --green）
 *   圆角 16px（globle.less:26 --border-radius-16）
 *   阴影范例 0 4px 20px 0 var(--DCDCDC80-26262990)（HomeRecommendEnterpriseItem.vue:174）
 *
 * ============================================================================
 * Element Plus 主题覆盖 · 作用域影响面评估结论
 * ----------------------------------------------------------------------------
 * 依赖实测：element-plus 锁定版本 1.0.2-beta.71（yarn.lock:4100），
 * 已解包核验其 theme-chalk/index.css 实际产物。
 *
 * 1) 作用域必须局部，不能全局 :root
 *    全站 type="primary" 共 31 处，分布在 18 个 Lottery 目录外的文件中
 *    （登录/注册弹层、招聘表单、活动报名、作品详情评论等）；
 *    全局覆盖 --el-color-primary 会把这些页面的按钮/筛选器一并改成红色，
 *    超出「只改抽奖页视觉」的授权范围。
 *    → 采用局部作用域：仅在 Lottery 模块根节点声明 CSS 变量。
 *
 * 2) 弹层（el-dialog）需单独声明
 *    el-dialog 走 teleport，内容挂到 body 下，不在页面根节点的 DOM 子树内，
 *    继承不到页面作用域的变量。
 *    1.0.2-beta.71 实测提供 customClass prop（lib/el-dialog/index.js:206,319），
 *    该 class 会落到 .el-dialog 元素上（el-overlay > .el-dialog > header/body/footer），
 *    因此在 .el-dialog 这一层声明变量即可覆盖弹层内的 header / body / footer，
 *    比在 body 内节点上声明更完整（footer 的「确认抽奖」按钮也覆盖到）。
 *
 * 3) primary 按钮必须额外硬覆盖（关键差异，与 Element Plus 2.x 不同）
 *    该版本 .el-button--primary 的变量是【元素级硬编码】，不读 --el-color-primary：
 *      .el-button--primary{--el-button-background-color:#409eff; ...}
 *    且 .el-button 元素级声明了 --el-button-background-color: var(--el-color-white)，
 *    元素级声明优先级高于祖先继承，故在作用域上设同名变量【无效】。
 *    → 必须在作用域内用 .el-button--primary 选择器重新声明按钮专用变量。
 *
 * 4) 变量名按实测取值，不照搬 Element Plus 2.x 命名
 *    禁用态实测为 --el-button-disabled-background-color（2.x 文档常写 -bg-color）。
 *
 * 5) 确认读变量、覆盖即生效的组件
 *    el-radio-button 选中态  → var(--el-color-primary)            ✅
 *    el-pager li.active      → var(--el-color-primary)            ✅
 *    el-pagination hover     → var(--el-color-primary)            ✅
 *    el-input / el-checkbox / el-alert 边框与勾选  → 读主色变量   ✅
 */
/* ---------- 主色系 ---------- */
/* ---------- 中性色 ---------- */
/* ---------- 语义色 ---------- */
/* ---------- 次强调色（保留橙，仅用于售罄等次级语义） ---------- */
/* ---------- 圆角（设计稿 v2 收敛为 4 档：16 / 12 / 8 / 999 胶囊） ---------- */
/* ---------- 阴影（卡片 / 弹层两档；v2 弹层投影减重） ---------- */
/* ============================================================================
 * 设计稿 v1 扩充令牌（C 端高保真设计稿 6 画布 · 三端共享规格）
 *
 * 来源：qdpt7-lottery-wheel-design 设计稿 :root 色板。
 * 红系全部从站内主色 #F5565B 派生（深化两档），金色系仅服务转盘金属质感与
 * 活动氛围，不进入通用 UI 语义；文字/底色/圆角沿用上方站内令牌，不另起值。
 * ========================================================================== */
/* 深红两档（KV 横幅与转盘区渐变用，仅活动氛围场景） */
/* 橙色系（售罄标 / 警告条；@lottery-accent 即设计稿 --orange） */
/* 分隔线（奖品卡 / 表格用暖灰线；次级描边线为 v2 新增 --line-2） */
/* 金色系（转盘金属环 / 活动氛围；仅服务大转盘与氛围层。
   v2 金色系收敛为 4 阶，--gold-soft 已删除，勿再引用） */
/* 转盘扇区四色循环（红 / 金 / 浅红 / 浅灰），与三端共享同一份 */
/* 金属环渐变（转盘外圈；v2：145deg 亮金起笔、暗金收尾，非首尾循环） */
/* 金属环光影（v2：暖金投影替代 v1 红棕投影，D1-06） */
/* 金属钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，D1-03） */
/* 主按钮（设计稿 v2 btn-pri：红渐变 + 柔影 + 内高光内底影） */
/* KV 横幅渐变底（v2：132deg，#FF6B70 起笔、red-dark 收尾） */
/* 弹层遮罩（设计稿 v2 scrim） */
/**
 * 注意：Element Plus 主题覆盖【不使用 Less mixin 承载 CSS 自定义属性】。
 *
 * 实测（yarn build + 产物校验）：把 --el-* 自定义属性写进 Less mixin 后，
 * 经 less-loader（含 sass-resources-loader 前置）编译时，全局样式入口
 * (src/assets/style/lottery-dialog-theme.less) 的自定义属性块会被整段丢弃，
 * 而同一 mixin 在组件 scoped 样式块中却正常输出 —— 行为不一致且不可控。
 *
 * 因此 Element Plus 主题覆盖统一放在全局样式文件
 * src/assets/style/lottery-element-theme.less 中用【显式选择器】声明，
 * 变量与令牌在本文件仅作为 Less 变量引用，不再经 mixin 传递。
 */
.lottery-form[data-v-3d454e06] {
  /* 字段（设计稿 field：label 上置 + 必填/选填小字） */
}
.lottery-form .dialog-title[data-v-3d454e06] {
  text-align: center;
  margin-bottom: 6px;
}
.lottery-form .dialog-title h4[data-v-3d454e06] {
  font-size: 21px;
  font-weight: 800;
  color: #282828;
  margin: 0;
}
.lottery-form .dialog-title p[data-v-3d454e06] {
  font-size: 13px;
  color: #6F6F6F;
  margin: 6px 0 0;
  line-height: 1.7;
}
.lottery-form .form-row[data-v-3d454e06] {
  margin-top: 16px;
  text-align: left;
  /* 设为默认（checkbox）：垂直居中 */
}
.lottery-form .form-row .form-label[data-v-3d454e06] {
  display: block;
  /* v2 设计稿 fld label：下距 6px（D1-13） */
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 600;
  color: #282828;
}
.lottery-form .form-row .form-label em[data-v-3d454e06] {
  color: #E04146;
  font-style: normal;
  margin-left: 2px;
}
.lottery-form .form-row .form-label i[data-v-3d454e06] {
  font-style: normal;
  font-weight: 400;
  color: #999999;
  font-size: 12px;
  margin-left: 8px;
}
.lottery-form .form-row .form-error[data-v-3d454e06] {
  margin-top: 4px;
  font-size: 12px;
  color: #F56C6C;
  line-height: 18px;
}
.lottery-form .form-row .form-hint[data-v-3d454e06] {
  margin-top: 4px;
  font-size: 13px;
  color: #999999;
  line-height: 18px;
}
.lottery-form .form-row .form-hint .link[data-v-3d454e06] {
  color: #F5565B;
  cursor: pointer;
}
.lottery-form .form-row.form-row--checkbox[data-v-3d454e06] {
  display: flex;
  align-items: center;
  margin-top: 4px;
}
.lottery-form .form-row.form-row--checkbox .form-label[data-v-3d454e06] {
  margin-bottom: 0;
}

/*
*个人中心白色版本
*
*/
.lottery-prize-lightbox[data-v-54098c29] {
  position: fixed;
  inset: 0;
  z-index: 3000;
  background: rgba(0, 0, 0, 0.72);
  display: grid;
  place-items: center;
  padding: 48px;
  cursor: zoom-out;
  /* 原图等比约束居中（不裁切，object-fit contain；square 裁切仅转盘扇区使用） */
}
.lottery-prize-lightbox .lightbox-img[data-v-54098c29] {
  max-width: 100%;
  max-height: 100%;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.4);
  -o-object-fit: contain;
     object-fit: contain;
  cursor: default;
}
/* 淡入淡出 */
.lottery-lightbox-fade-enter-active[data-v-54098c29],
.lottery-lightbox-fade-leave-active[data-v-54098c29] {
  transition: opacity 0.2s ease;
}
.lottery-lightbox-fade-enter-from[data-v-54098c29],
.lottery-lightbox-fade-leave-to[data-v-54098c29] {
  opacity: 0;
}

/*
*个人中心白色版本
*
*/
/**
 * 大转盘模块设计令牌（QDPT-7 视觉改造）
 *
 * 复用站内既有令牌，不自起色值：
 *   主色 #F5565B（theme.css:8 --primary-highlight-color，全站 490 处引用）
 *   主色浅底 #FFF4F4（theme.css:9 --primary-highlight-color-light-1）
 *   主要文字 #282828（theme.css:7 --222222-light-1）
 *   次要文字 #6F6F6F（theme.css:22 --secondary-text-color）
 *   弱化文字 #999999（theme.css:24 --secondary-text-color-light-2）
 *   成功色 #34AA44（globle.less:7 --green）
 *   圆角 16px（globle.less:26 --border-radius-16）
 *   阴影范例 0 4px 20px 0 var(--DCDCDC80-26262990)（HomeRecommendEnterpriseItem.vue:174）
 *
 * ============================================================================
 * Element Plus 主题覆盖 · 作用域影响面评估结论
 * ----------------------------------------------------------------------------
 * 依赖实测：element-plus 锁定版本 1.0.2-beta.71（yarn.lock:4100），
 * 已解包核验其 theme-chalk/index.css 实际产物。
 *
 * 1) 作用域必须局部，不能全局 :root
 *    全站 type="primary" 共 31 处，分布在 18 个 Lottery 目录外的文件中
 *    （登录/注册弹层、招聘表单、活动报名、作品详情评论等）；
 *    全局覆盖 --el-color-primary 会把这些页面的按钮/筛选器一并改成红色，
 *    超出「只改抽奖页视觉」的授权范围。
 *    → 采用局部作用域：仅在 Lottery 模块根节点声明 CSS 变量。
 *
 * 2) 弹层（el-dialog）需单独声明
 *    el-dialog 走 teleport，内容挂到 body 下，不在页面根节点的 DOM 子树内，
 *    继承不到页面作用域的变量。
 *    1.0.2-beta.71 实测提供 customClass prop（lib/el-dialog/index.js:206,319），
 *    该 class 会落到 .el-dialog 元素上（el-overlay > .el-dialog > header/body/footer），
 *    因此在 .el-dialog 这一层声明变量即可覆盖弹层内的 header / body / footer，
 *    比在 body 内节点上声明更完整（footer 的「确认抽奖」按钮也覆盖到）。
 *
 * 3) primary 按钮必须额外硬覆盖（关键差异，与 Element Plus 2.x 不同）
 *    该版本 .el-button--primary 的变量是【元素级硬编码】，不读 --el-color-primary：
 *      .el-button--primary{--el-button-background-color:#409eff; ...}
 *    且 .el-button 元素级声明了 --el-button-background-color: var(--el-color-white)，
 *    元素级声明优先级高于祖先继承，故在作用域上设同名变量【无效】。
 *    → 必须在作用域内用 .el-button--primary 选择器重新声明按钮专用变量。
 *
 * 4) 变量名按实测取值，不照搬 Element Plus 2.x 命名
 *    禁用态实测为 --el-button-disabled-background-color（2.x 文档常写 -bg-color）。
 *
 * 5) 确认读变量、覆盖即生效的组件
 *    el-radio-button 选中态  → var(--el-color-primary)            ✅
 *    el-pager li.active      → var(--el-color-primary)            ✅
 *    el-pagination hover     → var(--el-color-primary)            ✅
 *    el-input / el-checkbox / el-alert 边框与勾选  → 读主色变量   ✅
 */
/* ---------- 主色系 ---------- */
/* ---------- 中性色 ---------- */
/* ---------- 语义色 ---------- */
/* ---------- 次强调色（保留橙，仅用于售罄等次级语义） ---------- */
/* ---------- 圆角（设计稿 v2 收敛为 4 档：16 / 12 / 8 / 999 胶囊） ---------- */
/* ---------- 阴影（卡片 / 弹层两档；v2 弹层投影减重） ---------- */
/* ============================================================================
 * 设计稿 v1 扩充令牌（C 端高保真设计稿 6 画布 · 三端共享规格）
 *
 * 来源：qdpt7-lottery-wheel-design 设计稿 :root 色板。
 * 红系全部从站内主色 #F5565B 派生（深化两档），金色系仅服务转盘金属质感与
 * 活动氛围，不进入通用 UI 语义；文字/底色/圆角沿用上方站内令牌，不另起值。
 * ========================================================================== */
/* 深红两档（KV 横幅与转盘区渐变用，仅活动氛围场景） */
/* 橙色系（售罄标 / 警告条；@lottery-accent 即设计稿 --orange） */
/* 分隔线（奖品卡 / 表格用暖灰线；次级描边线为 v2 新增 --line-2） */
/* 金色系（转盘金属环 / 活动氛围；仅服务大转盘与氛围层。
   v2 金色系收敛为 4 阶，--gold-soft 已删除，勿再引用） */
/* 转盘扇区四色循环（红 / 金 / 浅红 / 浅灰），与三端共享同一份 */
/* 金属环渐变（转盘外圈；v2：145deg 亮金起笔、暗金收尾，非首尾循环） */
/* 金属环光影（v2：暖金投影替代 v1 红棕投影，D1-06） */
/* 金属钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，D1-03） */
/* 主按钮（设计稿 v2 btn-pri：红渐变 + 柔影 + 内高光内底影） */
/* KV 横幅渐变底（v2：132deg，#FF6B70 起笔、red-dark 收尾） */
/* 弹层遮罩（设计稿 v2 scrim） */
/**
 * 注意：Element Plus 主题覆盖【不使用 Less mixin 承载 CSS 自定义属性】。
 *
 * 实测（yarn build + 产物校验）：把 --el-* 自定义属性写进 Less mixin 后，
 * 经 less-loader（含 sass-resources-loader 前置）编译时，全局样式入口
 * (src/assets/style/lottery-dialog-theme.less) 的自定义属性块会被整段丢弃，
 * 而同一 mixin 在组件 scoped 样式块中却正常输出 —— 行为不一致且不可控。
 *
 * 因此 Element Plus 主题覆盖统一放在全局样式文件
 * src/assets/style/lottery-element-theme.less 中用【显式选择器】声明，
 * 变量与令牌在本文件仅作为 Less 变量引用，不再经 mixin 传递。
 */
.lottery-public-list[data-v-52c0b634] {
  padding-bottom: 24px;
  /* 标题行（喇叭图标 + 查看全部 + 实时更新） */
  /* 浅红胶囊滚动条（v2：red-soft 底 + 粉边 + 999px 胶囊，内嵌卡片内） */
  /* 状态标（v2 st：绿「已发放/已到账」/ 橙「待填写地址」） */
  /* 标签配色（v2 四档） */
}
.lottery-public-list .sec-h[data-v-52c0b634] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 24px 0;
}
.lottery-public-list .sec-h .od-icon[data-v-52c0b634] {
  inline-size: 18px;
  block-size: 18px;
  color: #F5565B;
  flex: none;
}
.lottery-public-list .sec-h h3[data-v-52c0b634] {
  font-size: 17px;
  font-weight: 700;
  color: #282828;
  margin: 0;
}
.lottery-public-list .sec-h .more[data-v-52c0b634] {
  margin-left: auto;
  font-size: 13px;
  color: #6F6F6F;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  cursor: pointer;
}
.lottery-public-list .sec-h .more .od-icon[data-v-52c0b634] {
  inline-size: 14px;
  block-size: 14px;
  color: #999999;
}
.lottery-public-list .sec-h .more[data-v-52c0b634]:hover {
  color: #E04146;
}
.lottery-public-list .sec-h .board-live[data-v-52c0b634] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 14px;
  font-size: 12px;
  color: #E04146;
  font-weight: 600;
}
.lottery-public-list .sec-h .board-live i[data-v-52c0b634] {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #34AA44;
  box-shadow: 0 0 0 3px rgba(52, 170, 68, 0.18);
  animation: lottery-pulse-52c0b634 1.6s ease-in-out infinite;
}
.lottery-public-list .marquee[data-v-52c0b634] {
  margin: 14px 24px 0;
  display: flex;
  align-items: center;
  overflow: hidden;
  white-space: nowrap;
  background: #FFF4F4;
  border: 1px solid #ffdfdf;
  border-radius: 999px;
}
.lottery-public-list .mq-track[data-v-52c0b634] {
  display: inline-flex;
  align-items: center;
  gap: 48px;
  width: -moz-max-content;
  width: max-content;
  padding: 7px 0;
  animation: lottery-marquee-52c0b634 24s linear infinite;
}
.lottery-public-list .mq-track[data-v-52c0b634]:hover {
  animation-play-state: paused;
}
.lottery-public-list .mq-track .mq-item[data-v-52c0b634] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-left: 24px;
  font-size: 13px;
  color: #C7363C;
}
.lottery-public-list .mq-track .mq-item b[data-v-52c0b634] {
  font-weight: 700;
}
.lottery-public-list .mq-track .mq-item .od-icon[data-v-52c0b634] {
  inline-size: 15px;
  block-size: 15px;
  color: #F5565B;
  flex: none;
}
.lottery-public-list .list-body[data-v-52c0b634] {
  min-height: 80px;
  /* 公示表（v2：表头红浅底圆角 + 底线分隔；宽度收进卡片内 24px） */
}
.lottery-public-list .list-body table[data-v-52c0b634] {
  width: calc(100% - 48px);
  margin: 14px 24px 0;
  border-collapse: collapse;
  font-size: 13px;
}
.lottery-public-list .list-body thead th[data-v-52c0b634] {
  background: #FFF4F4;
  color: #C7363C;
  font-weight: 600;
  text-align: left;
  padding: 10px 16px;
}
.lottery-public-list .list-body thead th[data-v-52c0b634]:first-child {
  border-radius: 10px 0 0 10px;
}
.lottery-public-list .list-body thead th[data-v-52c0b634]:last-child {
  border-radius: 0 10px 10px 0;
}
.lottery-public-list .list-body tbody td[data-v-52c0b634] {
  padding: 11px 16px;
  border-bottom: 1px solid #F0E9E9;
  color: #282828;
}
.lottery-public-list .list-body tbody td.t-time[data-v-52c0b634],
.lottery-public-list .list-body tbody td.t-user[data-v-52c0b634] {
  color: #6F6F6F;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.lottery-public-list .list-body tbody td.td-name[data-v-52c0b634] {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lottery-public-list .st[data-v-52c0b634] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  padding: 3px 9px;
  border-radius: 999px;
  white-space: nowrap;
}
.lottery-public-list .st.st-ok[data-v-52c0b634] {
  background: #eaf6ec;
  color: #34AA44;
}
.lottery-public-list .st.st-wait[data-v-52c0b634] {
  background: #FFF3E5;
  color: #B45309;
}
.lottery-public-list .empty-text[data-v-52c0b634] {
  padding: 24px 0;
  text-align: center;
  font-size: 13px;
  color: #999999;
}
.lottery-public-list .list-footer[data-v-52c0b634] {
  margin: 16px 0 20px;
  text-align: center;
}
.lottery-public-list .tag[data-v-52c0b634] {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.lottery-public-list .tag-phys[data-v-52c0b634] {
  background: #FFF4F4;
  color: #E04146;
}
.lottery-public-list .tag-virt[data-v-52c0b634] {
  background: #FFF6E0;
  color: #B97E14;
}
.lottery-public-list .tag-point[data-v-52c0b634] {
  background: #FFF3E5;
  color: #B45309;
}
.lottery-public-list .tag-none[data-v-52c0b634] {
  background: #f0f0f2;
  color: #999999;
}
@media (prefers-reduced-motion: reduce) {
.mq-track[data-v-52c0b634],
  .board-live i[data-v-52c0b634] {
    animation: none !important;
}
}
@keyframes lottery-marquee-52c0b634 {
from {
    transform: translateX(0);
}
to {
    transform: translateX(-50%);
}
}
@keyframes lottery-pulse-52c0b634 {
50% {
    opacity: 0.35;
}
}

/*
*个人中心白色版本
*
*/
/**
 * 大转盘模块设计令牌（QDPT-7 视觉改造）
 *
 * 复用站内既有令牌，不自起色值：
 *   主色 #F5565B（theme.css:8 --primary-highlight-color，全站 490 处引用）
 *   主色浅底 #FFF4F4（theme.css:9 --primary-highlight-color-light-1）
 *   主要文字 #282828（theme.css:7 --222222-light-1）
 *   次要文字 #6F6F6F（theme.css:22 --secondary-text-color）
 *   弱化文字 #999999（theme.css:24 --secondary-text-color-light-2）
 *   成功色 #34AA44（globle.less:7 --green）
 *   圆角 16px（globle.less:26 --border-radius-16）
 *   阴影范例 0 4px 20px 0 var(--DCDCDC80-26262990)（HomeRecommendEnterpriseItem.vue:174）
 *
 * ============================================================================
 * Element Plus 主题覆盖 · 作用域影响面评估结论
 * ----------------------------------------------------------------------------
 * 依赖实测：element-plus 锁定版本 1.0.2-beta.71（yarn.lock:4100），
 * 已解包核验其 theme-chalk/index.css 实际产物。
 *
 * 1) 作用域必须局部，不能全局 :root
 *    全站 type="primary" 共 31 处，分布在 18 个 Lottery 目录外的文件中
 *    （登录/注册弹层、招聘表单、活动报名、作品详情评论等）；
 *    全局覆盖 --el-color-primary 会把这些页面的按钮/筛选器一并改成红色，
 *    超出「只改抽奖页视觉」的授权范围。
 *    → 采用局部作用域：仅在 Lottery 模块根节点声明 CSS 变量。
 *
 * 2) 弹层（el-dialog）需单独声明
 *    el-dialog 走 teleport，内容挂到 body 下，不在页面根节点的 DOM 子树内，
 *    继承不到页面作用域的变量。
 *    1.0.2-beta.71 实测提供 customClass prop（lib/el-dialog/index.js:206,319），
 *    该 class 会落到 .el-dialog 元素上（el-overlay > .el-dialog > header/body/footer），
 *    因此在 .el-dialog 这一层声明变量即可覆盖弹层内的 header / body / footer，
 *    比在 body 内节点上声明更完整（footer 的「确认抽奖」按钮也覆盖到）。
 *
 * 3) primary 按钮必须额外硬覆盖（关键差异，与 Element Plus 2.x 不同）
 *    该版本 .el-button--primary 的变量是【元素级硬编码】，不读 --el-color-primary：
 *      .el-button--primary{--el-button-background-color:#409eff; ...}
 *    且 .el-button 元素级声明了 --el-button-background-color: var(--el-color-white)，
 *    元素级声明优先级高于祖先继承，故在作用域上设同名变量【无效】。
 *    → 必须在作用域内用 .el-button--primary 选择器重新声明按钮专用变量。
 *
 * 4) 变量名按实测取值，不照搬 Element Plus 2.x 命名
 *    禁用态实测为 --el-button-disabled-background-color（2.x 文档常写 -bg-color）。
 *
 * 5) 确认读变量、覆盖即生效的组件
 *    el-radio-button 选中态  → var(--el-color-primary)            ✅
 *    el-pager li.active      → var(--el-color-primary)            ✅
 *    el-pagination hover     → var(--el-color-primary)            ✅
 *    el-input / el-checkbox / el-alert 边框与勾选  → 读主色变量   ✅
 */
/* ---------- 主色系 ---------- */
/* ---------- 中性色 ---------- */
/* ---------- 语义色 ---------- */
/* ---------- 次强调色（保留橙，仅用于售罄等次级语义） ---------- */
/* ---------- 圆角（设计稿 v2 收敛为 4 档：16 / 12 / 8 / 999 胶囊） ---------- */
/* ---------- 阴影（卡片 / 弹层两档；v2 弹层投影减重） ---------- */
/* ============================================================================
 * 设计稿 v1 扩充令牌（C 端高保真设计稿 6 画布 · 三端共享规格）
 *
 * 来源：qdpt7-lottery-wheel-design 设计稿 :root 色板。
 * 红系全部从站内主色 #F5565B 派生（深化两档），金色系仅服务转盘金属质感与
 * 活动氛围，不进入通用 UI 语义；文字/底色/圆角沿用上方站内令牌，不另起值。
 * ========================================================================== */
/* 深红两档（KV 横幅与转盘区渐变用，仅活动氛围场景） */
/* 橙色系（售罄标 / 警告条；@lottery-accent 即设计稿 --orange） */
/* 分隔线（奖品卡 / 表格用暖灰线；次级描边线为 v2 新增 --line-2） */
/* 金色系（转盘金属环 / 活动氛围；仅服务大转盘与氛围层。
   v2 金色系收敛为 4 阶，--gold-soft 已删除，勿再引用） */
/* 转盘扇区四色循环（红 / 金 / 浅红 / 浅灰），与三端共享同一份 */
/* 金属环渐变（转盘外圈；v2：145deg 亮金起笔、暗金收尾，非首尾循环） */
/* 金属环光影（v2：暖金投影替代 v1 红棕投影，D1-06） */
/* 金属钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，D1-03） */
/* 主按钮（设计稿 v2 btn-pri：红渐变 + 柔影 + 内高光内底影） */
/* KV 横幅渐变底（v2：132deg，#FF6B70 起笔、red-dark 收尾） */
/* 弹层遮罩（设计稿 v2 scrim） */
/**
 * 注意：Element Plus 主题覆盖【不使用 Less mixin 承载 CSS 自定义属性】。
 *
 * 实测（yarn build + 产物校验）：把 --el-* 自定义属性写进 Less mixin 后，
 * 经 less-loader（含 sass-resources-loader 前置）编译时，全局样式入口
 * (src/assets/style/lottery-dialog-theme.less) 的自定义属性块会被整段丢弃，
 * 而同一 mixin 在组件 scoped 样式块中却正常输出 —— 行为不一致且不可控。
 *
 * 因此 Element Plus 主题覆盖统一放在全局样式文件
 * src/assets/style/lottery-element-theme.less 中用【显式选择器】声明，
 * 变量与令牌在本文件仅作为 Less 变量引用，不再经 mixin 传递。
 */
.lottery-result[data-v-425494b3] {
  /* 中奖头图区 */
  /* 眉标（v2：纯文字，无金胶囊） */
  /* 标题（v2：「等级 · 奖品名」红色粗体） */
  /* 消耗积分 / 余额信息行（C1 整改补 P-C3 契约字段） */
  /* 标签配色（v2 四档，价值金标走 tag-virt） */
  /* 核销状态徽标（C1 整改；与 records 页状态标签同一套语义色） */
  /* 已达上限警告条 */
  /* 发放说明提示条（v2：浅红底红字，无图标） */
  /* confetti 双色彩带（v2 画布 2 原坐标：相对弹层根 left/right 26px，D1-09） */
  /* 补地址表单（v2 画布 2：四字段，label 上置；末字段到按钮间距由 body padding-bottom 20
     承担，对齐设计稿 m-actions margin-top 20，D1-13） */
}
.lottery-result .win-head[data-v-425494b3] {
  text-align: center;
}
.lottery-result .win-glow[data-v-425494b3] {
  position: relative;
  width: 132px;
  height: 132px;
  margin: 0 auto 4px;
  display: grid;
  place-items: center;
  /* AC-109：可放大的真实奖品图给抓取光标提示；占位态保持默认光标 */
  /* 未中奖态：灰度降饱和 + 冷灰光晕 */
}
.lottery-result .win-glow[data-v-425494b3]::before {
  content: '';
  position: absolute;
  inset: -26px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 214, 130, 0.55), rgba(255, 214, 130, 0) 68%);
}
.lottery-result .win-glow img[data-v-425494b3],
.lottery-result .win-glow svg[data-v-425494b3] {
  width: 118px;
  height: 118px;
  position: relative;
  /* 奖品图 1:1 方形 cover 裁切居中（AC-65，Task #8）；svg 兜底插画为方形不受影响 */
  -o-object-fit: cover;
     object-fit: cover;
}
.lottery-result .win-glow img.can-zoom[data-v-425494b3] {
  cursor: zoom-in;
}
.lottery-result .win-glow.gray img[data-v-425494b3],
.lottery-result .win-glow.gray svg[data-v-425494b3] {
  filter: grayscale(0.7);
  opacity: 0.85;
}
.lottery-result .win-glow.gray[data-v-425494b3]::before {
  background: radial-gradient(circle, rgba(200, 200, 205, 0.4), transparent 68%);
}
.lottery-result .win-eyebrow[data-v-425494b3] {
  font-size: 15px;
  color: #6F6F6F;
  margin: 0;
}
.lottery-result .win-title[data-v-425494b3] {
  font-size: 30px;
  font-weight: 800;
  margin-top: 4px;
  letter-spacing: 0.02em;
  color: #E04146;
  word-break: break-all;
}
.lottery-result .win-tags[data-v-425494b3] {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 10px;
}
.lottery-result .win-cost[data-v-425494b3] {
  margin: 10px 0 0;
  font-size: 13px;
  color: #6F6F6F;
}
.lottery-result .win-cost b[data-v-425494b3] {
  color: #E04146;
  font-weight: 800;
  padding: 0 2px;
}
.lottery-result .win-cost .cost-dot[data-v-425494b3] {
  margin: 0 6px;
  color: #999999;
}
.lottery-result .tag[data-v-425494b3] {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.lottery-result .tag-phys[data-v-425494b3] {
  background: #FFF4F4;
  color: #E04146;
}
.lottery-result .tag-virt[data-v-425494b3] {
  background: #FFF6E0;
  color: #B97E14;
}
.lottery-result .tag-point[data-v-425494b3] {
  background: #FFF3E5;
  color: #B45309;
}
.lottery-result .tag-none[data-v-425494b3] {
  background: #f0f0f2;
  color: #999999;
}
.lottery-result .tag-redeem-pending[data-v-425494b3] {
  background: #fff7e6;
  color: #FA8C16;
}
.lottery-result .tag-redeem-sent[data-v-425494b3] {
  background: #e8f4ff;
  color: #2a7cd3;
}
.lottery-result .tag-redeem-done[data-v-425494b3] {
  background: #e8f8ee;
  color: #34AA44;
}
.lottery-result .tag-redeem-overdue[data-v-425494b3] {
  background: #fef0f0;
  color: #F56C6C;
}
.lottery-result .result-alert[data-v-425494b3] {
  display: flex;
  align-items: center;
  margin-top: 16px;
  background: #FFF3E5;
  border: 1px solid #ffddb0;
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 700;
  color: #B45309;
}
.lottery-result .win-deliver[data-v-425494b3] {
  margin-top: 16px;
  background: #FFF4F4;
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 13px;
  color: #C7363C;
  line-height: 1.6;
  text-align: left;
}
.lottery-result .confetti[data-v-425494b3] {
  position: absolute;
  pointer-events: none;
}
.lottery-result .confetti.l[data-v-425494b3] {
  left: 26px;
  top: 60px;
  transform: rotate(-14deg);
}
.lottery-result .confetti.r[data-v-425494b3] {
  right: 26px;
  top: 48px;
  transform: rotate(12deg);
}
.lottery-result .result-address[data-v-425494b3] {
  margin-top: 18px;
}
.lottery-result .result-address .form-row[data-v-425494b3] {
  margin-bottom: 14px;
}
.lottery-result .result-address .form-row[data-v-425494b3]:last-child {
  margin-bottom: 0;
}
.lottery-result .result-address .form-row .form-label[data-v-425494b3] {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #6F6F6F;
}
.lottery-result .result-address .form-row .form-label em[data-v-425494b3] {
  color: #E04146;
  font-style: normal;
  margin-left: 2px;
}
.lottery-result .result-address .region-cascader[data-v-425494b3] {
  width: 100%;
}
.lottery-result .result-address .form-error[data-v-425494b3] {
  font-size: 12px;
  color: #F56C6C;
  line-height: 18px;
  margin-top: -6px;
}

/*
*个人中心白色版本
*
*/
/**
 * 大转盘模块设计令牌（QDPT-7 视觉改造）
 *
 * 复用站内既有令牌，不自起色值：
 *   主色 #F5565B（theme.css:8 --primary-highlight-color，全站 490 处引用）
 *   主色浅底 #FFF4F4（theme.css:9 --primary-highlight-color-light-1）
 *   主要文字 #282828（theme.css:7 --222222-light-1）
 *   次要文字 #6F6F6F（theme.css:22 --secondary-text-color）
 *   弱化文字 #999999（theme.css:24 --secondary-text-color-light-2）
 *   成功色 #34AA44（globle.less:7 --green）
 *   圆角 16px（globle.less:26 --border-radius-16）
 *   阴影范例 0 4px 20px 0 var(--DCDCDC80-26262990)（HomeRecommendEnterpriseItem.vue:174）
 *
 * ============================================================================
 * Element Plus 主题覆盖 · 作用域影响面评估结论
 * ----------------------------------------------------------------------------
 * 依赖实测：element-plus 锁定版本 1.0.2-beta.71（yarn.lock:4100），
 * 已解包核验其 theme-chalk/index.css 实际产物。
 *
 * 1) 作用域必须局部，不能全局 :root
 *    全站 type="primary" 共 31 处，分布在 18 个 Lottery 目录外的文件中
 *    （登录/注册弹层、招聘表单、活动报名、作品详情评论等）；
 *    全局覆盖 --el-color-primary 会把这些页面的按钮/筛选器一并改成红色，
 *    超出「只改抽奖页视觉」的授权范围。
 *    → 采用局部作用域：仅在 Lottery 模块根节点声明 CSS 变量。
 *
 * 2) 弹层（el-dialog）需单独声明
 *    el-dialog 走 teleport，内容挂到 body 下，不在页面根节点的 DOM 子树内，
 *    继承不到页面作用域的变量。
 *    1.0.2-beta.71 实测提供 customClass prop（lib/el-dialog/index.js:206,319），
 *    该 class 会落到 .el-dialog 元素上（el-overlay > .el-dialog > header/body/footer），
 *    因此在 .el-dialog 这一层声明变量即可覆盖弹层内的 header / body / footer，
 *    比在 body 内节点上声明更完整（footer 的「确认抽奖」按钮也覆盖到）。
 *
 * 3) primary 按钮必须额外硬覆盖（关键差异，与 Element Plus 2.x 不同）
 *    该版本 .el-button--primary 的变量是【元素级硬编码】，不读 --el-color-primary：
 *      .el-button--primary{--el-button-background-color:#409eff; ...}
 *    且 .el-button 元素级声明了 --el-button-background-color: var(--el-color-white)，
 *    元素级声明优先级高于祖先继承，故在作用域上设同名变量【无效】。
 *    → 必须在作用域内用 .el-button--primary 选择器重新声明按钮专用变量。
 *
 * 4) 变量名按实测取值，不照搬 Element Plus 2.x 命名
 *    禁用态实测为 --el-button-disabled-background-color（2.x 文档常写 -bg-color）。
 *
 * 5) 确认读变量、覆盖即生效的组件
 *    el-radio-button 选中态  → var(--el-color-primary)            ✅
 *    el-pager li.active      → var(--el-color-primary)            ✅
 *    el-pagination hover     → var(--el-color-primary)            ✅
 *    el-input / el-checkbox / el-alert 边框与勾选  → 读主色变量   ✅
 */
/* ---------- 主色系 ---------- */
/* ---------- 中性色 ---------- */
/* ---------- 语义色 ---------- */
/* ---------- 次强调色（保留橙，仅用于售罄等次级语义） ---------- */
/* ---------- 圆角（设计稿 v2 收敛为 4 档：16 / 12 / 8 / 999 胶囊） ---------- */
/* ---------- 阴影（卡片 / 弹层两档；v2 弹层投影减重） ---------- */
/* ============================================================================
 * 设计稿 v1 扩充令牌（C 端高保真设计稿 6 画布 · 三端共享规格）
 *
 * 来源：qdpt7-lottery-wheel-design 设计稿 :root 色板。
 * 红系全部从站内主色 #F5565B 派生（深化两档），金色系仅服务转盘金属质感与
 * 活动氛围，不进入通用 UI 语义；文字/底色/圆角沿用上方站内令牌，不另起值。
 * ========================================================================== */
/* 深红两档（KV 横幅与转盘区渐变用，仅活动氛围场景） */
/* 橙色系（售罄标 / 警告条；@lottery-accent 即设计稿 --orange） */
/* 分隔线（奖品卡 / 表格用暖灰线；次级描边线为 v2 新增 --line-2） */
/* 金色系（转盘金属环 / 活动氛围；仅服务大转盘与氛围层。
   v2 金色系收敛为 4 阶，--gold-soft 已删除，勿再引用） */
/* 转盘扇区四色循环（红 / 金 / 浅红 / 浅灰），与三端共享同一份 */
/* 金属环渐变（转盘外圈；v2：145deg 亮金起笔、暗金收尾，非首尾循环） */
/* 金属环光影（v2：暖金投影替代 v1 红棕投影，D1-06） */
/* 金属钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，D1-03） */
/* 主按钮（设计稿 v2 btn-pri：红渐变 + 柔影 + 内高光内底影） */
/* KV 横幅渐变底（v2：132deg，#FF6B70 起笔、red-dark 收尾） */
/* 弹层遮罩（设计稿 v2 scrim） */
/**
 * 注意：Element Plus 主题覆盖【不使用 Less mixin 承载 CSS 自定义属性】。
 *
 * 实测（yarn build + 产物校验）：把 --el-* 自定义属性写进 Less mixin 后，
 * 经 less-loader（含 sass-resources-loader 前置）编译时，全局样式入口
 * (src/assets/style/lottery-dialog-theme.less) 的自定义属性块会被整段丢弃，
 * 而同一 mixin 在组件 scoped 样式块中却正常输出 —— 行为不一致且不可控。
 *
 * 因此 Element Plus 主题覆盖统一放在全局样式文件
 * src/assets/style/lottery-element-theme.less 中用【显式选择器】声明，
 * 变量与令牌在本文件仅作为 Less 变量引用，不再经 mixin 传递。
 */
.lottery-wheel[data-v-32d9885d] {
  position: relative;
  margin: 0 auto;
  /* 金属外环（设计稿 wheel-ring：金色渐变 + 铆钉纹理 + 立体光影；v2 光影 D1-06） */
  /* 静止中心钮（设计稿 v2 wheel-hub：米金渐变 + 白色 5px 外圈 + GO 红字 + 积分小字） */
  /* 金色三角指针（设计稿 v2 wheel-pointer：border 三角 + 顶部圆头，不随盘转动） */
  /* AC-103：转盘恒原色——v2 设计稿 wheel-off 整盘置灰口径（grayscale(1) opacity(.5)，
     D1-04 / D1-13）已从网页端摘除，全部不可抽状态（积分不足 / 活动结束或批次不可抽 /
     未绑定手机号 / 限中）均原色渲染，不可抽表达落在抽奖按钮层。
     注：原 .is-disabled 块内的 hub-off 字号规则（盘径 5.5%）自 AC-71 起已不可达
     （hub-off 仅在限中态出现，而限中态不再挂 .is-disabled），随本次一并摘除，
     限中中心钮渲染与改动前逐像素一致。 */
}
.lottery-wheel .wheel-ring[data-v-32d9885d] {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: linear-gradient(145deg, #FFE9A8, #FFC53D 30%, #E89B1C 55%, #FFD675 78%, #C97F10);
  box-shadow: 0 12px 30px rgba(184, 126, 20, 0.32), inset 0 2px 6px rgba(255, 255, 255, 0.65), inset 0 -5px 12px rgba(138, 90, 0, 0.45);
  /* 金属钉环（v2：亮 4° / 暗 18.5° 细密钉，环宽 9px，D1-03） */
}
.lottery-wheel .wheel-ring[data-v-32d9885d]::before {
  content: '';
  position: absolute;
  inset: 5%;
  border-radius: 50%;
  background: repeating-conic-gradient(rgba(255, 255, 255, 0.95) 0 4deg, rgba(138, 90, 0, 0.4) 4deg 22.5deg);
  -webkit-mask: radial-gradient(closest-side, transparent calc(100% - 9px), #000 calc(100% - 8px));
  mask: radial-gradient(closest-side, transparent calc(100% - 9px), #000 calc(100% - 8px));
}
.lottery-wheel .wheel-lucky[data-v-32d9885d],
.lottery-wheel .wheel-fallback[data-v-32d9885d] {
  /* 内盘居中：金属环占外径 7.5%，内盘占 85% */
  position: absolute;
  top: 7.5%;
  left: 7.5%;
  width: 85%;
  height: 85%;
  border-radius: 50%;
}
.lottery-wheel .wheel-hub[data-v-32d9885d] {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 26%;
  height: 26%;
  border-radius: 50%;
  z-index: 4;
  background: radial-gradient(circle at 35% 28%, #ffffff, #ffefd9 58%, #ffd98f);
  box-shadow: 0 5px 16px rgba(0, 0, 0, 0.22), inset 0 -4px 10px rgba(232, 155, 28, 0.5), 0 0 0 calc(var(--wheel-size, 320px) * 0.012) rgba(255, 255, 255, 0.7);
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 1px;
  text-align: center;
  pointer-events: none;
}
.lottery-wheel .wheel-hub .hub-go[data-v-32d9885d] {
  font-size: calc(var(--wheel-size, 320px) * 0.072);
  font-weight: 800;
  color: #C7363C;
  letter-spacing: 0.04em;
  line-height: 1;
}
.lottery-wheel .wheel-hub small[data-v-32d9885d] {
  display: block;
  font-size: calc(var(--wheel-size, 320px) * 0.0245);
  color: #B97E14;
  font-weight: 600;
  white-space: nowrap;
}
.lottery-wheel .wheel-fallback .fallback-disc[data-v-32d9885d] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 3px solid #E89B1C;
  background: #FFFFFF;
  transition: transform 3s cubic-bezier(0.15, 0.9, 0.2, 1);
}
.lottery-wheel .wheel-fallback .fallback-label[data-v-32d9885d] {
  position: absolute;
  transform: translate(-50%, -50%);
  /* 扇区文字规格基线 14px（三端共享，与 canvas 模式一致，QDPT-146 走查 P2-16） */
  font-size: 14px;
  line-height: 20px;
  max-width: 22%;
  text-align: center;
  word-break: break-all;
}
.lottery-wheel .wheel-pointer[data-v-32d9885d] {
  position: absolute;
  left: 50%;
  top: 1.8%;
  transform: translateX(-50%);
  z-index: 6;
  width: 0;
  height: 0;
  border-left: calc(var(--wheel-size, 320px) * 0.031) solid transparent;
  border-right: calc(var(--wheel-size, 320px) * 0.031) solid transparent;
  border-top: calc(var(--wheel-size, 320px) * 0.072) solid #E89B1C;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.28));
}
.lottery-wheel .wheel-pointer[data-v-32d9885d]::after {
  content: '';
  position: absolute;
  left: calc(var(--wheel-size, 320px) * -0.0335);
  top: calc(var(--wheel-size, 320px) * -0.0825);
  width: calc(var(--wheel-size, 320px) * 0.0335);
  height: calc(var(--wheel-size, 320px) * 0.0335);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #ffe9a8, #E89B1C);
  box-shadow: inset 0 -2px 3px rgba(138, 90, 0, 0.5);
}
.lottery-wheel .wheel-mask[data-v-32d9885d] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 50%;
  font-size: 13px;
  color: #999999;
  z-index: 7;
}

/*
*个人中心白色版本
*
*/
/**
 * 大转盘模块设计令牌（QDPT-7 视觉改造）
 *
 * 复用站内既有令牌，不自起色值：
 *   主色 #F5565B（theme.css:8 --primary-highlight-color，全站 490 处引用）
 *   主色浅底 #FFF4F4（theme.css:9 --primary-highlight-color-light-1）
 *   主要文字 #282828（theme.css:7 --222222-light-1）
 *   次要文字 #6F6F6F（theme.css:22 --secondary-text-color）
 *   弱化文字 #999999（theme.css:24 --secondary-text-color-light-2）
 *   成功色 #34AA44（globle.less:7 --green）
 *   圆角 16px（globle.less:26 --border-radius-16）
 *   阴影范例 0 4px 20px 0 var(--DCDCDC80-26262990)（HomeRecommendEnterpriseItem.vue:174）
 *
 * ============================================================================
 * Element Plus 主题覆盖 · 作用域影响面评估结论
 * ----------------------------------------------------------------------------
 * 依赖实测：element-plus 锁定版本 1.0.2-beta.71（yarn.lock:4100），
 * 已解包核验其 theme-chalk/index.css 实际产物。
 *
 * 1) 作用域必须局部，不能全局 :root
 *    全站 type="primary" 共 31 处，分布在 18 个 Lottery 目录外的文件中
 *    （登录/注册弹层、招聘表单、活动报名、作品详情评论等）；
 *    全局覆盖 --el-color-primary 会把这些页面的按钮/筛选器一并改成红色，
 *    超出「只改抽奖页视觉」的授权范围。
 *    → 采用局部作用域：仅在 Lottery 模块根节点声明 CSS 变量。
 *
 * 2) 弹层（el-dialog）需单独声明
 *    el-dialog 走 teleport，内容挂到 body 下，不在页面根节点的 DOM 子树内，
 *    继承不到页面作用域的变量。
 *    1.0.2-beta.71 实测提供 customClass prop（lib/el-dialog/index.js:206,319），
 *    该 class 会落到 .el-dialog 元素上（el-overlay > .el-dialog > header/body/footer），
 *    因此在 .el-dialog 这一层声明变量即可覆盖弹层内的 header / body / footer，
 *    比在 body 内节点上声明更完整（footer 的「确认抽奖」按钮也覆盖到）。
 *
 * 3) primary 按钮必须额外硬覆盖（关键差异，与 Element Plus 2.x 不同）
 *    该版本 .el-button--primary 的变量是【元素级硬编码】，不读 --el-color-primary：
 *      .el-button--primary{--el-button-background-color:#409eff; ...}
 *    且 .el-button 元素级声明了 --el-button-background-color: var(--el-color-white)，
 *    元素级声明优先级高于祖先继承，故在作用域上设同名变量【无效】。
 *    → 必须在作用域内用 .el-button--primary 选择器重新声明按钮专用变量。
 *
 * 4) 变量名按实测取值，不照搬 Element Plus 2.x 命名
 *    禁用态实测为 --el-button-disabled-background-color（2.x 文档常写 -bg-color）。
 *
 * 5) 确认读变量、覆盖即生效的组件
 *    el-radio-button 选中态  → var(--el-color-primary)            ✅
 *    el-pager li.active      → var(--el-color-primary)            ✅
 *    el-pagination hover     → var(--el-color-primary)            ✅
 *    el-input / el-checkbox / el-alert 边框与勾选  → 读主色变量   ✅
 */
/* ---------- 主色系 ---------- */
/* ---------- 中性色 ---------- */
/* ---------- 语义色 ---------- */
/* ---------- 次强调色（保留橙，仅用于售罄等次级语义） ---------- */
/* ---------- 圆角（设计稿 v2 收敛为 4 档：16 / 12 / 8 / 999 胶囊） ---------- */
/* ---------- 阴影（卡片 / 弹层两档；v2 弹层投影减重） ---------- */
/* ============================================================================
 * 设计稿 v1 扩充令牌（C 端高保真设计稿 6 画布 · 三端共享规格）
 *
 * 来源：qdpt7-lottery-wheel-design 设计稿 :root 色板。
 * 红系全部从站内主色 #F5565B 派生（深化两档），金色系仅服务转盘金属质感与
 * 活动氛围，不进入通用 UI 语义；文字/底色/圆角沿用上方站内令牌，不另起值。
 * ========================================================================== */
/* 深红两档（KV 横幅与转盘区渐变用，仅活动氛围场景） */
/* 橙色系（售罄标 / 警告条；@lottery-accent 即设计稿 --orange） */
/* 分隔线（奖品卡 / 表格用暖灰线；次级描边线为 v2 新增 --line-2） */
/* 金色系（转盘金属环 / 活动氛围；仅服务大转盘与氛围层。
   v2 金色系收敛为 4 阶，--gold-soft 已删除，勿再引用） */
/* 转盘扇区四色循环（红 / 金 / 浅红 / 浅灰），与三端共享同一份 */
/* 金属环渐变（转盘外圈；v2：145deg 亮金起笔、暗金收尾，非首尾循环） */
/* 金属环光影（v2：暖金投影替代 v1 红棕投影，D1-06） */
/* 金属钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，D1-03） */
/* 主按钮（设计稿 v2 btn-pri：红渐变 + 柔影 + 内高光内底影） */
/* KV 横幅渐变底（v2：132deg，#FF6B70 起笔、red-dark 收尾） */
/* 弹层遮罩（设计稿 v2 scrim） */
/**
 * 注意：Element Plus 主题覆盖【不使用 Less mixin 承载 CSS 自定义属性】。
 *
 * 实测（yarn build + 产物校验）：把 --el-* 自定义属性写进 Less mixin 后，
 * 经 less-loader（含 sass-resources-loader 前置）编译时，全局样式入口
 * (src/assets/style/lottery-dialog-theme.less) 的自定义属性块会被整段丢弃，
 * 而同一 mixin 在组件 scoped 样式块中却正常输出 —— 行为不一致且不可控。
 *
 * 因此 Element Plus 主题覆盖统一放在全局样式文件
 * src/assets/style/lottery-element-theme.less 中用【显式选择器】声明，
 * 变量与令牌在本文件仅作为 Less 变量引用，不再经 mixin 传递。
 */
.lottery-wheel-decor[data-v-d48da290] {
  position: relative;
  margin: 0 auto;
  /* 金属外环（设计稿 wheel-ring；v2 光影 D1-06 与钉环 D1-03 与主转盘组件同口径） */
  /* 扇面：红金四色循环（设计稿 wheel-disc 的 conic-gradient） */
  /* 盘面内高光 */
  /* 扇区文字 */
  /* 扇区文字色（三端口径，与 LotteryWheel SECTOR_TEXT_COLORS 同源）：
     金区深棕 #6B4A00 = Leader 裁决保留（不按设计稿白字回退）；
     浅红 #B04A4E / 灰 #6F6F6F = v2 设计稿原值（D1-02） */
  /* 中心钮（设计稿 v2 wheel-hub：米金渐变 + 白色 5px 外圈 + GO 红字 + 可选积分小字） */
  /* 金色三角指针（设计稿 v2 wheel-pointer：border 三角 + 顶部圆头） */
  /* 置灰态（业务禁用装饰） */
}
.lottery-wheel-decor .wheel-ring[data-v-d48da290] {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: linear-gradient(145deg, #FFE9A8, #FFC53D 30%, #E89B1C 55%, #FFD675 78%, #C97F10);
  box-shadow: 0 12px 30px rgba(184, 126, 20, 0.32), inset 0 2px 6px rgba(255, 255, 255, 0.65), inset 0 -5px 12px rgba(138, 90, 0, 0.45);
  /* 钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，环宽 9px） */
}
.lottery-wheel-decor .wheel-ring[data-v-d48da290]::before {
  content: '';
  position: absolute;
  inset: 5%;
  border-radius: 50%;
  background: repeating-conic-gradient(rgba(255, 255, 255, 0.95) 0 4deg, rgba(138, 90, 0, 0.4) 4deg 22.5deg);
  -webkit-mask: radial-gradient(closest-side, transparent calc(100% - 9px), #000 calc(100% - 8px));
  mask: radial-gradient(closest-side, transparent calc(100% - 9px), #000 calc(100% - 8px));
}
.lottery-wheel-decor .wheel-disc[data-v-d48da290] {
  position: absolute;
  inset: 7.5%;
  border-radius: 50%;
  background: conic-gradient(#F5565B 0deg 45deg, #FFC53D 45deg 90deg, #FFD9DA 90deg 135deg, #F4F5F7 135deg 180deg, #F5565B 180deg 225deg, #FFC53D 225deg 270deg, #FFD9DA 270deg 315deg, #F4F5F7 315deg 360deg);
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, 0.4), inset 0 0 34px rgba(232, 155, 28, 0.35), 0 4px 14px rgba(90, 30, 10, 0.35);
}
.lottery-wheel-decor .wheel-inner-glow[data-v-d48da290] {
  position: absolute;
  inset: 7.5%;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 42%, rgba(255, 244, 214, 0.5), transparent 55%);
  mix-blend-mode: screen;
}
.lottery-wheel-decor .seg[data-v-d48da290] {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 27%;
  transform: translate(-50%, -50%) rotate(var(--a)) translateY(calc(var(--wheel-size, 190px) * -0.295));
  text-align: center;
  line-height: 1.3;
  z-index: 2;
  /* v2 主次层级（D1-08）：奖品名 span 4.1% 为主字号（700），等级 b 3.1% 为次（600）；
       本组件为三端共享规格参考实现，D2/D3 传 segments 时按此执行 */
}
.lottery-wheel-decor .seg b[data-v-d48da290] {
  display: block;
  font-size: calc(var(--wheel-size, 190px) * 0.031);
  font-weight: 600;
  opacity: 0.92;
  letter-spacing: 0.05em;
}
.lottery-wheel-decor .seg span[data-v-d48da290] {
  display: block;
  font-size: calc(var(--wheel-size, 190px) * 0.041);
  font-weight: 700;
  margin-top: 1px;
}
.lottery-wheel-decor .seg-on-red[data-v-d48da290] {
  color: #fff;
  text-shadow: 0 1px 3px rgba(160, 25, 30, 0.5);
}
.lottery-wheel-decor .seg-on-gold[data-v-d48da290] {
  color: #6B4A00;
}
.lottery-wheel-decor .seg-on-light[data-v-d48da290] {
  color: #B04A4E;
}
.lottery-wheel-decor .seg-on-gray[data-v-d48da290] {
  color: #6F6F6F;
}
.lottery-wheel-decor .wheel-hub[data-v-d48da290] {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 26%;
  height: 26%;
  border-radius: 50%;
  z-index: 4;
  background: radial-gradient(circle at 35% 28%, #ffffff, #ffefd9 58%, #ffd98f);
  box-shadow: 0 5px 16px rgba(0, 0, 0, 0.22), inset 0 -4px 10px rgba(232, 155, 28, 0.5), 0 0 0 calc(var(--wheel-size, 190px) * 0.012) rgba(255, 255, 255, 0.7);
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 1px;
  text-align: center;
}
.lottery-wheel-decor .wheel-hub .hub-go[data-v-d48da290] {
  font-size: calc(var(--wheel-size, 190px) * 0.072);
  font-weight: 800;
  color: #C7363C;
  letter-spacing: 0.04em;
  line-height: 1;
}
.lottery-wheel-decor .wheel-hub small[data-v-d48da290] {
  display: block;
  font-size: calc(var(--wheel-size, 190px) * 0.0245);
  color: #B97E14;
  font-weight: 600;
  white-space: nowrap;
}
.lottery-wheel-decor .wheel-pointer[data-v-d48da290] {
  position: absolute;
  left: 50%;
  top: 1.8%;
  transform: translateX(-50%);
  z-index: 6;
  width: 0;
  height: 0;
  border-left: calc(var(--wheel-size, 190px) * 0.031) solid transparent;
  border-right: calc(var(--wheel-size, 190px) * 0.031) solid transparent;
  border-top: calc(var(--wheel-size, 190px) * 0.072) solid #E89B1C;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.28));
}
.lottery-wheel-decor .wheel-pointer[data-v-d48da290]::after {
  content: '';
  position: absolute;
  left: calc(var(--wheel-size, 190px) * -0.0335);
  top: calc(var(--wheel-size, 190px) * -0.0825);
  width: calc(var(--wheel-size, 190px) * 0.0335);
  height: calc(var(--wheel-size, 190px) * 0.0335);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #ffe9a8, #E89B1C);
  box-shadow: inset 0 -2px 3px rgba(138, 90, 0, 0.5);
}
.lottery-wheel-decor.is-disabled[data-v-d48da290] {
  filter: grayscale(0.92) opacity(0.55);
}

/*
*个人中心白色版本
*
*/
/**
 * 大转盘模块设计令牌（QDPT-7 视觉改造）
 *
 * 复用站内既有令牌，不自起色值：
 *   主色 #F5565B（theme.css:8 --primary-highlight-color，全站 490 处引用）
 *   主色浅底 #FFF4F4（theme.css:9 --primary-highlight-color-light-1）
 *   主要文字 #282828（theme.css:7 --222222-light-1）
 *   次要文字 #6F6F6F（theme.css:22 --secondary-text-color）
 *   弱化文字 #999999（theme.css:24 --secondary-text-color-light-2）
 *   成功色 #34AA44（globle.less:7 --green）
 *   圆角 16px（globle.less:26 --border-radius-16）
 *   阴影范例 0 4px 20px 0 var(--DCDCDC80-26262990)（HomeRecommendEnterpriseItem.vue:174）
 *
 * ============================================================================
 * Element Plus 主题覆盖 · 作用域影响面评估结论
 * ----------------------------------------------------------------------------
 * 依赖实测：element-plus 锁定版本 1.0.2-beta.71（yarn.lock:4100），
 * 已解包核验其 theme-chalk/index.css 实际产物。
 *
 * 1) 作用域必须局部，不能全局 :root
 *    全站 type="primary" 共 31 处，分布在 18 个 Lottery 目录外的文件中
 *    （登录/注册弹层、招聘表单、活动报名、作品详情评论等）；
 *    全局覆盖 --el-color-primary 会把这些页面的按钮/筛选器一并改成红色，
 *    超出「只改抽奖页视觉」的授权范围。
 *    → 采用局部作用域：仅在 Lottery 模块根节点声明 CSS 变量。
 *
 * 2) 弹层（el-dialog）需单独声明
 *    el-dialog 走 teleport，内容挂到 body 下，不在页面根节点的 DOM 子树内，
 *    继承不到页面作用域的变量。
 *    1.0.2-beta.71 实测提供 customClass prop（lib/el-dialog/index.js:206,319），
 *    该 class 会落到 .el-dialog 元素上（el-overlay > .el-dialog > header/body/footer），
 *    因此在 .el-dialog 这一层声明变量即可覆盖弹层内的 header / body / footer，
 *    比在 body 内节点上声明更完整（footer 的「确认抽奖」按钮也覆盖到）。
 *
 * 3) primary 按钮必须额外硬覆盖（关键差异，与 Element Plus 2.x 不同）
 *    该版本 .el-button--primary 的变量是【元素级硬编码】，不读 --el-color-primary：
 *      .el-button--primary{--el-button-background-color:#409eff; ...}
 *    且 .el-button 元素级声明了 --el-button-background-color: var(--el-color-white)，
 *    元素级声明优先级高于祖先继承，故在作用域上设同名变量【无效】。
 *    → 必须在作用域内用 .el-button--primary 选择器重新声明按钮专用变量。
 *
 * 4) 变量名按实测取值，不照搬 Element Plus 2.x 命名
 *    禁用态实测为 --el-button-disabled-background-color（2.x 文档常写 -bg-color）。
 *
 * 5) 确认读变量、覆盖即生效的组件
 *    el-radio-button 选中态  → var(--el-color-primary)            ✅
 *    el-pager li.active      → var(--el-color-primary)            ✅
 *    el-pagination hover     → var(--el-color-primary)            ✅
 *    el-input / el-checkbox / el-alert 边框与勾选  → 读主色变量   ✅
 */
/* ---------- 主色系 ---------- */
/* ---------- 中性色 ---------- */
/* ---------- 语义色 ---------- */
/* ---------- 次强调色（保留橙，仅用于售罄等次级语义） ---------- */
/* ---------- 圆角（设计稿 v2 收敛为 4 档：16 / 12 / 8 / 999 胶囊） ---------- */
/* ---------- 阴影（卡片 / 弹层两档；v2 弹层投影减重） ---------- */
/* ============================================================================
 * 设计稿 v1 扩充令牌（C 端高保真设计稿 6 画布 · 三端共享规格）
 *
 * 来源：qdpt7-lottery-wheel-design 设计稿 :root 色板。
 * 红系全部从站内主色 #F5565B 派生（深化两档），金色系仅服务转盘金属质感与
 * 活动氛围，不进入通用 UI 语义；文字/底色/圆角沿用上方站内令牌，不另起值。
 * ========================================================================== */
/* 深红两档（KV 横幅与转盘区渐变用，仅活动氛围场景） */
/* 橙色系（售罄标 / 警告条；@lottery-accent 即设计稿 --orange） */
/* 分隔线（奖品卡 / 表格用暖灰线；次级描边线为 v2 新增 --line-2） */
/* 金色系（转盘金属环 / 活动氛围；仅服务大转盘与氛围层。
   v2 金色系收敛为 4 阶，--gold-soft 已删除，勿再引用） */
/* 转盘扇区四色循环（红 / 金 / 浅红 / 浅灰），与三端共享同一份 */
/* 金属环渐变（转盘外圈；v2：145deg 亮金起笔、暗金收尾，非首尾循环） */
/* 金属环光影（v2：暖金投影替代 v1 红棕投影，D1-06） */
/* 金属钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，D1-03） */
/* 主按钮（设计稿 v2 btn-pri：红渐变 + 柔影 + 内高光内底影） */
/* KV 横幅渐变底（v2：132deg，#FF6B70 起笔、red-dark 收尾） */
/* 弹层遮罩（设计稿 v2 scrim） */
/**
 * 注意：Element Plus 主题覆盖【不使用 Less mixin 承载 CSS 自定义属性】。
 *
 * 实测（yarn build + 产物校验）：把 --el-* 自定义属性写进 Less mixin 后，
 * 经 less-loader（含 sass-resources-loader 前置）编译时，全局样式入口
 * (src/assets/style/lottery-dialog-theme.less) 的自定义属性块会被整段丢弃，
 * 而同一 mixin 在组件 scoped 样式块中却正常输出 —— 行为不一致且不可控。
 *
 * 因此 Element Plus 主题覆盖统一放在全局样式文件
 * src/assets/style/lottery-element-theme.less 中用【显式选择器】声明，
 * 变量与令牌在本文件仅作为 Less 变量引用，不再经 mixin 传递。
 */
/* KV 横幅（v2：内容撑开 + 132deg 渐变 + 胶囊灯带；自 index.vue 原样迁移，Task #7 三页复用） */
.kv[data-v-6da2db65] {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: radial-gradient(520px 220px at 88% 18%, rgba(255, 214, 117, 0.28), transparent 60%), radial-gradient(420px 200px at 4% 96%, rgba(255, 197, 61, 0.18), transparent 60%), linear-gradient(132deg, #FF6B70 0%, #F5565B 42%, #C7363C 100%);
  /* 顶部金色胶囊灯带（v2：克制在两处装饰之一） */
  /* 时间徽章（v2：黑色半透明圆角条 + 日历图标） */
  /* 右侧装饰转盘（v2：转盘本体，无 emoji 漂浮） */
}
.kv .kv-lamp[data-v-6da2db65] {
  position: absolute;
  left: 40px;
  right: 40px;
  top: 16px;
  height: 6px;
  border-radius: 999px;
  background: repeating-linear-gradient(90deg, #FFC53D 0 10px, rgba(255, 255, 255, 0.14) 10px 26px);
  opacity: 0.85;
}
.kv .kv-in[data-v-6da2db65] {
  max-width: 1184px;
  margin: 0 auto;
  padding: 52px 56px 48px;
  display: flex;
  align-items: center;
  gap: 48px;
}
.kv .kv-txt[data-v-6da2db65] {
  flex: 1 1 0;
  min-width: 0;
}
.kv h1[data-v-6da2db65] {
  font-size: 46px;
  font-weight: 800;
  letter-spacing: 0.02em;
  margin: 16px 0 10px;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.08);
}
.kv .kv-sub[data-v-6da2db65] {
  font-size: 17px;
  color: rgba(255, 255, 255, 0.92);
}
.kv .kv-time[data-v-6da2db65] {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 0, 0, 0.14);
  border-radius: 999px;
  padding: 6px 16px;
  font-size: 13px;
}
.kv .kv-time .od-icon[data-v-6da2db65] {
  inline-size: 15px;
  block-size: 15px;
  flex: none;
}
.kv .kv-art[data-v-6da2db65] {
  flex: none;
  transform: rotate(-8deg);
}
/* ---------- 窄屏回退（自 index.vue 媒体查询原样迁移） ---------- */
@media (max-width: 1240px) {
.kv-in[data-v-6da2db65] {
    max-width: 100%;
    padding: 44px 32px 40px;
}
}
@media (max-width: 1024px) {
.kv-in[data-v-6da2db65] {
    padding: 36px 24px;
}
.kv-art[data-v-6da2db65] {
    display: none;
}
}

/*
*个人中心白色版本
*
*/
/**
 * 大转盘模块设计令牌（QDPT-7 视觉改造）
 *
 * 复用站内既有令牌，不自起色值：
 *   主色 #F5565B（theme.css:8 --primary-highlight-color，全站 490 处引用）
 *   主色浅底 #FFF4F4（theme.css:9 --primary-highlight-color-light-1）
 *   主要文字 #282828（theme.css:7 --222222-light-1）
 *   次要文字 #6F6F6F（theme.css:22 --secondary-text-color）
 *   弱化文字 #999999（theme.css:24 --secondary-text-color-light-2）
 *   成功色 #34AA44（globle.less:7 --green）
 *   圆角 16px（globle.less:26 --border-radius-16）
 *   阴影范例 0 4px 20px 0 var(--DCDCDC80-26262990)（HomeRecommendEnterpriseItem.vue:174）
 *
 * ============================================================================
 * Element Plus 主题覆盖 · 作用域影响面评估结论
 * ----------------------------------------------------------------------------
 * 依赖实测：element-plus 锁定版本 1.0.2-beta.71（yarn.lock:4100），
 * 已解包核验其 theme-chalk/index.css 实际产物。
 *
 * 1) 作用域必须局部，不能全局 :root
 *    全站 type="primary" 共 31 处，分布在 18 个 Lottery 目录外的文件中
 *    （登录/注册弹层、招聘表单、活动报名、作品详情评论等）；
 *    全局覆盖 --el-color-primary 会把这些页面的按钮/筛选器一并改成红色，
 *    超出「只改抽奖页视觉」的授权范围。
 *    → 采用局部作用域：仅在 Lottery 模块根节点声明 CSS 变量。
 *
 * 2) 弹层（el-dialog）需单独声明
 *    el-dialog 走 teleport，内容挂到 body 下，不在页面根节点的 DOM 子树内，
 *    继承不到页面作用域的变量。
 *    1.0.2-beta.71 实测提供 customClass prop（lib/el-dialog/index.js:206,319），
 *    该 class 会落到 .el-dialog 元素上（el-overlay > .el-dialog > header/body/footer），
 *    因此在 .el-dialog 这一层声明变量即可覆盖弹层内的 header / body / footer，
 *    比在 body 内节点上声明更完整（footer 的「确认抽奖」按钮也覆盖到）。
 *
 * 3) primary 按钮必须额外硬覆盖（关键差异，与 Element Plus 2.x 不同）
 *    该版本 .el-button--primary 的变量是【元素级硬编码】，不读 --el-color-primary：
 *      .el-button--primary{--el-button-background-color:#409eff; ...}
 *    且 .el-button 元素级声明了 --el-button-background-color: var(--el-color-white)，
 *    元素级声明优先级高于祖先继承，故在作用域上设同名变量【无效】。
 *    → 必须在作用域内用 .el-button--primary 选择器重新声明按钮专用变量。
 *
 * 4) 变量名按实测取值，不照搬 Element Plus 2.x 命名
 *    禁用态实测为 --el-button-disabled-background-color（2.x 文档常写 -bg-color）。
 *
 * 5) 确认读变量、覆盖即生效的组件
 *    el-radio-button 选中态  → var(--el-color-primary)            ✅
 *    el-pager li.active      → var(--el-color-primary)            ✅
 *    el-pagination hover     → var(--el-color-primary)            ✅
 *    el-input / el-checkbox / el-alert 边框与勾选  → 读主色变量   ✅
 */
/* ---------- 主色系 ---------- */
/* ---------- 中性色 ---------- */
/* ---------- 语义色 ---------- */
/* ---------- 次强调色（保留橙，仅用于售罄等次级语义） ---------- */
/* ---------- 圆角（设计稿 v2 收敛为 4 档：16 / 12 / 8 / 999 胶囊） ---------- */
/* ---------- 阴影（卡片 / 弹层两档；v2 弹层投影减重） ---------- */
/* ============================================================================
 * 设计稿 v1 扩充令牌（C 端高保真设计稿 6 画布 · 三端共享规格）
 *
 * 来源：qdpt7-lottery-wheel-design 设计稿 :root 色板。
 * 红系全部从站内主色 #F5565B 派生（深化两档），金色系仅服务转盘金属质感与
 * 活动氛围，不进入通用 UI 语义；文字/底色/圆角沿用上方站内令牌，不另起值。
 * ========================================================================== */
/* 深红两档（KV 横幅与转盘区渐变用，仅活动氛围场景） */
/* 橙色系（售罄标 / 警告条；@lottery-accent 即设计稿 --orange） */
/* 分隔线（奖品卡 / 表格用暖灰线；次级描边线为 v2 新增 --line-2） */
/* 金色系（转盘金属环 / 活动氛围；仅服务大转盘与氛围层。
   v2 金色系收敛为 4 阶，--gold-soft 已删除，勿再引用） */
/* 转盘扇区四色循环（红 / 金 / 浅红 / 浅灰），与三端共享同一份 */
/* 金属环渐变（转盘外圈；v2：145deg 亮金起笔、暗金收尾，非首尾循环） */
/* 金属环光影（v2：暖金投影替代 v1 红棕投影，D1-06） */
/* 金属钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，D1-03） */
/* 主按钮（设计稿 v2 btn-pri：红渐变 + 柔影 + 内高光内底影） */
/* KV 横幅渐变底（v2：132deg，#FF6B70 起笔、red-dark 收尾） */
/* 弹层遮罩（设计稿 v2 scrim） */
/**
 * 注意：Element Plus 主题覆盖【不使用 Less mixin 承载 CSS 自定义属性】。
 *
 * 实测（yarn build + 产物校验）：把 --el-* 自定义属性写进 Less mixin 后，
 * 经 less-loader（含 sass-resources-loader 前置）编译时，全局样式入口
 * (src/assets/style/lottery-dialog-theme.less) 的自定义属性块会被整段丢弃，
 * 而同一 mixin 在组件 scoped 样式块中却正常输出 —— 行为不一致且不可控。
 *
 * 因此 Element Plus 主题覆盖统一放在全局样式文件
 * src/assets/style/lottery-element-theme.less 中用【显式选择器】声明，
 * 变量与令牌在本文件仅作为 Less 变量引用，不再经 mixin 传递。
 */
.lottery-page[data-v-44b55e92] {
  min-height: 100vh;
  background: #F7F8FA;
  color: #282828;
  padding-bottom: 40px;
  /* ---------- ① KV 横幅样式已迁至 LotteryKvBanner.vue（三页复用，Task #7） ---------- */
  /* ---------- ② 批次信息条（v2：4 格） ---------- */
  /* ---------- 不可抽警告条 ---------- */
  /* ---------- C1 数据未就绪占位（A1：加载中 / 引导登录 / 结束态） ---------- */
  /* ---------- ③ 主区两列（v2 main-grid：左转盘卡 + 右奖品概率栏） ---------- */
  /* 卡片标题行（v2 sec-h：图标 + 标题 + 右侧 more 链接） */
  /* 转盘卡 */
  /* 奖品概率栏（v2：右栏竖排 5 行列表） */
  /* ---------- 标签配色（v2 四档窄标签） ---------- */
  /* ---------- ⑤ 功能入口（v2：白卡行 44px 圆底图标 + 右箭头） ---------- */
  /* ---------- ⑥ 中奖公示 ---------- */
  /* ---------- ⑦ 页脚（v2 新增） ---------- */
}
.lottery-page .page-inner[data-v-44b55e92] {
  position: relative;
  z-index: 3;
  /* v2 设计稿 pc-in：内容区 1180px 无内边距（D1-05，原 1184px + 48px padding） */
  width: 1180px;
  max-width: 100%;
  margin: 0 auto;
}
.lottery-page .batch-bar[data-v-44b55e92] {
  margin-top: 24px;
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 2px 12px 0 rgba(38, 38, 41, 0.06);
  display: flex;
  align-items: stretch;
  padding: 18px 8px;
}
.lottery-page .batch-bar .b-item[data-v-44b55e92] {
  flex: 1 1 0;
  min-width: 0;
  padding: 2px 24px;
  display: grid;
  gap: 4px;
  align-content: center;
}
.lottery-page .batch-bar .b-item + .b-item[data-v-44b55e92] {
  border-left: 1px solid #F0E9E9;
}
.lottery-page .batch-bar .b-item small[data-v-44b55e92] {
  font-size: 12px;
  color: #999999;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lottery-page .batch-bar .b-item .num[data-v-44b55e92] {
  font-size: 24px;
  font-weight: 800;
  color: #282828;
  line-height: 1.2;
  display: flex;
  align-items: baseline;
  gap: 4px;
  white-space: nowrap;
}
.lottery-page .batch-bar .b-item .num .od-icon[data-v-44b55e92] {
  --od-icon-size: 20px;
  inline-size: 20px;
  block-size: 20px;
  color: #E89B1C;
  align-self: center;
  flex: none;
}
.lottery-page .batch-bar .b-item .num span[data-v-44b55e92] {
  font-size: 13px;
  font-weight: 500;
  color: #6F6F6F;
}
.lottery-page .batch-alert[data-v-44b55e92] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  background: #FFF3E5;
  border: 1px solid #ffddb0;
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 700;
  color: #B45309;
}
.lottery-page .batch-alert .od-icon[data-v-44b55e92] {
  inline-size: 16px;
  block-size: 16px;
  flex: none;
}
.lottery-page .batch-empty[data-v-44b55e92] {
  margin-top: 24px;
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 2px 12px 0 rgba(38, 38, 41, 0.06);
  padding: 72px 24px;
  display: grid;
  place-items: center;
  gap: 12px;
  text-align: center;
}
.lottery-page .batch-empty .od-icon[data-v-44b55e92] {
  inline-size: 44px;
  block-size: 44px;
  color: #999999;
}
.lottery-page .batch-empty .empty-tip[data-v-44b55e92] {
  margin: 0;
  font-size: 15px;
  color: #6F6F6F;
}
.lottery-page .batch-empty .btn-pri[data-v-44b55e92] {
  border: none;
  cursor: pointer;
  background: #F5565B;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  padding: 10px 32px;
  border-radius: 999px;
}
.lottery-page .batch-empty .btn-pri[data-v-44b55e92]:hover {
  background: #E04146;
}
.lottery-page .batch-empty .empty-retry[data-v-44b55e92] {
  font-size: 13px;
  color: #F5565B;
  cursor: pointer;
}
.lottery-page .main-grid[data-v-44b55e92] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 24px;
  margin-top: 24px;
}
.lottery-page .card[data-v-44b55e92] {
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 2px 12px 0 rgba(38, 38, 41, 0.06);
}
.lottery-page .sec-h[data-v-44b55e92] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 24px 0;
}
.lottery-page .sec-h .od-icon[data-v-44b55e92] {
  inline-size: 18px;
  block-size: 18px;
  color: #F5565B;
  flex: none;
}
.lottery-page .sec-h h3[data-v-44b55e92] {
  font-size: 17px;
  font-weight: 700;
  color: #282828;
  margin: 0;
}
.lottery-page .sec-h .more[data-v-44b55e92] {
  margin-left: auto;
  font-size: 13px;
  color: #6F6F6F;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  cursor: pointer;
}
.lottery-page .sec-h .more .od-icon[data-v-44b55e92] {
  inline-size: 14px;
  block-size: 14px;
  color: #999999;
}
.lottery-page .sec-h .more[data-v-44b55e92]:hover {
  color: #E04146;
}
.lottery-page .wheel-card[data-v-44b55e92] {
  padding-bottom: 28px;
}
.lottery-page .wheel-card .wheel-box[data-v-44b55e92] {
  width: -moz-fit-content;
  width: fit-content;
  margin: 24px auto 0;
  /* AC-103：转盘恒原色——不可抽状态不再整盘置灰（原 wheel-off 口径已摘除） */
}
.lottery-page .wheel-card .draw-row[data-v-44b55e92] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-top: 26px;
  /* 主按钮（设计稿 v2 btn-pri） */
  /* 红色文字链 + 右箭头（v2 draw-link） */
}
.lottery-page .wheel-card .draw-row .btn-pri[data-v-44b55e92] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 50px;
  padding: 0 34px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-family: inherit;
  background: linear-gradient(180deg, #FF7075 0%, #F5565B 46%, #E04146 100%);
  color: #fff;
  box-shadow: 0 5px 14px rgba(224, 65, 70, 0.38), inset 0 1.5px 0 rgba(255, 255, 255, 0.4), inset 0 -2px 0 rgba(0, 0, 0, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.lottery-page .wheel-card .draw-row .btn-pri .od-icon[data-v-44b55e92] {
  inline-size: 19px;
  block-size: 19px;
}
.lottery-page .wheel-card .draw-row .btn-pri[data-v-44b55e92]:hover:not(:disabled) {
  background: linear-gradient(180deg, #ff7a7e 0%, #E04146 50%, #C7363C 100%);
}
.lottery-page .wheel-card .draw-row .btn-pri[data-v-44b55e92]:active:not(:disabled) {
  transform: translateY(1px);
}
.lottery-page .wheel-card .draw-row .btn-pri[data-v-44b55e92]:disabled {
  cursor: not-allowed;
  background: #e7e7eb;
  color: #9a9aa0;
  box-shadow: none;
}
.lottery-page .wheel-card .draw-row .draw-hint[data-v-44b55e92] {
  font-size: 13px;
  color: #6F6F6F;
  margin: 0;
  /* v2 数值红色强调（设计稿 .draw-hint b，D1-12） */
}
.lottery-page .wheel-card .draw-row .draw-hint b[data-v-44b55e92] {
  color: #E04146;
}
.lottery-page .wheel-card .draw-row .draw-link[data-v-44b55e92] {
  font-size: 13px;
  color: #E04146;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  cursor: pointer;
}
.lottery-page .wheel-card .draw-row .draw-link .od-icon[data-v-44b55e92] {
  inline-size: 14px;
  block-size: 14px;
}
.lottery-page .wheel-card .draw-row .draw-link[data-v-44b55e92]:hover {
  color: #C7363C;
}
.lottery-page .prize-col[data-v-44b55e92] {
  align-self: start;
}
.lottery-page .prize-col .sec-h[data-v-44b55e92] {
  padding: 20px 20px 2px;
}
.lottery-page .prize-col .prize-list[data-v-44b55e92] {
  display: grid;
  gap: 10px;
  padding: 12px 16px 16px;
}
.lottery-page .prize-col .prize[data-v-44b55e92] {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid #F0E9E9;
  border-radius: 12px;
  padding: 12px 14px;
  background: #FFFFFF;
  /* 已抽完态：插画与名称灰度弱化，「已抽完」橙标保持全彩（§六.4） */
}
.lottery-page .prize-col .prize .p-art[data-v-44b55e92] {
  width: 46px;
  height: 46px;
  flex: none;
  display: grid;
  place-items: center;
}
.lottery-page .prize-col .prize .p-art img[data-v-44b55e92] {
  width: 46px;
  height: 46px;
  /* 奖品图 1:1 方形 cover 裁切居中（AC-65，Task #8） */
  -o-object-fit: cover;
     object-fit: cover;
  /* AC-109：可放大的真实奖品图给抓取光标提示；占位态保持默认光标 */
}
.lottery-page .prize-col .prize .p-art img.can-zoom[data-v-44b55e92] {
  cursor: zoom-in;
}
.lottery-page .prize-col .prize .p-main[data-v-44b55e92] {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.lottery-page .prize-col .prize .p-main .p-name[data-v-44b55e92] {
  font-size: 15px;
  font-weight: 700;
  color: #282828;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lottery-page .prize-col .prize .prob[data-v-44b55e92] {
  margin-left: auto;
  text-align: right;
  display: grid;
  gap: 1px;
  flex: none;
}
.lottery-page .prize-col .prize .prob b[data-v-44b55e92] {
  font-size: 20px;
  font-weight: 800;
  color: #F5565B;
  line-height: 1.1;
  white-space: nowrap;
}
.lottery-page .prize-col .prize .prob b small[data-v-44b55e92] {
  font-size: 11px;
  color: #999999;
  font-weight: 600;
}
.lottery-page .prize-col .prize .prob > small[data-v-44b55e92] {
  font-size: 11px;
  color: #999999;
  white-space: nowrap;
}
.lottery-page .prize-col .prize.sold .p-art[data-v-44b55e92],
.lottery-page .prize-col .prize.sold .p-main[data-v-44b55e92] {
  filter: grayscale(1);
  opacity: 0.45;
}
.lottery-page .prize-col .prize.sold .prob b[data-v-44b55e92] {
  color: #999999;
}
.lottery-page .tag[data-v-44b55e92] {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.lottery-page .tag-phys[data-v-44b55e92] {
  background: #FFF4F4;
  color: #E04146;
}
.lottery-page .tag-virt[data-v-44b55e92] {
  background: #FFF6E0;
  color: #B97E14;
}
.lottery-page .tag-point[data-v-44b55e92] {
  background: #FFF3E5;
  color: #B45309;
}
.lottery-page .tag-none[data-v-44b55e92] {
  background: #f0f0f2;
  color: #999999;
}
.lottery-page .tag-sold[data-v-44b55e92] {
  background: #FF8F1F;
  color: #fff;
  font-weight: 700;
}
.lottery-page .entry-row[data-v-44b55e92] {
  margin-top: 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.lottery-page .entry-card[data-v-44b55e92] {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 24px;
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 2px 12px 0 rgba(38, 38, 41, 0.06);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.lottery-page .entry-card[data-v-44b55e92]:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.12);
}
.lottery-page .entry-card .entry-ico[data-v-44b55e92] {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  flex: none;
  background: #FFF4F4;
  color: #F5565B;
  display: grid;
  place-items: center;
}
.lottery-page .entry-card .entry-ico .od-icon[data-v-44b55e92] {
  inline-size: 20px;
  block-size: 20px;
}
.lottery-page .entry-card .od-fill[data-v-44b55e92] {
  min-width: 0;
}
.lottery-page .entry-card .od-fill h4[data-v-44b55e92] {
  font-size: 15px;
  font-weight: 700;
  color: #282828;
  margin: 0;
}
.lottery-page .entry-card .od-fill p[data-v-44b55e92] {
  font-size: 12px;
  color: #999999;
  margin: 2px 0 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lottery-page .entry-card .entry-arrow[data-v-44b55e92] {
  margin-left: auto;
  inline-size: 18px;
  block-size: 18px;
  color: #999999;
  flex: none;
}
.lottery-page .board-sec[data-v-44b55e92] {
  margin-top: 24px;
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 2px 12px 0 rgba(38, 38, 41, 0.06);
}
.lottery-page .pc-foot[data-v-44b55e92] {
  text-align: center;
  color: #999999;
  font-size: 12px;
  margin: 28px 0 0;
  line-height: 1.9;
}
/* ---------- 窄屏回退（≥1024px 按画布布局，以下逐级收纳） ---------- */
@media (max-width: 1240px) {
.lottery-page .main-grid[data-v-44b55e92] {
    grid-template-columns: minmax(0, 1fr) 340px;
}
}
@media (max-width: 1024px) {
.lottery-page .page-inner[data-v-44b55e92] {
    padding: 0 16px;
}
.lottery-page .batch-bar[data-v-44b55e92] {
    flex-wrap: wrap;
    padding: 6px 16px;
}
.lottery-page .batch-bar .b-item[data-v-44b55e92] {
    flex: 1 1 40%;
    padding: 10px 0;
}
.lottery-page .batch-bar .b-item + .b-item[data-v-44b55e92] {
    border-left: none;
}
.lottery-page .main-grid[data-v-44b55e92] {
    grid-template-columns: 1fr;
}
.lottery-page .entry-row[data-v-44b55e92] {
    grid-template-columns: 1fr;
}
}

/*
*个人中心白色版本
*
*/
/**
 * 大转盘模块设计令牌（QDPT-7 视觉改造）
 *
 * 复用站内既有令牌，不自起色值：
 *   主色 #F5565B（theme.css:8 --primary-highlight-color，全站 490 处引用）
 *   主色浅底 #FFF4F4（theme.css:9 --primary-highlight-color-light-1）
 *   主要文字 #282828（theme.css:7 --222222-light-1）
 *   次要文字 #6F6F6F（theme.css:22 --secondary-text-color）
 *   弱化文字 #999999（theme.css:24 --secondary-text-color-light-2）
 *   成功色 #34AA44（globle.less:7 --green）
 *   圆角 16px（globle.less:26 --border-radius-16）
 *   阴影范例 0 4px 20px 0 var(--DCDCDC80-26262990)（HomeRecommendEnterpriseItem.vue:174）
 *
 * ============================================================================
 * Element Plus 主题覆盖 · 作用域影响面评估结论
 * ----------------------------------------------------------------------------
 * 依赖实测：element-plus 锁定版本 1.0.2-beta.71（yarn.lock:4100），
 * 已解包核验其 theme-chalk/index.css 实际产物。
 *
 * 1) 作用域必须局部，不能全局 :root
 *    全站 type="primary" 共 31 处，分布在 18 个 Lottery 目录外的文件中
 *    （登录/注册弹层、招聘表单、活动报名、作品详情评论等）；
 *    全局覆盖 --el-color-primary 会把这些页面的按钮/筛选器一并改成红色，
 *    超出「只改抽奖页视觉」的授权范围。
 *    → 采用局部作用域：仅在 Lottery 模块根节点声明 CSS 变量。
 *
 * 2) 弹层（el-dialog）需单独声明
 *    el-dialog 走 teleport，内容挂到 body 下，不在页面根节点的 DOM 子树内，
 *    继承不到页面作用域的变量。
 *    1.0.2-beta.71 实测提供 customClass prop（lib/el-dialog/index.js:206,319），
 *    该 class 会落到 .el-dialog 元素上（el-overlay > .el-dialog > header/body/footer），
 *    因此在 .el-dialog 这一层声明变量即可覆盖弹层内的 header / body / footer，
 *    比在 body 内节点上声明更完整（footer 的「确认抽奖」按钮也覆盖到）。
 *
 * 3) primary 按钮必须额外硬覆盖（关键差异，与 Element Plus 2.x 不同）
 *    该版本 .el-button--primary 的变量是【元素级硬编码】，不读 --el-color-primary：
 *      .el-button--primary{--el-button-background-color:#409eff; ...}
 *    且 .el-button 元素级声明了 --el-button-background-color: var(--el-color-white)，
 *    元素级声明优先级高于祖先继承，故在作用域上设同名变量【无效】。
 *    → 必须在作用域内用 .el-button--primary 选择器重新声明按钮专用变量。
 *
 * 4) 变量名按实测取值，不照搬 Element Plus 2.x 命名
 *    禁用态实测为 --el-button-disabled-background-color（2.x 文档常写 -bg-color）。
 *
 * 5) 确认读变量、覆盖即生效的组件
 *    el-radio-button 选中态  → var(--el-color-primary)            ✅
 *    el-pager li.active      → var(--el-color-primary)            ✅
 *    el-pagination hover     → var(--el-color-primary)            ✅
 *    el-input / el-checkbox / el-alert 边框与勾选  → 读主色变量   ✅
 */
/* ---------- 主色系 ---------- */
/* ---------- 中性色 ---------- */
/* ---------- 语义色 ---------- */
/* ---------- 次强调色（保留橙，仅用于售罄等次级语义） ---------- */
/* ---------- 圆角（设计稿 v2 收敛为 4 档：16 / 12 / 8 / 999 胶囊） ---------- */
/* ---------- 阴影（卡片 / 弹层两档；v2 弹层投影减重） ---------- */
/* ============================================================================
 * 设计稿 v1 扩充令牌（C 端高保真设计稿 6 画布 · 三端共享规格）
 *
 * 来源：qdpt7-lottery-wheel-design 设计稿 :root 色板。
 * 红系全部从站内主色 #F5565B 派生（深化两档），金色系仅服务转盘金属质感与
 * 活动氛围，不进入通用 UI 语义；文字/底色/圆角沿用上方站内令牌，不另起值。
 * ========================================================================== */
/* 深红两档（KV 横幅与转盘区渐变用，仅活动氛围场景） */
/* 橙色系（售罄标 / 警告条；@lottery-accent 即设计稿 --orange） */
/* 分隔线（奖品卡 / 表格用暖灰线；次级描边线为 v2 新增 --line-2） */
/* 金色系（转盘金属环 / 活动氛围；仅服务大转盘与氛围层。
   v2 金色系收敛为 4 阶，--gold-soft 已删除，勿再引用） */
/* 转盘扇区四色循环（红 / 金 / 浅红 / 浅灰），与三端共享同一份 */
/* 金属环渐变（转盘外圈；v2：145deg 亮金起笔、暗金收尾，非首尾循环） */
/* 金属环光影（v2：暖金投影替代 v1 红棕投影，D1-06） */
/* 金属钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，D1-03） */
/* 主按钮（设计稿 v2 btn-pri：红渐变 + 柔影 + 内高光内底影） */
/* KV 横幅渐变底（v2：132deg，#FF6B70 起笔、red-dark 收尾） */
/* 弹层遮罩（设计稿 v2 scrim） */
/**
 * 注意：Element Plus 主题覆盖【不使用 Less mixin 承载 CSS 自定义属性】。
 *
 * 实测（yarn build + 产物校验）：把 --el-* 自定义属性写进 Less mixin 后，
 * 经 less-loader（含 sass-resources-loader 前置）编译时，全局样式入口
 * (src/assets/style/lottery-dialog-theme.less) 的自定义属性块会被整段丢弃，
 * 而同一 mixin 在组件 scoped 样式块中却正常输出 —— 行为不一致且不可控。
 *
 * 因此 Element Plus 主题覆盖统一放在全局样式文件
 * src/assets/style/lottery-element-theme.less 中用【显式选择器】声明，
 * 变量与令牌在本文件仅作为 Less 变量引用，不再经 mixin 传递。
 */
.lottery-records[data-v-4806aee7] {
  min-height: 100vh;
  background: #F7F8FA;
  padding: 16px 0 40px;
  /* 返回圆钮（与规则页 doc-head .back 同口径：34px 圆形 + hover 主色，Task #12） */
}
.lottery-records .page-inner[data-v-4806aee7] {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 12px;
}
.lottery-records .back-row[data-v-4806aee7] {
  display: flex;
  margin-bottom: 12px;
}
.lottery-records .back-row .back[data-v-4806aee7] {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid #E9E9EE;
  display: grid;
  place-items: center;
  color: #6F6F6F;
  cursor: pointer;
  flex: none;
}
.lottery-records .back-row .back .od-icon[data-v-4806aee7] {
  inline-size: 16px;
  block-size: 16px;
}
.lottery-records .back-row .back[data-v-4806aee7]:hover {
  color: #E04146;
  border-color: #E04146;
}
.lottery-records .tabs-row[data-v-4806aee7] {
  display: flex;
  background: #FFFFFF;
  border-radius: 16px;
  padding: 4px;
  margin-bottom: 12px;
  box-shadow: 0 2px 12px 0 rgba(38, 38, 41, 0.06);
}
.lottery-records .tabs-row .tab-item[data-v-4806aee7] {
  flex: 1;
  text-align: center;
  padding: 10px 0;
  font-size: 14px;
  color: #6F6F6F;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}
.lottery-records .tabs-row .tab-item.active[data-v-4806aee7] {
  background: #F5565B;
  color: #FFFFFF;
}
.lottery-records .filter-row[data-v-4806aee7] {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 12px;
  margin-bottom: 12px;
  box-shadow: 0 2px 12px 0 rgba(38, 38, 41, 0.06);
}
.lottery-records .list-panel[data-v-4806aee7] {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 4px 16px 16px;
  box-shadow: 0 2px 12px 0 rgba(38, 38, 41, 0.06);
}
.lottery-records .empty-text[data-v-4806aee7] {
  padding: 30px 0;
  text-align: center;
  font-size: 13px;
  color: #999999;
}
.lottery-records .record-item[data-v-4806aee7] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid #ECECEC;
}
.lottery-records .record-item .record-main[data-v-4806aee7] {
  min-width: 0;
  flex: 1;
}
.lottery-records .record-item .record-title[data-v-4806aee7] {
  font-size: 14px;
  color: #282828;
  display: flex;
  align-items: center;
  /* 核销状态标签按状态取语义色，不再使用蓝色 */
  /* 快递公司与单号（AC-93，Task #50）：状态标签右侧轻量文本，不抢标签视觉 */
}
.lottery-records .record-item .record-title .win-tag[data-v-4806aee7] {
  /* 批次名移除后本标签为标题行唯一子元素（原 8px 为与批次名的分隔间距），改为 0 避免悬空缩进；Task #45 设计审查必改项 */
  margin-left: 0;
  padding: 0 6px;
  border-radius: 4px;
  font-size: 12px;
  line-height: 18px;
}
.lottery-records .record-item .record-title .win-tag.is-win[data-v-4806aee7] {
  background: #FFF4F4;
  color: #F5565B;
}
.lottery-records .record-item .record-title .win-tag.is-lose[data-v-4806aee7] {
  background: #F5F6F8;
  color: #999999;
}
.lottery-records .record-item .record-title .status-tag[data-v-4806aee7] {
  margin-left: 8px;
  padding: 0 6px;
  border-radius: 4px;
  font-size: 12px;
  line-height: 18px;
  background: #FFF7E6;
  color: #FA8C16;
}
.lottery-records .record-item .record-title .status-tag.is-sent[data-v-4806aee7] {
  background: #E8F4FF;
  color: #2A7CD3;
}
.lottery-records .record-item .record-title .status-tag.is-done[data-v-4806aee7] {
  background: #E8F8EE;
  color: #34AA44;
}
.lottery-records .record-item .record-title .status-tag.is-overdue[data-v-4806aee7] {
  background: #FEF0F0;
  color: #F56C6C;
}
.lottery-records .record-item .record-title .express-text[data-v-4806aee7] {
  margin-left: 8px;
  font-size: 12px;
  line-height: 18px;
  color: #999999;
  word-break: break-all;
}
.lottery-records .record-item .record-sub[data-v-4806aee7] {
  margin-top: 8px;
  font-size: 13px;
  color: #999999;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.lottery-records .record-item .record-sub .prize-name[data-v-4806aee7] {
  color: #6F6F6F;
}
.lottery-records .record-item .record-sub .cost[data-v-4806aee7] {
  margin-left: 12px;
}
.lottery-records .record-item .record-sub .redeem-time[data-v-4806aee7] {
  margin-left: 12px;
}
.lottery-records .record-item .record-sub .need-address[data-v-4806aee7] {
  margin-left: 12px;
  color: #F5565B;
  cursor: pointer;
  border-bottom: 1px solid currentColor;
}
.lottery-records .record-item .record-time[data-v-4806aee7] {
  font-size: 12px;
  color: #999999;
  margin-left: 12px;
  flex-shrink: 0;
}
.lottery-records .pagination-row[data-v-4806aee7] {
  margin-top: 16px;
  text-align: center;
}
.lottery-records .address-form[data-v-4806aee7] {
  /* AC-106（Task #61）：运费条款提示——沿用 LotteryContactForm 同款 form-hint 规格
       （13px / @lottery-text-tertiary / 行高 18px），不新起视觉体系 */
  /* 运费条款为纠纷预防要点：位于详细地址字段下方、提交按钮区上方，
       视觉层级弱于字段本身但不被忽略 */
}
.lottery-records .address-form .form-row[data-v-4806aee7] {
  margin-bottom: 16px;
}
.lottery-records .address-form .form-row .form-label[data-v-4806aee7] {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
  color: #282828;
}
.lottery-records .address-form .form-row .form-label i[data-v-4806aee7] {
  color: #F56C6C;
  font-style: normal;
}
.lottery-records .address-form .form-row .region-cascader[data-v-4806aee7] {
  width: 100%;
}
.lottery-records .address-form .form-error[data-v-4806aee7] {
  font-size: 12px;
  color: #F56C6C;
}
.lottery-records .address-form .form-hint[data-v-4806aee7] {
  font-size: 13px;
  color: #999999;
  line-height: 18px;
}
.lottery-records .address-form .shipping-fee-hint[data-v-4806aee7] {
  margin: -6px 0 16px;
}

/*
*个人中心白色版本
*
*/
/**
 * 大转盘模块设计令牌（QDPT-7 视觉改造）
 *
 * 复用站内既有令牌，不自起色值：
 *   主色 #F5565B（theme.css:8 --primary-highlight-color，全站 490 处引用）
 *   主色浅底 #FFF4F4（theme.css:9 --primary-highlight-color-light-1）
 *   主要文字 #282828（theme.css:7 --222222-light-1）
 *   次要文字 #6F6F6F（theme.css:22 --secondary-text-color）
 *   弱化文字 #999999（theme.css:24 --secondary-text-color-light-2）
 *   成功色 #34AA44（globle.less:7 --green）
 *   圆角 16px（globle.less:26 --border-radius-16）
 *   阴影范例 0 4px 20px 0 var(--DCDCDC80-26262990)（HomeRecommendEnterpriseItem.vue:174）
 *
 * ============================================================================
 * Element Plus 主题覆盖 · 作用域影响面评估结论
 * ----------------------------------------------------------------------------
 * 依赖实测：element-plus 锁定版本 1.0.2-beta.71（yarn.lock:4100），
 * 已解包核验其 theme-chalk/index.css 实际产物。
 *
 * 1) 作用域必须局部，不能全局 :root
 *    全站 type="primary" 共 31 处，分布在 18 个 Lottery 目录外的文件中
 *    （登录/注册弹层、招聘表单、活动报名、作品详情评论等）；
 *    全局覆盖 --el-color-primary 会把这些页面的按钮/筛选器一并改成红色，
 *    超出「只改抽奖页视觉」的授权范围。
 *    → 采用局部作用域：仅在 Lottery 模块根节点声明 CSS 变量。
 *
 * 2) 弹层（el-dialog）需单独声明
 *    el-dialog 走 teleport，内容挂到 body 下，不在页面根节点的 DOM 子树内，
 *    继承不到页面作用域的变量。
 *    1.0.2-beta.71 实测提供 customClass prop（lib/el-dialog/index.js:206,319），
 *    该 class 会落到 .el-dialog 元素上（el-overlay > .el-dialog > header/body/footer），
 *    因此在 .el-dialog 这一层声明变量即可覆盖弹层内的 header / body / footer，
 *    比在 body 内节点上声明更完整（footer 的「确认抽奖」按钮也覆盖到）。
 *
 * 3) primary 按钮必须额外硬覆盖（关键差异，与 Element Plus 2.x 不同）
 *    该版本 .el-button--primary 的变量是【元素级硬编码】，不读 --el-color-primary：
 *      .el-button--primary{--el-button-background-color:#409eff; ...}
 *    且 .el-button 元素级声明了 --el-button-background-color: var(--el-color-white)，
 *    元素级声明优先级高于祖先继承，故在作用域上设同名变量【无效】。
 *    → 必须在作用域内用 .el-button--primary 选择器重新声明按钮专用变量。
 *
 * 4) 变量名按实测取值，不照搬 Element Plus 2.x 命名
 *    禁用态实测为 --el-button-disabled-background-color（2.x 文档常写 -bg-color）。
 *
 * 5) 确认读变量、覆盖即生效的组件
 *    el-radio-button 选中态  → var(--el-color-primary)            ✅
 *    el-pager li.active      → var(--el-color-primary)            ✅
 *    el-pagination hover     → var(--el-color-primary)            ✅
 *    el-input / el-checkbox / el-alert 边框与勾选  → 读主色变量   ✅
 */
/* ---------- 主色系 ---------- */
/* ---------- 中性色 ---------- */
/* ---------- 语义色 ---------- */
/* ---------- 次强调色（保留橙，仅用于售罄等次级语义） ---------- */
/* ---------- 圆角（设计稿 v2 收敛为 4 档：16 / 12 / 8 / 999 胶囊） ---------- */
/* ---------- 阴影（卡片 / 弹层两档；v2 弹层投影减重） ---------- */
/* ============================================================================
 * 设计稿 v1 扩充令牌（C 端高保真设计稿 6 画布 · 三端共享规格）
 *
 * 来源：qdpt7-lottery-wheel-design 设计稿 :root 色板。
 * 红系全部从站内主色 #F5565B 派生（深化两档），金色系仅服务转盘金属质感与
 * 活动氛围，不进入通用 UI 语义；文字/底色/圆角沿用上方站内令牌，不另起值。
 * ========================================================================== */
/* 深红两档（KV 横幅与转盘区渐变用，仅活动氛围场景） */
/* 橙色系（售罄标 / 警告条；@lottery-accent 即设计稿 --orange） */
/* 分隔线（奖品卡 / 表格用暖灰线；次级描边线为 v2 新增 --line-2） */
/* 金色系（转盘金属环 / 活动氛围；仅服务大转盘与氛围层。
   v2 金色系收敛为 4 阶，--gold-soft 已删除，勿再引用） */
/* 转盘扇区四色循环（红 / 金 / 浅红 / 浅灰），与三端共享同一份 */
/* 金属环渐变（转盘外圈；v2：145deg 亮金起笔、暗金收尾，非首尾循环） */
/* 金属环光影（v2：暖金投影替代 v1 红棕投影，D1-06） */
/* 金属钉环纹理（v2：亮 4° / 暗 18.5° 细密钉，D1-03） */
/* 主按钮（设计稿 v2 btn-pri：红渐变 + 柔影 + 内高光内底影） */
/* KV 横幅渐变底（v2：132deg，#FF6B70 起笔、red-dark 收尾） */
/* 弹层遮罩（设计稿 v2 scrim） */
/**
 * 注意：Element Plus 主题覆盖【不使用 Less mixin 承载 CSS 自定义属性】。
 *
 * 实测（yarn build + 产物校验）：把 --el-* 自定义属性写进 Less mixin 后，
 * 经 less-loader（含 sass-resources-loader 前置）编译时，全局样式入口
 * (src/assets/style/lottery-dialog-theme.less) 的自定义属性块会被整段丢弃，
 * 而同一 mixin 在组件 scoped 样式块中却正常输出 —— 行为不一致且不可控。
 *
 * 因此 Element Plus 主题覆盖统一放在全局样式文件
 * src/assets/style/lottery-element-theme.less 中用【显式选择器】声明，
 * 变量与令牌在本文件仅作为 Less 变量引用，不再经 mixin 传递。
 */
.lottery-rule[data-v-2de2bfa7] {
  min-height: 100vh;
  background: #F7F8FA;
  padding: 40px 0 56px;
  /* 白卡文档（v2 doc：880px 文档式排版） */
  /* 文档头（v2：返回圆钮 + 标题 + 更新时间） */
  /* 概率表（v2 tb-rule：表头红浅底 + 合计行浅灰） */
  /* 发放核销三行（v2 deliver-row：标签 + 说明文） */
  /* 后台下发规则文案 */
  /* 标签配色（v2 四档窄标签） */
}
.lottery-rule .page-inner[data-v-2de2bfa7] {
  max-width: 1184px;
  margin: 0 auto;
  padding: 0 48px;
}
.lottery-rule .doc[data-v-2de2bfa7] {
  max-width: 880px;
  margin: 0 auto;
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 2px 12px 0 rgba(38, 38, 41, 0.06);
  overflow: hidden;
}
.lottery-rule .doc-head[data-v-2de2bfa7] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 28px;
  border-bottom: 1px solid #F0E9E9;
}
.lottery-rule .doc-head .back[data-v-2de2bfa7] {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid #E9E9EE;
  display: grid;
  place-items: center;
  color: #6F6F6F;
  cursor: pointer;
  flex: none;
}
.lottery-rule .doc-head .back .od-icon[data-v-2de2bfa7] {
  inline-size: 16px;
  block-size: 16px;
}
.lottery-rule .doc-head .back[data-v-2de2bfa7]:hover {
  color: #E04146;
  border-color: #E04146;
}
.lottery-rule .doc-head h4[data-v-2de2bfa7] {
  font-size: 17px;
  font-weight: 700;
  color: #282828;
  margin: 0;
}
.lottery-rule .doc-head .upd[data-v-2de2bfa7] {
  margin-left: auto;
  font-size: 12px;
  color: #999999;
}
.lottery-rule .doc-body[data-v-2de2bfa7] {
  padding: 6px 32px 40px;
  /* 节标题（v2：「一、二、三」+ 红色左竖线） */
  /* 序号列表（v2：红浅底圆徽标序号） */
}
.lottery-rule .doc-body h3[data-v-2de2bfa7] {
  font-size: 17px;
  font-weight: 700;
  color: #282828;
  margin: 30px 0 12px;
  padding-left: 11px;
  border-left: 4px solid #F5565B;
  line-height: 1.35;
}
.lottery-rule .doc-body p[data-v-2de2bfa7] {
  font-size: 14px;
  color: #6F6F6F;
  line-height: 1.9;
  margin: 0;
  word-break: break-all;
}
.lottery-rule .doc-body ol[data-v-2de2bfa7] {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: r;
}
.lottery-rule .doc-body ol li[data-v-2de2bfa7] {
  counter-increment: r;
  position: relative;
  padding-left: 34px;
  font-size: 14px;
  color: #6F6F6F;
  line-height: 1.9;
  margin-top: 8px;
}
.lottery-rule .doc-body ol li[data-v-2de2bfa7]::before {
  content: counter(r);
  position: absolute;
  left: 0;
  top: 5px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #FFF4F4;
  color: #E04146;
  font-size: 12px;
  font-weight: 700;
  display: grid;
  place-items: center;
}
.lottery-rule .doc-body ol b[data-v-2de2bfa7] {
  color: #282828;
  font-weight: 600;
}
.lottery-rule .tb-rule[data-v-2de2bfa7] {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin-top: 6px;
  /* 谢谢参与合计行 */
}
.lottery-rule .tb-rule th[data-v-2de2bfa7] {
  background: #FFF4F4;
  color: #C7363C;
  padding: 9px 14px;
  text-align: left;
  font-weight: 600;
}
.lottery-rule .tb-rule td[data-v-2de2bfa7] {
  padding: 10px 14px;
  border-bottom: 1px solid #F0E9E9;
  color: #6F6F6F;
}
.lottery-rule .tb-rule td b[data-v-2de2bfa7] {
  color: #282828;
}
.lottery-rule .tb-rule .pct[data-v-2de2bfa7] {
  color: #E04146;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.lottery-rule .tb-rule .num[data-v-2de2bfa7] {
  font-variant-numeric: tabular-nums;
}
.lottery-rule .tb-rule tr.is-sold-out td[data-v-2de2bfa7]:first-child {
  color: #999999;
}
.lottery-rule .tb-rule tr.sum td[data-v-2de2bfa7] {
  border-bottom: none;
  background: #fafafb;
  color: #999999;
}
.lottery-rule .table-note[data-v-2de2bfa7] {
  margin-top: 8px;
  font-size: 12.5px;
  color: #999999 !important;
}
.lottery-rule .deliver-grid[data-v-2de2bfa7] {
  display: grid;
  gap: 10px;
  margin-top: 6px;
}
.lottery-rule .deliver-row[data-v-2de2bfa7] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 16px;
  border: 1px solid #F0E9E9;
  border-radius: 12px;
}
.lottery-rule .deliver-row .d-tag[data-v-2de2bfa7] {
  flex: none;
  margin-top: 2px;
}
.lottery-rule .deliver-row p[data-v-2de2bfa7] {
  font-size: 13px;
  line-height: 1.7;
}
.lottery-rule .deliver-row p b[data-v-2de2bfa7] {
  color: #282828;
}
.lottery-rule .rule-extra[data-v-2de2bfa7] {
  margin-top: 14px;
  padding: 14px 16px;
  background: #F5F6F8;
  border-radius: 12px;
  font-size: 13.5px;
  color: #6F6F6F;
  line-height: 1.9;
  word-break: break-all;
}
.lottery-rule .tag[data-v-2de2bfa7] {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.lottery-rule .tag-phys[data-v-2de2bfa7] {
  background: #FFF4F4;
  color: #E04146;
}
.lottery-rule .tag-virt[data-v-2de2bfa7] {
  background: #FFF6E0;
  color: #B97E14;
}
.lottery-rule .tag-point[data-v-2de2bfa7] {
  background: #FFF3E5;
  color: #B45309;
}
.lottery-rule .tag-none[data-v-2de2bfa7] {
  background: #f0f0f2;
  color: #999999;
}
.lottery-rule .tag-sold[data-v-2de2bfa7] {
  background: #FF8F1F;
  color: #fff;
  font-weight: 700;
  margin-left: 4px;
}
.lottery-rule .empty-text[data-v-2de2bfa7] {
  padding: 24px 0;
  text-align: center;
  font-size: 13px;
  color: #999999;
}
@media (max-width: 1024px) {
.lottery-rule[data-v-2de2bfa7] {
    padding-top: 24px;
}
.lottery-rule .page-inner[data-v-2de2bfa7] {
    padding: 0 16px;
}
.lottery-rule .doc-body[data-v-2de2bfa7] {
    padding: 6px 20px 32px;
}
}


/*# sourceMappingURL=lottery.1c3c8481.css.map*/