.v943-online-wrap{
  margin:18px 20px 0;
  padding:18px 16px 16px;
  border-radius:28px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfaf7 100%);
  box-shadow:
    0 16px 36px rgba(136,145,110,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
  position:relative;
  overflow:hidden;
}

.v943-online-wrap::before,
.v943-online-wrap::after{
  content:"";
  position:absolute;
  border-radius:999px;
  pointer-events:none;
  opacity:.45;
}

.v943-online-wrap::before{
  width:140px;
  height:140px;
  right:-28px;
  top:-28px;
  background:radial-gradient(circle at 35% 35%, rgba(175,232,135,.35), rgba(175,232,135,0));
}

.v943-online-wrap::after{
  width:100px;
  height:100px;
  left:-20px;
  bottom:-20px;
  background:radial-gradient(circle at 35% 35%, rgba(255,210,170,.28), rgba(255,210,170,0));
}

.v943-online-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  position:relative;
  z-index:1;
}

.v943-online-title{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.v943-online-title b{
  font-size:18px;
  line-height:1.1;
  color:#2d2b27;
}

.v943-online-title small{
  font-size:12px;
  color:#8d877d;
  line-height:1.5;
}

.v943-online-badge{
  flex:none;
  padding:9px 12px;
  border-radius:999px;
  background:linear-gradient(180deg,#eff7ea 0%,#e2f0da 100%);
  color:#4f8a55;
  font-size:12px;
  font-weight:800;
  box-shadow:0 6px 16px rgba(128,168,111,.16);
  animation:v943-bob 2.8s ease-in-out infinite;
}

.v943-task-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  position:relative;
  z-index:1;
}

.v943-task-card{
  position:relative;
  border:none;
  text-align:left;
  border-radius:24px;
  padding:14px 14px 12px;
  background:
    linear-gradient(180deg,#fdfdfc 0%,#f7f4ef 100%);
  box-shadow:
    0 10px 22px rgba(133,140,109,.09),
    inset 0 1px 0 rgba(255,255,255,.95);
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease;
}

.v943-task-card:active{
  transform:scale(.985);
}

.v943-task-card.done{
  background:linear-gradient(180deg,#f1faec 0%,#e9f6e0 100%);
  box-shadow:
    0 10px 22px rgba(125,176,103,.12),
    inset 0 1px 0 rgba(255,255,255,.95);
}

.v943-task-card::before{
  content:"";
  position:absolute;
  right:-18px;
  top:-18px;
  width:76px;
  height:76px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, rgba(174,222,146,.28), rgba(174,222,146,0));
}

.v943-task-card::after{
  content:"";
  position:absolute;
  inset:auto auto 10px -10px;
  width:54px;
  height:54px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, rgba(255,206,154,.22), rgba(255,206,154,0));
}

.v943-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
  position:relative;
  z-index:1;
}

.v943-card-icon{
  width:46px;
  height:46px;
  border-radius:16px;
  display:grid;
  place-items:center;
  font-size:24px;
  background:linear-gradient(180deg,#fff8ef 0%,#fff2df 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
  animation:v943-wiggle 3.2s ease-in-out infinite;
}

.v943-task-card:nth-child(2) .v943-card-icon{ animation-delay:.3s; }
.v943-task-card:nth-child(3) .v943-card-icon{ animation-delay:.6s; }
.v943-task-card:nth-child(4) .v943-card-icon{ animation-delay:.9s; }

.v943-card-status{
  flex:none;
  font-size:11px;
  font-weight:800;
  padding:7px 10px;
  border-radius:999px;
  background:#f2f1ee;
  color:#938b7f;
}

.v943-task-card.done .v943-card-status{
  background:#dff0d6;
  color:#4f8a55;
}

.v943-card-title{
  font-size:16px;
  font-weight:900;
  color:#2f2b26;
  margin-bottom:6px;
  position:relative;
  z-index:1;
}

.v943-card-desc{
  font-size:12px;
  line-height:1.55;
  color:#8b857b;
  min-height:38px;
  position:relative;
  z-index:1;
}

.v943-card-reward{
  margin-top:12px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  position:relative;
  z-index:1;
}

.v943-pill{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:7px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  background:#f4f7ef;
  color:#5b7d57;
}

.v943-pill.exp{
  background:#fff4df;
  color:#b57923;
}

.v943-card-btn{
  margin-top:12px;
  width:100%;
  border:none;
  border-radius:16px;
  padding:12px 10px;
  background:linear-gradient(180deg,#8fd76c 0%,#7bc95d 100%);
  color:#fff;
  font-size:14px;
  font-weight:900;
  box-shadow:0 10px 18px rgba(118,196,84,.25);
  position:relative;
  z-index:1;
}

.v943-task-card.done .v943-card-btn{
  background:linear-gradient(180deg,#79b57c 0%,#689b68 100%);
}

.v943-modal{
  padding:4px 2px 2px;
}

.v943-modal-head{
  margin-bottom:14px;
}

.v943-modal-head h3{
  margin:0 0 6px;
  font-size:24px;
  color:#2d2b27;
}

.v943-modal-head p{
  margin:0;
  font-size:13px;
  color:#8a857b;
  line-height:1.6;
}

.v943-progress{
  height:12px;
  border-radius:999px;
  background:#f1f0ec;
  overflow:hidden;
  margin:14px 0 16px;
}

.v943-progress > i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#9be176 0%,#7fcd62 100%);
  box-shadow:0 4px 12px rgba(126,200,90,.25);
  transition:width .2s ease;
}

.v943-quiz-card,
.v943-reading-card,
.v943-reward-card{
  border-radius:24px;
  background:linear-gradient(180deg,#fffdfa 0%,#f8f4ee 100%);
  padding:18px 16px;
  box-shadow:
    0 12px 24px rgba(130,137,110,.08),
    inset 0 1px 0 rgba(255,255,255,.95);
}

.v943-q{
  font-size:20px;
  font-weight:900;
  color:#2d2b27;
  margin-bottom:14px;
}

.v943-choices,
.v943-reading-options{
  display:grid;
  gap:10px;
}

.v943-choice,
.v943-reading-chip{
  width:100%;
  border:none;
  border-radius:18px;
  padding:14px 14px;
  text-align:left;
  font-size:15px;
  font-weight:800;
  background:#f6f6f3;
  color:#4a4741;
  transition:transform .15s ease, background .15s ease;
}

.v943-choice:active,
.v943-reading-chip:active{
  transform:scale(.985);
}

.v943-reading-chip.active{
  background:linear-gradient(180deg,#eef8e9 0%,#e0f0d7 100%);
  color:#4e8655;
}

.v943-reading-time{
  margin:12px 0 0;
  text-align:center;
  font-size:36px;
  font-weight:900;
  color:#4b8a55;
  letter-spacing:1px;
}

.v943-reading-sub{
  margin-top:8px;
  text-align:center;
  font-size:13px;
  color:#8b857b;
}

.v943-row-btns{
  display:flex;
  gap:10px;
  margin-top:14px;
}

.v943-soft-btn,
.v943-main-btn{
  flex:1;
  border:none;
  border-radius:18px;
  padding:14px 12px;
  font-size:15px;
  font-weight:900;
}

.v943-soft-btn{
  background:#f0efec;
  color:#6f675d;
}

.v943-main-btn{
  background:linear-gradient(180deg,#92db70 0%,#7ecf60 100%);
  color:#fff;
  box-shadow:0 10px 18px rgba(122,201,89,.24);
}

.v943-memory-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:12px;
}

.v943-memory-card{
  aspect-ratio:1 / 1;
  border:none;
  border-radius:20px;
  background:linear-gradient(180deg,#f7f4ee 0%,#f0ece5 100%);
  position:relative;
  transform-style:preserve-3d;
  transition:transform .22s ease, box-shadow .18s ease;
  box-shadow:0 8px 18px rgba(130,137,110,.08);
}

.v943-memory-card.open,
.v943-memory-card.done{
  background:linear-gradient(180deg,#eef8e9 0%,#e5f2dd 100%);
}

.v943-memory-face{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:32px;
  font-weight:900;
  color:#4d8853;
}

.v943-memory-back{
  color:#aeb6a7;
  font-size:26px;
}

.v943-score{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:10px 0 2px;
  font-size:13px;
  color:#8a857b;
  font-weight:700;
}

.v943-reward-card{
  text-align:center;
  position:relative;
  overflow:hidden;
}

.v943-reward-card .icon{
  width:72px;
  height:72px;
  margin:0 auto 12px;
  display:grid;
  place-items:center;
  border-radius:24px;
  font-size:36px;
  background:linear-gradient(180deg,#fff8ef 0%,#fff1dc 100%);
  animation:v943-pop .45s ease;
}

.v943-reward-card h4{
  margin:0 0 8px;
  font-size:22px;
  color:#2d2b27;
}

.v943-reward-card p{
  margin:0 0 12px;
  font-size:14px;
  line-height:1.6;
  color:#817b72;
}

.v943-reward-row{
  display:flex;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:14px;
}

.v943-floating-fx{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9999;
  overflow:hidden;
}

.v943-star{
  position:absolute;
  width:16px;
  height:16px;
  border-radius:50%;
  animation:v943-float-up 1.5s ease forwards;
}

.v943-star::before{
  content:"✨";
  position:absolute;
  inset:0;
  font-size:16px;
}

@keyframes v943-bob{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-4px); }
}

@keyframes v943-wiggle{
  0%,100%{ transform:rotate(0deg) translateY(0); }
  20%{ transform:rotate(-4deg) translateY(-1px); }
  40%{ transform:rotate(3deg) translateY(0); }
  60%{ transform:rotate(-2deg) translateY(-2px); }
  80%{ transform:rotate(2deg) translateY(0); }
}

@keyframes v943-pop{
  0%{ transform:scale(.7); opacity:0; }
  100%{ transform:scale(1); opacity:1; }
}

@keyframes v943-float-up{
  0%{
    transform:translateY(0) scale(.7);
    opacity:0;
  }
  15%{
    opacity:1;
  }
  100%{
    transform:translateY(-140px) scale(1.15);
    opacity:0;
  }
}

@media (max-width: 380px){
  .v943-task-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   V943.3 任务页两个固定入口
========================================================= */

.page[data-page="tasks"]
.footer-action[data-action="open-all-tasks"]{
  display:none!important;
}


/* 通用入口卡 */

.v943-task-portal{
  position:relative;

  overflow:hidden;

  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  text-align:center;

  isolation:isolate;
}


.v943-task-portal::before{
  content:"";

  position:absolute;

  z-index:-1;

  width:120px;
  height:120px;

  right:-45px;
  top:-40px;

  border-radius:50%;

  opacity:.65;

  pointer-events:none;
}


.v943-task-portal::after{
  content:"";

  position:absolute;

  z-index:-1;

  width:95px;
  height:95px;

  left:-38px;
  bottom:-40px;

  border-radius:50%;

  opacity:.48;

  pointer-events:none;
}


/* 在线任务 */

.v943-task-online{
  background:
    linear-gradient(
      150deg,
      #f2faee 0%,
      #fbfff8 55%,
      #fff8ea 100%
    )!important;
}


.v943-task-online::before{
  background:
    rgba(156,220,134,.36);
}


.v943-task-online::after{
  background:
    rgba(255,211,143,.34);
}


/* 全部任务 */

.v943-task-all{
  background:
    linear-gradient(
      150deg,
      #f7f6ff 0%,
      #fcfbff 52%,
      #f4f8ff 100%
    )!important;
}


.v943-task-all::before{
  background:
    rgba(193,184,239,.27);
}


.v943-task-all::after{
  background:
    rgba(177,210,240,.25);
}


/* 大图标 */

.v943-portal-icon{
  width:62px;
  height:62px;

  display:grid;
  place-items:center;

  margin-bottom:10px;

  border-radius:21px;

  background:
    rgba(255,255,255,.82);

  box-shadow:
    0 10px 24px
    rgba(72,92,79,.09);

  font-size:30px;

  animation:
    v943PortalFloat
    3s
    ease-in-out
    infinite;
}


.v943-task-all
.v943-portal-icon{
  animation-delay:
    -.8s;
}


.v943-task-portal>b{
  position:relative;
  z-index:2;

  font-size:17px!important;
  font-weight:900!important;

  color:#39463e!important;
}


.v943-task-portal>small{
  position:relative;
  z-index:2;

  display:block!important;

  margin-top:5px!important;

  color:#909991!important;

  font-size:9px!important;
  font-weight:650!important;
}


.v943-portal-go{
  position:relative;
  z-index:2;

  display:inline-flex;
  align-items:center;
  gap:4px;

  margin-top:11px;

  padding:
    7px 13px;

  border-radius:999px;

  font-size:9px;
  font-weight:850;
}


.v943-task-online
.v943-portal-go{
  color:#528c62;

  background:
    rgba(108,180,120,.13);
}


.v943-task-all
.v943-portal-go{
  color:#7474a1;

  background:
    rgba(132,132,188,.10);
}


.v943-portal-go>i{
  font-style:normal;

  transition:
    transform .18s ease;
}


.v943-task-portal:active
.v943-portal-go>i{
  transform:
    translateX(3px);
}


/* 小装饰 */

.v943-portal-decor{
  position:absolute;

  inset:0;

  pointer-events:none;
}


.v943-portal-decor i{
  position:absolute;

  font-style:normal;

  font-size:11px;

  opacity:.45;

  animation:
    v943PortalSpark
    2.8s
    ease-in-out
    infinite;
}


.v943-portal-decor i:nth-child(1){
  top:14%;
  right:15%;
}


.v943-portal-decor i:nth-child(2){
  top:35%;
  left:13%;

  animation-delay:
    -.9s;
}


.v943-portal-decor i:nth-child(3){
  bottom:18%;
  right:18%;

  animation-delay:
    -1.7s;
}


.v943-task-online
.v943-portal-decor i{
  color:#6eb57e;
}


.v943-task-all
.v943-portal-decor i{
  color:#9694c5;
}


@keyframes v943PortalFloat{

  0%,
  100%{
    transform:
      translateY(0)
      rotate(-2deg);
  }

  50%{
    transform:
      translateY(-6px)
      rotate(3deg);
  }

}


@keyframes v943PortalSpark{

  0%,
  100%{
    opacity:.22;

    transform:
      translateY(0)
      scale(.8);
  }

  50%{
    opacity:.8;

    transform:
      translateY(-5px)
      scale(1.15);
  }

}



/* =========================================================
   V943.12 在线任务弹窗滚动修复
   iPhone / Safari
========================================================= */

/*
  在线任务打开后，
  modalContent 自己作为滚动容器。
*/
#modalContent:has(.v943-modal){
  max-height:
    calc(100dvh - 88px) !important;

  overflow-x:
    hidden !important;

  overflow-y:
    auto !important;

  -webkit-overflow-scrolling:
    touch !important;

  overscroll-behavior-y:
    contain;

  touch-action:
    pan-y !important;

  scrollbar-width:
    none;

  padding-bottom:
    calc(
      28px +
      env(safe-area-inset-bottom)
    ) !important;
}


#modalContent:has(.v943-modal)::-webkit-scrollbar{
  display:none;
}


/*
  V943 自己不能锁高度/滚动。
*/
#modalContent .v943-modal{
  width:100%;

  height:auto !important;

  max-height:none !important;

  min-height:0 !important;

  overflow:visible !important;

  touch-action:
    pan-y !important;

  box-sizing:
    border-box;

  padding-bottom:
    calc(
      34px +
      env(safe-area-inset-bottom)
    );
}


/*
  在线任务四张卡正常随页面向下排列。
*/
#modalContent .v943-task-grid{
  overflow:
    visible !important;

  touch-action:
    pan-y !important;
}


/*
  防止卡片自身误拦截纵向滑动。
*/
#modalContent .v943-task-card{
  touch-action:
    pan-y manipulation;
}


/*
  最后一排下方多留空间，
  避免被 iPhone 底部 Home Indicator 挡住。
*/
#modalContent
.v943-task-grid
.v943-task-card:nth-last-child(-n+2){
  margin-bottom:
    8px;
}


/*
  在线任务标题可跟着页面一起滚动，
  不固定顶部。
*/
#modalContent .v943-modal-head{
  position:
    static !important;
}


/*
  小屏手机适配
*/
@media (max-height:750px){

  #modalContent:has(.v943-modal){
    max-height:
      calc(100dvh - 62px) !important;
  }

}


/*
  刘海 / 灵动岛设备
*/
@supports (
  height:100dvh
){

  #modalContent:has(.v943-modal){
    max-height:
      calc(
        100dvh -
        76px
      ) !important;
  }

}

