/* 可可果节 H5 页面样式 */
/* designWidth = 750（内容坐标系）；换算铁律：rem = 设计稿px / 100 */

/* 字体：dundun.ttf 用于弹窗标题（fz-dd）；fzlt-zhongzu.ttf 用于正文（fzlty-zz） */

@font-face {
  font-family: 'fz-dd';
  src: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/fonts/dundun.ttf');
}

@font-face {
  font-family: 'fzlty-zz';
  src: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/fonts-origin/fzlt-zhongzu.ttf');
}

@media all and (orientation: landscape) and (min-width: 480px) and (min-aspect-ratio: 10/9) and (any-pointer: coarse) {
    html:not(.no-rotate-tip),
    html:not(.no-rotate-tip) body { position: relative; overflow: hidden; width: 100%; height: 100%; padding: 0; margin: 0;}
    html:not(.no-rotate-tip):before {content: "\4e3a\4e86\66f4\597d\7684\4f53\9a8c\ff0c\8bf7\5c06\624b\673a\7ad6\8fc7\6765"; position:fixed; top:0; left:0; height:100%; height:100vh;height:100dvh;width:100%; padding-top:calc(50vh + 50px); padding-top:calc(50dvh + 50px); box-sizing:border-box; background:#333; color:#fff; font-size:16px; line-height:30px; text-align:center; z-index:99999; }
    html:not(.no-rotate-tip):after { content: "";position:fixed; z-index:99999; height:200px; width:100px; left:50%; top:50%;top:50vh;top:50dvh; margin:-140px 0 0 -50px; color:#fff;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAB2CAYAAAAZUrcsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDAwMjcwNkVEQzczMTFFNjlFMDFGQTEzNkM3N0JBMTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDAwMjcwNkREQzczMTFFNjlFMDFGQTEzNkM3N0JBMTMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ0NzhCMTlBREM1ODExRTZCNTdFRjQ0Q0I1QzRCODZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ0NzhCMTlCREM1ODExRTZCNTdFRjQ0Q0I1QzRCODZBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+J30rNQAACRRJREFUeNrsXQlsFVUU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"); background-repeat:no-repeat; background-position:center center; background-size:100px auto; transform:rotateZ(-90deg);}
}


/* pc端提示 */
/* 默认隐藏，PC 端由 body 首个内联脚本给 <body> 打的 .is-pc 直接显示。
   不用等 body 底部 index.js，避免首屏先闪一帧活动页背景。 */
.pc_tips {
  display: none;
}

/* PC：活动页整体不参与渲染，首屏直接出扫码面板 */
body.is-pc .page {
  display: none;
}

body.is-pc .pc_tips {
  display: block;
}

.pc_tips {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999999;
  background: #000 url(https://game.gtimg.cn/images/rocom/act/a20260909invite/pc-bg.jpg?v1) 100% 0 no-repeat;
  background-size: cover;
  min-width: 1000px;
}

.pc_tips .main {
  width: 330px;
  height: 372px;
  position: absolute;
  bottom: 10%;
  right: 10%;
  padding-top: 30px;
  text-align: center;
  box-sizing: border-box;
  align-items: center;
  display: flex;
  flex-direction: column;
  background: url(https://game.gtimg.cn/images/rocom/act/a20260909invite/pc-border.png) 0 0 no-repeat;
}

.pc_tips .main .qrcode {
  width: 256px;
  height: 256px;
}

.pc_tips .main .qrcode canvas {
  width: 100%;
  height: 100%;
}

.pc_tips .main .qrcode img {
  width: 100%;
  height: 100%;
}

.pc_tips .main p {
  display: none;
  font-size: 16px;
  color: #fff;
  padding: 15px 0 5px;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: calc(100vw / 7.5);
}

body {
  min-height: 100vh;
  background-color: #f4eee1;
  font-family: 'fzlty-zz', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

a {
  text-decoration: none;
}

ul {
  list-style: none;
}

/* 限定业务图片范围，避免影响 html2canvas 在 body 下插入的行内基线测量图片。 */
.page img,
.pc_tips img,
.pop img,
.poster-draw-area img {
  display: block;
}

/* 页面根容器：整页 bg.jpg 背景 */

.page {
  position: relative;
  width: 7.5rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow-x: hidden;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/bg.jpg');
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-color: #f4eee1;
  background-position-y: -1.84rem;
}

.part {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* part1 顶部标题 + 头图 + 领取按钮 */


.title-top {
  width: 7.5rem;
  height: 1.82rem;
}

.banner-hero {
  width: 7.5rem;
  height: 7.19rem;
  margin-top: -1.05rem;
}

.btn-receive {
  display: block;
  width: 5.23rem;
  margin-top: .56rem;
}

.btn-receive-img {
  width: 100%;
  height: auto;
}

.btn-receive-tip {
  width: 4.68rem;
  margin-top: .23rem;
  font-size: .22rem;
  line-height: .28rem;
  color: #ae832d;
  text-align: center;
}

/* part2 奖池预览 */

.part-jackpot {
  padding: .2rem .5rem 0;
}

.title-jackpot {
  width: 6.71rem;
  height: 1.13rem;
}

.decor-jackpot-kkg {
  position: absolute;
  top: -.6rem;
  right: -0.3rem;
  width: 1.63rem;
  height: 1.74rem;
  z-index: 2;
}

.decor-jackpot-4070 {
  position: absolute;
  top: 3.05rem;
  left: 0;
  width: .93rem;
  height: 1.31rem;
  z-index: 2;
}

.decor-jackpot-flower {
  position: absolute;
  top: 4rem;
  right: .3rem;
  width: .39rem;
  height: .4rem;
  z-index: 2;
}

/* 奖池 swiper（swiper-4.3.3 结构，每个 slide = 一张卡片） */

.prize-swiper {
  width: 6.41rem;
  margin: .1rem auto 0;
  overflow: hidden;
  padding-bottom: .47rem;
}

/* 奖池卡片（swiper-slide，卡间距由 Swiper spaceBetween 控制，不要在此写 margin） */
.prize-card {
  position: relative;
  width: 1.54rem;
  height: 2.13rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: .12rem .06rem .10rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/part2/item-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-sizing: border-box;
  margin-right: .07rem;
}
.prize-card:nth-child(4n){
  margin-right: 0;
}

.prize-icon {
  margin-top: .1rem;
  height: 1.05rem;
  width: auto;
}
.prize-card:nth-child(1) .prize-icon{
  margin-top: .18rem;
  height: .91rem;
}
.prize-name {
  font-size: .2rem;
  width: 100%;
  height: .335rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #f1ead9;
  font-family: 'fz-dd', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
.prize-card:nth-child(1) .prize-desc{
  font-size: .14rem;
}
.prize-desc{
  position: absolute;
  bottom: .09rem;
  width: 100%;
  height: .28rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .16rem;
  color: #f4eee1;
  font-family: 'fz-dd', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
.prize-count {
  position: absolute;
  right: .15rem;
  bottom: .42rem;
  font-size: .22rem;
  line-height: 1;
  color: #f4eee1;
  -webkit-text-stroke: .03rem #bf5100;
  paint-order: stroke;
  letter-spacing: -0.02rem;
  font-family: 'fz-dd', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

/* 轮播控件：左箭头 + 指示点组 + 右箭头（外置在 swiper-container 下方） */
.swiper-nav {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: .2rem;
  height: .27rem;
  width: 2.12rem;
}

.swiper-arrow {
  top: 0;
  position: absolute;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}

.swiper-arrow--prev {
  left: 0;
}

.swiper-arrow--next {
  right: 0;
}

.swiper-arrow-img {
  width: auto;
  height: .27rem;
}

/* 指示点组：4 个圆点，当前页橙色 #fcb641，其余未选 #dcb571 */
.swiper-dots {
  display: flex;
  align-items: center;
  gap: .11rem;
}

.swiper-dot {
  width: .17rem;
  height: .17rem;
  border-radius: 50%;
  background-color: #dcb571;
}

.swiper-dot--active {
  width: .18rem;
  height: .17rem;
  background-color: #fcb641;
}

.link-record {
  margin-top: .2rem;
  font-size: .22rem;
  color: #ae832d;
  text-decoration: underline;
  text-underline-offset: .04rem;
}

/* part3 已分享好友 */

.part-shared {
  padding: 0 .5rem;
}

.decor-shared-side {
  position: absolute;
  top: 7.8rem;
  left: 0;
  width: 2.19rem;
  height: 3.91rem;
  z-index: 2;
}

.decor-shared-cocoa {
  position: absolute;
  top: 8.8rem;
  right: -.26rem;
  width: 1.8rem;
  height: 2.23rem;
  z-index: 2;
}

.title-shared {
  width: 6.75rem;
  height: 1.13rem;
}

.shared-tip {
  margin: .21rem 0 .16rem;
  font-size: .21rem;
  color: #d36616;
  text-align: center;
  line-height: 1;
}

.friend-list-box {
  width: 6.43rem;
  height: 7.17rem;
  margin-top: .12rem;
  padding: 0 .18rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/part3/friendlist-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

/* 好友列表 swiper（横向翻页，每 slide = 一整页 5 张卡） */
.friend-swiper {
  width: 100%;
  overflow: hidden;
}

.friend-list {
  display: flex;
  width: 100%;
}

/* 每一页：竖向排列 5 张卡片 */
.friend-page {
  display: flex;
  flex-direction: column;
  gap: .16rem;
  box-sizing: border-box;
}

.friend-card {
  display: flex;
  align-items: center;
  gap: .16rem;
  width: 100%;
  height: 1.13rem;
  padding: 0 .2rem;
  border-radius: .1rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/part3/item-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-sizing: border-box;
}

.friend-avatar {
  flex: 0 0 auto;
  position: relative;
  display: block;
  width: .74rem;
  height: .75rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/part3/avatar-friend-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.friend-avatar--empty {
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/part3/avatar-empty-bg.png');
}

.friend-avatar-photo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

.friend-avatar-photo--default {
  width: .76rem;
  height: .76rem;
}

.friend-name {
  flex: 0 0 auto;
  font-size: .2117rem;
  color: #272727;
}

/* 好友卡右侧信息区：状态在上，奖励在下 */
.friend-info {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: .04rem;
  min-width: 0;
}

.friend-status {
  font-size: .1925rem;
  color: #272727;
  line-height: 1.2;
}

.friend-reward {
  max-width: 100%;
  font-size: .1925rem;
  color: #d56c1f;
  text-align: right;
  line-height: 1.2;
}

.friend-name--empty {
  color: #62605e;
}

.friend-reward--empty {
  color: #d56c1f;
}

.btn-invite {
  display: block;
  width: 2.68rem;
  margin-top: .14rem;
}

.btn-invite-img {
  width: 100%;
  height: auto;
}

/* part4 活动规则 */

.part-rule {
  padding: 2.24rem .5rem 2.05rem;
}

.title-rule {
  width: 6.6rem;
  height: 1.1rem;
}

.rule-box {
  width: 6.43rem;
  height: 12.1rem;
  margin-top: .24rem;
  padding: .5rem .45rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/part4/rule-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.rule-text {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  font-size: .22rem;
  line-height: 1.6;
  color: #ae832d;
}

.rule-text p {
  margin-bottom: .12rem;
}

.rule-text .num {
  color: #d36616;
}

.rule-indent {
  padding-left: .4rem;
}

.decor-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 3.01rem;
  height: 3.13rem;
  z-index: 2;
}

/* ========== 弹窗遮罩（与 a20260409invitation 统一） ========== */

.pop_mask_mf {
  display: none;
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  background-color: #000;
  opacity: .7;
}

/* 文字隐藏（供背景图类按钮 a 标签内的兜底文案） */
.tet-indent {
  text-indent: -99rem;
  overflow: hidden;
}

/* ========== 通用弹窗基类 ========== */
/* 显隐由 mfDialogS（js/index.js）通过 display:block/none 控制，不再使用 is-show 类 */

.pop {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 100;
  display: none;
  transform: translate(-50%, -50%);
}

/* ========== 分享海报弹窗 ========== */

.pop-poster {
  width: 6.5rem;
}

/* 海报卡片：离屏绘画区的载体（背景 + 绝对定位的奖励列表 / 二维码） */
.poster-card {
  position: relative;
  width: 6.5rem;
  height: 9.55rem;
}

/* 使用 img 避免 html2canvas 先按 CSS 尺寸缩小背景，再放大导出造成细节损失。 */
.poster-draw-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* 海报预览图：展示离屏区 html2canvas 生成的海报 */
.poster-preview {
  width: 6.5rem;
  height: 9.55rem;
  margin: 0 auto;
}

.poster-img {
  display: block;
  width: 100%;
  height: 100%;
}

/* 离屏绘画区：移出可视区域，仅供 html2canvas 截图 */
.poster-draw-area {
  position: fixed;
  left: -99.99rem;
  top: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: -1;
}

/* 离屏二维码按容器尺寸缩放（QRCode 库生成固定 264px canvas） */
.poster-draw-qrcode canvas,
.poster-draw-qrcode img {
  display: block;
  width: 100%;
  height: 100%;
}

/* 奖品卡列表：html2canvas 1.4.1 不支持 flex gap，整体改绝对定位布局（卡片宽 1.72rem + 间距 .3rem） */
.poster-award-list {
  position: absolute;
  left:.50rem;
  top: 5.45rem;
  width: 100%;
  height: 1.78rem;
  font-family: 'fz-dd', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

.poster-award {
  position: relative;
  float: left;
  margin-right: 0.08rem;
  top: 0;
  width: 1.3rem;
  height: 1.78rem;
}




/* 背景图用 img 标签代替 CSS background，html2canvas 截图更稳定 */
.poster-award-bg {
  display: block;
  width: 100%;
  height: 100%;
}

.poster-award-name {
  position: absolute;
  left: 0;
  top: .15rem;
  width: 100%;
  text-align: center;
  font-size: .18rem;
  color: #f1ead9;
  line-height: 1;
}

.poster-award-icon {
  position: absolute;
  left: 50%;
  top: .44rem;
  transform: translateX(-50%);
  height: .9rem;
  width: auto;
}
.poster-award:nth-child(1) .poster-award-icon{
  top: .5rem;
  height: .8rem;
}
.poster-award-desc {
  position: absolute;
  width: 100%;
  bottom: .12rem;
  font-size: .14rem;
  color: #f4eee1;
  text-align: center;
}
.poster-award:nth-child(1) .poster-award-desc {
  font-size: .12rem;
}
.poster-award-count {
  position: absolute;
  right: .13rem;
  bottom: .35rem;
  font-size: .18rem;
  -webkit-text-stroke: .02rem #bf5100;
  letter-spacing: -0.01rem;
  paint-order: stroke;
  color: #f4eee1;
  line-height: 1;
}

.poster-qrcode {
  position: absolute;
  left: 1.97rem;
  top: 7.58rem;
  padding: .03rem;
  width: .9rem;
  height: .9rem;
  border-radius: .05rem;
  background-color: #fff;
}


/* 底部三按钮（display:block 布局下水平居中） */

.poster-actions {
  display: flex;
  justify-content: space-evenly;
  width: 6.43rem;
  margin: .28rem auto 0;
}

.poster-btn {
  display: block;
  width: 1.94rem;
  height: .62rem;
}

.poster-btn img {
  width: 100%;
  height: 100%;
}

/* ========== 通用 Toast ========== */

.common-toast {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 9999;
  display: none;
  min-width: 3rem;
  max-width: 6rem;
  padding: .2rem .3rem;
  border-radius: .1rem;
  background-color: rgba(0, 0, 0, .75);
  color: #fff;
  font-size: .24rem;
  line-height: 1.4;
  text-align: center;
  transform: translate(-50%, -50%);
}

.common-toast.is-show {
  display: block;
}

/* ========== 通用结果弹窗（领取成功 / 邀请好友 等复用） ========== */
/* 结构：.pop-common > .close-btn + .pop-inner(.pop-title.bg + .pop-message + .pop-btn) */

.pop-common {
  width: 6.4rem;
  height: 5.08rem;
  padding: .08rem .3rem .3rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/pop/pop-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-sizing: border-box;
}

/* 关闭按钮：统一类名 close-btn（mfDialogS 按 .close-btn 绑定关闭），位于弹窗右上外侧 */
.close-btn {
  display: block;
  position: absolute;
  top: -.69rem;
  right: 0;
  width: .4rem;
  height: .44rem;
  background: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/pop/icon-close.png') 0 0 no-repeat;
  background-size: 100% 100%;
  cursor: pointer;
}

/* 弹窗内容区 */
.pop-inner {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 通用弹窗标题：文字用 dundun 字体，带 title-bg 背景条 */
.pop-title {
  margin: 0;
  text-align: center;
  font-weight: normal;
  color: #f4eee1;
  font-family: 'fz-dd', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

.pop-title.bg {
  width: 6.21rem;
  height: .89rem;
  line-height: .8rem;
  font-size: .42rem;
  letter-spacing: .02rem;
  background: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/pop/title-bg.png') no-repeat center / 100% 100%;
}

.pop-message {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 .3rem;
  font-size: .28rem;
  line-height: 1.5;
  color: #272727;
  text-align: center;
  font-family: 'fzlty-zz', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  word-break: break-all;
}

/* 确定按钮：圆角矩形背景 #fcb641，文字色 #bf5100 */
.pop-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.41rem;
  height: .64rem;
  margin-bottom: .1rem;
  border-radius: .32rem;
  background-color: #fcb641;
  font-family: 'fz-dd', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: .32rem;
  color: #bf5100;
  line-height: 1;
  cursor: pointer;
}

/* ========== 登录弹窗（双平台：微信 / QQ） ========== */
/* 结构：.pop-login > .close-btn + .pop-inner(.pop-title.bg + .login-flex) */

.pop-login {
  width: 6.4rem;
  height: 5.08rem;
  padding: .08rem .3rem .3rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/pop/pop-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-sizing: border-box;
}

/* 两枚登录入口横向居中排列（图标本身已含"微信/QQ登录"文字，不额外加文案） */
.login-flex {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: .8rem;
  width: 100%;
}

.login-item {
  flex: 0 0 auto;
  cursor: pointer;
}

.login-icon {
  width: 1.81rem;
  height: 2.3rem;
  object-fit: contain;
}

/* ========== 登录确认弹窗（ModalLoginReconfirm） ========== */
/* 结构：.pop-reconfirm > .close-btn + .pop-inner(.pop-title.bg + .reconfirm-message + .reconfirm-actions) */
/* 状态切换：默认"有角色"；无角色时容器追加 pop-reconfirm--no-role（由 showLoginReconfirm 控制） */

.pop-reconfirm {
  width: 6.4rem;
  height: 5.6rem;
  padding: .08rem .3rem .3rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/pop/pop-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-sizing: border-box;
}

/* 文案区：有角色 / 无角色 两个状态块二选一展示 */
.reconfirm-message {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0 .2rem;
  text-align: center;
}

.reconfirm-role {
  display: none;
  flex-direction: column;
  align-items: center;
  gap: .16rem;
  width: 100%;
}

/* 默认展示"有角色"块 */
.pop-reconfirm .reconfirm-role--has {
  display: flex;
}

/* 追加 no-role 修饰类时切换为"未查询到角色"块 */
.pop-reconfirm--no-role .reconfirm-role--has {
  display: none;
}

.pop-reconfirm--no-role .reconfirm-role--empty {
  display: flex;
}

/* 账号昵称行 */
.reconfirm-account {
  width: 100%;
  display: flex;
  justify-content: space-between;
  font-size: .28rem;
  color: #272727;
  line-height: 1.4;
}

.reconfirm-account-name {
  color: #d36616;
  font-family: unset;
}

/* 无角色标题行 */
.reconfirm-empty-title {
  align-self: flex-start;
  font-size: .28rem;
  line-height: 1.2;
  color: #d36616;
}

/* 提示文案 */
.reconfirm-tip {
  font-size: .28rem;
  line-height: 1.5;
  color: #272727;
  word-break: break-all;
  text-align: left;
}

/* 提示文案内的高亮词（如"切换账号"） */
.reconfirm-em {
  color: #d36616;
}

/* 双按钮横排 */
.reconfirm-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .1rem;
  width: 100%;
}

/* ========== 领取记录弹窗（ModalRecord） ========== */
/* 结构：.pop-record > .close-btn + .pop-inner(.pop-title.bg + .record-box > .record-list + .pop-btn) */
/* 底图 / 标题条 / 确定按钮均沿用通用弹窗（pop-bg.png、.pop-title.bg、.pop-btn），列表区条目超出时内部纵向滚动 */

/* 与 .pop-common 保持一致的尺寸（6.4rem × 5.08rem）、奶油纸质底图与内边距 */
.pop-record {
  width: 6.4rem;
  height: 5.08rem;
  padding: .08rem .3rem .3rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/pop/pop-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-sizing: border-box;
}

/* 列表面板：底色由 .pop-record 的纸质底图透出 */
/* 撑满标题与确定按钮之间的剩余高度，记录超出时面板内部纵向滚动 */
.record-box {
  flex: 1 1 0%;
  width: 6.21rem;
  min-height: 0;
  margin-top: .18rem;
  padding: .3rem .34rem;
  border-radius: .16rem;
  box-sizing: border-box;
  overflow-y: auto;
}

.record-item {
  display: flex;
  align-items: flex-start;
  width: 100%;
  font-size: .28rem;
  line-height: 1.2;
  color: #d36616;
}

.record-item + .record-item {
  margin-top: .12rem;
}

/* 序号列固定宽度不收缩，保证条目换行时正文左对齐（悬挂缩进） */
.record-index {
  flex: 0 0 auto;
  padding-right: .12rem;
}

.record-text {
  flex: 1 1 auto;
  min-width: 0;
  word-break: break-all;
}

/* 无记录空态：整列表占满并居中展示占位文案 */
.record-list-empty {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.record-empty {
  font-size: .28rem;
  line-height: 1.2;
  color: #d36616;
  text-align: center;
}

/* ========== 温馨提示弹窗（未登录引导：扫码 / 复制链接） ========== */
/* 结构：.pop-download > .close-btn + .pop-inner(.pop-title.bg + .download-box + .pop-btn) */

/* 尺寸与 .pop-reconfirm 对齐，底图 / 标题条 / 按钮沿用通用弹窗 */
.pop-download {
  width: 6.4rem;
  height: 5.6rem;
  padding: .08rem .3rem .3rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/pop/pop-bg.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-sizing: border-box;
}

/* 文案 + 二维码区：在标题条与按钮之间垂直居中 */
.download-box {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0 .2rem;
  text-align: center;
}

.download-tip-strong {
  font-size: .28rem;
  line-height: 1.4;
  color: #d36616;
}

.download-tip {
  margin-top: .1rem;
  font-size: .28rem;
  line-height: 1.4;
  color: #272727;
}

/* 二维码外框：白底 + 深色描边，内部 canvas 由 QRCode.js 生成后铺满 */
.download-qrcode {
  width: 2rem;
  height: 2rem;
  margin-top: .26rem;
  padding: .1rem;
  border: .04rem solid #333;
  border-radius: .18rem;
  background-color: #fff;
  box-sizing: border-box;
}

.download-qrcode canvas,
.download-qrcode img {
  display: block;
  width: 100%;
  height: 100%;
}

/* ========== 点击右上角分享（全屏透明引导层） ========== */
/* 结构：.pop-right 空白容器，点击任意位置由 onclick="closeDialog()" 关闭 */
/* 宽高必须用视口单位：折叠屏展开后视口接近方形（宽高比远大于设计稿 750/1200），
   head 里的 setFont 会改按高度换算 rem，7.5rem 只剩 0.625 倍视口高，
   .pop 居中后引导层只有页面最大宽度、右上角箭头也指不到屏幕右上角的"分享"入口；
   改用 100vw / 100vh 后，配合 .pop 的 translate(-50%, -50%) 始终铺满整屏，
   因此也无需用 !important 覆盖 mfDialogS 写入的行内 transform */

.pop-right {
  width: 100vw;
  height: 100vh;
  cursor: pointer;
}

/* 指向右上角"分享"入口的箭头提示图 */
.pop-right:before {
  content: '';
  position: absolute;
  top: .5rem;
  right: .5rem;
  width: 3rem;
  height: .99rem;
  background-image: url('https://game.gtimg.cn/images/rocom/act/a20260909invite/pop/right-share.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}


/* 页脚 */
.foot {
  width: 100%;
  font-size: .24rem;
  text-align: center;
  padding: .2rem 0;
  background: #000;
  color: #fff;
  position: relative;
  z-index: 25;
  font: 14px / 1.75 -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.foot a {
  display: inline-block;
  color: #fff;
  text-decoration: none;
}
