/* ============================================================
   迭代2 · 留存玩法层样式
   签到 / 奇遇 / 消消乐 共用 .day-overlay；统计可视化 #stats2；周报 .report
   ============================================================ */

/* ---------- 通用磨砂弹窗 ---------- */
.day-overlay{
  position:fixed; inset:0; z-index:1300; display:flex; align-items:center; justify-content:center;
  background:rgba(70,35,80,.45); backdrop-filter:blur(6px); padding:18px;
  opacity:0; transition:opacity .3s;
}
.day-overlay.show{ opacity:1; }
.day-card{
  width:min(420px,94vw); max-height:90vh; overflow-y:auto; border-radius:24px; text-align:center; padding:22px 20px;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,243,250,.98));
  box-shadow:0 20px 60px rgba(150,70,130,.4); border:1px solid rgba(255,200,230,.7);
  transform:translateY(16px) scale(.97); transition:transform .35s cubic-bezier(.2,1.3,.5,1);
}
.day-overlay.show .day-card{ transform:none; }
.day-emoji{ font-size:52px; line-height:1; margin-bottom:6px; }
.day-emoji.enc{ font-size:60px; }
.day-title{ margin:2px 0 8px; font-size:20px; font-weight:900; color:#8a4670; }
.day-sub{ margin:0 4px 14px; font-size:14px; line-height:1.7; color:#7a5566; }
.day-note{ margin:10px 0 0; font-size:12px; color:#b78; }
.day-btn{
  width:100%; box-sizing:border-box; margin-top:10px; padding:12px; border:none; border-radius:16px; cursor:pointer;
  font-size:15px; font-weight:800; color:#fff; background:linear-gradient(180deg,#ffa6cf,#ff7fb8);
  box-shadow:0 8px 20px rgba(255,127,184,.42);
}
.day-btn:active{ transform:translateY(1px); }
.day-btn[disabled]{ opacity:.55; cursor:not-allowed; box-shadow:none; }
.day-btn.ghost{ background:#fff2f8; color:#d6648a; box-shadow:none; border:1.5px solid #ffd0e0; }
.day-input{ width:78px; text-align:center; padding:8px 10px; border-radius:12px; border:2px solid #ffcfe6; font-size:16px; color:#8a4670; outline:none; }
.wish-row{ display:flex; align-items:center; justify-content:center; gap:10px; font-size:14px; color:#7a5566; margin:6px 0 4px; }

/* ---------- 签到日历 ---------- */
.sign-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:7px; margin:6px 0 4px; }
.sign-cell{
  position:relative; aspect-ratio:1; border-radius:12px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; font-size:11px; border:1.5px solid transparent;
}
.sign-cell .sd{ font-weight:800; color:#b98; }
.sign-cell .si{ font-size:14px; }
.sign-cell.lock{ background:#fff2f8; }
.sign-cell.got{ background:linear-gradient(180deg,#ffe3f0,#ffd0e6); border-color:#ffb6d5; }
.sign-cell.got .sd{ color:#e85f95; }
.sign-cell.today{ background:linear-gradient(180deg,#fff6b0,#ffd76a); border-color:#f2a93a; box-shadow:0 0 0 2px #ffe9a8; animation:signPulse 1.4s ease-in-out infinite; }
.sign-cell.today .sd{ color:#b8791a; }
@keyframes signPulse{ 0%,100%{ transform:scale(1) } 50%{ transform:scale(1.08) } }

/* ---------- 消消乐 ---------- */
.mg-card-wrap{ width:min(460px,95vw); }
.mg-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:8px 0 4px; }
.mg-card{
  min-height:62px; padding:8px 6px; border-radius:14px; border:2px solid #ffd0e0; cursor:pointer;
  background:#fff7fb; color:#7a4a66; font-size:14px; font-weight:700; line-height:1.3;
  display:flex; align-items:center; justify-content:center; text-align:center; transition:.15s; word-break:break-word;
}
.mg-card.en{ font-family:Georgia,serif; color:#a24672; }
.mg-card.sel{ border-color:#ff5fa2; background:#ffe6f1; box-shadow:0 0 0 2px #ffb6d5; transform:translateY(-2px); }
.mg-card.bad{ border-color:#ff8f8f; background:#ffecec; animation:mgShake .4s; }
.mg-card.done{ opacity:0; transform:scale(.6); pointer-events:none; }
@keyframes mgShake{ 0%,100%{ transform:translateX(0) } 25%{ transform:translateX(-5px) } 75%{ transform:translateX(5px) } }

/* ---------- 统计可视化 #stats2 ---------- */
#stats2 .s2-card{ margin-top:14px; }
.s2-h{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:15px; font-weight:800; color:#e85d75; margin-bottom:12px; }
.s2-mini{ border:none; border-radius:12px; padding:5px 12px; font-size:12px; font-weight:800; color:#fff; cursor:pointer; background:linear-gradient(180deg,#c9a0f0,#a97fe0); box-shadow:0 4px 12px rgba(169,127,224,.4); }
.s2-rings{ display:flex; gap:18px; justify-content:center; margin:4px 0 14px; }
.s2-ring{ width:96px; height:96px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:conic-gradient(#ff7fb8 calc(var(--v)*1%), #ffe3ef 0); }
.s2-ring.prog{ background:conic-gradient(#c98cf0 calc(var(--v)*1%), #efe3ff 0); }
.s2-ring-in{ width:74px; height:74px; border-radius:50%; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:inset 0 2px 6px rgba(255,150,200,.15); }
.s2-ring-in b{ font-size:21px; color:#e85d75; }
.s2-ring.prog .s2-ring-in b{ color:#a97fe0; }
.s2-ring-in span{ font-size:11px; color:#a08088; }
.s2-block{ margin-top:14px; }
.s2-empty{ font-size:13px; color:#b295a0; text-align:center; padding:8px; }

/* 近7天柱状 */
.wk-chart{ display:flex; align-items:flex-end; gap:8px; height:96px; padding:4px 2px 0; }
.wk-col{ flex:1; display:flex; flex-direction:column; align-items:center; height:100%; justify-content:flex-end; }
.wk-bar{ width:70%; min-height:6px; border-radius:8px 8px 4px 4px; background:linear-gradient(180deg,#ffb0d8,#ff7fb8); position:relative; transition:height .5s; }
.wk-bar span{ position:absolute; top:-16px; left:50%; transform:translateX(-50%); font-size:10px; color:#e85d75; font-weight:800; }
.wk-lb{ margin-top:5px; font-size:10px; color:#a08088; }

/* 薄弱词榜 */
.weak-list{ display:flex; flex-direction:column; gap:7px; }
.weak-item{ display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:13px; cursor:pointer;
  background:linear-gradient(180deg,#fff7fb,#fff0f6); border:1.5px solid #ffdcea; text-align:left; }
.weak-item:hover{ border-color:#ff9ecf; }
.weak-item .wk-en{ font-family:Georgia,serif; font-weight:800; color:#a24672; flex:0 0 auto; min-width:80px; }
.weak-item .wk-cn{ flex:1; font-size:13px; color:#7a5566; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.weak-item .wk-x{ flex:0 0 auto; font-size:11px; font-weight:800; color:#fff; background:#ff9aa2; border-radius:10px; padding:2px 9px; }

/* ---------- 周报 ---------- */
.report-card{ background:linear-gradient(180deg,#fff6fb,#ffeef7); }
.rp-top{ font-size:19px; font-weight:900; color:#8a4670; margin-bottom:14px; }
.rp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.rp-cell{ background:#fff; border-radius:14px; padding:12px 6px; box-shadow:0 4px 12px rgba(255,150,200,.16); }
.rp-cell b{ display:block; font-size:22px; color:#e85d75; }
.rp-cell span{ font-size:11px; color:#a08088; }
.rp-cheer{ margin:16px 6px 4px; font-size:14px; color:#c07aa0; font-weight:700; }

@media (prefers-reduced-motion: reduce){
  .day-overlay, .day-card{ transition:none; }
  .sign-cell.today{ animation:none; }
}
